TCP/IP协议簇学习笔记(7)广播和多播

首先看上层收到数据要经过多少层过滤,如下图
TCP/IP协议簇学习笔记(7)广播和多播

接口卡

就是网卡,他过滤的主要原则是链路层的地址和网卡mac地址匹配并且帧检验正确就交付,否则丢弃
mac地址有3类
广播地址:FF:FF:FF:FF:FF:FF
单播地址:网卡出厂时被分配唯一一个单播地址,头24位是厂商编号,后24位由厂商自己划分
组播地址:头8位的最低位是1就是MAC组播地址,例如01:00:00:00:00:00就是一个mac组播地址,所以mac组播地址范围很大–除去全1的47位地址空间,并且这个地址可以由程序设置。

设备驱动程序或者IP层

根据IP地址进行过滤,IP地址也有广播、多播、组播概念
IANA规定把D类地址,范围从224.0.0.0到239.255.255.255划分为多播地址,255.255.255.255规定为ip的广播地址

传输层

根据端口号过滤,如果端口号在本主机不存在就丢弃数据,并产生一个ICMP报文

组播最后是怎么封装成帧的呢?

多播组地址到以太网地址的转换
IEEE 把一块以太网多播组地址分给 IANA 以支持IP多播。块的地址都以 01:00:5e 开头,第 25 位为 0,地址范围从01:00:5e:00:00:00到01:00:5e:ff:ff:ff,低 23 位为 IPv4 多播地址( D类地址 )的低 23 位。IPv4 多播地址与 MAC 地址的映射关系如图所示:
TCP/IP协议簇学习笔记(7)广播和多播
从映射关系看,最高 5bit 在映射过程中被忽略,因此每个以太网多播地址对应的多播组是不唯一的。32 个不同的多播组号被映射为一个以太网地址。例如,多播地址 224.128.64.32(十六进制 e0.80.40.20)和 224.0.64.32(十六进制 e0.00.40.20)都映射为同一以太网地址 01:00:5e:00:40:20。所以才要设备驱动程序或 IP 层就对数据报进一步过滤