组播地址
前言
“组播并不像单播,有一个明确的目的主机和IP地址,也不像广播,局域网内的所有主机都是目的主机,广播IP地址也明确(主机标识全部置为1)。组播不同,它并不知道要把信息发给谁,因为谁都可能随时加入组播组,谁都可能随时离开,不可能用某一个主机的IP地址作为组播地址”
组播IP
组播不可能以某一个主机的IP作为自己的目的IP,但是以太网报文在封装时必须要填入目的IP,怎么办?
回想一下,组播IP不能以某个主机的IP作为自己的目的IP,换句话说,组播IP不需要考虑主机标识,哪个类型的IP地址没有主机标识,D类
由于224.0.0.0/24用于本地链路,239.0.0.0/8为私有组播地址,所以实际可用的组播地址为225.0.0.0/8 - 238.0.0.0/8
组播MAC
同样地,组播报文在数据链路层需要填充目的MAC地址,如何填充正确的MAC地址呢?
单播报文在填入目的MAC时,会通过ARP协议根据目的IP询问目的主机的MAC地址,而组播由于目的IP并不是某个主机的IP,所有无法用ARP协议询问目的MAC。既然ARP寻址方式行不通,组播MAC地址有自己的转换方式
组播IP映射为组播MAC
虽然无法ARP寻址,但是可以借鉴通过目的IP寻找目的MAC的方式,把组播IP映射为组播MAC
IEEE对MAC地址定义:MAC地址的第一个八位组的bit0指明了目标地址是广播/组播地址,还是单播地址
所以在对网卡设置MAC地址时,这一位千万不能设置成1
对于以太网而言,组播MAC地址以0x 01 00 5E为前缀,剩下的24位可以被组播使用,通过把组播IP映射到这24位,如何映射?
组播IP的前四位固定1110,剩下的28位才是有用的信息,而这28位由于某些原因,我们需要把前5位扔掉,取后23位,映射到组播MAC地址的后24位
至于为什么只取23位,有一个有趣的历史
以上就是组播IP和组播MAC
更多汽车网络诊断内容,请关注:汽车网络诊断通信