IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> TCP/IP 详解(第二版) 笔记 / 2 互联网地址架构 / 2.5 有特殊用途的地址 / 2.5.4 IPv6 组播地址 -> 正文阅读

[网络协议]TCP/IP 详解(第二版) 笔记 / 2 互联网地址架构 / 2.5 有特殊用途的地址 / 2.5.4 IPv6 组播地址

目录


2.5.4 IPv6 组播地址

IPv6 在组播方面有更积极的应用,前缀 ff00::/8 被保留用于组播地址
112 位可用于保存组号,可支持 2^112 = 5,192,296,858,534,827,628,530,496,329,220,096 组的可能性
其一般格式如图 2-12 所示

Figure 2-12
图 2-12
基本的 IPv6 组播地址格式包括 4 个 标志 位(0:保留;R:包含汇聚点;P:使用单播前缀;T:临时的)
4 位 Scope 值指示出组播的范围(全局(global)、本地(local)等)
组 ID 用低 112 位编码
如果设置了 P 或 R 位,则会使用其它格式

IPv6 组播地址的第二个字节分为两部分,其中前半字节为 4 位的 标志 字段,后半字节为 4 位的 Scope ID 字段
Scope 字段用来指出分发 “ 寻址到某些特定组播地址的 ” 数据报时的限制
十六进制值 0、3 和 f 保留,6、7 以及 9 到 d 未分配
这些值如表 2-10 所示,这些值基于:[RFC4291] 的 2.7 节

Table 2-10
表 2-10
IPv6 Scope 字段的值

许多 IANA 为永久使用分配的 IPv6 组播地址有意地跨越了多个 scope
每个这样的地址都定义了一个相对于每个 scope 的偏移量(因此这类地址被称为 scope 相对的(scope-relative)或 scope 可变的(variable-scope))
例如 scope 可变的组播地址 ff0x::101 被 [IP6MA] 保留用于 NTP 服务器(NTP:Network Time Protocol网络时间协议))
ff0x::101 中的 x 指出了可变的 scope
表 2-11 展示了一些为此定义的地址

Table 2-11
表 2-11
为 NTP(101)保留的永久 scope 可变 IPv6 组播地址的例子

在 IPv6 中,当 PR 位字段被设置为 0 时,会使用图 2-12 中展示的组播地址格式
P 设置为 1 时,对于不需要 “ 基于每个组的全局协议 ” 的组播地址存在两种替代方法,[RFC3306] 与 [RFC4489] 对此进行了描述
第一种叫做基于单播前缀的unicast-prefix-based)IPv6 组播地址分配
一个由 ISP 或地址分配机构提供的单播前缀分配也有效地分配了一个组播地址集合,从而限制了为避免重复而需要的全局协调量
第二种方法,link-scoped IPv6 组播,使用了接口标识符,并且组播地址基于主机的 IID
为了理解这些可变的格式是如何工作的,我们需要首先理解 IPv6 组播地址中位字段使用的更多细节
表 2-12 展示了它们的定义

Table 2-12
表 2-12
IPv6 组播地址标志

设置 T 位字段表示涉及的组地址是临时的或动态分配的,它不是 [IP6MA] 中定义的标准地址
P 位字段被设置为 1 时,T 字段也必须被设置为 1
当这样设置时,一个基于单播地址前缀的 IPv6 组播地址的特殊格式被开启,如图 2-13 所示

Figure 2-13
图 2-13
可以基于单播 IPv6 地址分配来创建 IPv6 组播地址 [RFC3306]
这种情况下,P 位字段会被设置为 1,单播前缀会在地址中进行携带,后边是一个 32 位长的组 ID
这种形式的组播地址分配减少了对全局地址分配协议的依赖

