Chinaunix首页 | 论坛 | 博客
  • 博客访问: 620367
  • 博文数量: 168
  • 博客积分: 1053
  • 博客等级: 少尉
  • 技术积分: 1187
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-30 17:20
个人简介

公众号【嵌入式er笔记】持续记录和分享C/C++、Linux、ARM、Android、IoT等技术相关知识,以及职场、生活经验和感悟。

文章分类

全部博文(168)

分类:

2013-01-24 16:41:58

原文地址:组播ip与组播mac的映射 作者:we1011

IP组播和单播的目的地址不同,IP组播的目的地址是组地址——D类地址.

       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

阅读(1442) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~