公众号【嵌入式er笔记】持续记录和分享C/C++、Linux、ARM、Android、IoT等技术相关知识,以及职场、生活经验和感悟。
分类:
2013-01-24 16:41:58
原文地址:组播ip与组播mac的映射 作者:we1011
D类地址是从224.0.0.0到239.255.255.255之间的IP地址
其中224.0.0.0到224.0.0.255是被保留的地址
224.0.0.1表示子网中所有的组播组
224.0.0.2表示子网中的所有路由器
224.0.0.5表示OSPF(Open Shortest Path First)路由器
224.0.0.6表示OSPF指定路由器
224.0.0.12表示DHCP(Dynamic Host Configuration Protocol)服务器.
D类地址是动态分配和恢复的瞬态地址.每一个组播组对应于动态分配的一个D类地址;当组播组结束组播时,相对应的D类地址将被回收,用于以后的组播.在D类地址的分配中,IETF建议遵循以下的原则:
全球范围:224.0.1.0~238.255.255.255;
有限范围:239.0.0.0~239.255.255.255;
本地站点范围:239.253.0.0~239.253.0.16;
本地机构范围:239.192.0.0~239.192.0.14.
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
例1:组播IP地址224.215.145.230应该映射到下列哪个组播MAC地址?(A)
(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。
显然有32个IP地址(有5个y可以不一样)对应一个MAC地址,所以要避免在同一网络中使用的多个组播IP地址对应一个MAC地址。
例2:以下组播地址中,其对应组播MAC地址是0x01.00.5e.02.02.01的有(ABC)
A.224.2.2.1 B.239.2.2.1
C.225.130.2.1 D.225.82.2.1
E、 229.32.2.1 F、224.128.2.1
MAC:0x01.00.5e.02.02.01
MAC对应的二进制地址 0000 0001 0000 0000 0101 1110 0|000 0010 0000 0010 0000 0001
A:224.2.2.1
IP对应的二进制地址----------------------> 11100000 0|000 0010 0000 0010 0000 0001
B:239.2.2.1
IP对应的二进制地址----------------------> 11101111 0|000 0010 0000 0010 0000 0001
C:225.130.2.1
IP对应的二进制地址----------------------> 11100001 1|000 0010 0000 0010 0000 0001
D:225.82.2.1
IP对应的二进制地址----------------------> 11100001 0|101 0010 0000 0010 0000 0001
E:229.32.2.1
IP对应的二进制地址----------------------> 11100101 0|010 0000 0000 0010 0000 0001
F:224.128.2.1
IP对应的二进制地址----------------------> 11100000 1|000 0000 0000 0010 0000 0001