IP组播协议基础2

1 组播地址

为了让组播源和组播组成员进行通信,需要提供网络层组播地址,即IP组播地址。同时为了在本地物理网络上实现组播信息的正确传输,需要提供链路层组播,使用组播MAC地址。组播数据传输时,其目的地不是一个具体的接收者,而是一个成员不确定的组,所以需要一种技术将IP组播地址映射为组播MAC地址。

1.1 组播IP地址

根据 IANA(Internet Assigned Numbers Authority,因特网编号授权委员会)规定,IP地址分为5类,即A类、B类、C类、D类和E类。单播包按照网络规模大小分别使用A、B、C 3类IP地址。组播包的目的地址使用D类IP地址,D类地址不能出现在IP包的源IP地址字段(也就是不能作为组播源地址,换言之,组播源的IP地址仍是单播地址)。E类地址保留在今后使用。

在单播数据传输过程中,一个数据包传输的路径是从源地址路由到目的地址,利用 “逐跳”(hop-by-hop)的原理在IP网络中传输。然而在IP组播环境中,数据包的目的地不是一个,而是一组,形成组地址(可以理解为所有接收者的单播地址与一个组播组地址形成了映射关系)。所有的数据接收者都加入一个组内,并且一旦加入之后,流向该组地址的数据立即向接收者传输,组中的所有成员都能接收到数据包,这个组就是“组播组”。

D 类组播地址范围是 224.0.0.0~239.255.255.255,其中包括了很多地址,但不同地址段有不同用途,具体如下表所示。这个表中各个组播段的使用范围相当重要,在后期的组播网络中配置要根据具体协议配置正确的地址段。
在这里插入图片描述

1.2 组播MAC地址

以太网传输单播IP包的时候,目的MAC地址使用的是接收者的MAC地址。但是在传输组播包时,传输目标不再是一个具体的接收者,而是一个成员不确定的组,所以对应也就需要使用组播MAC地址作为目的地址。组播通信中的组播MAC地址是由对应的组播IP地址映射而来的,不是随便取的。

IANA规定,组播MAC地址的高 24位固定为0x01005e,第25位固定为0,低23位为组播IPv4地址的低23位,映射关系如下图所示(组播IPv4地址中的低23位映射到组播MAC地址的低23位)。
在这里插入图片描述

由于IPv4组播地址的高4位是1110,代表组播标识,而低28位中只有23位被映射到MAC地址,这样IP地址中就会有5位数据丢失,直接的结果就是出现了32(2^5)个IP组播地址映射到同一组播MAC地址上。

例如,组播地址为224.0.1.1,当高位的5 ~ 9位丢失时以下32个地址共同映射到同一个MAC上(暂且不谈它们适用于什么协议)。
在这里插入图片描述
如上图所示,各组播IPv4地址将中间的5~9位丢弃后,剩下的23位相同,将其映射到组播MAC中为
01-00-5e-00-01-01,需要注意的是,上述所讲的有32个地址映射到同一个MAC上,该32是局限于某一个地址段中的,而不是所有组播地址中只有32个地址映射到同一个MAC地址中,所以实际应用中特别要注意这些地址的配置。

另外,由于组播MAC的第25位固定为0(组播IPv4地址中的第9位),这也导致组播IPv4地址中第二段只有128(2^7)个地址映射的MAC地址不重复。比如组播IPv4地址为 224.0.1.1 的地址段中,第二段某些地址将会映射到一个组播MAC地址上,如下图所示:
在这里插入图片描述
由于第9位在映射到MAC时会被丢弃,所以第9位为0或1时后面7位相同的组播IPv4地址对应的组播MAC地址是一样的,虽然他们可能不属于同一个网段,但也需要注意这种情况。

下面附上常见的永久组播地址及其用途:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Sakura0156/article/details/124356630