IGMP及抓包分析 下载本文

2.3 查询与响应过程

与IGMPv1相同,都存在抑制机制。

增加了最大响应时间来指定延时值来规定所有主机的查询响应延时的上限,此外最大响应时间在IGMP查询器上配置,只应用在成员关系查询信息。

2.4 查询器选择过程

路由器启动,主动发出到所有组播系统组(224.0.0.1)的IGMPv2常规查询信息。 收到常规查询信息的路由器,会把此信息的源IP地址和接收口的IP地址作比较,拥有最低IP地址的路由器被选举为IGMP查询路由器。

非查询路由器启动一个查询计时器,周期检查IGMP查询路由器的状态。

2.5 组成员离开过程

主机向224.0.0.2发送离开组消息(报文中含有要离开的组地址224.1.1.1)。 路由器向这个组(224.1.1.1)发送特定组查询。 1秒钟内没有收到该组的报告,发送第二个特定组查询。 二个查询信息后未收到主机响应,组224.1.1.1超时,离开组。 IGMPv2的Leave如下:

三、IGMPv3

在IGMPv1/v2的基础上,IGMPV3提供了额外的源过滤多播功能。在IGMPv1/v2中,主机只根据组地址来决定加入某个组并从任何一个源接收发给该组地址的组播流。而使用IGMPv3的主机通告该主机所希望加入的 多播组,同时还通告该主机所希望接收的多播源的地址。主机可以通过一个包括列表或一个排除列表来指明希望从哪些源能接收多播流。同时IGMPv3带来的另外一个好处是节省带宽,避免不需要的、非法的组播数据流占用网络带宽,这尤其在多个多播源共用一个多播地址的网络环境中表现明显。

IGMPv3的过程同v2类似。IGMPv3能够向下兼容IGMPv1和IGMPv2。 IGMPv3查询和报告报文增强了功能: (1) 携带源地址的查询报文

IGMPv3 不仅支持IGMPv1 的普遍组查询和IGMPv2 的特定组查询,而且还增加了对特定源组查询的支持:

普遍组查询报文中,既不携带组地址,也不携带源地址; 特定组查询报文中,携带组地址,但不携带源地址;

特定源组查询报文中,既携带组地址,还携带一个或多个源地址。 (2) 包含多组记录的报告报文

IGMPv3 报告报文的目的地址为224.0.0.22,可以携带一个或多个组记录。在每个组记录中,包含有组播组地址和组播源地址列表。组记录可以分为多种类型,如下:

IS_IN:表示组播组与组播源列表之间的过滤模式为INCLUDE,即只接收从指定组播源列表发往该组播组的组播数据。

IS_EX:表示组播组与组播源列表之间的过滤模式为EXCLUDE,即只接收从指定组播源列表之外的组播源发往该组播组的组播数据。

TO_IN:表示组播组与组播源列表之间的过滤模式由EXCLUDE 转变为INCLUDE。 TO_EX:表示组播组与组播源列表之间的过滤模式由INCLUDE 转变为EXCLUDE。 ALLOW:表示在现有状态的基础上,还希望从某些组播源接收组播数据。如果当前的对应关系为INCLUDE,则向现有组播源列表中添加这些组播源;如果当前的对应关系为EXCLUDE,则从现有组播源列表中删除这些组播源。

BLOCK:表示在现有状态的基础上,不再希望从某些组播源接收组播数据。如果当前的对应关系为INCLUDE,则从现有组播源列表中删除这些组播源;如果当前的对应关系为EXCLUDE,则向现有组播源列表中添加这些组播源。

IGMPv3的join包如下: