当前位置:网站首页 > 编程语言 > 正文

ipv6组播报文(ipv6 组播)



概述

作为 IPv4协议的替代,IPv6协议使用 128位的地址结构解决了 IP地址不足的问题,同时对一些特 性进行了优化处理。出现于 IPv4时代的组播技术,由于其有效解决了单点发送、多点接收的问题, 实现了网络中点到多点的高效数据传送,能够大量节约网络带宽、降低网络负载,因此在 IPv6 中 的应用得到了进一步的丰富和加强。

IPv6组播与 IPv4组播的最大不同在于 IPv6组播地址机制的极大丰富,而其它诸如组成员管理、组 播报文转发以及组播路由建立等与 IPv4组播基本相同。因此,本文将重点介绍组播地址对 IPv6的 支持情况;对于 IPv6组播协议,只对其与 IPv4组播协议的异同进行大致的介绍。

IPv6 组播技术实现

IPv6组播地址

在介绍 IPv6组播地址之前,先简单回顾一下 IPv6的地址结构:IPv6地址的长度为 128比特,每个 IPv6地址被分为 8组,每组的 16比特用 4个十六进制数来表示,组和组之间用冒号隔开,例如:FEDC:BA98:7654:3210:FEDC:BA98:7654:3210。

IPv6组播地址格式

IPv6组播地址用来标识一组接口,通常这些接口属于不同的节点。一个节点可能属于 0到多个组播 组。发往组播地址的报文被组播地址标识的所有接口接收。

图1 IPv6组播地址格式

如图 1所示,IPv6组播地址中各字段的含义如下:

表1 Flags字段各位的取值及含义

预留的 IPv6组播地址

根据 RFC 4291,目前已被预留的 IPv6组播地址如表3所示。

表3 预留的 IPv6组播地址列表

说明:表3中的 X代表 0~F的任意一个十六进制数

基于单播前缀的 IPv6组播地址

RFC 3306中规定了一种动态分配 IPv6组播地址的方式——基于单播前缀的 IPv6组播地址。这种 IPv6组播地址中包含了其组播源网络的单播地址前缀,通过这种方式分配全局唯一的组播地址。

图2 基于单播前缀的 IPv6组播地址格式

基于单播前缀的 IPv6组播地址的格式如图 2所示,其中各字段的含义如下

例如: 单播前缀为 3FFE:FFFF:1::/48 的网络分配基于单播前缀的组播地址为 FF3X:30:3FFE:FFFF:1::/96(X表示任意合法的 Scope)。

内嵌 RP地址的 IPv6组播地址

1.地址格式

嵌入式 RP(Rendezvous Point,汇集点)是 IPv6 PIM 中特有的 RP 发现机制,该机制使用内嵌 RP地址的 IPv6组播地址,使得组播路由器可以直接从该地址中解析出 RP的地址。

图3 内嵌 RP地址的 IPv6组播地址格式

图3所示,内嵌 RP地址的 IPv6组播地址使用基于单播前缀的 IPv6组播地址格式,其中各字段 的含义如下:

2.计算规则

内嵌于 IPv6组播地址中的 RP地址的计算规则如下:

(1) 先将 IPv6组播地址 Network prefix字段的前 Plen位作为 RP地址的网络前缀。

(2) 再将 IPv6组播地址 RIID字段填充到 RP地址的最低 4位。

(3) 最后,将 RP地址的所有剩余位补 0。

例如:对于 IPv6组播地址 FF7E:F40:2001:DB8:BEEF:FEED::1234,内嵌于其中的 RP地址的前缀 为 Network prefix字段的前 Plen(这里为 0x40 = 64 bits)位,最低 4位为 RIID(0xF),其余位均 为 0,如图4所示。

图4 嵌入式 RP计算举例

3.应用举例

假设网络管理员想在 2001:DB8:BEEF:FEED::/64 网段中设置 RP,则内嵌 RP地址的 IPv6 组播地 址为 FF7X:Y40:2001:DB8:BEEF:FEED::/96,可分配 32比特的 Group ID,内嵌于其中的 RP地址 为 2001:DB8:BEEF:FEED::Y/64。

