Light weight MLDv2 协议的研究与实现.doc_第1页
Light weight MLDv2 协议的研究与实现.doc_第2页
Light weight MLDv2 协议的研究与实现.doc_第3页
Light weight MLDv2 协议的研究与实现.doc_第4页
Light weight MLDv2 协议的研究与实现.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

light weight mldv2 协议的研究与实现龙柏炜北京邮电大学,北京 (100876)e-mail:摘要:mld 协议是 ipv6 组播框架中必备协议之一。mldv2 协议引入的源过滤的机制支 持源特定组播模型,但同时增加了路由器实现的复杂性。light weight mldv2 (简称lw-mldv2)协议通过删减排除模式、简化消息处理流程,显著提高 mld 协议性能。文章 阐述了在 xorp 路由器平台上实现 lw-mldv2 协议的路由器端协议栈,并分析 lw-mldv2协议改进依据和特性。关键词:ip 组播,xorp,mldv2,lw-mldv2中图分类号:tp3931.引言近年来,ipv6 技术已经处于部署阶段,ipv6 的很多领域的研究不断深化。下一代互联 网络的重要技术组播,以其能够节约发送者的资源、极大节省网络带宽资源、实时性好等优 点,成为一种备受关注的基础网络技术。ipv6 网络部署组播技术分为两个方面:1,路由器上部署组播路由协议。目前重要的组 播路由协议包括 dvmrp,mospf,cbt 以及 pim。其中 pim-sm 协议由于其简单有效以 及与单播路由协议的无关性,成为域内组播协议的首选。在 pim-sm 的基础上,ietf 组织 又提出了 pim-ssm 协议,这是一种支持源特定组播业务模型的组播路由协议。2,接入路 由器或三层设备上部署组播组管理协议。ipv6 网络部署为 mld 系列协议。mld 协议是组 播mld 是 ipv6 组播的基本组成部分,并直接影响 ipv6 组播的其它领域,如安全组播、 应用编程接口、路由器基础结构、应用协议等。mld 目前具有 3 个兼容的版本: mldv11, mldv22,lw-mldv23。mldv1 实现了基本的组播功能。mldv2 为了支持源特定组播4, 在 mldv1 的基础之上增加了源过滤模式。lw-mldv2 在 mldv2 基础上对过滤模式进行了 简化,通过删减源过滤模式多余的状态机和处理流程,使得 mld 协议更加高效和适合应用。本文第 2 节将简要介绍 mldv2 协议及其存在问题,第 3 节详细描述和分析 lw-mldv2 协议,第 4 节在 xorp 路由器平台基础上的实现 lw-mldv2 协议路由器端和在 netbsd 系 统上实现 lw-mldv2 主机端,并对兼容性进行分析,第 5 节总结全文。2.mldv2 协议简介mld 协议是路由器与其直接相连主机之间的协议,主要功能是管理希望加入或离开一 个组播组的主机和管理希望接收或者拒收从某特定源发来的数据包。mld 协议有三类消息 类型3:1,组播侦听者查询消息;一般查询消息(general query),用于发现在直连的链路上 组播征听者。特定组播地址查询消息(multicast address specific query),用于发现一个特定 的组播地址在本地链路上的所有组播侦听者。特定源组播查询消息(multicast address and source specific query),用于发现一个特定源的组播地址在本地链路上的所有组播侦听者。2, 组播侦听者报告消息(general report);3,组播侦听者 done 消息。mldv2 协议由 mldv1 协议发展而来,主要在 mldv1 的基础上增加了对组播源的包含 和排除两种过滤模式的支持。主机端在报告消息中附带一个包含列表(include list)或一个排- 8 -除列表(exclude list)。包含列表告知路由器只对某一特定组播组中来自特定源地址的数据感兴趣。排除列表告知路由器只对某一特定组播组中特定源地址之外的数据感兴趣。这种源特 定模式增加了组播组的复用,使得使用相同组播组的组播树互不干扰。路由器端维护组播组 状态表,包含组播组地址,组计时器,组过滤模式及相应的源列表和源计时器,通过采用组 计时器和源计时器来维护组播组和组播源,在收到主机的报告消息时,需要综合考虑报告消 息的过滤模式以及组播组当前所处的过滤模式,然后对组播接收状态表做相应修改,同时路 由器不停的周期性向网络内发送查询消息,以即时获取主机的组播组接收状态。组播组的过滤模式提高了组播接收者对特定组播源的挑选能力,却大大的增加了路由器 的处理复杂性。每当收到一个报告消息或者计时器超时,组播路由器就需要考虑组播组的过 滤模式,源列表,源列表中的各个源计时器等因素。由于路由器对组播接收状态表的修改策 略过于复杂,当子网中组播用户数量较大,用户频繁切换组播组,或者修改组播组接收状态 时,会对路由器的处理性能造成较大影响。lw-mldv2 简化 mldv2 过于复杂的逻辑结构, 提高协议效率,下一章我们将详细描述和分析 lw-mldv2。3.lw-mldv2 协议分析mld 协议是路由器与其直接相连主机之间的协议,主要功能是管理希望加入或离开一 个组播组的主机和管理希望接收或者拒收从某特定源发来的数据包。mld 协议有三类消息 类型3:1,组播侦听者查询消息;一般查询消息(general query),用于发现在直连的链路上 组播征听者。特定组播地址查询消息(multicast address specific query),用于发现一个特定 的组播地址在本地链路上的所有组播侦听者。特定源组播查询消息(multicast address and source specific query),用于发现一个特定源的组播地址在本地链路上的所有组播侦听者。2, 组播侦听者报告消息(general report);3,组播侦听者 done 消息。mldv2 协议由 mldv1 协议发展而来,主要在 mldv1 的基础上增加了对组播源的包含 和排除两种过滤模式的支持。主机端在报告消息中附带一个包含列表(include list)或一个排 除列表(exclude list)。包含列表告知路由器只对某一特定组播组中来自特定源地址的数据感 兴趣。排除列表告知路由器只对某一特定组播组中特定源地址之外的数据感兴趣。这种源特 定模式增加了组播组的复用,使得使用相同组播组的组播树互不干扰。路由器端维护组播组 状态表,包含组播组地址,组计时器,组过滤模式及相应的源列表和源计时器,通过采用组 计时器和源计时器来维护组播组和组播源,在收到主机的报告消息时,需要综合考虑报告消 息的过滤模式以及组播组当前所处的过滤模式,然后对组播接收状态表做相应修改,同时路 由器不停的周期性向网络内发送查询消息,以即时获取主机的组播组接收状态。组播组的过滤模式提高了组播接收者对特定组播源的挑选能力,却大大的增加了路由器 的处理复杂性。每当收到一个报告消息或者计时器超时,组播路由器就需要考虑组播组的过 滤模式,源列表,源列表中的各个源计时器等因素。由于路由器对组播接收状态表的修改策 略过于复杂,当子网中组播用户数量较大,用户频繁切换组播组,或者修改组播组接收状态 时,会对路由器的处理性能造成较大影响。lw-mldv2 简化 mldv2 过于复杂的逻辑结构, 提高协议效率,下一章我们将详细描述和分析 lw-mldv2。3.1 lw- mldv2 协议的提出依据随着组播业务的展开,在实际应用中几乎没有采用排除模式的场景。用户通常只指明希 望接收特定的组播源的数据,而极少会排除某些组播源数据。即使子网中的某个用户希望排除某些组播源的数据,但如果子网内同时却有其他用户希望接收这些组播源的数据时,路由器仍需要将这些数据发往该子网,排除模式在很多情况下是很难达到其设想的效果。在 ietf 组织新提出的源特定组播标准4中,对 mldv2 也做出了相应的修改,即不允 许主机向路由器发送组播组地址在 ssm 地址范围内的排除模式报告消息。因此 mld 协议 也必须对其包含与排除的过滤模式作出相应的修改。因此需要在 mldv2 的基础上,删去其 中的排除模式,同时对排除模式的相关的处理流程进行等价替换。3.2 lw- mldv2 协议描述3.2.1 mldv2 的保留部分为了保持对以前版本的兼容,lw-mldv2 协议保留了查询-响应模式和查询及报告报文 的格式。对查询路由器的选举规则,协议的参数设置要求和建议作了保留,对协议的源包含 模式的基本处理逻辑流程做了保留。变化的地方主要是在对过滤模式的简化以及状态的描述 变化。3.2.2 状态简化部分lw-mldv2 删去了 mldv2 中的 exclude 过滤模式,保留了 asm(mldv2 的 exclude(*,g) 和 include 两种状态。组播组的信息结构由 mldv2 的(ipv6 multicast address,group timer, filter mode,source list( ipv6 source address, source timer)改变为 lw-mldv2 的(ipv6multicast address,group timer,source list(ipv6 source address, source timer)。图 1 组播组的状态转移图lw-mldv2 的组计时器用于区分 asm 状态和 include 状态,图 1 为 lw-mldv2 的一 个组播组的状态转移图。组计时器大于 0 表示组播组处于 asm 状态;组计时器等于 0 则表 示组播组处于 include 状态;当组计时器超时,如果该组播组记录的源列表不为空,则该组 播组记录切换至 include 状态,否则将该组播组记录删除。lw-mldv2 的源计时器则用来保 证组播源的有效性。lw-mldv2 路由器端协议不需要为每个组播组都维护它的过滤模式信 息,简化了消息处理流程和过滤模式切换的处理。在图 1 中组播源列表 x 均为包含模式。 lw-mldv2 删除了排除过滤模式,因此一些在 mldv2 中的报告消息存在于 lw-mldv2 协 议的意义不大,但是 lw-mldv2 为了兼容 mldv2 版本,lw-mldv2 对这些消息进行了等 价转换。等价转换列表如表 1 所示,表中可以看出消息主要变化在对单独排除某特定源的消息转化为不排除任何源的操作。表 1 报告消息的等价转换列表mldv2 报告lw-mldv2 的等价消息is_in(x)allow(x)is_ex(x)is_ex()to_in(x)to_in(x)to_ex(x)is_ex()allow(x)allow(x)block(x)block(x)3.2.3 处理流程简化部分在 mldv2 协议中,当路由器收到主机端发来的报告消息时,需要根据当前组播组所处 的过滤模式决定消息处理流程。在 lw-mldv2 协议中,由于删除了 exclude 过滤模式,使 得大部分的报告消息在 asm 和 include 状态下具有相同的处理流程,大大简化了路由器的 处理流程。只有 to_in 类型的报告消息需要根据当前组播组的状态判断是否需要发送组特 定查询消息。lw-mldv2 报告消息具体处理流程如表 2 所示。表 2 lw-mldv2 路由器端协议消息处理规则表源列表报告消息新源列表操作ais_in(b)a+b设置 b 的源计时器ais_ex(b)a设置组计时器aallow(b)a+b设置 b 的源计时器ablock(b)a发送组和源特定查询消息 q(g,a*b)ato_in(b)a+b发送组和源特定查询消息 q(g,a-b),如果组计时器值大于 0,则发送组特定查询消息 q(g)ato_ex(b)a设置组计时器组播路由表的生成依赖于 mld 协议提供的组播接收状态信息。当 mld 协议状态变化时,会依据特定的组播报文转发规则触发组播路由协议的动作,协助组播路由协议正确的修 改组播路由表。在 mldv2 中,组播转发的判断依据包括当前组播组当前的过滤模式以及组 播源的计时器。lw-mldv2 协议由于删除了 exclude 过滤模式,对组播报文的转发判断依 据不再需要考虑组播组当前的过滤模式。当组计时器等于 0,表示该组播组目前处于 include 模式,若源列表中该组播源的计时器数值大于 0,则建议组播路由协议转发该组播报文;当 组计时器大于 0,表示该组播组目前处于 asm 状态,这种情况下将建议组播路由协议转发 任意组播源发送的组播报文。lw-mldv2 组播转发规则避免了频繁触发组播路由协议动作,因此同时可以减少组播 路由协议的负担,对提高路由器性能也起到了关键作用。4.lw-mldv2 的实现和测试4.1 路由器平台描述为了测试验证 lw-mldv2 的有效性和兼容性,同时发现 lw-mldv2 可以改进的地方,我们分别在 netbsd+xorp 的路由器平台上设计实现 lw-mldv2 的协议栈。netbsd 是一个自由的,高可移植性的类 unix 的操作系统。netbsd 模块简单高效,非常有利于网络实 验。xorp 全称为可扩展的开放性路由平台(extensible open router platform)。xorp 为 当前大多数的路由协议提供了支持,因此有利于构建一个稳定可靠的试验平台。xorp 是基 于严格组件化的架构,组件化的特性是我们能够增加 lw-mldv2 组件。4.2 架构设计xorp 平台是基于一个称作 xrl5中间件的结构,因此可以方便的加入任意的协议组 件。在实现中,我们配置的组播路由协议为 pim-sm 协议。首先为 lw-mldv2 协议组件确 定相关的依赖组件和对外接口。如图 2,lw-mldv2 协议主要和 pim-sm 协议及 fea(数 据转发引擎)相关联。fea 主要负责对协议的消息信令接收和发送的具体操作。除此之外, fea 还负责根据 ip 路由表对 ip 包的转发。lw-mldv2 协议组件通过接口告知 pim-sm 改 变的路由状况。pim-sm 组件负责修改 ip 组播路由表,建立组播转发树。图 2 环境架构图lw-mldv2 协议组件作为一个独立的组件,同样有其内部结构。如图 3 所示, lw-mldv2 协议组件主要有配置和监控模块,以及网络接口管理模块组成。一个 lw-mldv2 协议组件运行在一台路由器上,路由器上组件间交互通过 xrl 中间件。以面向对象的设计 方法,lw-mldv2 协议组件分为配置和监控模块、网络接口模块、组管理模块、源管理模 块,每一个模块为一个对象,映射为代码实现中的一个类。lw-mldv2 协议组件管理着路 由器上网络接口,为每一个网络接口生成一个接口对象和生成一个管理和配置对象。当一个 组播组 a 加入时,网络接口管理对象为 a 生成一个组管理对象,如果报告为源特定组播方 式,则 a 的组管理对象为每一个特定源生成一个源管理对象。各个管理对象负责管理协议 中对应部分的管理逻辑,使得软件结构清晰,简化了程序实现,同时有利于协议的修改和代 码的改进。4.3 mib 的实现图 3 lw-mldv2 内部架构图为了有效的取得协议路由器端的运行中的数据,本文采用了mib采集数据。根据ietf 的组播组管理协议的mib草案6,为了正确表达lw-mldv2协议的特性,我们对其中部分字 段做了一些意义上的修改,但整体上维持原来mib的架构。组播组管理协议的mib主要分为 路由器端和主机端的两个部分,每个部分分别有接口表项,组播组表项,组播源表项,组播 组的反转表。在程序设计中,采用面向对象的设计方法以及对象划分的清晰对mib的实现提 供了良好的支持。在xorp平台上,采用了net-snmp和xorp中间件xrl结合的方法,提供 了对mib的支持。图 4 mib 架构图如图4所示,在xorp平台上mib作为一个组件存在,管理着多个协议栈mib的管理对象。 xorp_if_mib_module7为mib的管理类负责调度每一个mib对象的启动和通过xrl中间件获 取数据,同时通过net-snmp的接口和snmpd交互,snmpd为snmp的服务器端。lw_mld_mib负 责整合mld组件的相关表项信息为snmp的形式。由于mib的数据源在mib程序之外,因此 lw_mld_mib采用了iterate模式的编码方式,这是一种适用于数据源在mib程序之外的表项组 织结构。4.4 结果分析为了全面测试协议的有效性,我们采用了一个复杂网络拓扑结构,如图 5 所示。我们设 置了两个组播源,两个传输网络,传输网络配置了 pim-sm 的环境,组播接收端同时接入 两个传输网络。在这种网络结构下,可以测试路由器作为查询器和非查询器的工作流程, 对协议进行功能性测试,兼容性测试以及性能测试。组播源1组播源2pim-smr2pim-smr5r1 r3 r4 r6netbsd+xorpcisco组播接收端 组播接收端图 5 测试网络拓扑图对 lw-mldv2 协议的功能测试,netbsd+xorp 路由器配置 lw-mldv2 协议, cisco 的路由器替换为另外一台 netbsd+xorp 路由器,均配置 lw-mldv2 协议。主机端 采用 lw-mldv2 主机端协议。测试覆盖了所有的报告消息。lw-mldv2 协议的功能测试结果显示:无论作为查询器或非查询器,lw-mldv2 协议 满足所有的通用组播应用的需要。在源特定组播方面,lw-mldv2 协议实现了与 pim-sm 的协同工作。因此,lw-mldv2 协议能够有效的实现组播组管理功能。对 mldv1 和 mldv2 协议称为低版本的 mld 协议。对低版本协议的兼容性问题有:(1)低版本的 mld 协议多台主机端和单一 lw-mldv2 路由器的兼容性;(2)lw-mldv2协议多台主机端,低版本的 mld 协议路由器端与 lw-mldv2 路由器同一子网内的兼容性;(3)低版本的 mld 协议多台主机端,低版本的 mld 协议路由器端与 lw-mldv2 路由器 同一子网内的兼容性。在 netbsd+xorp 的路由器上配置 lw-mldv2 协议,cisco 的路由 器上分别配置低版本的主机。主机端分别采用各低版本的协议的主机端。lw-mldv2 协议的兼容性测试结果显示:(1)在兼容性问题 1 中,低版本的 mld 协 议多台主机端和单一 lw-mldv2 路由器的情况下,mldv1/v2 协议的主机端均能正确地接 收到组播数据。(2)在兼容性问题 2 中,lw-mldv2 路由器无论作为查询器或非查询器, 均能与 cisco 路由器不同版本的 mld 协议协同工作,lw-mldv2 协议多台主机端均能接收 到正确的组播数据。(3)在兼容性问题 3 中,mldv1/v2 协议的主机端均能正确地接收到 组播数据。因此,可以得出结论,lw-mldv2 协议完全兼容低版本协议。性能优化测试采用压力测试方法:采用 lw-mldv2 协议栈的 xorp 路由器为测试路由 器。采用同一代码架构的 mldv2 协议栈的 xorp 路由器为测试对照路由器。逐渐向子网内 加入源特定组播组,每个组播组携带 5 个特定源,包含 20%的排除模式的特定源,直到 xorp路由器的 cpu 占用达到 100%为止,对比两个路由器的处理组播组数量。lw-mldv2 协议栈的 xorp 路由器处理能力达到平均 2000 个组播组,而 mldv2 协议栈的 xorp 路由器为 平均 1600 个,效率提升 25%。综上所述,lw-mldv2 兼容 mld 系列协议,同时在性能上有显著的提升。5.结论本文分析了 ipv6 的轻量级组播组管理协议 lw-mldv2 的原理。并在 xorp 路由器平 台实现和验证。通过试验结果表明, lw-mldv2 协议完全兼容低版本的 mld 协议,并在性 能上有较大的提升。lw-mldv2 协议提出,进一步明确了组播业务的应用方向。同时,组 播业务安全性,服务质量管理和计费等方面将是下一步研究课题。参考文献1 rfc 2710, multicast listener discovery (mld) for ipv6s, ietf, october 19992 rfc 3810, multicast listener discovery version 2 (mldv2) for ipv6s, ietf, june 2004 3 rfc draft, lightweight igmpv3 and mldv2 protocolss , ietf, december 19, 20064 rfc 4607, source-specific multicast for ips, ietf, august 20065 xorp project international computer science institute berkeley, xorp inter-process communicationlibrary overvieweb,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论