相信自己,快乐每一天
分类: 嵌入式
2013-11-04 17:04:50
原文地址:IP多播地址和mac多播地址的映射计算 作者:shaohui973
为了支持IP 多播,以太网的大佬们已经为 Ethernet和Fiber Distributed Data Interface (FDDI)的MAC地址保留了一个多播地址区间:01-00-5E-00-00-00 到 01-00-5E-7F-FF-FF。正如下图所示48位的MAC地址中的高25位是固定的,低23位是可变的。
下图所示的为网络字节序,即bit0为MSB,bit7为LSB,byte0为高位数据,byte3为低位数据。
多播地址的bit40 == 1
为了映射一个IP 多播地址到MAC层的多播地址,IP多播地址的底23位可以直接映射为MAC层多播地址的底23位。因为IP多播地址的前4位是固定的,另外还有比邻的5 位不需要映射到MAC层多播地址,因此,一个主机接收到一些不属于自己所属组的MAC层多播包是可能的。然而,这些包会被IP层通过判断IP目标地址而丢 弃掉。
例如:多播地址224.192.16.1可以映射为01-00-5E-40-10-01。用低23位,多播地址224.192.16.1的第一个8 位是不会用到的,第二个8位中的后7位会被用到,第三个和第四个8位可以直接转换为十六进制字符。第二个8位,即192的二进制表示是11000000, 如果丢到最高位,就变成了1000000或64(十进制),或0X40(十六进制)。第三个8位是16,即0X10(十六进制)。第四个8位是1,即 0X01(十六进制)。因此,MAC地址就由 224.192.16.1变成了01-00-5E-40-10-01。
IP多播地址的范围是:224.0.0.0--239.255.255.255,其中:
1)224.0.0.0--224.0.0.255 本地保留,ttl=1,其中224.0.0.1是本网所有主机接收
2)224.0.0.2是本网所有路由器接收
3)239.0.0.0--239.255.255.255 私有组播地址
4)232.0.0.0--232.255.255.255 特定源多播
5)224.0.1.0--238.255.255.255 全球