IGMP协议

Posted Zhang Jun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IGMP协议相关的知识,希望对你有一定的参考价值。

一、IGMP的定义

IGMP是Internet Group Management Ptotocol的简称,被称为互联网组管理协议,是TCP/IP协议族中负责IPV4组播成员管理的协议。

二、IGMP的作用

  • 作用1
    IGMP用来在接收者主机和直接相邻的组播路由器之间建立和维护组播组成员的关系。

  • 作用2
    IGMP通过在接收者主机和组播路由器之间交互IGMP报文实现组成员管理功能,IGMP报文封装在IP报文中。

三、IGMP的版本

到目前为止,IGMP 有三个版本:IGMPv1、IGMPv2、IGMPv3

  • IGMPv1 :主机可以加入组播组。没有离开信息(leave messages)。路由器使用基于超时的机制去发现其成员不关注的组。

  • IGMPv2 :该协议包含了离开信息,允许迅速向路由协议报告组成员终止情况,这对高带宽组播组或易变型组播组成员而言是非常重要的。

  • IGMPv3 :与以上两种协议相比,该协议的主要改动为:允许主机指定它要接收通信流量的主机对象。来自网络中其它主机的流量是被隔离的。 IGMPv3 也支持主机阻止那些来自于非要求的主机发送的网络数据包。

    所有版本的IGMP 都支持ASM(Any-Source Multicast,任意信源组播)模型;IGMPv3 可以直接应用于SSM(Source-Specific Multicast,指定信源组播)模型,而IGMPv1 和IGMPv2 则需要在IGMP SSM Mapping 技术的支持下才能应用于SSM 模型。

四、组播模型的分类

根据接收者对组播源处理方式的不同,组播模型分为以下三类:

  • ASM 模型:Any-Source Multicast,任意信源组播

    在ASM 模型中,任意一个发送者都可以作为组播源向某组播组地址发送信息。众多接收者通过加入由该组播组地址标识的组播组以获得发往该组播组的组播信息。在ASM 模型中,接收者无法预先知道组播源的位置,但可以在任意时间加入或离开该组播组。

  • SFM 模型:Source-Filtered Multicast,信源过滤组播

    该模型继承了ASM 模型,从发送者角度来看,两者的组播组成员关系完全相同。SFM 模型在功能上对ASM 模型进行了扩展。在SFM 模型中,上层软件对收到的组播报文的源地址进行检查,允许或禁止来自某些组播源的报文通过。因此,接收者只能收到来自部分组播源的组播数据。从接收者的角度来看,只有部分组播源是有效的,组播源被经过了筛选。

  • SSM 模型:Source-Specific Multicast,指定信源组播

    在现实生活中,用户可能只对某些组播源发送的组播信息感兴趣,而不愿接收其它源发送的信息。该模型为用户提供了一种能够在客户端指定组播源的传输服务。

    SSM 模型与ASM 模型的根本区别在于:SSM 模型中的接收者已经通过其它手段预先知道了组播源的具体位置。SSM 模型使用与ASM/SFM 模型不同的组播地址范围,直接在接收者与其指定的组播源之间建立专用的组播转发路径。

五、组播协议

通常,我们把工作在网络层的IP 组播称为“三层组播”,相应的组播协议称为“三层组播协议”,包括IGMP、PIM、MSDP、MBGP等。

把工作在数据链路层的IP 组播称为“二层组播”,相应的组播协议称为“二层组播协议”,包括IGMP Snooping、组播VLAN 等。

  • 三层组播协议

    三层组播协议包括组播组管理协议和组播路由协议两种类型,它们在网络中的应用位置如下图。

    (1) 组播组管理协议
    在主机和与其直接相连的三层组播设备之间通常采用组播组的管理协议IGMP(Internet Group Management Protocol,互联网组管理协议),该协议规定了主机与三层组播设备之间建立和维护组播组成员关系的机制。

    (2) 组播路由协议
    组播路由协议运行在三层组播设备之间,用于建立和维护组播路由,并正确、高效地转发组播数据包。

    组播路由建立了从一个数据源端到多个接收端的无环(loop-free)数据传输路径,即组播分发树。

  • 二层组播协议

    二层组播协议包括IGMP Snooping和组播VLAN等,它们在网络中的应用位置如下图。

    (1) IGMP Snooping
    IGMP Snooping(Internet Group Management Protocol Snooping,互联网组管理协议窥探)是运行在二层设备上的组播约束机制,通过窥探和分析主机与三层组播设备之间交互的IGMP 报文来管理和控制组播组,从而可以有效抑制组播数据在二层网络中的扩散。

    (2) 组播VLAN
    在二层网络设备上进行跨VLAN组播复制。

    在交换机上部署了组播VLAN功能后,上游路由器不必在每个用户VLAN(VLAN2和VLAN3)内都复制一份组播流,而是数据流在组播VLAN(VLAN4)内复制一份后发送给二层设备。这样就避免了组播流在上游设备的重复复制,不仅节省了网络带宽,又减轻了上游路由器的负担。

六、IGMP应用场景

IGMP最常见的应用是IPTV:

  • 视频源端发送UDP组播数据流,客户端通过加入组播接收数据流播放节目

  • Client 发送IGMP Join Group封包加入组播才能接收到数据

  • Client不想要接收此组播数据时,发送一个IGMP Leave Group封包离开组播

以上是关于IGMP协议的主要内容,如果未能解决你的问题,请参考以下文章

组播之IGMP(2)

PIM-DM协议内核触发机制及协议执行机制记录

数通面试私房菜之组播专题第三期: IGMP各版本间区别

Android MulticastSocket 组播

03-IP网际协议

网络层之IP协议详解