当前位置:文档之家› IGMPv3协议原理及实现

IGMPv3协议原理及实现


TO_EX(G,S)
改变组播组过滤模式为EXCLUDE,源地址列表中包含了新的不希望加 入的源地址S。TO_EX(G,{})表示对加入G的所有源,相当于IGMPv2的 加入报文。
IGMP v3 加入报文
IGMPv3查询报文
(2)IGMPv3查询报文
报文类型 通用组查询 特定组查询 含义 通过发送该报文来学习接口对“全部”组播的接收状 态。与IGMPv2相似。 通过发送该报文来学习接口对“指定组地址”组播的 接收状态。与IGMPv2相似。
IGMPv1协议共包含2种类型的报文: (1)Report 报文 (2)报文
IGMPv2协议介绍
相对于IGMPv1协议,IGMPv2增加离开组机制和查询器选举机制等。
离开组机制: (1)一主机离开组,向组播路由器发送离开组报文(224.0.0.2),有的厂商 地址为离开的组播组地址; (2)查询器收到该报文后,向主机声明要离开组播组发送特定组查询报文; (3)如果该网段内还有该组播组其它成员,则这些成员在收到特定组查询报 文后,则在该报文中所设定最大响应时间内发送成员关系报告报文;
IGMPv3协议原理
例如: 系统中不存在组播组,线卡和主控组播工作模式均为snooping模式; 用户1发送组记录类型为IS_INCLUDE(2,3),组地址为224.1.1.1的 Report报文, 请求加入到指定组,点播该节目; 用户1能够收到组地址为224.1.1.1,源为2,3的组播数据流; 用户2发送组记录类型为IS_EXCLUDE(1,2),组地址为224.1.1.2 的 Report报文, 请求加入到指定组,点播该节目; 用户2能够收到组地址为224.1.1.2,源为3,4的组播数据流;
组播组:使用一个IP 组播地址标识。任何用户主机(或 其他接收设备)加入一个组播组,就成为了该组成员,可 以识别并接收以该IP组播地址为目的地址的IP 报文。
组播源:以组播组地址为目的地址,发送IP 报文的信源 称为组播源。一个组播源可以同时向多个组播组发送数据。 组播组成员:组播组中的成员是动态的,网络中的用户主 机可以在任何时刻加入和离开组播组。 组播复制:是指网络设备支持把入口一份组播报文复制多 份到多个出口的能力。
含义
报告当前状态,说明当前组的模式是INCLUDE模式,收到查询报文时 触发,源地址列表中包含了该组的源地址S。
TO_IN(G,S)
ALLOW(G,S) BLOCK(G,S) IS_EX(G,S)
改变组播组过滤模式为INCLUDE,源地址列表中包含了新的源地址S 。TO_IN(G,{})表示离开G的所有源,相当于IGMPv2的离开报文。
(2)主控组播组表增加过滤模式Filter-Mode, 和源地址列表 (基于所有线卡下用户发送的Report报文信息生成)。 (3)下发三元组(组播组地址,组播源地址和端口)到交 换驱动,基于组播源和组播组地址进行转发;
IGMPv3协议在FP8680上实现
IGMPv3协议的主要功能是基于源地址进行过滤。
使主机加入某组播组G 同时,能明确要求接收或拒绝来自某特定组播源S 组播信息。
(3)查询报文中最大查询响应时间支持范围从IGMPv2的25.5秒扩大 到3174.4秒。
IGMPv3协议报告报文格式
IGMPv3协议共包含2种类型的报文:报告和查询报文
IGMPv3协议
(1)报告报文的类型
组记录类型
IS_IN(G,S)
IGMPv3协议原理
过滤模式:IGMP v3增加了对“源过滤”的支持,即系统有能力报告 对发往某个特定多播地址的数据报,只希望接收某些特定源的,以支 持特定源多播,或者只希望接收除了某些特定源的。其中过滤模式有 INCLUDE和EXCLUDE两种。
INCLUDE模式: 只有来自source-list参数中列出的那些IP源地址的并发往指定多播地址 的数据报才会被接收。 EXCLUDE模式: 只有来自除source-list参数中列出的那些IP源地址之外的。
改变源地址列表,源地址改变时触发,记录中包含的源地址是系统 希望加入的源S。 改变源地址列表,源地址改变时触发,记录中包含的源地址是系统 不再希望加入的源S。 报告当前状态,说明当前组的模式是EXCLUDE模式,收到查询报文时 触发,源地址列表中包含了该组不希望加入的源地址S。IS_EX(G,{}) 表示当前对G的所有源都感兴趣,相当于IGMPv2的加入报文。
IGMPv1协议介绍
IGMP: Internet 组管理协议,用于主机与路由器之间交互信息的
一种协议。共包括v1, v2, v3三种版本,当前比较常用的为 IGMPv2协 议。
IGMPv1 协议
主要基于查询和响应机制来完成对组播组成员的管理。 主机可以加入组播组。 没有离开信息(leave messages)。 使用超时机制去发现其成员不关注的组。
IGMP v2 离开报文
离开报文目的地址为:224.0.0.2或者组播组地址, 类型:0x17
IGMP v2查询报文
注意:查询报文目的地址为:224.0.0.1, 类型:0x11
IGMPv3协议
IGMPv3: IGMPv3 在兼容和继承IGMPv1 和IGMPv2 的基础上,
进一步增强了主机的控制能力,并增强了查询和报告报文的功能。 (1)查询和报告功能增强,兼容低版本的普通组和特定组查询; 增加了对特定源组查询的支持; 批量报告:报文目的地址为:224.0.0.22,可以携带一个或多个 组记录; (2)主机空间能力增强,支持源过滤功能(INCLUDE/EXCLUDE);
再次调用交换接口GenHwSwitchIpmcAdd下发三元组(组播组地址、源 地址,0)下发到交换驱动,将EXCLUDE中的指定源地址的组播数据 流丢弃;
自由通信·创造未来
Thank you!
查询器选举机制
共享网段上组播路由器的选举机制 。(规定同一网段上有多个组播路由器 时,具有最小ip地址的组播路由器被选举出来充当查询器)
IGMPv2协议共包含3种类型的报文:
(1)Report 报文 (2)Leave报文 (3)查询报文
IGMP v2 加入报文
加入报文目的地址为:组播组地址, 类型:0x16
特定源组查询
通过发送该报文来学习接口对“指定组地址和指定源 地址”组播的接收状态。IGMPv3新增。
注意:IGMPv3的查询报文类型与IGMPv1和IGMPv2一致,均为0x11, 不同的是IGMPv3协议报文的长度大于等于12字节;
IGMP v3 查询报文格式
IGMP v3 查询报文
下面为一个指定源(20.20.20.1和20.20.20.2)和组播组地 址(224.1.1.1)的查询报文.
上联口存在组播组地址224.1.1.1, 源为1,2,3,4的组播数据流;组播组 地址224.1.1.2,源为1,2,3,4的组播数据流 那么用户1和用户2分别能收到那些组播数据流?
思考:
IGMPv3协议原理
上面的例子中如果用户1 和用户2点播的组播组地址相同,均为 224.1.1.1,那结果又是如何呢?
交换驱动对INCLUDE和EXCLUDE的支持。 组播组过滤模式INCLUDE: 首先切换到三层组播,调用交换接口 GenHwSwitchIpmcAdd下发(组播 组地址、源地址、对应端口)下发到交换驱动,只允许指定的数据流 通过; 组播组过滤模式EXCLUDE:
首先切换到三层组播,调用交换接口 GenHwSwitchIpmcAdd下发三元组 (组播组地址,0, 端口)到驱动,允许所有源的组播数据通过;
自由通信·创造未来
IGMPv3协议原理及实现
上海斐讯武汉研发中心 软件开发部 张显峰 2013-05-23
1
Βιβλιοθήκη Baidu
提纲
组播基本概念
IGMP协议介绍 IGMPv3协议原理 IGMPv3协议在FP8680上实现
组播
组播方式实现点到多点传输,只有一个发送者和对该组 播地址感兴趣的多个接收者。
组播基本概念
(1)首先用户1点播,生成组播组224.1.1.1的表项,过滤模式为 INCLUDE(A),A=(2,3)
(2) 用户2点播, 系统接收到IS_EXCLDUE(B)报文,由于已经存在该 组播组,只需刷新表项即可。
组播新状态为EXCLUDE(2, 1); 执行操作:设置1的源定时器为0;删 除源3;组定时器恢复为默认值GMI; 结果:用户1 能够收到源为2,3的组播数据流;
用户2能够收到源为3,4的组播数据流;
组播组收到不同类型报文状态跃迁表
IGMPv3协议在FP8680上实现
FP8680采用线卡和主控两层控制机制实现IGMPv3协议;
(1)线卡记录由每个PON口发送的Report报文信息中所携 带的INCLDUE和EXCLUDE源列表信息;
线卡组播组表增加过滤模式Filter-Mode, 和源地址列表 (基于该线卡下所有用户发送的Report报文信息生成)。
相关主题