链接:https://www.zhihu.com/question/36730567/answer/83083851
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
组播IP转换为组播MAC地址是一种32:1的映射关系。
组播IP地址:
IANA将D类地址空间分配给IP组播地址。该空间的地址用二进制表示并且第一个八位组的前4位用1110表示,
因此IP组播地址的范围从224.0.0.0到239.255.255.255 。
组播MAC地址:IEEE MAC地址规定了第一个八位组的Octet 0的bit 0指明了目标地址是广播/组播地址,还是单播地址。
如果此位被置位,那么MAC的帧即可以被定为任意的主机组(组播),也可以被定义为网络的所有主机(广播)。第2层IP组播利用此功能传送IP组播信息包到局域网段的主机组(即组播IP到组播MAC的映射)。
以太网组播MAC地址映射:
就以太网而言,IP组播帧都使用以0x0100.5Exx.xxxx的24位前缀开始MAC层地址。剩下24位地址由于某些原因只有这些MAC地址的一半(即后23位)可以被IP组播使用。因剩下的MAC地址空间的23位作为第3层IP组播地址进入第2层MAC地址的映射使用。因为所以的第3层IP组播地址必须把32位的前4位设成0x1110,剩下28位作为有意义的IP组播地址信息。这28位必须映射成可用的只有23位的MAC地址。
因为第3层IP组播地址信息的全部28位不能映射进入只有23位可用的MAC地址空间,所以在映射过程中丢失了5位地址信息。将导致第3层IP地址映射成第2层IEEE MAC地址时2^5或32个IP组播地址映射成同一个组播MAC地址。这意味着每一个IEEE IP组播MAC地址能表示32个IP组播地址。
-------------------------------------------------------------------
以上内容摘抄自《IP组播网络设计开发(第1卷)》Beau Williamson著