IGMPv3协议介绍

IGMPv3协议

IGMPv3的工作原理

IGMPv3的提出,主要是为了配合源特定组播的实现,即组播组成员可以指定接收或指定不接收某些组播源的报文。这样主机就可以有选择性接收来自某个特定组播源的数据包,而不是被动接收该组中所有组播源的数据包。IGMPv3的这一特性,可以实现源特定组播SSM技术。源特定组播(Source Specific Multicast,SSM)是一种区别于传统组播的新的业务模型,SSM保留了传统PIM-SM模式中的主机显式加入组播组的高效性,但是跳过了PIM-SM模式中的共享树和RP规程。SSM直接建立由(S,G)标志的一个组播最短路径树。SSM的一个(S,G)对也被称为一个频道(Channel)。PIM-SSM是对传统PIM协议的扩展,使用SSM,用户能直接从组播源接收组播报文,需要汇聚点(RP)的帮助。

IGMPv3在IGMPvl/v2的基础上提供了额外的源过滤组播功能(Source FilteredMulticast,SFM)。在IGMPvl/v2中,主机只根据组地址来决定加入某个组,并从任何一个源接收发给该组地址的报文。具有源过滤组播功能(SFM)的主机使用IGMPv3来表示主机所希望加入的组播组,同时还表示该主机所希望接收的组播源的地址。主机可以使用一个包括列表(Inclusion List)或一个排除列表 (Exclusion List)来表示对源地址的限制。即组播组成员可以指定接收或指定不接收某些组播源的报文。这样主机就可以有选择性接收来自某个特定组播源的数据包,而不是被动接收该组中所有组播源的数据包。


IGMPv3
的报文格式

IGMPv3的报文类型有以下几种:

0xll:成员关系查询报文 (MembershipQeury)。

0x22:版本3成员关系报告报文(version 3 Membership Report)

0x12:版本1成员关系报告报文(version 1 Membership Report)

0x16:版本2成员关系报告报文 (version 2 Membership Report)

0x17:版本2离开报文 (version 2 LeaveGroup)。

报文类型的值填写在报文中的类型字段。在IGMPv3中,查询报文和报告报文格式有较大差异,需要分别描述。下图为查询报文的格式

 

IGMPv3查询信息格式

(1)类型字段,设置为0xll,代表该报文为查询报文。

(2)最大响应时间字段,指明了主机发出响应的最长时间。

(3)组地址字段,功能与IGMPv2一样,可以用于通用查询和组特定查询。

(4)s字段,置为1时,其他路由器不对该报文进行处理。

(5)QRV字段,查询路由器的健壮值(Querier’s RobustnessVariable),该值影响计时器和重试次数的取值。

(6)QQIC字段,查询路由器的查询间隔码(Querier’s QueryIntervalCode),该值影响查询路由器的查询间隔时间,非查询路由器按照此值更新自己的缺省值。

(7)源地址数目字段,该值表在这个报文中包含了多少个源地址。当进行通用查询(GeneraQuery)或者组特定查询 (GroupSpecific Query)时,该值置为0;当进行特定组和源查询 (Group Source pecific Query,用于PIM一SSM)时,该值为源特定地址的数目。虽然该值最大可为65536,但是实际上受限于数据链路层的MTU,例如在以太网上,1P数据报最长为1500字节,除去IP报头的24字节和IGMP报头的12字节,剩余1464字节,所以最多包含366(1464/4)个源地址。

(8)源地址地段。

IGMPv3查询信息报文在网络中传输完整的报文格式如下图



在网络中传输的IGMPv3查询报文格式

IGMPv3报告报文的格式较为复杂,如下图所示



IGMPv3侦听者报告格式

(1)类型字段,置为0x22,表示该报文为IGMPv3报告报文。

(2)组记录数目字段,表示此报文中包含的组记录数目。

(3)组记录字段。包含若干个组记录,每个组记录长度不固定,其内容如下图



 IGMPv3组记录格式

①组记录类型字段,表示该组记录中包含的数据的类型,目前定义了六种类型,分别是:

  • MODE IS INCLUDE。表示该主机的过滤模式为INCLUDE.也就是说,后面列出的地址都是主机想要接收的组播源地址。
  • MODE IS EXCLUDE。表示该主机的过滤模式为EXCLUDE,也就是说,后面列出的地址都是主机想要拒绝的组播源地址。
  • CHANGE TO INCLUDE MODE。表示该主机的过滤模式从EXCLUDE切换为INCLUDE模式。
  • CHANGE TO EXCLUDE MODE。表示该主机的过滤模式从INCLUDE切换为EXCLUDE模式。
  • ALLOW NEW SOURCES。表示该主机中新增的想要接收的源地址。
  • BLOCK OLD SOURCES。表示从该主机中删除的不想接收的源地址。

②辅助数据长度字段,在组记录的最后,可以增加以4字节为单位的辅助数据,如果没有辅助数据,则置为0。

③源地址数目字段,表示该记录中包含了多少个组播源地址。

④组地址字段,与源地址共同表示特定源组播。

⑤源地址字段,每个长度为32bits。标志源地址,数目由源地址数目字段表示。

⑥辅助数据字段。为将来的应用预留,在IGMPv3中并不需要。一台主机在发送报告报文的时候,应当把自己的源IP地址包含在IP数据报中,当主机还没有获得IP地址的时候,可以使用0.0.0.0作为源IP地址,支持IGMPv3的路由器必须接收来自0.0.0.0的数据报。主机的IGMP报文的目的地址标志为224.0.0.22,代表子网中所有支持IGMPv3的路由器。


IGMPv3
的主要改进

IGMPv3除了支持原特定组播外,其工作原理与IGMPv2相比,并没有本质的改变,只是在某些地方做了改进和优化。以下列出了IGMPv3的主要特点和改进:

①   支持源特定组播SSM;

②     向后兼容IGMPvl和IGMPv2;

③    主机可以定义要接收的组播源地址;

④     非查询路由器可以与查询路由器保持参数值同步;

⑤   最大响应时问从25.5s增加到53min,适合于较大的网络;

⑥     辅助数据字段为将来的应用预留了空间;

⑦关系成员报告报文发送给目的地址224.0.0.22,可以帮助二层交换机更有效地实现IGMP监听 (IGMPSnooping)功能;

⑧报告报文中可以包含多个组记录,可以有效地减少网络通信量;

⑨在IGMPv3中,取消了前面版本中的响应抑制功能,主要原因是:

第一,使用响应抑制时,路由器只知道子网上是否有组成员,而不知道有几个组成员,以及成员是哪些主机:取消响应抑制,路由器就可以记录每一个组成员的信息,可以开发一记账等增值服务功能。

第二,许多网桥或者二层/三层交换机在实现IGMP监听功能时,为了避免响应抑制,一般不转发网段问的IGMP报文。取消了响应抑制后,可以简化这些设备的设计。

第三,取消响应抑制后,主机不必处理来自其他主机的报文,简化了主机的实现。在查询报文中,增加S标志位,可以提高系统的健壮性。

IGMPv3报告报文在网络中传输完整的报文格式如下图


在网络中传输的IGMPv3报告报文

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★博文作者未开放评论功能