(通信与信息系统专业论文)pimsm双栈组播协议的研究与实现.pdf_第1页
(通信与信息系统专业论文)pimsm双栈组播协议的研究与实现.pdf_第2页
(通信与信息系统专业论文)pimsm双栈组播协议的研究与实现.pdf_第3页
(通信与信息系统专业论文)pimsm双栈组播协议的研究与实现.pdf_第4页
(通信与信息系统专业论文)pimsm双栈组播协议的研究与实现.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

(通信与信息系统专业论文)pimsm双栈组播协议的研究与实现.pdf.pdf 免费下载

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

文档简介

j e 复窑适太堂亟堂焦i 金奎生塞擅重 中文摘要 摘要:p i m - s m 协议因为其协议无关性、成员显式加入以及可以从共享树切换至有 源树等优点,在组播领域得到了广泛的应用。为了保证下一代互联网过渡时期中 对i p v 4 6 协议栈的兼容性,需要p i m s m 协议实现i p v 4 6 双栈运行。论文的主要 工作是在l i n u x2 6 8 1 内核下实现了p i m - s mi p v 4 6 双栈运行,并在此基础上,按 照协议规范分析了协议的实现过程,并结合代码对于内核转发组播数据、处理封 装注册消息等用户层和核一1 1 , 层的重要模块进行了详细分析。之后对p i m s m 双栈 进行协议测试,论文还对p i m s m 协议存在的安全问题进行了初步的分析。论文 的最后对组播技术的应用前景进行了展望。 关键词:p i m s m 组播双栈i p v 4i p v 6l i n u x 内核安全 分类号:t n 9 1 5 0 4 a b s t r a c t a b s t r a c - f : p i m s mp r o t o c o li sn o wb e i n gw i d e l yu s e di nt h ei pm u l t i c a s tt e c h n o l o g y , f o ri t s a d v a n t a g e o u sp e r f o r m a n c ei np r o t o c o li n d e p e n d e n c e ,o b v i o u sm e m b e r s h i pj o i n sa n d h a n d o v e rf r o mr p tt os p t t oe l - i s u r et h ec o m p a t i b i l i t yo fi p v 4 6p r o t o c o ls t a c k si nt h e t r a n s i t i o n a lp e r i o dt on g i p i m - s mi sd u et ob e i n gi m p l e m e n t e di nb o t hi p v 4a n di p v 6 t h em a i nt a s ko ft h i sp a p e ri sb r i n g i n gt h ep i m s mi n t op r a c t i c eu n d e rt h ed u a l - s t a c k e n v i r o n m e n tw i t ht h el i n u x2 6 8 1k e r n e lb e i n gu s e d b a s e do nt h ei m p l e m e n t a t i o n ,w e a l s oa n a l y s et h ep r o c e s so ft h ei m p l e m e n t a t i o na c c o r d i n gt ot h ep r o t o c o la n dg i v et h e d e t a i l so fi m p o r t a n tm o d u l e si nb o t ht h ei l s e rl a y e ra n dt h ek e r n e ll a y e ro ft h es o u r c e c o d ea sw e l l ,t oe x p l a i nh o wt h ek e r n e lf o r w a r d sm u l t i c a s td a t aa n dd i s p o s e st h e e n c a p s u l a t e dr e g i s t e rm e s s a g e s ,f o re x a m p l e ,t h ep r o t o c o lt e s th a s b e e n d o n ea f t e r w a r d s w i t l la l lt h ea b o v e t h i sp a p e rp r o v i d e so r i g i n a la n a l y s i so fs e c u r i t yp r o b l e m si nt h e p i m s ma sw e l la st h ep r o s p e c t so f a p p l i c a t i o no f t h em u l t i c a s tt e c h n o l o g yi nt h ee n do f t h ep a p e r k e y w o r d s :p 1 m s mm u l t i e a s td u a l s t a c ki p v 4i p v 6l i n u xk e m e ls e c u f i t y c i a s s n o :t n 9 1 5 0 4 学位论文版权使用授权书 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特 授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索, 并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国 家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:王恭 签字日期刎年舀月f 7 日 导师签磷翩、锕 签字日期: 7 年6 月少日 j 塞窒疆态堂亟堂焦淦塞 塑迸 致谢 本论文的工作是在我的导师张宏科教授的悉心指导下完成的,张老师严谨的 治学态度和科学的工作方法给了我极大的帮助和影响。在此衷心感谢三年来张宏 科老师对我的关心和指导。 在学习过程中,周华春副教授悉心指导我完成了实验室的科研工作,在学习 上和生活上都给予了我很大的关心和帮助,在此向周华春老师表示衷心的谢意。 实验室各位老师对于我的科研工作和论文都提出了许多的宝贵意见,在此表示衷 心的感谢。 在实验室工作及撰写论文期间,关建峰、陈晓华、李昕三位博士以及马云飞、 赵玲、郝永亮、朱莹等同学对我论文中的研究工作给予了热情帮助,在此向他们 表达我的感激之情,同时也感谢i p l a b 0 5 0 3 班的全体同学以及同宿舍的郭华明和张 洪远。 最后特别我亲爱的家人们,他们的支持与鼓励使我能够专心、顺利完成我今 天的学业,非常感谢你们,祝你们身体健康,也祝各位老师、好友以及所有关心 我的人万事如意! 序 对于网络中出现的越来越多的网络( p 1 v ) 、时移电视( t i m e s h i r e dt v ) 和视频 会议等业务,每个数据流要占用的带宽越来越高,这些业务消耗了运营商大部分 的网络带宽。要解决这个问题有两种办法:一种是不断投资增加或者升级设备,提 高网络的承载能力,增加网络的吞吐容量;另一种是利用组播技术充分利用当前有 限的网络带宽。使用组播模式来支持上述业务是性价比最高的选择。 为了保证下一代互联网过渡过程中,网络对于i p v 4 6 的兼容性,p i m s m 组 播协议的设计要求能够实现双栈运行。北京交通大学下一代互联网中心已经在 l i n u x2 4 1 8 内核下实现了p i n t - s mi p v 6 协议栈。应c n g i 项目“基于移动i p v 6 的互联网和移动通信的网络融合”的要求,需要在l i n u x2 6 8 1 内核下实现 p i m - s m ,借鉴前人的工作,将代码进行7 移植。在此过程中,进行了大量的内核 修改工作,以使其支持i p v 6p i m s m 组播。并在此基础上实现了口v 4p i m - s m 组 播,实现了p i m s m 双栈运行。 1 引言 1 1研究背景和意义 截至2 0 0 7 年第一季度,我国互联网上网人数达到1 4 4 亿,其中宽带上网用户 9 7 0 0 万户。目前互联网业务中发展最快的就是网络( i p t v ) 、对移电视( t i m e s h i f t e d m 和视频会议等,这些业务的特点就是带宽需求高,系统资源占用大,导致网络 拥塞和延迟的问题日益严重。为了解决上述问题,人们提出了多种解决方案,其 中m 组播技术以其优越的性能脱颖而出。单播技术是采用一对一的通信,对于每 个接收者,发送者都需要发送一份数据包,而m 组播技术可以实现一对多,即从 源发送一份i p 数据包可以到达多个目的地,因此可以显著的减少网络流量以及资 源消耗。另外组播技术在充分利用网络资源,提升网络性能的同时,使得分布式 应用成为可能。 当前,i p v 4 拥有4 3 亿个i p 地址,但目前只剩下1 9 。最迟到2 0 1 2 年,剩下 1 9 的i p 地址也将全部分配完毕,因此因特网向i p v 6 1 1 1 过渡已成为大势所趋。而 基于成本等各种因素的考虑,大部分设备都不可能立即全部升级或替换,所以在 很长一段过渡期,在此期间会有i p v 4 6 协议栈并存的局面。协议无关组播稀疏模 式p i m s m ( p r o t o c o li n d e p e n d e n tm u l t i c a s t - s p a r s em o d e ) 1 2 1 作为域内组播协议的 一种,因为其协议无关性、成员显式加入以及共享树切换至有源树等特点,在组 播领域得到了广泛的应用。同时为了保证路由协议对于i p v 4 6 协议栈的兼容性, 我们设计了p i m s mi p v 4 6 双栈组播协议。 1 2组播技术国内外发展现状 1 9 9 2 年i p 组播实验网m b o n e 成立。该网络运行d v m r p ( d i s t a n c e - v e c t o r m u l t i c a s tr o u t i n gp r o t o c 0 1 ) 3 1 协议,主要目的是在此网络中进行m 组播的协议标准 和部署方法,为组播业务的发展提供参考。后来在该实验网络上由出现了众多域 内多播协议,包括m o s p f ( m u l t i c a s te x t e n s i o n st oo s p f ) h j ,p i m d m ( p r o t o c o l i n d e p e n d e n tm u l t i c a s t d e n s em o d e ) 例,c b t ( c o r eb a s e dt r e e s ) 。,p i m s m ( p r o t o c o l i n d e p e n d e n tm u l t i c a s t - s p a r s em o d e ) 等。 目前,i p 组播技术己得到软硬件厂商的广泛支持,尤其是i p v 4 组播部分。 p i m s m 在因特网工作小组i e t f 中专门有一个p i m 工作组,专门讨论p i m s m 协 议。目前国际上讨论相对较热的是p i m s m 协议对于i p v 6 组播的支持,主要有如 下几个开源项目: u s a g i 项目 其中代码更新较快,对于协议以及内核支持地比较全面,讨论的也比较热烈。 p i m 6 s d 作者h o e r d tm i e k a e l 已经加入u s a g i 项目。除了对于组播支持之外,还提 供了对于m m 等各种协议的支持,总体而言,该项目比较全面。 x o r p 项目 x o r p 是2 0 0 2 年开始的一个开源路由器软件项目,是以可扩展开放路由平台 ( x o r p ) 开发的代码为基础。v y a t t a 的目标是把个修改过的l i n u x 操作系统同 x o r p 结合在一起,在标准x 8 6p c 硬件上运行。这样路卣器成本将大幅度降低。 厂商表示它的产品瞄准小企业和中型企业分支机构网络,这种产品比思科、j u n i p e r 或阿尔卡特的中型商用w a n 路由器成本降低5 0 到9 0 。 m r d 6 项目 该项目给其自身的定义就是1 p v 6m u l t i c a s tr o u t e r ,因此主要是对于组播路由 协议p i m s m 的支持,同时支持m l d v 2 i 和m b g p 。其中对于l i n u x 下的各种发 型版:f e d o r a 、d e b i a n 、u b u n t u 、r e d h a t 等都有较好的支持。 1 3 论文主要工作和基本结构 本论文是在实验室已有p i m s mi p v 6 基础上实现了l i n u x 环境下p i m s m i p v 4 6 双栈组播。开发过程中的主要工作是从实验室已有的l i n u x 2 4 1 8 内核下移 植p i m s mi p v 6 代码至2 6 8 1 内核下,并且对2 6 8 1 内核进行了修改,使其支持 i p v 4 6 双栈组播;同时在2 6 8 1 内核下实现了p i m s mi p v 4 协议,实现了p 1 m s m 双栈组播。 论文的主要结构如下: 第一章p i m s m 双栈组播研究的背景及意义 主要分析了p i m s m 双栈组播产生的背景及意义。 第二章i p 组播技术基础 主要介绍了i p v 4 6 组播地址、e t h e m e t 组播地址以及l p 组播分布树、i p 组播 转发等组播基础知识。 第三章p i m - s m 组播基本工作机制 从协议规范的角度按照建立共享树、源注册、共享树到最短路径树的切换、共 享树的剪枝等几个过程分析了p i m s m 协议基本工作机制。 第四章p i m s m 双栈组播实现 分析了p i m s m 双栈组播的具体实现机制,模块化地分析了核心层对于组播 数据包的转发、处理封装注册消息以及用户层的协议消息处理等模块。 第五章。p i m - s m 协议栈测试 介绍p i m s m 协议栈测试环境以及协议栈的安装、使用,以及p i m s m 双栈 的测试结果。 第六章目前p i m s m 协议栈存在的安全问题 分为基于路由器的攻击和基于主机的攻击两大类对p i m - s m 协议栈目前存在 的安全问题进行初步讨论。 第七章总结与展望 协议开发的总结以及对组播技术未来发展前景的展望。 2i p 组播技术基础 本章主要介绍i p 组播的体系结构,并对i p v 4 6 组播地址、i p v 4 6e t h e r n e t 组播地址以及i p 组播分布树、i p 组播转发等组播基础知识进行介绍。 2 1i p 组播体系结构 网络组播技术体系结构是以组播分发树为核心可以分为三大部分组成:组播 接收者发现、组播源发现和组播拓扑发现。 组播接收者发现使用m l d ( m u l t i c a s tl i s t e n e rd i s c o v e r y 组播监听发现协 议) 【7 l 【8 1 或者使用i g m p ( i n t e m e tg r o u pm a n a g e m e n tp r o t o c o l 因特网组播 组管理协议) 9 1 ; 自治域内的组播源发现使用p i m s m ( p r o t o c o li n d e p e n d e n t m u l t i c a s t s p a r s em o d e 协议无关组播稀疏模式) :自治域间组播源发现使用 m s d p ( m u l t i c a s ts o u r c ed i s c o v e r yp r o t o c o l 组播源发现协议) 0 0 1 ; 自治域内拓扑发现使用r i p ( r o u t i n gi n f o r m a t i o np r o t o c o l 路由信息协议) 1 1 1 、o s p f ( o p e ns h o r t e s tp a t hf i r s t 开放最短路径优先) 1 1 2 1 等单播路由协 议:自治域问的拓扑发现使用组播协议边界网关协议m b g p ( m u l t i p r o t o e o l b g p ) 。 组播路由协议根据组播源信息、接收者信息、网络拓扑( 源和接收者问连接 关系) 信息,运用一定的组播路由算法在组播路由器上构造组播自治域内或跨自 治域的组播分发树,使组播技术体系结构的各个部分形成一个整体。组播路由器 之间采用组播路由协议来建立和更新维护组播分发树,并根据组播分发树得出复 制和分发组播报文的路径,保证组播数据包从上到下沿着组播分发树到达组播接 收者。 在众多组播源发现协议中,按照作用域大小可以分为域内组播协议和域问组 播协议两种。域内组播协议通常有距离矢量组播路由协议d v m r p ( d i s t a n c ev e c t o r m u l t i c a s tr o u t i n gp r o t o c 0 1 ) 协议、协议无关组播密集模式p i m d m ( p r o t o c o l i n d e p e n d e n tm u l t i c a s t d e n s em o d e ) 协议、有核树组播路由协议c b t ( c o r eb a s e d t r e e sm u l t i c a s tr o u t i n g ) 和开放组播最短路径优先m o s p f ( m u l t i c a s to p e ns h o r t e s t p a t hf i r s t ) 协议;域问组播协议包括组播源发现协议m s d p ( m u l t i c a s ts o u r c e d i s c o v e r yp r o t o c 0 1 ) 、组播边界网关协议m b g p ( m u l t i p r o t o e o lb g p ) 和源特定组 播s s m ( s o u r c es p e c i f i cm u l t i e a s t ) 。 按照组播分发树可以分为有源分发树( s o u r c ed i s t r i b u t i o nt r e e ) 和共享分发树 ( s h a r e dd i s t r i b u t i o nt r e e ) 两大类。有源树组播协议包括d v m r p 、m o s p f 和 p i m d m 等,共享树包括c b t 等 在组播自治域间,p i m s m 根据这些信息构建组播分发树,借此完成跨自治域 的组播数据转发。在自治域内,组播分发树的构建则使用p i m s m 协议,这也是 本文的主要研究方向。组播体系结构如图2 1 所示: 2 2i p 组播地址 图2 i 组播体系结构图 使用同一个i p 组播地址接收组播数据包的所有接收者构成了一个主机组( 用 于标识多点通信业务中所有接收者的集合) ,也称为组播组。在组播网络中,每 个组播组拥有唯一的组播地址:组播数据包可以被发送到加入组播组的( 具有组 播组地址) 接收者,发送者没有必要是组成员、不需要知道有哪些组播组成员、 也不需要了解组成员的数目和位置:一个接收者可以同时属于几个组播组;接收 者可以随意加入和离开组播组,不需要和组播组成员以及发送者协商。 ! 缉搔挂盔垫型 2 2 1i p v 4 组播地址 在i p v 4 中组播地址是一个d 类地址,范围是从2 2 4 o o o 到2 3 9 2 5 5 2 5 52 5 5 , 我们称之为组播组地址。一部分i p 组播地址是由i n t e r n e t 管理机构分配,其它 的组播地址作为暂时地址被用户使用。组播地址的格式如图2 2 所示: l i l j - j _ | _ 一缀磴罐塑篓翌- :_ 。、二 _ _ 一一 图2 2i p v 4 组播地址结构 i p v 4 组播地址被分为三部分: 局部链接组播地址范围从2 2 4 0 0 0 到2 2 4 0 0 2 5 5 ,被i a n a 预留。其 中地址2 2 4 0 0 0 保留不做分配,其它地址供路由协议及拓扑查找和维 护协议使用。这个范围内的地址应用于局域网,不论t t l 值是多少,路 山器不转发属丁此范剧的t p 包。 预尉组播地址范围从2 2 4 0 1 0 到2 3 8 2 5 5 2 5 5 2 在全网范围内有效,可以为、k 务动态中请、分配。 作为片l 户组播地址 2 2 2i p v 6 组播地址 i p v 6 的地址窄问j , a1 2 8 位( 1 6 字订) ,围际标准语法规定将其划分为8 个1 6 位 的二进制数,每1 6 个二进制数用4 个卜六进制数来表示,( 例如: 3 f f e :1 2 3 4 :5 ( 5 7 8 :9 a b c :d e f f :12 3 4 ) ,这些数之i h j 用冒号分丌。1 p v 6 的组播地址被 定义的结构如图2 4 所示: g | _ 止2 l 丑! i 1 蓝耳俎圈趟甜蛐j 斓圆二二二二羔刈 i 丛! ! ! ! !i 旦罄g li s 9 鳇一li = = 鱼! 婴i 旦 图2 3i p v 6 组播地址结构 i p v 6 的地址共有1 2 8 位,其中组播地址占有1 2 5 6 的地址空叫。i p v 6 纽播 地址1 专单播地址的区别在与地址的高化宁节的值。虮果第个宁1 n 值是o x f f , 则表明该地址是一个组播地址。组播地址用j :代表 个纽播绸r 喙纲插组r ,j 以 包禽仟意多个主机) ,f i v i , 足某个单独的主机,所以自1 j 舀地址从能作为i | n 制电址。 组播地址的字段含义: 类型标识:i p v 6 组播地址由f f 开头来标识。 特征位字段( f l a g s ) :为4 个f l a g 组成的集合,高3 位被保留,且必须初始化 时设置为0 。第4 位f l a g 等于0 时表示一个永久分配的组播地址;等于l 时表示为 非永久分配的组播地址,这种地址作为一个临时的组播地址。 范围字段( s c o p e ) :这是一个4 比特长的组播范围值,用于限制组播组的范 围,未列出字段尚未分配。如图2 5 所示: 十六进制十进制i值 o 0 保留 ll 节点本地范围 22 链路本地范围 55 站点本地范围 88机构本地范围 e1 4 全球范围 f1 5 保留 表2 1i p v 6 组播地址范围字段 群组( g r o u p ) i d :包含11 2 比特,用来标识一个组播组,这个组群可能是水 久的,也可能是暂时的。一个永久分配的组播地址含义是独立于范围字段值的。 非永久分配的组播地址仅仅在给定的范围内有意义。 2 2 3 i p v 4e t h e r n e t 组播地址 关于i p v 4 组播地址向以太网组播m a c 地址的映射,s t e v ed e e r i n g 首先提出。 i p 组播帧使用以0 x 0 1 0 0 5 e x x x x x x 的2 4 位前缀开头的m a c 层地址。其中这些 m a c 地址只有一半可以被i p 组播使用( 即将以太网地址的前2 4 位固定为 o l :0 0 :5 e :紧接着的一位固定为0 ,其它2 3 位用i p v 4 组播地址中的低2 3 位来填充) 。 因为所有的第三层i p 组播地址必须把3 2 位的前4 位设成0 x l l l 0 ,剩下的2 8 位作 为有意义的i p 组播地址信息必须映射成可用的只有2 3 位的m a c 地址,所以映射 并不具有唯一性。相同的组播m a c 地址也可以被用于其它3 1 个m 组播组,如果 其它3 1 个组里的任意一个在本地局域网活动,则主机收到任何一个其它组播组的 帧,主机必须考察每个帧的i p 头部进行确认。 2 2 4i p v 6e t h e r n e t 组播地址 关于i p v 6 组播地址向以太网组播m a c 地址的映射的方法是:m a c 组播地址 的高1 6 位规定为0 x 3 3 3 3 ,取出1 p v 6 组播地址的低3 2 比特作为组播m a c 地址的 低3 2 位,小于或等于3 2 比特的g r o u pi d 将会产生唯一的m a c 地址。由于i p v 6 组播地址映射到以太网组播m a c 地址的方式,建议从i p v 6 组播地址的低3 2 比特 分配g r o u pi d ,将其余的组i d 比特设置为0 。因为只使用低端的3 2 比特,所以每 个g r o u pi d 能够映射到一个唯一的网络接口组播m a c 地址。 2 3i p 组播分布树 在单播模型中,数据包通过网络沿着单一的路径从源主机向目的主机传递。 但是在组播模型中,源主机向具有相同组播组地址的接收主机( 这些主机已经申 请加入该组播组) 传递数据包。为了能够将数据包传递到所有接收者,网络使用 组播分布树描述i p 组播数据包在网络中经过的路径。组播分布树使源主机、i p 组 播数据包在网络中经过的路由器和组播组中的所有接收主机成为一个整体,使组 播数掘包经过组播分布树从源主机传输到接收者。因为组搔组成员可以动态的加 入和退出,所以组播分布树也必须动态更新。 根据构造方法的不同,组播分布树有两个基本模型:有源分布树( s o u r c e d i s t r i b u t i o n t r e e ) 和共享分布树( s h a r e d d i s t r i b u t i o n t r e e ) i t 4 】。 有源树也称为基于信源的树,是组播分布树最简单的形式。它是以组播源作 为有源树的根,有源树的分支形成通过网络到达接收主机的分布树,因为有源树 以最短的路径贯穿网络,所以也常称为最短路径树( s p t ) 。通常用( s ,g ) 来表 示s p t 树,其中s 代表组播源主机地址,g 代表组播组地址。组中如果存在多个 组播源,则必须为每个组播源构造一棵组播树。 由于不同组播源发出的数据包被分散到各自分离的组播树上,因此采用s p t 有利于网络中数据流量的均衡。同时,因为从组播源到每个接收者的路径最短, 所以端到端( e n d t o e n d ) 的时延性能较好,有利于流量大、时延性能要求较高的 实时媒体应用。然而,s p t 的缺点是:要为每个组播源构造各自的分布树,当数 据流量不大时,构造s p t 的开销相对较大。 共享树也称r p 树( r p t ) ,它是以组播网中组播路由器中的一个作为共享树 的公共根,这个根被称为汇合点( i 啦) ,并由r p 生成到达所有接收主机的树。使 用共享树时,发送组播信息的源主机不是直接向网络中发送组播信息,而是将组 播数据包进行封装后再单播到汇集点r p ,再由这个路由器沿着树将组播数据包转 发给所有的接收主机。共享树又可分为单向共享树和双向共享树。单向共享树指 组播数据包必须经过共享树从根发送到组播接收机。双向共享树指组播数据流可 以经过也可以不经过共享树到达接收者,并允许组播信息在两个方向流动。 使用共享树时,组播源不是直接向网络中发送组播信息,而是将组播数据包 进行封装后再单播到汇集点r p ,再由r p 沿i 心t 转发到组播接收者。同一组播组 的所有组播源都将要发送的数据先单播到i 心,一般用( t ,g ) 来描述r p t 树, 其中t 代表该组中所有的组播源主机,g 代表组播组地址。共享树在路由器所需 存储的状态信息的数量和路由树的总代价两个方面具有较好的性能。当组的规模 较大,而每个源主机的数据发送率较低时,使用共享树比较适合。但当通信量大 时,使用共享树将导致流量集中和根( r p ) 附近的瓶颈。 两种类型的分布树都有其自身的优点。有源树从组播源到接收者的路径最短, 所以时延性能较好。但是有源树需要为每个组播源构造单独的组播分布树,需要 在沿途的组播路由器维护大量的组播状态,因此构造s p t 的开销相对较大。共享 树构造相对容易,所需要维护的状态信息较少。但是当组播数据流量较大的时候, 根( r p ) 附近的需要转发的组播数据量加大,导致网络性能恶化。同时由于从源 到接收者不经过最短路径,组播数据包时延加大。 2 4i p 组播转发 组播数据包的转发机制和单播数据包的转发机制是不同的。组播源是向一个 组播组地址发送数据包,并不是单播中的一个具体目标主机地址,所以组播路由 器必须将组播数据包转发到多个接口上( 如果在该接口下游存在接收者) ,以便同 - 组播组的成员都能接收到数据包。但是如果组播路由器在其输出接口上接收到 组播数据包,就会产生组播路由循环的现象。逆向路径转发r p f ( r e v e r s ep a t h f o r w a r d i n g ) 是大多数现有组播路由协议中组播数据转发过程的基础。 2 4 1逆向路径转发 组播路由器在收到组播数据包后,必须根据组播数据包的源和目的地址确定 出组播分发树的上游和下游方向,把组播数据包沿着下游方向进行转发。这个操 作称作r p f 。r p f 的操作使用单播路由表来确定上游和下游的邻居节点。只有当 组播数据包是从上游邻居节点相对应的接口( 称作r p f 接口) 到达时,才向下游 转发。r p f 检查过程如下: 根据单播路由表确定上游和下游的邻居节点,检查组播数据包的源地址,确定 该数据包是否从上游邻居节点相对应的接口( 称作r p f 接口) 到达。 如果组播报文是从r p f 接口接收下来的,则r p f 检查成功,转发该数据包到 输出接口表上的所有接口,否则r p f 检查失败,丢弃该数据包。 2 4 2组播转发缓存 对于每一个输入组播数据包进行r p f 检查会导致较大的路由器性能损失,所 以路由器建立组播转发缓存。当组播转发缓存项建立的时候,通常出组播路由器 确定r p f 接口。然后将r p f 接口变成组播转发缓存项的输入接口。如果r p f 检查 所使用的路由表发生变化,必须重新计算r p f 接口,并更新组播转发缓存项。当 组播数据包到达时,首先查询组播缓存项中有无匹配项,如果存在,则在输入接 口一致性检查通过后就可以直接按照其输出接口列表进行转发,提高了组播转发 效率。 2 4 3t t l 阈值 由于大多数组播地址是动态的分布给申请的组播业务,所以有可能会出现一 个组播地址同时被多个组播应用所申请的情况,因此保证它们之间传播的范围不 会重叠是非常重要的。对于【p v 4 组播路由器,可以通过t t l 闽值来控制组播的转 发范围,每当组播路由器转发组播数据包,口包中的t t l ( t i m e t ol i v e ) 值都减 l 。如果组播数据包的t t l 值减到0 ,那么组播路由器将丢弃该组播数据包。t r l 闽值可以用于组播路由器的各个接口,以防止在该接1 :3 上转发低于t 1 l 阂值的组 播数据包,这样可对组播的范围加以控制。 范围初始t t l 值t t l 阈值 本地网 lh f k 区域 1 51 6 地区6 36 4 全球1 2 71 2 8 2 4 4组播权限边界 表2 2 典型的1 t l 边界值 除了使用t t l 阂值限制组播信息转发到域外,组播还提供另一种称为管理权 限的地址机制作为边界。 对于砰v 4 ,管理权限的组播地址是从2 3 9 0 0 。0 到2 3 9 2 5 5 2 5 5 2 5 5 ,这段地址 被认为是本地分配( 类似于单播中的1 9 2 1 6 8 x x x x x x ) ,这种机制使得在域内可 以重复使用组播地址,提高组播地址空间的利用率。对于i p v 6 ,组播地址规定了4 比特的范围字段,规定了组播域的作用范围,i p v 6 组播路由器不会向这个范围外 转发组播数据包。 3p i m - s m 工作原理 本章主要是从协议规范的角度按照建立共享树、源注册发送封装注舾消息、 r p 发送注册停止消息、共享树到最短路径树的切换、共享树剪枝、自举路由器 汇聚点选举等几个过程分析了p i m s m 协议基本工作机制。 3 1p i m 协议模式划分 p i m d m 密集模式的特点是总假定在子网中有组播业务接收者,因此组播信 息从一开始就被扩散到网络的所有站点;组播组成员在网络中密集分布,有足够 的带宽,因此密集模式中组播信息通过扩散技术传播至整个网络。属于数据驱动 型。密集模式主要用于一个有密集组成员的网络拓扑中,其主要缺点是网络中的 每台路由器必须保存大量的状态。 p i n s m 稀疏模式的特点是其假定在子网中没有组播业务接收者,除非有接收 者主动加入,否则默认不向网络中发送组播数据包。稀疏模式组播路由协议不代 表组播组中具有很少的成员,只是成员比较分散。其优点是能够有效的控制溺络 中的总流量和路由器豹负载。 3 2p i m s m 协议消息格式 p i m 协议版本2 协议号为1 0 3 ,协议包封装在i p 包中,p i m s m 协议具体的 包格式在r f c a 6 0 1 中详细进行了规范,如图3 1 、3 2 所示。 图3 1p m s m p v 4 包格式 图3 2p i m - s mi p v 6 包格式 p i m - s m 协议的各种消息都封装到p i m s m 包头中,不同的消息由p i m s m 包 头的类型字段识别,具体协议消息类型见表3 1 。 类型名称说明 0h e l l o “h e l i o ”消息 l r e g i s t e r注册消息 2 r e g i s t e r s t o p注册停止消息 3 j o i n p r u n e加入剪枝消息 4 b o o t s t r a p 引导消息 5a s s e r t 声明消息 8c a n d i d a t e r p - a d v e r t i s e m e n t候选r p 通告消息 表3 1p i m s m 协议消息类型 3 3p i m s m 协议实现机制 组播的完整工作过程按照协议主体可以分为两大部分:主机和路由器之间, 路由器和路由器之问。主机和路由器之间的通信过程由i g m p 或者m l d 协议完成, 路由器和路由器之间的通信由p i m s m 协议完成。我们将主要对后者进行分析, 按照接收者加入组播组后共享树的建立、封装注册消息的发送、注册停止消息的 发送、共享树到有源树的切换、共享树的剪枝和接收者离开组播组等具体过程来 分析协议工作机制,另外对b s r 、r p 选举以及工作机制进行一定分析【l ”。p i m s m 协议实现机制网络拓扑如图3 3 所示。 3 3 1建立共享树 图3 3p i m s m 协议实现机制网络拓扑 当一个主机( 例如上图中的h o s td ) 想要接收某个组播组g 的信息时,它首 先通过i g m p 或者m l d 协议向直连的p i m s m 组播路由器r o u t e re 发出组播成员 关系报告,然后该组的加入请求会沿着组播路由器向上一跳一跳地送到r p 。当加 入信息上行发送时,沿途的路由器r o u t e re 、r o u t e r d 都会建立该组的组播转发状 态,包括( * ,g ) 以及输出接口列表等,以便有需要的组播信息时可以沿着组播 树传送下去。此时,作为组播组g 的共享树已经在r p 和接收主机h o s td 之间构 造起来了。一旦该组播组有数据,则从r p 到接收者可以沿着此组播分布树转下至 h o s td 。共享树的建立过程如图3 4 所示。 图3 4 共享树的建立过程 3 3 2发送封装注册消息 由于p i m s m 使用单向共享树,组播信息只能沿着树向下流动,因此组播源 h o s ta 必须设法使他们的信息到达r p 以便信息能够从共享树流出。p i m s m 通过 让l i p 加入到源h o s ta 的s p t 来完成这一任务。但是首先l i p 必须知道源的存在, 因此利用需要一个源注册的过程。 和源直接相连的路由器d rr o u t e ra 收到源的组播信息包后,在自己的组播路 由表中建立一个( s ,g ) 的状态条目,然后将每一个组播信息包封装在一个p i m 注册消息中,将其单播到r p 。 3 3 3发送注册停止消息 r p 接收到p i m 注册消息时,先解封装此消息以便它能全面检查组播信息包。 如果信息包是来自一个存在的组播组( 即组的共享树加入已经被收到) ,r p 沿着 共享树向下转发信息包,然后r p 把s p t 加入到源以便它能收到( s ,g ) 原始的 信息而不是接收封装在p i m 注册消息内的消息。另一方面,如果没有组的共享树, r p 只是简单地丢弃组播信息包,而不向源h o s ta 发送加入消息。当发生如下任何 一种条件时,r p 向与源相连的d rr o u t e ra 发送注册停止( r e g i s t e rs t o p ) 消息: 当r p 通过源和r p 之间的( s ,g ) s p t 开始收到来自源的信息时。 如果r p 不需要信息是因为没有组的共享树存在。 d r 收到消息后在一个注册计时周期内停止发送注册消息,以后将停止转发或 者将源发送的信息只通过s p t 传送到r p 。封装注册,注册停止消息的发送过程如 图3 5 所示。 图3 5 发送封装注册脏册停止消息 3 3 4共享树切换至有源树 对于特定的源,p i m s m 能够把最后一跳d r ( 也就是直接与已经加入一个组 播组的接收主机相连的d r ) 从共享树切换到s p t ,这样可以减少网络延迟以及在 r p 上可能出现的阻塞。这一步通常通过指定一个利用带宽的s p t 阈值来实现。如 果超过了该阈值,最后一跳d r 加入s p t 。 为了实现r p t 到s p t 切换的目标,最后一跳d r r o u t e r e 向源h o s t a 发送一 条j o i n ( 加入) 消息。当与源直接相连的路由器r o u t e r a 收到j o i n 消息后,它把 加入消息的接口增加到它的组播转发表中( s ,g ) 条目的输出接口列表,这样就 加入到s p t ,此时源信息能够通过s p t 直接流到接收端。此过程如图3 6 所示。 3 3 5共享树剪枝 图3 6 共享树切换至有源树 为了避免接收者从s p t 和r p t 同时重复接收包浪费带宽,需要剪枝来自共享 树的源组播信息。接收端路由器r o u t e re 沿着通往r p 的共享树向上r o u t e r d 、r p 发送( s ,g ) p r u n e ( 剪枝) 消息。r p 在收到p r u n e 消息后,更新它的组播转发状 态,以便组播信息不会再向该接收端链路转发。剪枝切换至s p t 后的网络拓扑如 图3 7 所示: 图3 7 共享树剪枝后的网络拓扑 3 3 6接收者离开组播组 当主机h o s td 不想继续接收组播组g 的信息时,它向直接相连的p i m s m 路 由器发r o u t e re 出i g m p m l d 离开消息,剪枝消息沿着共享树上传,如果沿途的 路由嚣再没有接收者,则删除相应的状态信息。为了防止一个陈旧的p i m s m 转 发状态在路由器中滞留,此路由器设定一个有限的生存时间,超过此时间该状态 被删除。因此,路由器定期向r p 方向的上游邻居发送( 。,g ) 加入消息以刷新 共享树。 3 3 7自举路由器选举 为了使p i m s m 正常工作,在p i m s m 域内的所有路由器必须知道r p 地址。 p i m s m v 2 使用自举路由器( b s r :b o o t s t r a pr o u t e r ) 来解决这个问题。 首先将一个或多个路由器配置为候选b s r ( c - b s r ) ,并将自己的地址、优先 级信息发布到整个组播域,这样每个组播路由器都能收到该c b s r 的消息,之后 各组播路由器根据c b s r 的优先级选择出自己的b s r 。b s r 的作用是定期生成向 整个网络发布b o o t s t r a p 消息,该消息中包括一系列这样的c r p ( r p 组) 、优先级 以及相应的组地址等信息。b o o t s t r a p 消息一跳一跳地穿过网络流向所有路由器。 3 3 8汇聚点选举 将一个或多个路由器配置为候选r p ( c - r p ) ,c r p 将自己的信息单播至b s r , 信息中包含了该候选r p 的地址、优先级以及可以服务的组播组。 组播路由器接收b s r 发出的b o o t s t r a p 消息后,使用下列h a s h 算法将组地址 映射到一个可以为该组服务的c r p 。 诵器蝴双鹱褥溺蓊鳓刚撼鳓缓黪涵添鞫嘲戮羧麟霞鳓藩 l 霉黪国翩鲻鎏鬯瓢 其中c ( i ) 是r p 地址,m 是h a s h 掩码,一般是在b s r 消息中给出。 由于网络中所有的路由器接收相同的r p s e t 并运行相同的h a s h 算法,所以, 对同一个组播组选出的r p 将是相同的。 4p i m - s m 双栈设计 分析了p i m s m 双栈组播的具体实现机制,以模块化的形式分为用户层和核 心层两大部分,对核心层组播数据包的转发、处理封装注册消息以及用户层的协 议消息处理等模块进行了分析。 4 1i p v 4 6 组播区别 i p v 6 组播机制与i p v 4 组播机制是相同的,但是i p v 6 组播与i p v 4 组播相比较 具有以下优势,使之能够更好地解决当前组播发展面临的问题。 4 1 。1组播地址空间增大 i p v 6 的地址空间是1 2 8

温馨提示

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

评论

0/150

提交评论