2018/9/24
- Membership Report(V2):主机发现路由器加入组的信息。
- Version 1 Membership Report:是兼容ICMP v1时发送的。
- Leave Group目的地址为224.0.0.2(组成员离开组是,只有路由器知道,其他组成员是不知道的)
一、IGMP最后一跳路由器
IGMP路由器依旧依靠查询信息来确认组成员的存在,在IGMP v2的路由器只用两种查询信息:
- General Query:和IGMP v1中的query作用一样
- Group-specific Query
只有发送了report的组成员,才可以发送leave group,其他组成员离开组依旧为静默;对于组播源来说,只知道现在存在的组成员即进行流量推送。当发送leave group消息后,组播源并不知道组中是否还存在其他的组成员。如果在收到leave group后直接中断组播流,可能会影响其他组成员接收数据。
解决方法:
在收到leave group消息后,组播源立即发送group-specific query来查询是否还有别的组成员需要接收组播流。
二、组成员机制
- 对于组播源来说,要确定向哪些主机提供组播流量,必须确定了组成员的位置,才能转发组播。
- 当组成员离开时,组播源需要停止向该组成员推流
确定组成员的方式:查询和报告
确定组成员使用的协议:IGMP
IGMP:因特网组成员管理协议 Internet Group Management Protocol
作用:最后一跳路由器必须确认自己的质量网络中是否存在组成员;
IGMP适用范围:主机(组成员)到达最后一跳路由器之间
IGMP一共有三个版本:v1v2v3,思科接口默认适用v2
V1:
最后一跳路由器:
发送查询信息:组成员查询信息(Membership Queries):60s查询一次(cisco)
查询信息目的地址:224.0.0.1
当主机有回复时(只要有一个);便认为改路由器的网络中存在组组成员,则将组播发送到网络中。
每分钟发送一次query.三次query没有收到回复,则认为组成员已经全部离开,停止发送组播流。
对于ICMP主机:
发送report信息:组成员报告消息(Membership Reports)[主机在第一次加入时自动发送]
Reports的目的地址:需要加入的组的地址
所有的组成员(主机)和组播路由器都能收到该组播加组信息,只要有一个组成员,组播源就会发送组播流量,只需要一个组成员发送Report消息,其他组成员就不需要发送。防止大量report消息充值整个最后一跳网络造成拥塞。
组成员报告组加入,离开组是静默的,不会发送报告信息,180s未收到report消息即可认为改组不存在任何成员。
V2:
对于IGMP主机
发送三种数据包来向最后一跳路由器通告自己的状态:
- Membership Report(v2):主机发现路由器加入组的信息
- Version 1 Membership Report:是兼容IGMP v1时发送的
- Leave Group:IGMP v2中,组成员离开组时,需要向路由器发送Leave Group消息来通告自己的离开
只有向路由器发送了report消息的组成员,才需要发送LEAVE GROUP,其他组成员离开时,依旧是静默的
LEAVE GROUP的目的地址为:224.0.0.2(组成员离开组时,只有路由器知道,其他组成员是不知道的)