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. 加入组播组
主机 成员关系报告: 目的地址:224.0.0.22 记录类型:CHANGE_TO_INCLUDE/EXCLUDE _MODE(X, N) (???MODE_IS_INCLUDE/EXCLUDE) 路由器
X: 组播地址; N: 源数量 2. 一般查询
主机 查询: 目的地址:224.0.0.1 路由器 成员关系报告: 目的地址:224.0.0.22 记录类型:MODE_IS_INCLUDE/EXCLUDE(X, N)
3. 离开组播组时进行指定查询
主机 成员关系报告: 目的地址:224.0.0.22 记录类型:CHANGE_TO_INCLUDE_MODE(X, 0) 路由器 查询: 目的地址:X 参数:X,N 成员关系报告: 目的地址:224.0.0.22 记录类型:MODE_IS_INCLUDE/EXCLUDE(X, N)
相关推荐: