(13)IGMP:Internet组管理协议
一、简介
IGMP协议用于支持主机和路由器进行多播。它让一个物理网络上所有的系统知道主机当前所在的多播组。多播路由器需要知道这些信息以便知道多播数据报应该向哪些接口转发。
IGMP是IP层的一部分。通过IP数据报进行传输,其有固定报文长度,无可选数据。IGMP报文通过IP首部中协议字段值为2来指明。
二、IGMP报文
8字节的IGMP报文格式如下:
IGMP类型为1说明由多播路由器发出的查询报文,为2说明由主机发出的报告报文。校验和的计算和ICMP协议相同。查询报文中组地址为0,报告报文中组地址为要参加的组地址。
三、IGMP协议
1、加入一个多播组
多播的基础就是一个进程的概念,该进程在一个主机的给定接口上加入了一个多播组。加入离开多播组是动态的。一个主机通过组地址和接口来识别一个多播组。
2、IGMP报告和查询
加入多播组发送一个IGMP报告,多播路由器定时发送IGMP查询来了解是否还有任何主机包含属于多播组的进程。
3、生存时间字段
默认情况下,待传多播数据报的TTL被设置为1,这将使多播数据报仅局限在同一子网内传送。更大的TTL值能被多播路由器转发。
224.0.0.0到224.0.0.255特殊地址空间是打算用于多播范围不超过1跳的应用。多播路由器均不转发目的地址为这些地址中的任何一个地址的数据报,即使其TTL大于1。
4、所有主机组
路由器的IGMP查询被发送到目的IP地址224.0.0.1,该地址被称为所有主机组地址。其设计一个物理网络中所有具备多播能力的主机和路由器。这个组的成员无须发送IGMP报告。