(计算机软件与理论专业论文)p2p实时流媒体服务器的设计与实现.pdf_第1页
(计算机软件与理论专业论文)p2p实时流媒体服务器的设计与实现.pdf_第2页
(计算机软件与理论专业论文)p2p实时流媒体服务器的设计与实现.pdf_第3页
(计算机软件与理论专业论文)p2p实时流媒体服务器的设计与实现.pdf_第4页
(计算机软件与理论专业论文)p2p实时流媒体服务器的设计与实现.pdf_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 p 2 p 流媒体技术是近年流行的网络多媒体传播技术。流媒体以其边播放边下 载的特点,大大减小了等待时延,同时也降低了对系统缓存的需求量。随着 i n t e m e t 的普及和w e b 访问的日益频繁,出现了视频点播v o d ( v i d e oo nd e m a n d ) 和实时流媒体传输服务。但这两种服务很多仍然以传统的客户端服务器( c s ) 体 系结构为基础,这种体系结构下,所有用户的流媒体服务完全只由服务器提供, 但随着用户的逐步增加,服务器的负载和压力也将急剧增加。在解决实时流媒体 传输的问题上,许多研究者提出了口组播技术,这个技术利用“一路发送,多路 共享黟的思想来减少数据包在网络中( i p 层) 的传输,从而减少网络带宽的耗用。 但因为是基于层的组播,所以该技术必须要得到底层路由器的支持。可是基于 简单原则和分层体系结构的要求,现实中很多路由器仍然不支持组播,因为这 会增加路由器用于保存分组信息导致的额外性能开销,从而影响报文转发这个主 流业务。 为了解决该问题,出现了基于p 2 p 技术的实时流媒体。它利用p 2 p 系统的高 容量、易扩展、廉价以及自组织等特点再与流媒体技术有机结合,从而得到了广 泛应用,比如当前主流的q q l i v e ,p p l i v e ,u u s e e 等。通过这种技术,可以大 大缓解中心服务器的压力,并具有良好的服务和扩展能力。但是和普通的p 2 p 应 用不同,在流媒体技术中,实时性占据着很重要的地位,所以p 2 p 流媒体技术需 要更好地分割、快速重传丢失的资源来满足实时性的要求。本文描述的p 2 p 实时 流媒体系统由p 2 p 实时流媒体服务器、t c p 代理和p 2 p 客户端构成。 本文主要对p 2 p 实时流媒体服务器的设计、实现和系统测试做较为全面的阐 述。该服务器既是数据源又是资源索引服务器,它着重从资源管理的角度实现了 流媒体数据的保存、分配和发送,并借鉴流媒体技术中的应用层组播模型以及 n a t 穿透模型来提供p 2 p 的传输支持。同时,作为原始数据源,该服务器在多通 道服务以及c s 和p 2 p 混合传输的问题上也进行了有益的探索。该系统能够应用 于许多场合,例如i p t v ,视频会议,以及现场直播等实时性要求高的地方。 关键字:p 2 p ,流媒体,n a t a b s t r a c t a b s t r a c t p 2 ps t r e a m i n gt e c h n o l o g yd e v e l o p e dq m c k l yi nr e c e n ty e a r s s t r e a m i n g t e c h n o l o g yc a l ls i g n i f i c a n t l yr e d u c et i m ed e l a ya n dm e m o r yr e q u i r e m e n tf o rt h ew h o l e m e d i af i l en e e dn o tc o m p l e t e l yd o w n l o a do nt h el o c a ld i s kw h e ns t r e a m i n gm e d i ai s p l a y e d a st h ei n t e r n e ta n dw e bs e r v i c eb e c o m eac o m m o n p l a c e , v i d e oo l ld e m a n d ( v o d ) a n d r e a lt i m es t r e a m i n gs e r v i c e sa p p e a r u n f o r t u n a t e l y , m a n ys t r e a m i n gs y s t e m s p r o v i d i n gt h ea b o v es e r v i c e ss t i l lf o l l o wt h et r a d i t i o n a lc l i e n t - s e r v e r ( c s ) p r i n c i p l ei n w h i c ha l lt h em e d i as e r v i c ei s 珊o v i d e db yt h es o r v o ro n l y u n d e rc sa r c h i t e c t u r e , t h e s e r v e r so v e r l o a dw o u l db ew o m e n e db ym o r ec l i e n t sj o i n ti ns y s t e m u n d e rt h i s c i r c u m s t a n c e , t a k i n gt h ew e a kp o i n t so fc si n t oa c c o u n t , an u m b e ro fr e s e a r c h e r s p r e s e n t e ds e v e r a ls o l u t i o n sf o rr e a lt i m es t r e a m i n gs y s t e m , f o ri n s t a n c e ,1 pm u l t i c a s t i n i pm u l t i c a s t , t h en e t w o r kk e e p so n l yo n ec o p yo fd a t ap a c k e to ni pl a y e ro ft c p i p , e a c hc l i e n tr e q u i r e st h ed a t at h a tc a ng e tt h ec o p yw i t h o u ta f f e c t i n gt h eo r i g i n a lo n e h o w e v e r , t h i sm e t h o dd o e sn o tg e te n o u g hs u p p o r tf r o mr o o t e rf o rv i o l a t i n gt h e p r i n c i p l eo fs i m p l i c i t yo ni pl a y e r c o n s i d e r i n gt h ea s p e c t sa b o v e ,t h ep 2 p - b a s e ds t r e a m i n gs y s t e mc o m e si n t ob e i n g t h i sb 1 1 do f s y s t e ma b s o r b st h ea d v a n t a g e so f b o t hp 2 pa n ds t r e a m i n gs y s t e m t h eh j i g h c a p a c i t yo fs e r v i c e ,e a s eo fs c a l a b i l i t y , l o w e rp r i c ea n ds e l f - o r g a n i z a t i o n , t h o s ef e a t u r e s p l u sn a te n a b l et h ep 2 p - b a s e ds t r e a m i n gs y s t e mw i d e l yu s e do ni n t e m e t ,s u c ha s q q l i v e , p p l i v ea n du u s e e e v e r yc l i e n ti nt h es y s t e mc a n e i t h e rb ed a t as u p p l i e ro r d a t ac o n s u m e r , a n di tc a ne v e nb et h eb o t hw h i c hi sd e c i d e db yt h en o d e ss e r v i c e c a p a b i l i t ya n dr e q u i r e m e n to ns t r e a m i n gm e d i a i nt h es a m et i m e ,s y s t e m sr e a lt i m e f e a t u r ei sq u i t ee m p h a s i z e d t h ep 2 pr e a lt i m es t r e a m i n gs e r v e rd e s c r i b e di nt h i s d i s s e r t a t i o nt o g e t h e rw i t l lt c pa g e n ta n dp 2 pc l i e n tc o m p o s et h ep 2 pr e a lt i m e s t r e a m i n gs y s t e m t h i ss y s t e mi n t r o d u c e st h em e c h a n i s mo fq u i c kr e t r a n s f e ro fl o s td a t a a n dp r o p e rp a r t i t i o no f d a t ap i e c ei no r d e rt oh e l pm e e t i n gr e a lt i m er e q u i r e m e n t t h em a i nt a s ki nt h i sd i s s e r t a t i o ni n c l u d e st h ed e s i g n , i m p l e m e n t a t i o na n dt e s to f t h ep 2 pr e a l t i m es t r e a m i n gs e r v e r a st h ed a t as o u r c ea n da l l o c a t o ro fp 2 pm e d i a , t h e s y s t e me m p h a s i z e st h es a v e , a l l o c a t i o na n dt r a n s m i s s i o no fs t r e a m i n gm e d i a a n di ta l s o a b s t r a c t m a k e sag o o da t t e m p ti nc o m b i n i n gt r a n s m i s s i o no fc sa n dp 2 pa n di tc o u l db ew i d e l y u s e di nt h eh i g hr e a lt i m er e q u i r i n gp l a c e ,s u c ha sv i d e oc o n f e r e n c ea n dl i v et v h l a d d i t i o n , t h es y s t e ma l s op u tn a tw h i c hi sv e r yc o m m o ni np 2 pa p p l i c a t i o ni n t o c o n s i d e r a t i o n k e y w o r d s :p 2 p ,s t r e a m i n g , n a t i i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名: 影敲玉 日期a g 年岁月斗日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:邀导师签名: 日期如8年譬月婢e l 第一章绪论 1 1 论文的研究背景 第一章绪论 计算机技术特别是网络技术的飞速发展,深刻地改变着人们的工作、生活和 思维。随着计算机处理能力的增强和宽带网络的普及,人们不再满足于传统的网 页浏览、文件下载、聊天等形式,而流媒体以其特有的娱乐性和交互性将成为推 动未来宽带发展的主要动力。但相对日益增长的用户需求而言,有限的网络带宽 和服务器的服务能力是制约流媒体发展的一大因素。然而,近年来新兴的技术合 理地利用了网络上的空闲资源,特别是p 2 p 技术的出现,为解决单个服务器带宽 和计算能力的限制提出了一个良好的解决方案。 同时,随着网络视频时代的到来,网络带宽的增大,已经可以为高清晰视频 信号提供高速的网络通道。一些最新压缩技术的出现,使得能以更窄的带宽传送 更多的视频信号。在人们日常通信领域,多媒体通讯己逐渐成为人们之间信息交 流的重要手段。同时,多媒体也促进了很多网络产业的发展,包括常见的网络多 媒体业务,视频会议、远程教育、无线流媒体等。随着越来越多的流媒体业务出 现,使得人们在享受流媒体提供服务的时候对服务质量和服务方式提出了越来越 高的要求。这个时候,基于p 2 p 的实时流媒体解决方案就应运而生了,它结合了 p 2 p 技术【1 】【2 】【3 】和流媒体技术【4 】的优点,每个参与者既作为资源提供者也作为资源 消费者,使p 2 p 技术在流媒体领域得到了极大发展,同时为促进p 2 p 技术在更多 行业的产业化起了至关重要的推动作用。本文阐述的p 2 p 实时流媒体服务器在管 理流媒体资源以及对c s 与p 2 p 传输相结合的多通道流媒体服务器模式进行了有 益的尝试和探索。 1 2 流媒体传输当前的解决方案 1 2 1i p 组播 i p 组播【5 】【6 】是指在t c p i p 网络体系结构【7 】嗍中,将数据包以尽力而为( b e s t e f f o r t ) 的方式发送到某个节点集合,这个节点集合就称为组播组( m u l t i c a s t 电子科技大学硕士学位论文 g r o u p ) 。i p 组播的基本思想是数据源只向网络中发送一份数据报文,并以该报文 中的目的地址作为组播地址。组播组中的所有成员都能够从网络中接收到该报文 的拷贝,而且只有组播组内的主机可以接收组播报文。i p 组播技术有效地解决了 单点发送多点接收的问题,实现了m 网络中点到多点的高效数据传送,能够大量 节约网络带宽、降低网络负载。 除了实现点到多点的数据传送,口组播还可以利用网络的组播特性方便地提 供一些新的增值业务,包括在线直播、网络电视、远程教育、远程医疗、网络电 台、实时视频会议等服务领域。口组播到现在已经经历了2 0 年的发展,许多国 际组织对m 组播的技术和业务做了大量的工作。相信随着互联网建设的迅猛发展 和新业务的不断推出,p 组播也会走向成熟。也必将随着网络多媒体业务的日渐 增多,母组播将引来巨大的商机和市场前景。 但是当前实际的情况是,m 组播还没有清晰的商业计费模型,网络运营商之 间有不同的利益取向。目前骨干网运营商以带宽使用获得收益,而对网络承载的 是i p 单播业务还是i p 组播业务并没有进行区分,所以也就没有促使运营商在路 由器中增加对口组播支持的原动力。正是因为i p 组播业务需要得到路由器的支 持,所以它至今没有能在因特网上得到大范围使用。再加上基于口组播的上层应 用很少,所以相对于基于其他体系结构的网络应用,口组播发展得非常缓慢。 1 2 2 应用层组播 针对口组播在因特网中面临的困境,研究者开始反思口组播体系结构本身 的问题,提出了把复杂的组播功能放在端系统的思想。端系统实现组播业务就是 将组播的功能在t c p i p 体系结构中的应用层的实现。所以端系统组播又称为应 用层组播【9 l 【1 0 l ( a p p l i c a t i o nl a y e rm u l t i c a s t ) 。在应用层组播网中的节点是组播成员, 所有数据的路由、复制、转发都由这些成员主机完成,成员主机之间构建一个位 于i p 网络层以上的、实现组播业务的逻辑网络,称为覆盖网络【l l 】【1 2 j ( o v e r l a y n e t w o r k ) 。主机利用自组织算法建立和维护覆盖网络。口组播的数据在i p 层经过 路由器,由路由器向对应的物理链路复制和转发,而应用层组播的数据则在端主 机复制并封装成普通的m 报文,然后交由i p 层的路由器转发。这个时候,路由 器并不知道该报文是组播报文,和处理普通报文一样,路由器根据i p 报文中的目 的地址,进行转发。并且转发过程中的逻辑链路可能经过同一条物理链路。 2 第一章绪论 通过应用层组播的方式,端系统可以避开网络层实现组播功能的许多难题: ( 1 ) 不需要路由器保持每个组的状态,减轻了路由器的负担,符合网络层功能简单 的原则,同时解决了业务的扩展性问题,通过在端系统中维护每个组的状态,使 得底层网络可以支持大量的组播组。( 2 ) 组播应用可以随时部署,不需要底层网络 设备的支持,尤其是路由器的支持。( 3 ) 可以使组播的控制简单化,因为应用层组 播建立在传输层以上,利用分层体系结构服务调用的思想,传输数据的时候可以 直接使用t c p 、u d p 套接字,而不用关注底层网络究竟是如何保证数据传送的。 在应用层组播中,自组织算法是端系统快速稳定和实现网络传输的核心机 制,它的主要功能包括:周期性交换节点的状态信息,通报成员节点的状态;周 期性收集网络逻辑链路的带宽、时延等动态参数;动态地调整覆盖网络的拓扑结 构。 但是,应用层组播的局限也很明显:端系统对m 网络的拓扑结构了解有限, 在构建逻辑网络时,只能通过探测的方式获得一些网络性能参数,根据这些参数 来决定逻辑路由,不过这样选取的逻辑链路不一定是最优的,因为选取的不同的 逻辑链路在物理网络上却有可能是重合的,不能反映逻辑链路的数据传输质量, 而且这样不能发挥网络带宽分布化的优势。 1 2 3 内容分发网络( c d n ) 另一种解决流媒体服务扩展性的方案是在网络边缘部署代理缓存( p r o x y c a c h i n g ) 或内容分发网络【1 3 ( c d n ,c o n t e n td e l i v e r yn e t w o r k s ) ,流媒体服务器将 媒体内容以推的方式存放在代理缓存或c d n 服务器上。当客户请求流媒体服务 器时,可以直接从最近的代理缓存或c d n 服务器获得服务,而不必消耗远程服 务器的资源。这样可以减少网络中冗余数据的传输。核心思想就是将远程访问转 换为本地或就近访问,从而加快访问速度同时也减小耗用网络带宽。因为互联网 上传递的内容,大部分为重复的w e b 数据,c a c h e 服务器及应用c a c h i n g 技术的 网络设备,可大大优化数据链路性能,消除数据峰值访问造成的结点设备阻塞。 c a c h e 服务器具有缓存功能,大部分网页对象,如h t m l ,h t m ,g i f , b m p 等,在 一定时间内都不会发生改变。而网络中存在对这些对象的大量重复访问。这个时 候,如果有c a c h e 服务器的话就不必每次从原始网站传送这些对象,而只需通过 简单的有效性验证,传送几十字节的h e a d e r ,如果这些对象仍然有效即可将他们 在本地的副本直接传送给访问者。由于缓存服务器通常部署在靠近用户端,所以 3 电子科技大学硕士学位论文 能获得近似局域网的响应速度,并有效减少广域带宽的消耗。据统计,因特网上 8 0 的用户重复访问2 0 的资源,给缓存技术的应用提供了有力的理论依据。 需要注意的是,c a c h e 服务器的体系结构与w e b 服务器不同,c a c h e 服务器能 获得比w e b 服务器更高的性能,c a c h e 服务器不仅能提高响应速度,节约带宽, 对于加速w e b 服务器,有效减轻源服务器的负荷也是非常有效的。在实际应用 中,c a c h e 通常部署在服务器前端,作为w e b 服务器的前置机,从而提高w e b 服 务器的访问速度。如果多台c a c h e 加速服务器分布在不同地域,则需要通过有效 的机制管理来c a c h e 网络,根据负载平衡策略引导用户就近访问,实现全局负载 均的均衡。 然而妨碍c d n 应用的最大问题就是价格的高昂,c d n 固然解决了很多的网 络传输、服务质量等问题,但高昂的使用价格却不是每个人都能承受的。作为流 媒体服务,考虑到服务时间长以及使用者多元化等特点,价格低廉就显得格外重 要。这也是为什么c d n 没有大规模应用于流媒体服务的一个重要原因。 1 2 4p e e r - t o p e e r ( p 2 p ) 方式 与m 组播、应用层组播以及内容分发网络c d n 不同,p 2 p 方式下的流媒体 系统是自增长的。单个节点的服务能力有限,但是随着加入节点增多,成为资源 提供者的节点数目也逐渐增加,这样系统的容量将会越来越大。p 2 p 方式下的流 媒体和传统的c s 方式有很大的区别。传统的分布式多媒体系统一般是基于c s 模式,用户请求服务的时候,通过单播的方式和每个流媒体服务器建立连接。由 于流媒体服务具有高宽带、长时间等特点,随着用户数目的持续增多,传统c s 服务器的带宽很快被耗完。 而p 2 p 流媒体系统借鉴了应用层组播分层管理的思想,比如把节点按照服务 能力组织成一棵组播树,利于节点的管理。在实际应用方面,低廉的使用价格使 得p 2 p 方式的流媒体得到广泛应用,和c d n 不同,p 2 p 不需要昂贵的c d n 设 备,也不需要特别强大的服务器,而是本着“我为人人,人人为我 的思想,它 只需要从多个其他节点异步获取资源片,再经过简单的组装就可以满足要求。正 因为基于p 2 p 方式的流媒体技术很好的解决了传统流媒体的各种不足,才使p 2 p 技术得到了广泛的应用和发展,各大公司机构也纷纷开发了基于p 2 p 方式的流媒 体应用程序,如q q l i v e 、p p l i v e 、u s e e 等。 4 第一章绪论 1 3p 2 p 实时流媒体服务器开发的目的和指标 本文描述的p 2 p 实时流媒体系统是作者在研究生期间参与的一个预研项目。 整个系统分成了p 2 p 实时流媒体服务器、t c p 代理、p 2 p 客户端三个部分。本文 主要描述p 2 p 实时流媒体服务器的设计、实现和系统测试过程。p 2 p 实时流媒体 服务器作为数据源和资源索引服务器,采用德加拉【1 4 l a v e 6 0 0 0 系列的视频压缩卡 作为数据源,实现了数据采集,封装,缓存和发送的整个管理过程。该服务器分 为8 个子系统,本文将分别讨论每个子系统的设计思想和实现方法,并给出部分 关键数据结构和类的定义以及部分流程步骤。 作为预研项目,本系统从资源管理的角度构建支持p 2 p 传输的、多通道的实 时流媒体服务器,并和t c p 代理,p 2 p 客户端一起构建p 2 p 实时流媒体系统。 本次预研项目的目的是探索商业运营模式。根据预研需求,p 2 p 实时流媒体 服务器位于私网内,通过服务租赁的方式让公网中的运营商代理服务,客户端通 过公网运营商间接、透明地从流媒体服务器获取流媒体资源,并按照p 2 p 策略在 多个客户端之间分发、共享,而且需要保证一定的实时性。 从技术指标上看,p 2 p 实时流媒体服务器应该在n a t 穿透,多通道并发服务 以及网络传输等方面进行有益的探索和尝试,要求能够和路由器普通配置下的主 机进行u d p 穿透,多个压缩服务通道并发、独立地工作,以及为客户端的p 2 p 策略提供良好的支持和保证一定的实时性。根据第五章系统测试部分的测试结果 表明,在n a t 穿透、多通道、数据源压缩、网络传输以及实时性等方面都基本 达到预定目标,并为后续研究提供了有益参考和支持。 1 4p 2 p 实时流媒体服务器的特色 多通道 德加拉a v e 6 0 0 0 视频压缩卡支持同时压缩多路视频数据,p 2 p 实时流媒体服 务器在此基础上实现了支持多通道的实时流媒体服务。 数据源多种压缩方案 德加拉a v e 6 0 0 0 视频压缩卡为每一路通道提供了可设置的压缩参数。包括 设置压缩算法,帧率,g o p 等。p 2 p 实时流媒体服务器在此基础上对压缩卡的 a p i 进行了封装和抽象,提供了g u i 方式的压缩参数设置。 s 电子科技大学硕士学位论文 c s 和p 2 p 混合模式 p 2 p 实时流媒体服务器结合了c s 和p 2 p 传输的优点,同时作为数据源和 p 2 p 索引服务器,向p 2 p 客户端分发流媒体数据并为p 2 p 传输策略提供支持。 一定的实时性 p 2 p 实时流媒体服务器通过资源分片和快速重传为整个p 2 p 实时流媒体系统 提供一定的实时性支持。 一定的n a t 穿透 为了能够为私网中的主机提供流媒体服务,p 2 p 实时流媒体服务器实现了基 于n a p t 模式的n a t 穿透,即在网关路由器允许的情况下,提供一定的n a t 穿 透支持。 1 5 论文的组织结构 第一章绪论。阐述了论文的研究背景,流媒体传输当前的解决方案,p 2 p 实 时流媒体服务器开发的目的和技术指标。 第二章p 2 p 流媒体及n a t 穿越技术。阐述了p 2 p 技术的发展历程和拓扑结 构,流媒体技术的分类和主要传输协议,然后列出了当前常见的p 2 p 流媒体模 型。最后介绍了n a t 的功能、分类以及在流媒体中的应用,并对本文相关的p 2 p 实时流媒体系统以及各个组成部分做了概要描述。 第三章p 2 p 实时流媒体服务器的设计。本章重点描述了p 2 p 实时流媒体服务 器的设计思路和原理,并逐一对各个子系统和服务流程做了详细阐述。 第四章p 2 p 实时流媒体服务器的实现。本章承接第四章,重点从系统实现的 角度描述了各个子系统中关键数据结构和类的定义,并对实现过程中可能遇到的 问题做了总结。最后还根据预研需求,对系统的主要技术指标进行了测试,并给 出了测试结论。 第五章总结和展望。本章对p 2 p 实时流媒体服务器的设计和开发过程做了总 结,并对其中的问题和改进方向做了说明和展望。 6 第二章p 2 p 流媒体及n a t 穿越技术 2 1 本章概述 第二章p 2 p 流媒体及n a t 穿越技术 本章将分别阐述:( 1 ) p 2 p 技术的发展历程和按照拓扑结构进行的分类;( 2 ) 流媒体技术的分类和主要传输协议;( 3 ) 常见的p 2 p 流媒体模型;( 4 ) n a t 的功 能;( 5 ) n a t 的分类;( 6 ) p 2 p 流媒体系统中的n a t 应用;( 7 ) p 2 p 实时流媒体系 统的概述和体系结构。 2 2p 2 p 技术简介 2 2 1p 2 p 概述 p 2 p 的全称p e e r - t o p e e r ,即对等网络。在p 2 p 网络中,各个节点的地位是对 等的,即:他们互相是对方的服务器,同时又是客户端而没有专门的服务器和专 门的客户端。p 2 p 的根本思想,同时也是与c s 最显著的区别,在于网络中的节 点( p e e r ) a 获取其它节点的资源或服务,同时也能够为其它节点提供自己拥有 的资源或服务。这当中的每一个节点所拥有的权利和义务都是对等的,包括通 讯、服务和资源消费。 p 2 p 是一种分布式网络,所有的参与者共享它们拥有的部分硬件资源,包括 处理能力、存储能力、网络连接能力、打印机等。这些共享资源需要经过网络来 提供,它们能被需要的p e e r 直接访问而无需经过中间实体。在p 2 p 网络中的参与 者既是资源提供者,又是资源接收者。 p 2 p 并非是一种全新的技术。虽然p 2 p 这个术语是现在才发明的,但p 2 p 原 理存在的时间却至少和u s e n e t 、f i d o n e t 这两种分布式对等网络技术一样长。 u s e n e t 产生于1 9 7 9 年,是一种分布式系统,能够提供多个地方的新闻组服 务。它早期的雏形是由两名研究生t o mt r u s c o t t 和j i me l l i s 实现的。当时文件只 能通过电话线批量传送,且常常是在长途费用比较低的夜间进行。所以,为了避 免集中式管理导致的效率低下,u s e n e t 自然提出了一种分布式的管理方法。而 且这种分布式结构一直沿用到今天。早期p 2 p 应用的另一个杰出代表是 7 电子科技大学硕士学位论文 f i d o n e t 。和u s e n e t 类似,也是一个分布式的信息交换系统。它是由t o m j e n n i n g s 于1 9 8 4 年创建的,为了让不同b b s 系统中的用户可以互相交流,该技 术一直沿用到今天。u s e n e t 和f i d o n e t 是值得探究的系统,它们多年前就面临 并解决了许多当今p 2 p 技术面临的问题,但同时也还存在着安全性以及其他一些 问题。 使p 2 p 技术得到广泛应用的另一个例子是n a p s t e r t l 5 】。n a p s t e r 是一家公司, 成立于1 9 9 9 年,它为广大音乐爱好者提供一个平台供它们交流、共享各自的 m p 3 。但是与普通m p 3 下载不同的就是n a p s t e r 服务器本身是不会有任何歌曲 的,相反只提供这些歌曲的索引和链接,真正的音乐文件是存放在那些加入 n a p s t e r 服务的客户计算机上。同时n a p s t e r 还提供搜索音乐的功能,并根据搜索 结果到其他用户的计算机下载歌曲。通过这种模式,n a p s t e r 在短时间里就吸引了 近5 0 0 0 万用户。但是由于这种方式导致了大量的版权纷争,最终它被五大唱片 商以侵犯版权为由告上法庭。然而n a p s t e r 的成功促使人们重新认识p 2 p 技术, 并为后来的g n u t e l l a 1 6 】等的发展提供了有益参考。 2 2 2p 2 p 的拓扑结构及分类 拓扑结构是指分布式系统中各个部分之间的连接关系,分为逻辑拓扑和物理 拓扑。p 2 p 节点之间的拓扑通常指的是逻辑拓扑并作为确定系统类型的重要依 据。p 2 p 系统的拓扑结构关系【l 7 】可以分为4 种形式:中心化拓扑;全分布式非结 构化拓扑;全分布式结构化拓扑和半分布式拓扑。 中心化拓扑 中心化拓扑主要的应用是索引集中式p 2 p 系统。集中式p 2 p 模式由一个中心 服务器负责记录共享信息以及反回对信息的查询和搜索。当p e e r 向中心服务器提 交所需文件信息后,由中心服务器执行目标信息的查询,并把查询的结果诸如目 标所在的终端节点的位置信息返回给p e e r 。虽然这种形式具有中心化的特点,但 是它并不同于传统的c l i e n t s e r v e r 模式。因为传统c l i e n t s e r v e r 模式采用的是完 全集中,也就是所有资源都存放在服务器上,客户机只能主动地向服务器发起连 接并读取数据,另外客户节点之间不能交互;相反,集中式p 2 p 模式则是所有资 源都存放在分布于各个地方的客户节点上,服务器只保存这些资源的索引信息, 另外,服务器与客户节点之间以及客户节点两两之间都能够交互,尤其是客户节 点间不需要通过服务器就能够直接通信。 8 第二章p 2 p 流媒体及n a t 穿越技术 中心化拓扑结构是第一代p 2 p 系统采用的主要结构。上面提到过的n a p s t e r 就是这种结构,它由一个中央服务器保存系统中用户所拥有的音乐文件的索引和 位置信息。当用户需要下载某音乐时,首先连接到n a p s t c r 服务器,通过服务器 进行检索,并由服务器返回拥有该音乐的节点信息;然后根据这个信息直接与音 乐的所有者连接并传输音乐。n a p s t o r 实现了文件查询与文件传输的分离,有效节 约了中央服务器消耗的带宽,同时减少了传输文件的延时。 但同时也要注意到中心化拓扑结构存在的很多问题:首先,如果中央服务器 瘫痪,则可能导致整个系统崩溃,而且可靠性和安全性较低,中央服务器很容易 收到攻击;其次,随着网络规模的扩大,中央服务器维护和更新的费用将急剧增 加,而且系统的扩展性将受到很大的限制;再次,由于中央服务器存在,在共享 资源可能引起的版权纠纷也是一个不可忽视的问题。所以对小型网络而言,索引 集中式拓扑结构在管理和控制方面拥有一定优势。但鉴于其存在的缺陷,该模型 不太适合大型的网络应用。 全分布式非结构化拓扑 全分布式非结构化系统在覆盖网络( o v 甜a yn e t w o r k ) 中采用了随机图的组织方 式,从而能够快速发现查询节点,对网络的动态变化也体现了较好的容错能力。 同时它还支持复杂查询,如对带有正则表达式的多关键词查询,模糊查询等,最 典型的案例是g n u t e l l a 。 g n u t e l l a 是一个p 2 p 方式的文件共享系统,和n a p s t c r 最大的区别在于 g n u t e l l a 是纯粹的p 2 p 系统,没有索引服务器,它采用完全随机图的洪泛 ( f l o o d i n g ) 发现和随机漫步( r a n d o mw a l k e r ) 机制。为了将洪泛消息控制在一定范 围内,使用1 t l ( t i m et ol i v e ) 值递减的方式来标志洪泛消息的存活性。在 g n u t e l l a 分布式对等网络模型中,每个p e e r 在功能上都是对等的,既是客户机同 时又是服务器,所以也被称为对等机( s c r v e n t ,s e r v e r + c l i e n t 的组合) 。由于非结 构化网络将覆盖网络认为是一个完全随机图,节点之间不会根据预先设定的逻辑 链路通信,也没有规整、预设网络的拓扑结构。这种情况下,系统不提供性能保 证。比如查询资源的时候,可能因为t t l 的限制发现不了实际存在的资源。这也 称为资源的局部发现,查询性能是随机的。但优点在于容错性好,支持复杂的查 询,节点频繁加入和退出动作对系统的影响小。 随着加入系统节点不断增多,网络规模不断扩大,通过泛洪定位资源节点的 方式将产生巨大的网络流量,导致部分低带宽节点因网络资源过载而失效。初期 9 电子科技大学硕士学位论文 的g n u t e l l a 网络中,查询动作只能访问网络的很小一部分,直接导致网络的扩展 性不好,资源定位效率不高。也正是没有确定拓扑结构的支持,非结构化网络无 法保证资源发现的效率。 全分布式结构化拓扑 全分布式结构化的p 2 p 模式是一种纯分布式的消息传递机制,根据关键字进 行查询的定位服务。目前的主流方法是采用分布式哈希表【1 8 ( d i s t r i b u t e dh a s h t a b l e , d h t ) 技术,它和非结构化模型的根本区别在于“结构化,即每个节点所 维护的一张路由表可以按照某种全局方式组织起来形成整体结构化以利于资源的 快速查找和定位。其中的典型代表有:p a s t r y 、t a p e s t r y 、c h o r d 、c a n 等。 d h t 实际上是一张巨大的散列表。散列表的空间被分割成多个块,给每个节 点分配一个散列块,并让它成为这个散列块的管理者。非中心化和原子自组织是 d h t 设计的两个重要目标。由于覆盖网络采用确定的拓扑结构,d h t 可以提供 资源的精确定位和查询。也就是说,只要目标节点存在于系统网络中,d h t 就总 能发现它,并且这个查找过程的时间复杂度【1 9 】可以限定在o ( 1 0 9 n ) 之内。 在结构化的p 2 p 系统中,系统根据散列算法为节点分配一个全局唯一的节点 i d ( n o d ei d ) ,同时一个资源对象也通过散列算法产生一个唯一的资源r e ( o b j e c t d ) ,根据d h t 的设计思想,该资源应该存储在和节点i d 最接近的节点上。这种 “步步逼近 的方式,即每次查询的时候跳跃式地距离目标节点更进一步,使得 加入过程能够控制在o ( 1 0 9 n ) p q 完成。如果需要查找资源,采用同样的方法就可 定位到存储该资源的节点。 但全分布式结构化系统最大的问题是d h t 的维护机制较为复杂,尤其是节 点频繁加入和退出造成的网络波动会增加d h t 的维护代价。因为哈希算法是 d h t 运行的基础,基于均衡负载的考虑,即便两个很接近的资源经过哈希运算后 得到的资源d 值可能相差很大,也就导致资源存放位置的极大不同。这也就意 味着d h t 在支持语义查询和模糊关键查询上有着先天不足。正是因为如此,模 糊查询,语义查询成为了当前d h t 研究者们研究的热点。 半分布式拓扑 半分布式拓扑结构也称混合式p 2 p 结构。它吸取了中心化结构和全分布式非 结构化拓扑的优点,选择处理,存储,带宽等方面性能好的节点作为超级点 ( s u p e rn o d e ) ,各个超级点上存储了系统中其他部分节点的信息,资源发现算法仅 1 0 第二章p 2 p 流媒体及n a t 穿越技术 用在超级节点之间,当查询过程定位到了某个超级节点的时候,超级节点再将查 询它管辖域内的叶子节点,查询消息也逐层转发。半分布式结构也是一个层次结 构,超级节点之间构成一个高速转发层,超级节点和所负责的普通节点构成若干 层次。可以理解为超级节点之间用高速公路网连接而超级节点和普通节点之间就 用乡间小道连接,最典型的案例就是k a z a a 。 k a z a a 是经典的p 2 p 软件之一。之所以它如此的成功,是因为它结合了 n a p s t e r 和g n u t e l l a 共同的优点。从结构上说,它使用g n u t e l l a 的全分布式的结 构,这样有利于系统的扩展,因为无需中央索引服务器。同时因为是自组织的, 它可以自动把性能好的节点变成s u p e rn o d e ,它存储着离它最近的叶子节点的资 源信息,这些如同n a p s t e r 中央索引服务器的s u p e rn o d e 再连接起来形成o v e r l a y n e t w o r k ,使搜索效率和可靠性大大提高。 半分布式结构的优点是性能和扩展性较好,管理容易,但对它对超级点的依 赖很大,如果超级节点收到攻击,系统的稳定性和可靠性将受到影响。 2 2 3 主流的p 2 p 软件 前面介绍了经典的n a p s t e r 和g n u t e l l a 软件,除此之外还有大量的基于p 2 p 方式共享资源的软件,下面将对部分软件作简要介绍。 b i t t o r m e t b i t t o m l e t 【2 0 】( 简称b t ) 协议和同名软件是由美国旧金山的软件工程师布莱姆 科亨( b e a mc o h e n ) 开发的,现在有很多种基于b t 协议的软件,如b i t c o m e t , b i t s p i r i t ,f a s t b t 。b t 是混合式、非结构化、多点多元传送数据的文件共享p 2 p 网络。b t 网络中,文件之间的分块用一个经过哈希运算的m 标识。该d 既标 识文件,也验证文件的完整性。b t 的中央服务器称为t r a c k e r ,保存共享文件和 共享用户的索引信息,但是不保存文件的内容。共享文件的索引信息保存在扩展 名为t o r r e n t 的文件中,里面包括了t r a c k e r 的口地址、文件的分块大小、分块 i d 。每个文件共享用户的信息包括2 0 字节,d 地址、端口号、已下载上传待下 载的长度。t o r r e n t 文件借助网站发布。b t 节点共享文件的过程如下: ( 1 ) 通过网页搜索或从种子发布网站,找到需要的t o g e n t 文件。 ( 2 ) 将t o r r e n t 文件下载到本机,然后启动b t 客户端软件。 ( 3 ) t o r r e n t 文件下载到本机后,b t 客户端软件连接t r a c k e r ,并通报本机的信 息( 同共享用户信息) 和要共享的文件的信息。 1 1 电子科技大学硕士学位论文 ( 4 ) 收到客户端的通报信息后,t r a c k e r 向b t 客户端发送正在下载相同文件 p e e r s 的d 、i p 地址和端口号。 ( 5 ) 本地b t 客户端软件向这些p e e r s 发起t c p 连接。然后从连接成功的p e e r s 下载数据。本地完成一块文件下载后,也可以提供给其它p e e r s 下载。 ( 6 ) 在下载、上传的过程中,p e e r 需要周期性与t r a c k e r 进行通信,通报自己 当前的文件共享状态,包括g 已上传的,已下载的,还剩下的待传数据量: t r a c k e r 也会周期性告诉p e e r 其他p e e r 的最新信息。 ( 7 ) 下载完成后,如果没有关闭b t 或者停止任务,则只上传,不下载。 k a z a a f a s t t r a c k 协议及其客户端软件k a z a a t 2 1 】最初是由荷兰的一家公司c o n s u m e r e m p o w e n n e n t 于2 0 0 1 年3 月推出的。现在支持f a s t t r a c k 协议的软件除了k a z a a 外,还有k a z a a 的各种变体,如m l

温馨提示

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

评论

0/150

提交评论