如果网络管理员想在IPv6组播地址中保留更多可分配的Group ID,可以选择更短的RP地址前缀:譬如取 Plen = 0x20 = 32 bits,则此时内嵌 RP地址的 IPv6组播地址为 FF7X:Y20:2001:DB8::/64, 可分配 64比特的 Group ID,内嵌于其中的 RP地址为 2001:DB8::Y/32。

说明:X表示任意合法的 Scope,Y代表 1~F的任意一个十六进制数。

IPv6 SSM组播地址

IPv6 SSM(Source-Specific Multicast,指定信源组播)组播地址也使用基于单播前缀的 IPv6组播 地址格式,其中的 Plen字段和 Network prefix字段均取 0。IPv6 SSM组播地址范围为 FF3X::/32 (X表示任意合法的 Scope)。

IPv6组播MAC地址

IPv6组播 MAC地址以 0x3333开头,低 32位为 IPv6组播地址的低 32位,最终形成 48比特的组 播 MAC 地址。如图5 所示,IPv6 组播地址 FF1E::F30E:101 所对应的组播 MAC 地址为 33-33-F3-0E-01-01。

图5 IPv6组播地址的 MAC地址映射举例

IPv6组播协议

IPv6支持的组播协议包括 MLD(Multicast Listener Discovery Protocol,组播侦听者发现协议)、 MLD Snooping(Multicast Listener Discovery Snooping,组播侦听者发现协议窥探)、IPv6 PIM(IPv6 Protocol Independent Multicast,IPv6协议无关组播)和 IPv6 MBGP(IPv6 Multicast BGP,IPv6 组播 BGP)等。

组播组管理协议

MLD源自 IGMP(Internet Group Management Protocol,互联网组管理协议),MLD有两个版本:MLDv1源自 IGMPv2,MLDv2源自 IGMPv3。

与 IGMP 采用 IP 协议号为 2的报文类型不同,MLD采用 ICMPv6(IP 协议号为 58)的报文类型, 包括 MLD 查询报文(类型值 130)、 MLDv1 报告报文(类型值 131)、 MLDv1 离开报文(类型值 132)和 MLDv2报告报文(类型值 143)。MLD协议与 IGMP协议除报文格式不同外,协议行为完全相同。

组播路由协议

IPv6 PIM与 PIM除报文中 IP地址结构不同外,其它协议行为基本相同,IPv6 PIM也支持如下四种模式

IPv6 PIM发送链路本地范围的协议报文(包括 PIM Hello、Join-Prune、Assert、Bootstrap、Graft、 Graft-Ack和 State-refresh报文)时,报文的源 IPv6地址使用发送接口的链路本地地址;IPv6 PIM 发送全球范围的协议报文(包括 Register、Register-Stop和 C-RP Advertisement报文)时,报文的源 IPv6地址使用发送接口的全球单播地址。

IPv6组播并不支持 MSDP协议,如果需要接收来自其它 IPv6 PIM域的组播数据,有以下两种实现方式:

二层组播协议

1. MLD Snooping

MLD Snooping与 IGMP Snooping协议基本相同。

2.IPv6 PIM Snooping

IPv6 PIM Snooping与 PIM Snooping协议基本相同。

3. 组播 VLAN

组播 VLAN,对于 IPv4组播和 IPv6组播,处理原理相同。

到此这篇ipv6组播报文(ipv6 组播)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 线上小程序怎么做(线上小程序怎么做推广)2025-03-18 16:27:06
  • 怎么在文件目录下打开命令窗口(怎么在文件目录下打开命令窗口呢)2025-03-18 16:27:06
  • 腾讯视频会员怎么共享给别人登录(腾讯视频会员怎么共享给别人登录电脑)2025-03-18 16:27:06
  • linux中yum安装(linux安装yum命令)2025-03-18 16:27:06
  • m301h刷机变砖怎么恢复(m301h强刷救砖)2025-03-18 16:27:06
  • 莫队(莫队是谁)2025-03-18 16:27:06
  • 广度优先搜索是递归吗(广度优先搜索是回溯吗)2025-03-18 16:27:06
  • 制作网页的代码(制作网页的代码web)2025-03-18 16:27:06
  • 单播地址是主机地址吗(单播地址和广播地址)2025-03-18 16:27:06
  • 25q32是什么芯片(25q40芯片是干嘛用的)2025-03-18 16:27:06
  • 全屏图片