1.IGMP (V3)
Internet Group Management Protocol
IP D类地址:224.0.0.0 ~ 239.255.255.255 (前4个比特为1110)
IGMP用于主机和路由器之间的通信(它也定义了路由器和主机的行为),从而进行组播组的管理,它使得一台主机可以接收:
1)发往某个组播组的数据包
2)从某些主机发往某个组播组的数据包
3)不是从某些主机发出的,发往某个组播组的数据包
IGMP协议:
1)组播路由器保存所有临近网络中有成员存在的组播组列表。(不是所有成员的列表)
2)IGMP只有两类消息,查询(路由器查询是否有主机处于组播组)和报告(主机报告自己加入,处于,或离开组播组)。(IGMP-V2中还有一个离开组消息)
3)查询消息由路由器发往主机,分为
一般查询(General Query):目的地址为224.0.0.1,数据包中组地址为0,源数量为0
指定组查询(Group-Specific Query):目的地址为指定的组播地址,数据包中组地址为指定的组播地址,源数量为0
指定组和源查询(Group-and-Source-Specific Query):目的地址为指定的组播地址,数据包中组地址为指定的组播地址,源数量不为0
4)一般查询的周期:
IGMP-V1:正常一分钟不超过一次(路由器启动时周期短)
IGMP-V2/3:缺省125秒(路由器启动时为1/4查询周期),一般查询消息中的最大的响应时间默认值为100(10秒),启动查询消息数量为健壮变量(Robustness Variable)
查询消息
5)不同IGMP版本的报告消息类型不一样:V1:0x12; V2: 0x16; V3: 0x22
6)IGMP-V3报告的记录类型
MODE_IS_INCLUDE (包含某些源)
MODE_IS_EXCLUDE (排除某些源)
CHANGE_TO_INCLUDE_MODE (改变为包含某些源)
CHANGE_TO_EXCLUDE_MODE (改变为排除某些源)
ALLOW_NEW_SOURCE (增加某些源为允许接收)
BLOCK_OLD_SOURCE (阻止某些源的接收)
7)报告消息的目的地址:
IGMP-V3:224.0.0.22 (IGMPv3路由器在这个地址上侦听)
IGMP-V1/2: 消息中的组播地址
成员关系报告消息
Group Record 结构
组播地址分配:
224.0.0.0被保证不分配给任何组(包括网关)。
224.0.0.1被分配给本地子网的所有主机(包括网关)。它被用于标记在直接相连的网络中所有多播主机。每个多播主机都必须加入这个组。
(IGMP-V1只对以上两个IP多播地址做了规定。)
224.0.0.2:(IGMP-V2规定)所有本地路由器(IGMP-V2的离开消息发往此地址)
224.0.0.22:IGMP-V3路由器
消息流图
1. 加入组播组
X: 组播地址; N: 源数量
2. 一般查询
3. 离开组播组时进行指定查询