多播
首先需要了解主机对信道传送的过来帧的过滤过程。下图说明了这一过程:
1.网卡查看信道传过来的帧,确认是否接收该帧。通常网卡只接收目的地址为网卡物理地址或广播地址的帧(ff:ff:ff:ff:ff:ff)。但是大多数网卡经过配置能够接收多播地址或子网多播地址的帧(地址最高字节的最低位设置为1,01:00:00:00:00:00)。如果网卡确认接收该帧,这个帧将被传送给设备驱动程序。
2.设备驱动程序将进行另外的帧过滤。首先通过帧类型确认是哪一种协议(IP、ARP等),然后再检测该主机是否属于该多播组。如果检测通过,就将数据包传送给下一层(IP、ARP等)。比如,当帧类型指定为IP数据报时,就传往IP层。
3.IP层根据IP地址中的源IP和目的IP再进行更多的过滤。如果正常再传送给传输层(TCP/UDP)。
4.UDP或TCP收到数据报之后再进行端口号过滤。如果该进程存在就将数据报传给应用层,如果不存在就立即产生一个ICMP不可达报文并回复。
在理解这一过程的同时,肯定会产生一个疑问,到底设备驱动程序是怎么根据MAC地址来检测该主机是否属于该多播组的。
首先要搞清楚 的多播组地址的格式,如图:
从上图可以得出,多播地址范围从22