程序员社区

组播地址

组播地址

前言

“组播并不像单播,有一个明确的目的主机和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


更多汽车网络诊断内容,请关注:汽车网络诊断通信

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 组播地址

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区