当前位置:文档之家› lw-igmpv3协议在xorp平台上的分析与实现

lw-igmpv3协议在xorp平台上的分析与实现

LW-IGMPv3协议在XORP平台上的分析与实现1刘吉雯北京邮电大学网络与交换国家重点实验室,北京 (100876)E-mail:serenemarch@摘要:互联网组管理协议是IP组播框架中极为重要的组成部分,目前网络中广泛采用的IGMPv3协议引入的源过滤的机制虽然可以很好地支持源特定组播模型,但同时却增加了路由器实现的复杂性。

针对此问题,华为公司提出一种名为LW-IGMPv3的IGMP路由器端协议简化方案,通过删减排除模式、简化消息处理流程等一系列改进,旨在提高IGMP协议和组播路由协议在IP组播大规模应用中的性能表现。

本文详细阐述了此简化方案的改进依据、原理和特性,并通过在开源路由器平台XORP上实现LW-IGMPv3协议,对此简化方案的可行性进行分析。

关键词:IP组播,互联网组管理协议,XORP,LW-IGMPv31.引言随着IPTV,视频会议,多媒体远程教学,远程医疗等应用的开展,组播技术的优势和重要性逐渐显现出来。

采用单播技术构建的传统网络已经无法满足新兴宽带网络应用在带宽和网络服务质量方面的要求,随之而来的是网络延时、数据丢失等等问题。

此时通过引入IP组播技术,有助于解决以上问题IGMP协议是IP组播体系架构的一个重要组成部分,在IGMP的最新版本IGMP版本3(IGMPv3) [1]中,协议的逻辑结构过于复杂,不利于实际应用,且原协议中的一些状态在目前的一般组播应用中并没有相应的场景。

通过对IP组播体系结构的研究,我们在华为公司的“轻量级互联网组管理协议草案”的基础上,提出一种轻量级互联网组管理协议(LW-IGMPv3),通过简化协议逻辑架构,从而减轻路由器的负担,提高路由器效率,为组播路由协议提供更好的接入服务。

为了协议实现简便,文中特引入开源路由器平台XORP,XORP全称为可扩展的开放性路由平台(eXtensible Open Router Platform)。

XORP得到了Intel,美国国家科学资金,微软,Vyatta等机构和公司的支持。

XORP运行在Linux或者FreeBSD操作系统平台上(最近版本支持windows2003),它为当前大多数的路由协议提供了支持,比如BGP,OSPF,RIP等。

XORP作为一个低成本的路由器平台,它没有特别高的配置要求,作为一个软件路由器平台可以运行在普通的个人计算机或服务器,能达到100Mb/s的网络路由要求。

XORP采用一种新颖的进程间通信架构,通过不同的模块分别处理各种协议,这使得我们仅需修改IGMP协议模块就可快速实现新的协议机制。

本文第2节将详细描述轻量级组管理协议的简化方案,第3节介绍LW-IGMPv3在XORP 平台上的实现,第4节对LW-IGMPv3的协议兼容性进行分析,第5节总结全文。

2.轻量级互联网组管理协议(LW-IGMPv3)2.1互联网组管理协议(IGMP)协议IGMP协议运行于主机和与之直接相连的组播路由器之间,它提供了主机和组播路由器之间维护组成员关系的机制。

IGMP协议实现的功能分为组播路由器部分和主机部分。

如果主机想加入某个组播组,首先主动子网内的查询路由器发送组播组成员关系报道报文,该报1本课题得到华为公司项目基金的资助。

文中包含了组播组的地址;在接收到路由器的查询报文后,如果想继续接收某些组播组的数据包,便发送报道报文响应组播路由器的查询。

组播路由器部分的主要功能是周期性在所连接的物理网络上发送查询,以获得组成员关系列表,并对组成员关系列表进行维护。

如果同一网段上存在多个组播路由器,只需要一个路由器定期发送查询便可,这时会产生查询者选举,IP地址低的路由器获胜。

其他路由器监听担当查询者角色的路由器的状态,一旦发现该路由器失效,便进行新一轮的查询者选举。

目前IGMP共有三个版本:IGMPv1[2], IGMPv2[3], IGMPv3。

高版本提供向上兼容的功能。

IGMPv1己经不再使用,仅被高版本的协议提供了对它的兼容。

目前的组播设备中广泛使用的是IGMPv2。

最新标准IGMPv3是为了支持SSM业务模型[4]而提出,目前支持的系统还比较有限,但随着SSM的发展,可以预见IGMPv3将迅速取代IGMPv2协议。

尽管IGMPv3引入的滤过滤机制提高了组播接收者对特定组播源的挑选能力,却大大的增加了路由器的处理复杂性。

目前,IETF的Mboned工作组对IGMPv3的讨论和修改仍在进行中,许多研究者已经提交了IETF草案,建议修改、简化IGMPv3协议。

本文正是在华为公司提出的“轻量级互联网组管理协议草案”的基础上,对IGMPv3路由器端协议做出的简化,并对改进后的协议进行实现和分析。

2.2 轻量级互联网组管理协议的提出依据随着组播业务的展开,人们逐渐发现在实际应用中,几乎没有采用排除模式的应用场景。

因为用户通常会指明希望接收特定的组播源地址,而不会特意的排除某些组播源地址。

