《IP组播(第1卷)》一2.2 MAC地址映射

本节书摘来自异步社区《IP组播(第1卷)》一书中的第2章,第2.2节,作者【美】Josh Loveless(乔希 勒夫莱斯) , Ray Blair(雷 布莱尔) , Arvind Durai(阿温德 杜莱),更多章节内容可以访问云栖社区“异步社区”公众号查看

2.2 MAC地址映射

传统以太网交换机(二层设备)负责处理以太网数据帧,传统路由器(三层设备)负责查看数据包,来决定如何处理这个消息。如第1章中讨论的,当设备发送的是广播数据帧时,目的地址代表所有设备,而单播消息的目的地址代表一个目的MAC地址。

如果发送方发送的是组播消息会发生什么?为了优化网络资源,以太网交换机也需要能够处理组播。这也是关键的地方。发送方设备必须将目的IP组播地址按照以下方式,转换成具体的MAC地址。

  • 最高的25比特是官方为组播预留的MAC地址范围:0100.5E00.0000~0100.5E7F.FFFF(详见RFC 1112)。这些比特是OUI(组织唯一识别符)的一部分。
  • 组播MAC地址中的最低23比特直接使用了目的组播IP地址中的最低23比特。
  • 目的组播IP地址的最高4比特在二进制中是1110(0b1110)。它代表D类地址的范围:224.0.0.0(0b11100000)~239.255.255.255(0b11101111)。
  • 在用来表示组播MAC地址的48比特二进制数值中,最高的25比特是作为OUI的一部分预留的,最低的23比特使用的是组播IP地址的最低23比特,如图2-4所示。

交换机可以使用这种方法算出组播MAC地址,判断一个数据帧是组播帧,然后做出高效的转发决策。终端主机可以侦听拥有某个组播MAC地址的数据帧,这样它就只会处理自己注册过的组播流。不过在这个过程中有个小问题。


《IP组播(第1卷)》一2.2 MAC地址映射

你有没有发现IP地址和MAC地址在数量上的区别?IP地址中有5比特与OUI MAC地址重叠了。这也就导致组播IP地址与组播MAC地址的数量关系是32:1(25 = 32)。

这意味着当主机注册了一个组播流时,它实际上会收到更多不想注册的组播流,而主机将会丢弃这些多余的流量。比如主机注册了组播流224.64.7.7,这个组播IP地址映射为组播MAC地址是:0x0100.5E40.0707,对应着224.64.7.7和224.192.7.7。把这些IP地址转换成1和0的话,图2-5中展示了这种模糊对应的关系。二进制列中的“X”表示重叠的比特,图中描绘了32个组播IP地址是如何对应着1个组播MAC地址的。


《IP组播(第1卷)》一2.2 MAC地址映射
上一篇:PHP 双密码本


下一篇:Angular + asp.net core 入门