组播地址MAC的计算

  • Post author:
  • Post category:其他



组播地址MAC以01-00-5e打头,占25bit。由于MAC地址是25bit,而IP地址有32bit,所以在求一个组播IP的MAC时只需要将MAC的低23位与IP地址的低23bit取或即可(IP地址一共32bit,所以在这种情况下,前9个bit丢弃不用),前面再加上01-00-5e得出的即是该组播IP地址对应的MAC。






如下表格中表示:






0000




0001




0000




0000




0101




1110




0000




0000




0000




0000




0000




0000








如上图所示,前25bit对就组播MAC的01-00-5e。






举例说明






例如 1、求224.128.129.130的组播MAC过程如下:






1、224.128.129.130对应的二进制形式如下:






1110




0000




1000




0000




1000




0001




1000




0010








2、01-00-5e-00-00-00的后23位与组播IP的后23位取或,IP地址的前九位丢弃不算:






即是红色部分取或






0000




0001




0000




0000




0101




1110




0000




0000




0000




0000




0000




0000








1110




0000




1000




0000




1000




0001




1000




0010






取或后的结果如下所示:








0000




0001




0000




0000




0101




1110




0000




0000




1000




0001




1000




0010








故得出该IP下的组播MAC为01-00-5e-00-81-82








例如 2、组播MAC地址0x0100.5E01.0101是哪些组播IP地址映射的。








A  224.1.1.1




B  224.129.1.1




C  234.128.1.1




D  239.1.1.1




结果:ABD










计算方法:






组播MAC地址0x0100.5E01.0101化作二进制格式如下:






0000




0001




0000




0000




0101




1110




0000




0001




0000




0001




0000




0001












原组播地址是:












0000




0001




0000




0000




0101




1110




0000




0000




0000




0000




0000




0000








二者右面23位取或后如下:






xxxx




xxxx




x000




0001




0000




0001




0000




0001






可以得出该组播IP的是最后23bit的值情况,鉴于X取值的不确定性,只能确定第一个字节值肯定在224-239之间,第二个字节中的X可以为1或者0。






综上所述,合适的IP为A.1.1.1或者A.129.1.1,其中A在224-239间,所以答案出来了。