IGMP原理简介【华为】

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

IGMP原理简介

IGMP 协议是IP 组播在末端网络上使用的主机对路由器的信令机制,分为两个功能部分:主机侧和路由器侧。IGMP 工作机制如下所述:

1. 接收者主机向所在的共享网络报告组成员关系。

2. 处于同一网段的所有使能了IGMP 功能的组播路由器选举出一台作为查询器,查询器周期性地向该共享网段发送组成员查询消息。

3. 接收者主机接收到该查询消息后进行响应以报告组成员关系。

4. 网段中的组播路由器依据接收到的响应来刷新组成员的存在信息。如果超时无响应,组播路由器就认为网段中没有该组播组的成员,从而取消相应的组播数据转发。

5. 所有参与组播传输的接收者主机必须应用IGMP 协议。主机可以在任意时间、任意位置、成员总数不受限制地加入或退出组播组。

6. 支持组播的路由器不需要也不可能保存所有主机的成员关系,它只是通过IGMP协议了解每个接口连接的网段上是否存在某个组播组的接收者,即组成员。而各主机只需要保存自己加入了哪些组播组。

IGMPv1工作机制

IGMPv1 协议主要基于查询和响应机制完成组播组管理。在多路由器共享网段上,由三层路由协议选举出唯一的组播信息转发者(Assert Winner 或DR),并作为IGMPv1 的查询器,负责该网段的组成员关系查询。网络上IGMPv1 消息交互如图9-1 所示。

主机加入组播组的基本过程如下:

1. IGMP 查询器(RouterB)周期性地向共享网段内所有主机以组播方式(目的地址为组播地址)发送普遍组Query 查询消息。该报文的目的地址为224.0.0.1,表示该网段上的所有主机和路由器。

2. 网段内所有主机都接收到该普遍组查询消息。如果主机(如HostB 和HostC)希望加入某组播组G1,则以组播方式发送Report 报告。该报文的目的地址为224.0.0.1,报文中携带组播组G1 的地址信息。

3. 网段中所有主机和路由器都接收到该Report 报告,并获知组播组G1 地址信息,此时网段中其它也希望加入该组播组G1 的主机将不再发送针对相同组播组的Report 报告。同时,网段中预备加入另一组播组G2 的主机发送针对组播组G2 的Report 报告以响应普遍组查询消息。

4. 经过查询和响应过程后,IGMP 路由器了解到本网段内存在组播组G1 对应的组播组成员,则由组播路由协议生成(*,G1)组播转发项并以此作为组播数据的转发依据。之后,组播路由协议将发起上游路由更新以维护组播转发树。

5. 组播源发出的组播数据经过组播路由到达IGMP 路由器,如果IGMP 路由器上存在(*,G1)组播转发项,则转发该组播数据到此共享网段,G1 组播组成员主机接收该数据。

6. IGMPv1 中没有专门定义离开组播组的消息。当主机离开某组播组后,将不再发送以此组播组地址为目的地址的Report 报告。当网段中不再存在该组播组成员后,IGMP 路由器将不能收到任何针对此组播组的Report 报告,则IGMP 路由器删除该组播组对应的转发项。

IGMPv2新增功能

IGMPv2 对IGMPv1 所做的改进主要有以下几个方面:

查询器选举机制

IGMPv1 中,当某共享网段上存在多个组播路由器时,查询器的选择由组播路由协议决定。IGMPv2 中使用独立的查询器选举机制,规定该网段上IP 地址最小的组播路由器为查询器。

离开组机制

在IGMPv1 中,主机悄然离开组播组,不会向任何组播路由器发出任何通知。这时组播路由器只能依靠普遍组查询消息响应超时来获知组播组成员的离开。

在IGMPv2 中,当某主机决定离开组播组G1 时,它会向该网段以组播方式发送IGMP Leave 报文。该报文的目的地址为224.0.0.2,表示该网段上的所有路由器,报文中携带组播组G1 的地址。随后,为了明确网段中是否还包含组播组G1 的其它成员主机,查询器会向网络中发送指定次数的特定组查询消息。

对指定组的查询

在IGMPv1 中,由组播路由器发起的普遍组查询面向该网段下的所有组播组。

在IGMPv2 中,增加了针对特定组的查询。IGMP 查询器在收到主机发送的离开组播组G1 的Leave 报文时,将向该网段中发送针对G1 的查询报文。该报文的目的地址为组播组G1 的地址,只有属于该组播组的主机才会进行响应,从而发送携带组播组G1 地址信息的Report 报告。IGMPv2 和IGMPv1 版本的响应消息(即Report 报告)和查询消息具有相同的报文结构,报文中仅携带组地址信息。

特定组查询报文也称为最后成员查询报文。IGMP 查询器在收到主机发送的IGMPLeave 报文后,发送指定组查询报文的次数由健壮系数来确定。

最大响应时间

IGMPv2 中设置了最大响应时间,以限制查询器等待主机响应组查询报文(即发送report 报文)的最长时间。

IGMPv3改进功能

IGMPv3 在继承IGMPv2 的基础上进一步增强了主机的控制能力,支持指定源/组功能:主机在加入某组播组G 的同时,能够明确的要求接收或不接收某特定组播源S 发出的组播信息。* 当主机要求从某些指定源接收组播报文时,其IGMP Report 报告中的Filter-Mode字段将被设置为Include 模式,并在该报告中指定组播源地址Sources。鉴于描述方便,其IGMP Report 报告可以被标记为Include Sources(S1,S2,……)。

* 如果主机拒绝接收某些指定源的组播报文,则Filter-Mode 字段将被设置为Exclude 模式,并指定组播源地址Sources,表示从除指定源外的所有源地址接收组播报文。其IGMP Report 报告可以被标记为Exclude Sources(S1,S2,……)。

例如,网络中存在S1 和S2 两个组播源,均向组播组G 发送组播报文,User 仅希望接收从组播源S1 发往组播组G 的信息,典型组网如图9-2 所示。

如果主机和路由器之间应用IGMPv1 或IGMPv2,User 加入到某组播组G 后,将接收到来自组播源S1 和S2 的组播信息。如果采用IGMPv3,主机User 可以要求加入指定源S1 对应的组播组G,或退出指定源S2 对应的组播组G,从而仅有来自S1 的组播信息才能传递到User。

携带源地址的查询消息

IGMPv3 支持指定源/组查询。IGMPv3 报文中包含组播源地址字段和多种控制字段(如查询器的健壮系数、查询间隔等)。进行普遍组查询时,不携带组地址,也不携带源地址;进行指定组查询时,携带组地址,不携带源地址;进行指定源/组查询时,携带组地址,还携带1 个或多个源地址信息。

包含多个组记录的响应消息

IGMPv3 的响应消息(即Report 报告)的目的IP 地址为224.0.0.22,该报文携带1个或多个组记录,在每个组记录中,包含组播组地址、数目不等的源地址信息。组记录可以分为多种类型,如:

* 当前状态记录

报告了接口的当前接收状态,分为Include 和Exclude 两种状态类型。Include 表示包含

相关文档
最新文档