即使子网中的某个用户希望排除某个组播源的数据,但如果子网内同时却有其他用户希望接收这些组播源的数据时,路由器仍需要将这些数据发往该子网,因此排除模式在很多情况下是很难发挥其设想的效果的2.3 轻量级互联网组管理协议描述2.3.1 对IGMPv3的保留部分LW-IGMPv3协议仍采用查询-响应模式,其中查询路由器的选举、定期发送查询报文以及查询和报告报文的格式都没有变化。

图 1 IGMPv3中的查询器状态转移图Fig 1 The querier state of IGMPv3图 2 IGMPv3中的非查询器状态转移图Fig 2 The non-querier state of IGMPv32.3.2 对IGMPv3状态的简化LW-IGMPv3删去了原IGMPv3中的Exclude过滤模式,只保留ASM(即原IGMPv3协议中的Exclude(*,G))和Include两种状态,同时路由器端协议在每个支持组播的接口上维护的组播接收状态表信息中也删去了过滤模式字段,而修改为以组定时器区分协议状态,组定时器用于区分ASM状态和Include状态,组定时器大于0表示组播组处于ASM状态;组定时器等于0则表示组播组处于Include状态;当组定时器超时,如果该组播组记录的源列表不为空,则该组播组记录切换至Include状态,否则将该组播组记录删除。

源定时器则用来保证该组播源的有效性。

LW-IGMPv3路由器端协议不需要为每个组播组都维护它的过滤模式信息,这有利于减小协议开销,简化消息处理流程,避免了IGMPv3在过滤模式切换时的工作量。

此外,在IGMPv3中,当组播组处于EXCLUDE状态时,路由器需要为同一个组播组维护两种源列表,即包含列表和排除列表,包含列表中记录网络中仍存在接收者的源信息,排除列表则真正表示网络中希望排除的组播源。

两种源列表还会根据一定规则相互转换。

组播地址组定时器源列表{(源地址,源定时器)}232.7.7.7 110 {(A.100),(D,150)}图 3 LW-IGMPv3组播接收状态信息表Fig 3 An example reception state of LW-IGMPv32.3.3 对消息处理流程的简化在原IGMPv3协议中,当路由器收到主机端发来的报告消息时,需要根据组播组当前所处的过滤模式决定消息处理流程。

在改进后的协议中,由于删除了Exclude过滤模式,且ASM 和Include两种状态只需要通过组定时器进行区分,这使得大部分的报告消息在ASM和Include状态下具有相同的处理流程,只需要根据消息类型,对源列表,源定时器,组定时器作相应修改,或发送组和源特定查询消息,只有TO_IN类型的报告消息需要根据组播组当前状态(组定时器是否大于0)判断是否需要发送组特定查询消息,大大简化了路由器的处理流程。

(见表1)表1 LW-IGMPv3端协议消息处理规则表Tab.1 Operation rules of LW-IGMPv3旧的源列表报告消息类型新的源列表相关操作A IS_IN(B) A+B 设置B的源定时器A IS_EX(B) A 设置组定时器A ALLOW(B) A+B 设置B的源定时器A BLOCK(B) A 发送组和源特定查询消息Q(G,A*B)A TO_IN(B) A+B 发送组和源特定查询消息Q(G,A-B),如果组定时器值大于0,则发送组特定查询消息Q(G)A TO_EX(B) A 设置组定时器3.LW-IGMPv3在XORP平台上的实现3.1 XORP平台架构图4 XORP框架Fig 4 The architecture of XORP在XORP框架中(图4),FEA(抽象数据转发引擎)完成对IP数据包的转发,FEA可以用软件和硬件这两种方式替代,方便以后升级到硬件路由器。

而各种单播,组播路由协议则在不同的组件中实现,单播模块主要包括RIP,BGP4,ospf,IS-IS等,组播协议则支持PIM-SM,IGMP/MLD。

策略配置模块为用户提供了路由器配置功能,通过读取配置文件和命令行输入(CLI),用户可以在运行中启动和关闭模块,或添加新模块。

LW-MLDv2协议组件作为一个独立的组件,同样有其内部结构。

如图3所示,LW-MLDv2协议组件主要有配置和监控模块,以及网络接口管理模块组成。

一个LW-MLDv2协议组件运行在一台路由器上,路由器上组件间交互通过XRL中间件。

以面向对象的设计方法,LW-MLDv2协议组件分为配置和监控模块、网络接口模块、组管理模块、源管理模块,每一个模块为一个对象,映射为代码实现中的一个类。

LW-MLDv2协议组件管理着路由器上网络接口,为每一个网络接口生成一个接口对象和生成一个管理和配置对象。

当一个组播组A加入时,网络接口管理对象为A生成一个组管理对象,如果报告为源特定组播方式,则A的组管理对象为每一个特定源生成一个源管理对象。

各个管理对象负责管理协议中对应部分的管理逻辑,使得软件结构清晰,简化了程序实现,同时有利于协议的修改和代码的改进。

从图5中可以看到,软件的模块可以划分为五个部分:对外接口,监控和配置模块,网络接口管理模块,组管理模块,源管理模块。

其中除了对外接口外,其余部分均为功能实现的模块。

图5 LW-MLDv2内部架构图Fig 5 The inner architecture of LW-IGMPv3 module3.2 LW-IGMPv3协议在XORP平台上的实现图6 LW-IGMPv3类关系图Fig 6 Class Diagram of LW-IGMPv3由于XORP 基于严格的组件化架构,组件化的特性使我们能够通过用LW-IGMPv3模块替换原来IGMPv3组件,从而在XORP 平台上实现LW-IGMPv3协议。

相关主题