已阅读5页,还剩57页未读, 继续免费阅读
(信息与通信工程专业论文)基于linux系统组播应用的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 本课题旨在通过对组播协议规范的分析研究和在基于l i n u x 内核的系统上编 码实现组播协议机制来设计一个成本低但效率可观并且应用广泛的组播路由器, 为迅速增加的组播应用和中小型组播服务供应商提供低廉而高效的产品。课题通 过对目前已投入应用的组播技术及正在开展的相关项目的研究对比,综合实现技 术灵活、提供服务可靠和开源系统成本低廉等多方面的优势,在仔细研究组播协 议规范细节和设计协议机制的处理流程,设计和实现了一个基于l i n u x 系统的组播 路由器。 课题研究首先综合分析了目前国内外组播应用研究相关现状,然后介绍了组 播的基本知识和原理,重点介绍了组播技术特有的组播分布树、逆向路径转发等 概念。随后对常用于口组播的i g m p 协议和p i m s m 协议规范进行了简要的讨论, 对这两个协议的所有重要机制进行了简要的介绍,并分析和对比了组播路由协议 以明确选择p i m s m 的原因。在实现阶段,通过研究已有的实现技术综合了多个 具体实现灵活、稳定和高效的优点,结合l i n u x 系统对高级语言编程支持的特性设 计了详细的组播机制实现的处理流程。在根据设计的流程编码实现协议的功能之 后,将程序在基于l i n u x 内核的系统上编译安装使系统成为一个具有组播路由功能 的路由器,并利用数台基于l i n u x 系统的组播路由器和虚拟机搭建针对组播路由器 的测试环境对程序的功能进行了测试。程序经过多次调试改进通过测试并且能准 确实现组播数据的处理功能,最终达成在基于l i n u x 的系统设计和实现低成本而效 率可观的组播路由器的预期目标。最后根据当前组播应用面临的网络安全问题提 出了一种安全组播的解决方案,并简明扼要的介绍了方案的总体结构、工作流程 和方案各组成部分及功能。在文章的末尾,我们对研究课题过程中所做的工作进 行总结并指出了工作中的不足,并对未来组播技术的前景做了展望。 关键字:i p 组播,i g m p 协议,p i m s m 协议,组播安全 a b s t r a c t a b s t r a c t t h et a r g e to ft h i st h e s i si st op r o v i d eac h e a pa n df i n eb u te f f e c t i v em u l t i c a s tr o u t e r , w h i c hi sr e a l i z e db yr e s e a r c h i n gt h em u l t i c a s tp r o t o c o l sa n dc o d i n go nt h el i n u xs y s t e m , f o rt h ew i d e l yu s e dm u l t i c a s ta p p l i c a t i o n s i tc a l la l s os e r e et h ei n c r e a s i n gm u l t i c a s t s e r v i c e sa sw e l la st h es m a l la n dm i d d l em u l t i c a s ts e r v i c e sp r o v i d e r t or e a l i z ei t ,w e r e s e a r c ht h ee x i s t e dm u l t i c a s tt e c h n o l o g i e sa n dt h eu n d e r g o i n gd e v e l o p m e n t ,a n d s u m m a r i z et h e i ra d v a n t a g e so ff l e x i b i f i t y ,r e l i a b l ea n dc h e a pt od e s i g nt h ep r o t o c o l s c h e m e sa n dc o d i n gt h ep r o c e d u r eo nt h el i n u xs y s t e m t h i st h e s i sf i r s t l yi n t r o d u c e st h eb a s i ck n o w l e d g ea n dp r i n c i p a l sb r i e f l y ,a r i dt h e n e x p l a i n st h ec o n c e p t so fs p t 1 冲ta n dr p f w h i c ha r eu n i q u et om u l t i c a s t t h e nw e d i s c u s st h ep r o t o c o l si g m pa n dp i m - s m ,w h i c ha r ee s s e n t i a lt or e a l i z em u l t i c a s t b e f o r ed i s c u s s i n gp i m s m ,w ea n a l y z ea n dc o m p a r ea l lk i n d so fm u l t i c a s tr o u t i n g p r o t o c o l ,d v m r p ,m o s p f ,p i m - d m ,c b ta n dp i m - s m t oc o n c l u d et h er e a s o nw h y w ec h o o s ep i m - s m a f t e rt h ec o m p a r i s o nw ei l l u s t r a t et h ed e t a i lo ft h et w op r o t o c o l st o h e l pu sr e a l i z et h er o u t i n gp r o g r a ma c c u r a t e l yi n t h ef o l l o w i n gc h a p t e r a f t e rt h e d i s c u s s i n g ,w ec o d e0 1 1t h ef e d o r ac o r e7s y s t e mt or e a l i z et h ei g m pa n dp i m - s m a c c o r d i n gt ot h er e s e a r c ho ff o r m e rr e s u l t sa n do u rs u m m a r yo ft h e i ra d v a n t a g e s w e a l s oi l l u s t r a t et h ep r o c e d u r eo fp r o c e s s i n gt h ep r o t o c o ld a t u m a f t e rt h er e a l i z a t i o n ,w e u s es o m el i n u xs y s t e m s ,w h i c hh a v eb e e ni n s t a l l e do u rp r o g r a m ,t oe s t a b l i s hat e s t i n g e n v i r o n m e n tt od e b u ga n dt e s tt h ea c c u r a c yo fo u rm u l t i c a s tr o u t e r f i n a l l yt h ep r o g r a m p a s s e dt h et e s ta n dw ec o m eu pt oo u re x p e c t a t i o n t h ef o l l o w i n gc h a p t e rw e i n t r o d u c e as e c u r i t ys c h e m ef o rm u l t i c a s ta p p l i c a t i o n s w ei n t r o d u c et h ei n f r a s t r u c t u r ea n de a c h p a ns e p a r a t e l y i nt h ee n d ,w es u m m a r i z et h ew o r kw eh a v ed o n ea n dw e n e e dt od oi n t h ef u t u r e k e y w o r d s :i pm u l t i c a s t ,i g m p ,p i m - s m ,m u l t i c a s ts e c u r i t y 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名: 日期:川年,月;日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名: 导师签名:写筮童 日期。弘夕年厂月多日 第一章前言 1 1 课题的提出 第一章前言 随着互联网的快速发展,网络音视频广播、网络视频会议、远程教学、远程 医疗等实时网络应用也迅速普及【l 】。以上这些实时应用的共同特征都是一对多或多 对多的大量数据传输通信,而最初的网络是为非大量数据传输而设计的一对一的 单播通信模式,这种设计也是保证数据传输的可靠性,英应的传输协议也多是点 到点的网络协议【2 】。如果把最初设计的单播技术应用直接应用在传统网络的点到点 的传输模式上,将会急剧增加网络负载,造成严重的网络延时,导致带宽被大量 占用和网络拥塞。为了避免这种严重不良后果,通常通过以下几种方案来解决问 题 3 】: ( 1 ) 增加网络带宽; ( 2 ) 服务器的分散与集群,均衡网络流量,减轻主干网络的瓶颈; ( 3 ) 采用保证服务质量的q o s ,将带宽预留给特定应用【2 刀; ( 4 ) 摒弃单播传输而使用组播传输模式; 对比以上几种解决方案可知,前三种都是单播通信模式下的解决方案,而最 后一种是组播通信模式下的方案,单播、组播和广播通信模式的之间区别我们将 在第二章中详细说明,在此先不讨论。在单播通信模式下,源p 主机用地址作 为目的地标识将数据发往特定主机。从主机发出的每个数据包在通过一系列的路 由器或交换机转发之后都会传送给特定的目的主机【3 1 。多个不同p 地址主的用户 想同时得到这个数据包几乎不可能,除非源主机向每个希望得到某个数据包的用 户单独建立一个连接和发送一份数据【4 】。但是这种冗余的建立连接和多次发送的代 价是巨大的。首先是发送数据的源主机将会有沉重的负担,因为源主机需要对每 一个数据发送请求都要做出响应,这会占用源主机的大量的处理时间;其次冗余 传输对源主机到目主机的路径上的路由器和交换机的性能也会有更高的要求以满 足大量的数据传输。比较而言,单一主机在采用组播通信模式发送数据包到网络 中的多个主机上时,多个接受端主机可以用一个特定的口地址即组播组地址来标 识,而发送端主机却只需要发一份数据便可让数据到达所有的接受端主机。在组 播传输过程种,支持组播的路由器会根据自身系统种的组播路由复制和转发组播 电子科技大学硕士学位论文 数据到所有具有相同组播地址应用的主机上。综上分析可知,采用组播通信后单 台发送方主机可以承担大量数据的发送而不会产生很大延迟,因此这种数据传送 方式可以满足远程医疗、视频会议、多媒体以及网络游戏等网络应用的大数据量 传输的要求。组播技术的应用也在这些业务的需求和推动下得到了迅速的发展和 普及,这也是我们提出开发一个组播路由程序模块课题的需求背景。 在组播技术普及的同时,基于l i n u x 内核的系统的应用也越来越多。这不仅仅 是因为基于开源l i n u x 内核的系统的更廉价,而且还因为l i n u x 内核协议栈在支持 网络功能时的突出的稳定性、高效和灵活性【5 】,正是这些特性使得基于l i n u x 系统 的网络服务器也在迅速增加【6 】。正是基于l i n u x 系统支持网络应用迅速普及以及该 系统天生的对c c 卜 语言的支持【7 1 ,所以我们最终选择在基于l i n u x 系统上采用 c 圮+ + 高级语言进行课题的实践。 1 2 课题研究的现状和意义 1 2 1组播历史 追溯组播技术的历史,s t e v ed e e r i n g 博士于1 9 8 8 年在他的博士论文中最早提 出了p 组播的概念,然后他又在1 9 8 9 年对标准的口网络第三层协议进行扩展并 提出了口组播协议规科8 1 ,之后他又在1 9 9 2 年作为核一l , i 程技术人员帮助t f 组建了世界上第一个组播网络一组播主干网m b o n e ,并且使得i e t f 于当年就利用 该网络成功地举行了一次世界范围的音频会议。尽管组播技术的出现较早,但前 期发展还是很缓慢的,其主要原因是组播通信模式需要维持相当复杂的路由状态, 而且还要求路由器能提供每个组播组和每个源的状态信息。而且随着英特网应用 的增长和网络的发展,互联网也将发展得越来越庞大和复杂,这给组播技术的持 续深入发展也带来了更大的困难。直到后来出现了一些设计巧妙高效的组播路由 协议( 如协议无关组播协议的密集模式和稀疏模式) ,这才使得组播数据包能准确确 而又迅速地发送给组播组内的众多接收者,从而也让基于组播技术的应用开始迅 速增加和发展。 1 2 2 组播的应用领域 近几年,由于互联网的深入发展以及组播技术和应用的不断改进,组播的应 用范围也出现了持续的扩展,目前大致上有以下应用方面【1 0 】: 2 第一章前言 ( 1 ) 多媒体应用 在网络多媒体中的应用是组播目前最主要的应用领域,组播在多媒体中的应 用主要体现在一对多或多对多的音频或音频视频会议上。音频会议允许多个会议 参加者交互共享音频。音频视频会议可以实现多个参与者交互共享音频视频。在 音频视频会议应用中已经有许多成熟系统得到开发和应用。 ( 2 ) 数据分发 数据分发是p 组播应用的一个新热点。通过使用口组播,可能采用“推 模 式进行文件和数据库的更新,可以实现对一点数据的多点备份或一份数据发送实 现多点的数据更新和软件的升级。由于数据的分发要求数据传送的正确率较高, 但组播是靠u d p 协议来传送,并不保证数据的可靠性,这意味着口组播数据报在 传输中可能丢失、延迟、重复以及乱序到达,因此可靠的组播传输仍是一个有待 研究的领域,d 组播在数据分发方面的应用也有一定的限制,尤其是在跨域间的 组播,数据的可靠性更不能保证。 ( 3 ) 实时数据的组播 实时数据组播是口组播技术应用比较广的领域。视频点播、体育或其他节目 在网上的直播等都属于这一应用领域。另外一个典型的例子就是在证券交易所中 股票信息到交易大厅各个工作站的数据分发。 ( 4 ) 网络游戏 网络游戏已经成为当前网络上一个相当有前途的产业,越来越多的公司开始 投身于网络游戏的开发与运营。但目前的所有网络游戏都是基于点到点的连线方 式,当连接用户数量较多时,网游服务器的负荷比较重,对网络的带宽消耗也比 较大,这就使得每台网游服务器同时能提的连接量有很大的限制。使用p 组播技 术可以在很大程度上减少网络负载,增加服务器可同时支持上线玩家的数量,使 得成千上万的玩家通过i n t e m e t 在游戏中同时战斗的梦想成为现实。 1 2 3国内外组播应用的现状及课题的提出 如今,应用需求推进组播技术的研究和发展,实现组播功能的研究也从未停 止过。从1 9 8 8 年提出组播概念并初步实现,至今国内外仍有很多研究在进行着。 国外典型的研究项目有: ( 1 ) e s m e s m 是c m u ( 卡耐基梅隆大学) 开展的一个组播研究项目,是目前较为成功的 3 电子科技大学硕士学位论文 一个项目。2 0 0 0 年,e s m 的研究表明,在端系统中实现组播功能的体系结构是可 行的,可以支持组成员在几百范围内、分布稀疏的、较小规模的多方通信。2 0 0 1 年,通过在因特网中实际运行基于e s m 的视频会议,验证了e s m 采用的自组织 协议可以在动态的、异构的因特网中支持较小规模的视频应用。 ( 2 ) o v e r c a s t o v e r c a s t 是在c i s c o 公司支持下开展的一个研究项目,是解决因特网内容分布 的一个体系结构,实现可靠的组播业务。通过在网络中战略性地部署o v e r c a s t 节 点,然后由应用层组播机制将该节点组成一个骨干转发网络,能够以可靠的方式 实现内容的分发。o v e r c a s t 和s c a :t t e r c a s t 思想类似,采用在网络边界部署应用层组 播节点组成一个业务网络的策略,两者在实现应用层组网的机制不同,并且 o v e r c a s t 侧重于实现组播数据的可靠分发。 ( 3 ) x o r p x o r p ( e x t e n s i b l eo p e nr o u t e rp l a t f o r m ) 项目是由加利福尼亚伯克利大学国 际计算机科学委员会发起,由微软、h n e l 和m 等公司资助的一个项目,该项目 是出于对网络的测试和研究目的,最大特性是与平台无关的极强可扩充性机制, 其中包括良好的组播功能实现。目前该项目还在进一步的更新和完善之中。 另外,国外也有一些其他的研究项目,如网络设备巨头思科公司在组播方面 的研发项目,还有b e r k e l e y 大学的v i e 和r a t ,以及m a s h 等都已经开发一定时间, 并在使用了。 国内在该领域的研究主要集中在有政府大力支持的科研机构和网络设备商华 为公司、中兴等公司。如国家8 6 3 计划项目“基于三网融合的网络连试、规模试 验和评估 。该课题的研究目标是通过对基于三网融合的网络连试、规模测试和 评估,验证网络相关的功能、性能、协议、业务和应用开展方面能力以及可靠性、 可依赖性、安全性和融合性。课题主要研究内容是研究基于三网融合的大规模网 络测试评估技术;针对网络相关功能、性能、协议、业务和应用开展方面能力以 及可靠性、可依赖性、安全性、融合性等,制定测试评估方法及实施方案;对覆 盖真实用户的试验网络进行大规模评估与测试。具体研究内容如下: ( 1 ) 研究网络测试评估技术:研究大规模网络网络层性能、协议、接口、网 管等测试方法与评估方法:研究包括p 2 p 组播在内的混合组播测试评估方法;研 究业务和应用的性能和功能测试评估方法;研究可靠性、可依赖性、安全性、融 合性测试和评估方法; ( 2 ) 制定性能、功能以及网络安全可信的评估方案:制定大规模可信网络的 4 第一章前言 协议、功能、性能、组播、业务和应用开展、可靠性、可依赖性、安全性以及融 合性的测试评估方案; ( 3 ) 组织网络连试,验证网络能力,互联互通方面能力以及业务承载能力; ( 4 ) 根据所制定的测试评估方案,对网络进行大规模的测试和评估。 同样,另一个国家8 6 3 项目,系列化低成本以太网接入单元( e m d 1 2 ) ,也 将组播的研究列为重点研究对象。该项目的研究目标是研究电信级、低成本以太 网接入汇聚平台关键技术,包括可扩展的系统架构、高速高密以太网接口、大容 量交换网络、以太网o a m & a p s 等。研制系列化以太网交换设备,提供硬件线 速转发、电信级以太网接口特性、服务质量控制、组播控制、以太网o a m 和设备 保护等特性,支撑实现包括p t v 、数据接入和话音等业务。提供自主知识产权的 a s i c 芯片,满足低成本应用要求。提交相关专利。其主要研究内容是研究低成本 以太网接入汇聚平台的体系结构和模块化设计,保证业务的灵活支持。通过a s i c 套片的设计和实现,支持设备的系列化、低成本,提供高速高密度以太网接口, 并通过扩展设计可支持电信以太网业务特性。另外有上海交通大学、信息产业部 电信传输所、中国电信北京研究院、上海电信研究院、中兴通讯、烽火、华为、 北京邮电大学、清华大学等单位参与的国家“8 6 3 项目:a s o n 组播技术的研究 及应用已经在光网络上实现高速组播并由相关公司投入生产。国内头号网络设备 厂商“华为”公司的路由产品对组播也有良好的支持功能【2 6 】,同时,也在投入资 源在改进原有组播技术以使其生产的设备适应现今网络下的广大需求。 综合分析以上已经投入应用和正在开展的项目,我们依据设计和实现低成本 但效率可观的组播路由器的最初目标和t o p s e c 防火墙的应用于组播用户分布广泛 的公网中的背景,分别吸取了o v e r c a s t 项目在网络边界部署应用层组播节点来提 供可靠组播服务的策略、x o r p 项目的平台无关性和极强的协议可扩充性以及基于 l i n u x 内核的开源系统网络功能稳定高效和成本低廉等各方面的优点,提出了在基 于l i n u x 系统上开展组播路由器的课题。 1 3 论文结构 本论文一共分为六章,每章阐述的问题如下: 第l 章首先阐述的课题提出的背景和研究意义,然后介绍该课题的应用领域 及国内外的研究现状。 第2 章首先对p 组播进行的基本概念和原理进行简要介绍,然后对组播技术 5 电子科技大学硕士学位论文 特有的几个数据转发机制进行了说明。在简要介绍了i g m p 协议的格式和重要机 制后。随后比较分析了组播路由协议并阐明了本课题选取p i m s m 协议作为项目 支撑协议的原因,并简要介绍了p i m s m 协议的报文格式和相关重要机制。 第3 章对支持组播的对英特网组管理协议( i g ) 和协议无关多播协议稀疏 模式( p m s m ) 的协议规范和运行机制进行了简要说明,并对这两个协议的相关 报文处理设计了处理流程和相应的代码实现。 第4 章中实现了对前一章的组播路由程序的命令行配置模块,并搭建了一个 测试环境对前一章的成果进行了功能性测试,同时还利用命令行配置模块对路由 协议的参数进行设置验证以达到用户可配置的目标,程序最终通过验证并达到了 预期目标。 第5 章中提出了一个组播安全的解决方案,设计了方案的组成部分及工作流 程,并对各部分的功能做了简要的介绍。 第6 章就是对本论文所有工作的总结以及对未来前景的展望。 6 第二章口组播概述 2 1 组播的定义 第二章i p 组播概述 组播中组代表一个或多个不定数目的主机组,而不是一个特定成员,应用种 用组播地址来表示组。代表多个目的主机的组播地址只能做目的地址而不能作为 源地址【1 1 】。实际上组播技术是一种单点点对多点的数据传送技术,可以在不需要 建立冗余连接和传送重复数据的基础上把数据从源准确有效传送到加入该组的多 个所有组成员。 2 2 几种传输方式的比较 前面已经提到单播和组播通信方式,实际应用中还有应用于局域网的广播方 式,这三种方式的比较如下。单播方式是点对点数据传输。发送数据的主机跟每 个要接收的主机都首先建立好一个传输连接专门用于这两点之间的通信。单播方 式中数据传输路径上的沿途所有路由器都需要建立和维护用于指导转发的路由信 息,路由器根据单播数据包中的目的地址查找相应的转发路由然后逐跳转发该数 据包。广播通信方式则是发送数据的主机向自身所在子网中的全部主机发送信息。 该方式下路由器只需识别该包类型后并不对广播数据进行转发,因此广播数据包 的传播范围不会超过本地具有网,路由器也不用广播数据的传输其建立和维护路 由信息。路由器对广播数据段的识别就是根据广播地址。本地网段的广播地址就 是将地址字段的主机部分全部标为1 。组播通信方式结合了单播传送可以跨网段、 广播数据可以多点传输的优点,依据组成员的需要建立和维护我们后面将要介绍 到的组播分布树将组播源发送的数据在组播分布树上有选择性的传输,让该组的 所有组成员主机能接收到同一份数据【1 7 】。这三种通信方式的比较见下图2 1 。 2 3 组播地址 路由器根据组播地址进行组播组成员的维护组播数据的传输。组播模式下数 据传输中使用网络层d 组播地址和数据链路层以太网组播m a c 地址两种组播地 7 电子科技大学硕士学位论文 _ _ 二= = 二二二一一 址。这是因为组播数据在网络层传输时用到i p 组播地址,同时由于所有i p 数据都 是封装在数据链路层的帧中进行发送,所以需要一个m a c 组播地址。t i i i 将分j u 讲述这两种地址及他们之间的关系。 单播示意图 组播示意图 广播示意图 t i t 2 1 单播、组播、和广播方式区别图示 2 3 1 网络层组播地址 在没有出现无分类地址之前,口v 4 地址被分成a 、b 、c 、d 和e5 种类别【1 2 】, 其中d 类被专门用于组播。根据地址分类方法,3 2 位长的d 类地址中首字节的前 8 第二章口组播概述 4 位被置为1 11 0 ,这也限定了网络层组播地址范围是从2 2 4 0 0 0 到 2 3 9 2 5 5 2 5 5 2 5 5 ,其结构如下表2 1 所示: 表2 - 1 组播地址前缀 字节1 字节2 字节3字节4 1 1 1 0 x x x xx x x x x x x xx x x x x x x xx x x x x x ) ( ) 【 在d 类地址又被分成3 类,其划分情况如下图2 - 2 所示: 2 3 900 02382 5 52 5 5 2 5 5 2 2 401 0 0 0 2 5 5 2 2 4000 主 t 2 2 4 t 上 图2 - 2 组播地址的划分图 其中i a n a 保留了预留组播地址为各种网络协议所使用,并且这部分空间中 的地址一旦分配就不再更改。下表2 2 列出了部分预留组播地址。 表2 - 2 部分预留的组播地址 2 2 4 0 0 1所有组播主机 2 2 4 0 0 2所有组播路由器 2 2 4 0 0 4d v m r p 路由器 2 2 4 0 0 5o s p f 路由器 2 2 4 0 0 1 3所有p i m 路由器 i a n a 同样保留了2 3 9 0 0 0 到2 3 9 2 5 5 2 5 5 2 5 5 的地址段用于私人组播领域的 管理权限地址。管理权限组播地址作为用于组织内部使用的组播地址,并且可以 在非同一网段上重用,网络管理员在合法区域内可以自由使用该范围内的地址而 不用担心会跟互联网上的其它地方的地址产生地址冲突【2 8 1 。 9 电子科技大学硕士学位论文 2 3 2 数据链路层组播地址 网络层的组播实现需要依赖数据链路层的实现,因此数据链路层也需要能识 别组播地址并进行组播转发。因此,在数据从网络层下传到数据链路层时,网络 接口就会把网络层组播地址转换成网络硬件能识别的链路层组播m a c 地址。由于 现今以太网是应用最为广泛的局域网,以下的原理讲述和代码实现我们就在以太 网中进行。 在太网中,与以1 1 1 0 作为网络层组播地址前缀类似,数据链路层以0 1 :0 0 :5 e 作为组播m a c 地址的前缀。网络层组播地址在映射成数据链路层m a c 地址时前 2 4 位保持不变,网络层地址的低2 3 位直接放到4 8 位m a c 地址的低2 3 位上并将 第2 4 位置0 t 1 3 】。显然,以上映射方式会产生问题,即d 类地址除了前缀的4 位是 组播地址公有,剩下的2 8 位就用来标识一个组播组。但是,这2 8 位中只有2 3 位 映射到了m a c 地址中,还有5 位并没有被映射进去,所以在所有网络层地址范围 内会有2 5 = 3 2 个地址映射到同一个数据链路层地址。这种地址映射的不确定性可能 会在使用中带来问题,例如:加入组播组g 1 :2 2 4 5 5 5 5 5 5 的成员m 它映射后的 m a c 地址为:0 1 :0 0 :5 e :5 5 :5 5 :5 5 。假设此时跟成员m 在同一网段的另一主机加入了 组播组g 2 :2 2 4 1 8 3 5 5 5 5 ,这样这两个组播组地址在映射成m a c 地址后相同。 尽管m 不需要g 2 中的信息,但是m 的网络接口卡仍然会收到g 2 的组播帧并传 递给上一层处理,这无疑加重了主机系统的处理负担。针对这个问题已经有了相 应的协议来解决,但是这不是我们的重点,在此我们并不赘述。 2 4 组播分布树 前面我们已经提到组播通信方式中组播数据的传输采用的是组播分布树方 式。在这种多点传输方式中,数据源发送的数据包需要经过多条不同的路径被分 发到所有的组播组成员主机,显然此时的路由器在选择下一跳时已不再像单播时 的路由是只需向一个接口转发的。为了向所有接收站点传送组播信息,我们使用 组播路由协议来建立引导组播数据分发的组播分布树。组播数据包在传输过程中, 组播路由器根据组播分布树及包的组地址将包从信源主机传输到所有组成员主 机。同时,由于组成员可以动态的加入和退出,路由器也需要根据协议规范动态 的更新组播分布树以确保能正确的引导组播数据的分发。下面将介绍组播分布树 的两个基本类型:有源分布树和共享分布树。 1 0 第二章d 组播概述 有源树是最初形式组播分布树。在此分发模型种,组播源作为有源树的根, 有源树的分支形成通过网络到达接收主机的分布树。因为有源树在建立传送路径 时都是选择的到所有接收者的最短路径,所以有源树也常称为最短路径树( s h o r t e s t p a t ht r e e ) 。路由表项种用( s ,g ) 来表示s p t 树,其中s 是组播源地址而g 是组播 组地址。组中如果存在多个组播源,则必须为每个组播源构造一棵组播树。 在采用有源树形式分发组播数据时,由于不同组播源都有自己的分布树可以 引导自身发送的组播数据的传输,因此可以较好的避免到某个或者多个接收者的 路径上发生网络拥塞。同时,由于从组播源到每个接收者都是最短路径,所以相 同条件下数据传输时间也是最少,这能很好的满足数据传输量大而且实施性要求 也较高的组播应用。但是,由于该形式的分布树要求所有在分发树中的路由器要 为每个组播源构造一个单独的分布树,当数据流量不大而组播源较多时会造成很 大的开销。 另一种组播分布树是共享树,它以组播网络中的某个组播路由器作为组播分 不树的公共根汇聚点( r e n d e z v o u sp o i n t 卜并由汇聚点创建到达所有组成员 主机的分布树。使用共享树时,信源主机首先采用某种单播方式将发送的组播数 据传递到汇聚点,然后汇聚点路由器沿共享树将组播数据转发给所有组播组成员。 共享树可分为单向共享树和双向共享树。 在路由器建立和维护共享树方面,与最短路径树用( s ,g ) 来描述类似,共 享树用( ,g ) 来描述。其中拳代表该组中所有的组播源主机,g 代表组播组地址【9 】。 共享树在路由器所需存储的状态信息的数量和路由树的总代价两个方面具有较好 的性能,并且当组的规模较大、而每个组播源的数据发送率较低时,选择共享树 是比较适合的。但通信量大时使用共享树将导致流量集中和公共根上的性能瓶颈。 2 5 组播数据转发 跟单播数据转发时直接查询路由然后确定路径的传递方式不同,组播源是向 一个组播组地址发送数据包,而不是单播中某个具体的目的主机地址,所以组播 路由器必须根据组播路由信息将组播数据转发到多个网络接口上,以保证同一组 播组的所有成员都能接收到组播数据。但是,如果路由器在其输出接口上接收到 由本借口转发出去的数据包,这就会产生组播路由循环现象。为避免这种现象的 发生,组播数据的传送采用的是逆向路径转发r e v e r s ep a t hf o r w a r d i n g 机制,下面 我们简要讲述逆向路径转发机制。 电子科技大学硕士学位论文 2 5 1 逆向路径转发 在组播数据的分发过程中,数据包到达组播路由器后组播路由器就根据数据 包的源地址和组播路由信息来判定是否对组播数据进行转发以及如何转发。当发 现接收到数据包的接口并不在到源的分发树路径上时路由器便丢弃该数据包,否 则便确定所以需要转发的组播接口往下游方向转发组播数据包。这个操作称作逆 向路径检测( i 冲f ) ,该操作的目的是为了防止组播数据在网络上循环转发。该操 作保证只有当组播数据包是从在分布树上的上游邻居节点的的接口到达时才会把 数据包向下游转发。具体检测过程是:首先,路由器检查到达的组播信息包的源 地址以确定此包经过的接口、这些接口是不是在从源到此的分布树上。然后,如 果信息包在能够返回到源站点的接口上收到,那么逆向路径检测成功,并在正确 的接口转发信息包。但是,如果逆向路径检测失败,就丢掉刚收到的信息包【2 】。 2 5 2 组播转发缓存 转发过程中,如果每到达个组播数据包就对该包进行逆向路径检测无疑会 导致组播数据传输的时间被延迟,也会影响路出器处理转发其他数据的性能。所 以路由器将在进行一次逆向路径检测后就将路由转发信息进行缓存以提高检测速 度。每个组播转发缓存可以表示一个最短路径树或共享树,该缓存项将一个输入 接口同零个或多个输出接口关联。在建立组播转发缓存项时,组播路由器确定出 逆向路径转发接口该缓存项的输入接口跟多个输出接口关联。当逆向路径检测所 使用的路由表发生变化时,路由器就根据具体所使用的路由协议重新计算逆向路 径接口并更新组播转发缓存项。 2 6 组播相关协议 自s t e v ed e e r i n g 提出组播概念后,就有许多相应的协议被提出来以规范和支 持组播技术。这些协议分为应用于主机和路由器间的主机组播协议以及路由器之 间的组播路由协议。目前组成员关系协议就是英特网组管理协议( i n t e m e tg r o u p m a n a g e m e n tp r o t o c o l ,i q 皿) ,在主机组播协议中都也一直在沿用i g m p 协议, 只是自s t e v ed e e r i n g 博士在1 9 8 9 年提出第1 版本后在,后来的工作者分别在1 9 9 7 年和2 0 0 2 年分别提出了i g m p 协议的第2 和第3 版本。目前第3 版本只在为数不 多的高性能设备上实现,而我们的项目目标在中低端消费群体,因此我们在本课 1 2 第二罩i p 组播概述 题中只讨论第1 和第2 版本。而在域内组播协议中,但是也有其他的一些组播路 由协议也已经投入应用,如距离向量组播路由协议( d v m r p ) i s o 、开放式组播最短 路径优先协议( m o s p f ) 1 3 1 】等和有核树组播路由协议( c b d 3 2 1 ,但是目前采用最多 的还是协议无关协议( v i m ) 。各协议都有自身的优点和应用范围,在本项目中我们 选取p i m s m 协议作为待实现的协议,所以本节中我们会对比分析这些协议并阐 明我们最终选取该协议的原因。 2 6 1i g 御协议 英特网组管理协议( 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 0 1 ) 运行于主机和本地 网段上的组播路由器之间,最早由r f c l l l 2 文档提供定义,它提供了有组播应用 的主机和组播路由器之间用于建立和维护组成员信息的机制。目前i g m p 共有 i g m p v l 、i g m p v 2 、i g m p v 3 三个版本,后续版本提供对以前版本的兼容。目前, 版本1 已没有使用了,但后续版本是在该版本基础上不断改进并对它提供了兼容, 现在的组播设备中广泛使用的是版本2 ,本论文所研究的课题最终的实现也是版本 2 。我们先简要介绍一下i g m p 版本1 和版本2 的格式作为我们开发处理该协议消 息的基础,协议的具体运行机制及各种报文处理的代码实现我们在下一章中再做 具体阐述。 2 6 1 1 版本1 的报文格式及消息类型 版本1 的消息长度为8 字节共“位,具体格式如下图2 3 所示。 034 78 1 5 1 63 1 p g m p 版本吲i g m p 类型l 未用 l 校验和 i i i _ _ _ o o _ _ _ _ _ o _ _ _ _ o 一 l! 垄! 塾苎丝竺i 图2 3 版本1 的消息格式 其中,版本号字段占4 位,标识所使用的i g m p 协议版本号,版本1 中为1 ; 消息类型字段占4 位,标识传输的i g m p 协议消息类型,根据消息类型是成员查 询还是报告分别设置为1 和2 :校验和字段占1 6 位长度,是i g m p 消息的补码和 的补码,计算校验和之前将该字段设置o ;组播地址字段占3 2 位,根据报文是用 于成员关系查询或是出于关系报告分别将此字段设置为0 或主机所加入的组播组 地址。 2 6 1 2 版本2 报文格式及新特性 1 3 电子科技大学硕士学位论文 i g m p 协议版本2 在r f c 2 2 3 6 文档种进行了定义,i e t f 在1 9 9 7 年1 1 月批准 其为标准协议。版本2 的报文格式与不同于版本1 的格式,其新格式如下图2 _ 4 所示: 图2 - 4i g m p v 2 的消息格式 与版本1 的报文格式比较可知在版本2 中已经将版本1 的类型字段和版本字 段已经合并,并且将原来的保留字段设置为最大响应时间字段,其它字段则与版 本1 相同,所以我们只讨论该版本引入的变化。 ( 1 ) 消息类型字段占8 位,共有普遍查询和特定组查询两种成员关系查询、离 开组消息和成员关系报告四种类型,其中查询报文的类型值为0 x l l ,离开组消息 的类型值为0 x 1 7 ,成员关系报告消息的类型值为0 x 1 6 。同时为了兼容版本1 ,还 专门设置了版本1 的成员关系报告类型值为0 x 1 2 。 ( 2 ) 最大响应时间字段也占8 位,指定主机在收到路由器发送的查询消息后发 送成员关系报告作为相应所允许的最大延时。 ( 3 ) 组地址字段占3 2 为,在消息是普遍查询时将此字段设为0 ,消息是特定组 查询时设置为待查询的组地址。在离开消息中,该字段则被设置为主机要离开的 组播组地址。 i g m p 协议的规范和具体机制在此先不做介绍,在下一章的协议机制实现中我 们再具体介绍。 2 6 1 3i g m p 协议重要机制 i m g p 协议的功能就是用来管理本地网段的各种应用了组播服务的组成员主 机,管理功能依据下面几种重要机制来实现: 组成员的加入机制:用来在有主机想加入组播组时向本地i g m p 路由器发送 针对特定组的成员关系报告以启动查询路由器对该组状态的建立和维护; 组成员离开机制:用来在有组成员主机退出已经加入的组播组时向i g m p 查 询路由器报告自身要离开。其实版本一中主机离开时并没有发送该报告,因为这 样造成了一些问题,所以在版本二中专门提出了该机制: 成员关系查询相应机制:该机制被查询者路由器用来更新组成员状态以维持 1 4 第二章d 组播概述 组播功能的正确运行。该机制种,查询者路由器发送查询消息,本网段内组成员 主机按照协议规定好的方式对该查询进行相应以使得路由器获得最新最准确的组 成员状态,从而保证组播数据能准确分发。 查询者路由器选举机制:在多路访问中选定一个i g m p 协议作为查询者路由 器。版本一中并没有针对该问题的解决办法而是交由上层协议来进行,版本二中 对该问题进行了专门的处理。 以上这些机制都是i m g p 协议最重要的运行机制,在此我们先做简要介绍, 在下一章的实现中我们将更详细的介绍这些机制,并随后进行代码实现。 2 6 2 组播路由协议分析与比较 前面我们提到组播路由协议有很多,但是我们最终选定p i m s m 协议作为本 项目的实现协议,这种选择是基于下面的比较分析和考虑的。 组播路由协议运行在网络层,其任务是为了构造组播的分布树用以准确传送 组播数据。组播路由协议分为密集模式和稀疏模式两类。下面我们将分析这两类 已有的组播路由协议,并综合对比各协议的优缺点,指明我们在实现预期目标的 过程中选择p i m s m 的原因和意义。 2 6 2 1组播路由协议的密集模式 组播路由协议的密集模式主要有协议无关组播路由协议密集模式( p i m d m ) 、 距离向量组播路由协议( d v m r 9 ) 和开放式组播最短路径优先( m o s p f ) 。该模式下 协议运行时首先假定每个子网中都有需要组播数据的主机,组播信息从一开始就 沿着路由器扩散所有组播路由器直连的网络。没有接收者的网段组播路由器要发 送剪枝消息进行剪枝以避免本网段内不必要的流量,在之前剪枝的网段上如果有 出现接收者则路由器就再发送嫁接消息来转发组播数据。该模式下组播分布树采 用源分布树或最短路径树作为从信息源到接收方传送组播信息的唯一方式。该模 式下的协议主要用于发送者与接收者距离较近,如在同一网段中,接收者很多的 环境,主要介绍如下密集模式协议。 距离向量组播路由协议( d v m r p ) 【3 0 】。该协议是最先得到普遍应用的组播路 由协议,最初建设的m b o n e 主干网是也是使用的该协议。其运行要基于路由信 息协议( 即r i p 协议) ,他们之间的主要差别在于路由信息协议中路由计算是要 计算出一个最佳的下跳路由器,而d v m r p 协议则是为保证逆向路径检测成功 要计算出准确的逆向路径检测接口。d v m r p 协议通常也被称为“广播剪枝”的 电
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF 2465-2026天然气在线硫化氢气体检测仪校准规范
- T/SSBME 2-2025家用LED紫外治疗设备
- T/SATA 081-2024食品中二氧化硫残留量的测定 间断化学分析法
- T/CSWSL 044-2025猪舍吊装轨道巡检机器人
- T/CI 080-2023富有机硒脐橙生产技术规程
- T/CSPSTC 185-2025深埋地下管道数字化综合探测技术规程
- T/SSX 012-2024发酵人参粉
- 2025-2026学年辽宁省营口市初中数学九年级期末上册高分快速提分卷详细参考解析
- Photoshop CS2 试题及详细参考答案
- 2025-2026学年四川省广元市初中数学八年级期末下册点睛提升黑金试题(附答案)
- 2026年学校德育体系实施方案-五维融通,三阶递进
- 山东省菏泽市菏泽经济技术开发区2026-2027学年七年级上学期10月阶段检测语文试题(含答案)
- 2026年广东省公需课《加快培育发展新质生产力》考试答案
- 2026年农田废弃物的资源化利用路径
- 2026年公路水运工程助理试验检测师练习题附答案
- 2026年成人高考专升本政治真题试卷及完整答案解析(官方标准)
- 检验检测机构法律法规政策培训测试题及答案
- 中远海运集团招聘笔试题目及答案
- 2026中国电信历年考试笔试题库及答案
- 2026年吉林大学中日联谊医院专业技术系列人员招聘笔试参考题库及答案详解
- 护理副高职称评审答辩自我介绍模板
评论
0/150
提交评论