如何计算IP组播MAC地址对应IP地址
假设有组播地址为: 239.255.128.1 组播mac地址0100:5e00:0000~0100:5e7f:ffff范围。计算得出 239.255.128.1 的组播MAC为:1110 1111,11111111,10000000,00000001 加上0100:5e开头。
0100:5e7f:8001
重点在这,32个IP地址如何映射到一个MAC组播地址
224.255.128.1~239.255.128.116个IP地址
还有16个 要如何得出呢?
请各位大侠给些指点,谢谢。
本帖最后由 stream 于 2010-7-18 11:16 编辑
2层的MAC地址是如何与3层的IP地址进行映射的呢?
通过将MAC地址的前25位强行规定位0100.5e,而后23位对应IP地址的后23位,而组播IP地址的前4位均相同如:
IP地址: 1110yyyy.yxxxxxxx.xxxxxxx.xxxxxxxx
MAC地址: 00000001.00000000.01011110.0xxxxxxx.xxxxxxx.xxxxxxxx
例如:组播IP地址224.215.145.230应该映射到下列哪个组播MAC地址?( )
(A) 01-00-5e-57-91-e6 (B) 01-00-5e-d7-91-e6
(C) 01-00-5e-5b-91-e6 (D) 01-00-5e-55-91-e6
用二进制来换算,将215.145.230换算成1101,0111,1001,0001,1110,0110,取最后23位放到MAC地址中的23位可以计算得出答案是A。
因为对于组播IP地址来说,取后23位映射,显然有32个IP地址(有5个y可以不一样)对应1个MAC地址,所以要避免在同一网络中使用的多个组播IP地址对应一个MAC地址。 从网上摘过来滴,LZ参考下
例子不错~~ 谢谢 这位 stream
你给了我思路,让我茅塞顿开! 关键是看IP位被去掉的那个0位。 239.255.128.1
【这个换算成二进制】为
11101111.11111111.10000000.00000001
【往后取 23位】为
01111111.10000000.00000001
【组播mac】
01005e开头,换算成二进制 00000001.00000000.01011110.
【填充2进制32位】
00000001.00000000.01011110.01111111.10000000.00000001
【转换成16进制】
0100.5E7F.8001---应该就是这个了,如果我没有算错的话。--woniu2--woniu2--woniu6--woniu7--woniu8 --woniu4---
页:
[1]