LW-IGMPv3协议在XORP平台上的分析与实现1
刘吉雯
北京邮电大学网络与交换国家重点实验室,北京 (100876)
E-mail:serenemarch@
摘要:互联网组管理协议是IP组播框架中极为重要的组成部分,目前网络中广泛采用的IGMPv3协议引入的源过滤的机制虽然可以很好地支持源特定组播模型,但同时却增加了路由器实现的复杂性。针对此问题,华为公司提出一种名为LW-IGMPv3的IGMP路由器端协议简化方案,通过删减排除模式、简化消息处理流程等一系列改进,旨在提高IGMP协议和组播路由协议在IP组播大规模应用中的性能表现。本文详细阐述了此简化方案的改进依据、原理和特性,并通过在开源路由器平台XORP上实现LW-IGMPv3协议,对此简化方案的可行性进行分析。
关键词:IP组播,互联网组管理协议,XORP,LW-IGMPv3
1.引言
随着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 IGMPv3
2.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-IGMPv3
2.3.3 对消息处理流程的简化
在原IGMPv3协议中,当路由器收到主机端发来的报告消息时,需要根据组播组当前所