图 2-13 展示了使用基于单播前缀的寻址如何改变组播地址的格式以包含单播前缀长度字段与单播前缀字段,再加上一个较小的(32 位)组 ID
这个模式提供了一种无需新的全局机制即可分配全局唯一的 IPv6 组播地址的方法
因为 IPv6 单播地址已经以前缀为单位进行了全局分配(见 2.6 节)
可以在组播地址中使用这个前缀,从而利用已有的单播地址分配方法
例如,接收 3ffe:ffff:1::/48 单播前缀分配的组织也将因此接收基于单播的组播前缀分配:ff3x:30:3ffe:ffff:1::/96
其中 x 是任意有效的 scope
这个格式也支持 SSM,只要将前缀长度字段与前缀字段设置为 0 即可
IPv6 SSM 组播地址的前缀必须为 ff3x::/32(其中 x 是任意有效的 scope)

要创建 link-local scope 的唯一组播地址,可以使用基于 IID 的方法 [RFC4489]
当只需要 link-local scope 时,该方法优于基于单播前缀的分配方式
在这种情况下,使用了另一种形式的 IPv6 组播地址结构(如图 2-14)

Figure 2-14
图 2-14
IPv6 link-scope 组播地址格式
只适用于同一链路(或更小范围)scope 的地址,这类组播地址由 IPv6 接口 ID 与组 ID 结合形成
所有地址都使用 ff3x:0011/32 形式的前缀,x 是小于 3 的 scope ID(2 或小于 2)

图 2-14 中的格式与图 2-13 中的非常相似,只是前缀长度Prefix Length)字段被设置为了 255
并且接下来的字段不再是前缀,而是 IPv6 IID
这个结构的组播地址的优势是不需要提供单播前缀
在没有路由可用的 AD-HOC(自组织)网络中,单个机器可以根据自己的 IID 形成唯一的组播地址,无需参与复杂的协商协议
然而,如前所述,这种格式只能用于链路本地或节点本地的组播 scope
当需要更大的 scope 时,可以使用基于单播前缀的寻址或永久组播地址
下面是这种格式的一个例子,IID 为 02-11-22-33-44-55-66-77 的主机使用组播地址:ff3x:0011:0211:2233:4455:6677:gggg:gggg
其中,x 是 2 或小于 2 的 scope 值,gggg:gggg 是一个 32 位组播组 ID 的十六进制表示

目前我们还没有讨论 R 位字段
这个字段会在使用了基于单播前缀的组播寻址(P 位被设置为 1)
并且使用了需要汇聚点信息(knowledge of a rendezvous point)的组播路由协议时使用

注意
汇聚点rendezvous point (RP))是为处理一个或多个组播组的组播路由而设置的路由器的 IP 地址
PIM-SM 协议 [RFC4601] 使用 RP 来帮助参与同一组播组的发送者和接收者找到彼此
在部署互联网范围的组播时遇到的一个问题就是如何定位汇聚点
这个模式使 IPv6 组播地址过载以包含 RP 地址,只需选择适当的二进制位的子集,就可以轻松地从组地址中找到 RP

设置了 P 位的组播地址格式如图 2-15 所示

Figure 2-15
图 2-15
RP 的单播 IPv6 地址可以嵌入 IPv6 组播地址 [RFC3956]
这样做使寻找路由地址关联的 RP 变得直接
当发送者与接收者不在同一个子网中时,组播路由系统使用 RP 来进行协调

图 2-15 中展示的格式与图 2-13 中展示格式相似
但不再使用 SSM(因此前缀长度字段不能为 0)
另外,引入了一个新的名为 RIID 的 4 位字段
前缀长度Prefix Length)字段中指示的位数根据前缀Prefix)字段得到
RIID 字段的内容被用来作为 RP 地址的低 4 位,剩下部分用 0 填充
例如组播地址 ff75:940:2001:db8:dead:beef:f00d:face
scope 为 5(站点本地(site-local)),RIID 字段的值为 9,前缀长度为 0x40 = 64 比特
前缀为 2001:db8:dead:beef,RP 地址为 2001:db8:dead:beef::9
更多例子请参考 [RFC3956]

与 IPv4 一样,也有许多保留的 IPv6 组播地址
除了前面提到的可变 scope 地址外,这些地址都会以 scope 进行分组
表 2-13 列出了 IPv6 组播空间的主要保留地址
更多其它信息,请参阅 [IP6MA]

Table 2-13
表 2-13
IPv6 组播地址空间中的保留地址


目录

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:42:59  更:2021-11-22 12:44:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:46:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码