网络--广播与组播
地址范围 | 含义 |
224.0.0.0~224.0.0.255 | 永久组地址。除224.0.0.0保留不做分配外,其它地址供路由协议、拓扑查找和协议维护等使用,常用的永久组地址及其含义如表3所示。对于以该范围内组播地址为目的地址的数据包来说,不论其TTL(Time to Live,生存时间)值为多少,都不会被转发出本地网段 |
224.0.1.0~238.255.255.255 | 用户组地址,全网范围内有效。包含两种特定的组地址: l 232.0.0.0/8:SSM组地址 l 233.0.0.0/8:GLOP组地址 |
239.0.0.0~239.255.255.255 | 本地管理组地址,仅在本地管理域内有效。使用本地管理组地址可以灵活定义组播域的范围,以实现不同组播域之间的地址隔离,从而有助于在不同组播域内重复使用相同组播地址而不会引起冲突。详情请参见RFC 2365 |
永久组地址 | 含义 |
224.0.0.1 | 所有系统,包括主机与路由器 |
224.0.0.2 | 所有组播路由器 |
224.0.0.3 | 未分配 |
224.0.0.4 | DVMRP(Distance Vector Multicast Routing Protocol,距离矢量组播路由协议)路由器 |
224.0.0.5 | OSPF(Open Shortest Path First,开放最短路径优先)路由器 |
224.0.0.6 | OSPF指定路由器/备用指定路由器 |
224.0.0.7 | ST(Shared Tree,共享树)路由器 |
224.0.0.8 | ST主机 |
224.0.0.9 | RIP-2(Routing Information Protocol version 2,路由信息协议版本2)路由器 |
224.0.0.11 | 移动代理 |
224.0.0.12 | DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)服务器/中继代理 |
224.0.0.13 | 所有PIM(Protocol Independent Multicast,协议无关组播)路由器 |
224.0.0.14 | RSVP(Resource Reservation Protocol,资源预留协议)封装 |
224.0.0.15 | 所有CBT(Core-Based Tree,有核树)路由器 |
224.0.0.16 | 指定SBM(Subnetwork Bandwidth Management,子网带宽管理) |
224.0.0.17 | 所有SBM |
224.0.0.18 | VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议) |
位 | 取值及含义 |
0位 | 保留位,必须取0 |
R位 | l 取0表示非内嵌RP的IPv6组播地址 l 取1则表示内嵌RP的IPv6组播地址(此时P、T位也必须置1) |
P位 | l 取0表示非基于单播前缀的IPv6组播地址 l 取1则表示基于单播前缀的IPv6组播地址(此时T位也必须置1) |
T位 | l 取0表示由IANA永久分配的IPv6组播地址 l 取1则表示非永久分配的IPv6组播地址 |
Scope:4比特,标识该IPv6组播组的应用范围,其可能的取值及其含义如下。
Scope字段的取值及其含义
取值 | 含义 |
0、3、F | 保留(reserved) |
1 | 接口本地范围(interface-local scope) |
2 | 链路本地范围(link-local scope) |
4 | 管理本地范围(admin-local scope) |
5 | 站点本地范围(site-local scope) |
6、7、9~D | 未分配(unassigned) |
8 | 机构本地范围(organization-local scope) |
E | 全球范围(global scope) |
2. 以太网组播MAC地址
以太网传输单播IP报文的时候,目的MAC地址使用的是接收者的MAC地址。但是在传输组播数据包时,其目的地不再是一个具体的接收者,而是一个成员不确定的组,所以要使用组播MAC地址。
(1) IPv4组播MAC地址
IANA规定,IPv4组播MAC地址的高24位为0x01005E,第25位为0,低23位为IPv4组播地址的低23位。IPv4组播地址与MAC地址的映射关系如
组播协议
说明:
l 通常,我们把工作在网络层的IP组播称为“三层组播”,相应的组播协议称为“三层组播协议”,包括IGMP/MLD、PIM/IPv6 PIM、MSDP、MBGP/IPv6 MBGP等;把工作在数据链路层的IP组播称为“二层组播”,相应的组播协议称为“二层组播协议”,包括IGMP Snooping/MLD Snooping、组播VLAN/IPv6组播VLAN等。
l IGMP Snooping、组播VLAN、IGMP、PIM、MSDP和MBGP应用于IPv4;MLD Snooping、IPv6组播VLAN、MLD、IPv6 PIM和IPv6 MBGP应用于IPv6。
1. 三层组播协议
三层组播协议包括组播组管理协议和组播路由协议两种类型,它们在网络中的应用位置如
(1) 组播组管理协议
在主机和与其直接相连的三层组播设备之间通常采用组播组的管理协议IGMP(Internet Group Management Protocol,互联网组管理协议)或MLD(Multicast Listener Discovery Protocol,组播侦听者发现协议),该协议规定了主机与三层组播设备之间建立和维护组播组成员关系的机制。
(2) 组播路由协议
组播路由协议运行在三层组播设备之间,用于建立和维护组播路由,并正确、高效地转发组播数据包。组播路由建立了从一个数据源端到多个接收端的无环(loop-free)数据传输路径,即组播分发树。
对于ASM模型,可以将组播路由分为域内和域间两大类:
1. 域内组播路由用来在AS内部发现组播源并构建组播分发树,从而将组播信息传递到接收者。在众多域内组播路由协议中,PIM(Protocol Independent Multicast,协议无关组播)是目前较为典型的一个。按照转发机制的不同,PIM可以分为DM(Dense Mode,密集模式)和SM(Sparse Mode,稀疏模式)两种模式。
2. 域间组播路由用来实现组播信息在AS之间的传递,目前比较成型的解决方案有:MSDP(Multicast Source Discovery Protocol,组播源发现协议)能够跨越AS传播组播源的信息;而MP-BGP(MultiProtocol Border Gateway Protocol,多协议边界网关协议)的组播扩展MBGP(Multicast BGP)则能够跨越AS传播组播路由。
对于SSM模型,没有域内和域间的划分。由于接收者预先知道组播源的具体位置,因此只需要借助PIM-SM构建的通道即可实现组播信息的传输。
2. 二层组播协议
二层组播协议包括IGMP Snooping/MLD Snooping和组播VLAN/IPv6组播VLAN等,它们在网络中的应用位置如
组播报文的转发机制
在组播模型中,IP报文的目的地址字段为组播组地址,组播源向以此目的地址所标识的主机群组传送信息。因此,转发路径上的组播路由器为了将组播报文传送到各个方位的接收站点,往往需要将从一个入接口收到的组播报文转发到多个出接口。与单播模型相比,组播模型的复杂性就在于此:
1. 为了保证组播报文在网络中的传输,必须依靠单播路由表或者单独提供给组播使用的路由表(如MBGP路由表)来指导转发;
2. 为了处理同一设备在不同接口上收到来自不同对端的相同组播信息,需要对组播报文的入接口进行RPF(Reverse Path Forwarding,逆向路径转发)检查,以决定转发还是丢弃该报文。RPF检查机制是大部分组播路由协议进行组播转发的基础。