当多播涉及到多个网络且多播数据必须由路由器转发时,会比较复杂。
IGMP让一个物理网络上的所有系统都知道主机当前所在的多播组。多播路由器需要这些信息以便知道多播数据报应该向哪些接口转发。IGMP也被当做IP层的一部分
6.32.33.png
IGMP报文
6.32.38.pngIGMP报告和查询
多播路由器使用IGMP报文来记录与该路由器相连网络中组成员的变化情况。
-
当一个进程加入一个组,主机发送一个IGMP报告。如果一个主机上的多个进程加入同一组,只发送一个IGMP报告。
-
进程离开组的时候,即使是最后一个进程离开,主机也不发送IGMP报告。当组中不再有成员后,在随后收到的IGMP查询中就不再发送报告报文。
-
多播路由器定时发送IGMP查询来了解是否还有主机包含有属于多播组的进程。多播路由器必须向每个接口发送一个IGMP查询。
-
主机通过发送IGMP报告来响应一个IGMP查询,对至少还包含一个进程的组均要发回IGMP报告。
使用这些查询和报告报文,多播路由器对每个接口保持一个表,表中记录接口上至少还有一个主机的多播组。当路由器收到要转发的多播数据报时,它只将该数据报转发到还拥有那个组主机的接口上。
生存时间字段
一个初始TTL为0的多播数据报将被限制在统一主机。默认情况下TTL设置为1,多播数据报只在同一个子网里传送。更大的TTL值能被多播路由器转发。
网友评论