组播MAC地址

IP组播根据报文的IP地址转发报文,IP位于ISO/OSI七层网络模型中的第三层,IP组播也被称为“三层组播”。三层组播报文的目的MAC称为组播MAC地址,和普通的多播地址有些差异。

IPv4组播的MAC地址

IPv4组播使用224.0.0.0/4地址段作为目的IP地址,这个地址段的范围从224.0.0.0239.255.255.255

IPv4组播的IP地址和MAC地址之间,存在特定的对应关系。组播MAC地址以01-00-5E打头儿,随后的1个比特是0,最后的23位和组播IP地址的低23位一样。不难看出,这样的对应方式有一个问题,即组播IP地址和组播MAC地址不是一一对应的。组播IP地址的第24位到28位没有体现在组播MAC地址中,这样32个组播IP地址才对应一个组播MAC地址。为什么会出现这样的情况呢?

20世纪90年代初Steve DeeringIP组播研究工作取得了一些成果他希望IEEE分配16个连续的OUI(组织惟一标识符)作为IP组播对应的MAC地址使用一个OUI 2416个连续的OUI 将提供28MAC地址空间这样三层组播IP地址和组播MAC地址就能一一对应了。遗憾的是,当时一个OUI的价格是1000美金,Steve 的经理Jon Postel不愿意花16000美金购买16OUIJon愿意花1000 美金购买一个OUI这个OUI就是01-00-5E。这个OUI中的一半地址提供Steve Deering用于IP组播研究这样,组播MAC的地址空间就只有23了。

对于01-00-5E这个OUI,笔者一直有些疑问。通常来讲,硬件厂商申请的OUI都是单播地址,为什么组播MAC地址的OUI是多播的呢?直到最近,笔者才找到了可能的答案——Standards Group MAC Address。但是,在IEEE网站上,这种MAC地址并没有明确申请费用,莫非01-00-5E不是这种情况?详情参考下面的链接:

http://standards.ieee.org/develop/regauth/grpmac/index.html

IPv6组播的MAC地址

随着IPv6时代的到来,组播也要支持IPv6地址。IPv6组播地址的最高8比特是0xFF,随后的8比特是FlagsScope域,各占4比特;最后的112位是group IDIPv6组播对应的组播MAC地址以“3333-”打头儿,这样IPv6版本的组播MAC地址空间有32位。


参考资料:

IP组播网络设计开发》,Beau Williamson,电子工业出版社,20006

IPv6精髓》 第2版,Silvia Hagen,人民邮电出版社,20137


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章