P2P直播范文
P2P直播范文(精选7篇)
P2P直播 第1篇
近年来,随着高校校园网络的建设,我国一些大学开始计算机远程教育的研究试验,出现不少远程教育试验网站。这些网站无论从数量还是质量上看,呈现出网上教学的发展态势,但大多停留在提供课件演示和下载形式上。用户普遍反应学习缺乏自主性、交互性,难以将现有的教学资源充分利用。为克服上述缺点,整合现有的教学资源,满足社会需求,充分利用研究成果,能够实时直播教师授课的系统的设计与实现迫在眉睫。
为解决上述对实时授课系统的需求,本文采用基于P2P的流媒体技术设计实现应用于校园网的实时授课系统。本文首先对流媒体技术与P2P技术进行了研究,并对基于P2P的流媒体技术进行了分析;其次,对校园网直播系统的功能模块、系统的结构设计、系统的传输方式及节点管理进行了研究;最后对系统的功能进行了测试与分析,并与非P2P模式进行了对比分析。
2 设计
2.1 功能分析
P2P的校园网直播系统的设计目标是为了降低成本,解决传统C/S模式流媒体服务系统服务器端瓶颈问题。利用P2P技术将集中的流媒体服务分散化,使参与的用户既作服务的消费者,又作服务的提供者,从而消除传统C/S模式系统中服务器端的瓶颈。此外,为提高视频的质量,适应较大带宽的波动,提供流畅的流媒体服务,支持教学课件的直播和采集卡采集的视频/音频流的直播解决方案还应具有良好的兼容性和扩展性。
P2P的校园网直播系统的功能可分为教师端和学生端,其界面由视频播放窗口、电子白板、文本信息输入窗口、文本信息显示窗口及工具栏和菜单栏。界面组成的结构图如图1所示。
图1中的虚拟教室是指校园网中在线直播的课堂所在教室,即加入该直播课堂的P2P网络中的成员。系统的主要功能是直播课堂视频,将教师授课的现场信息处理后,应用P2P的多播技术,发送到虚拟教室所在的对等体组的各节点(虚拟教室成员)。流媒体的传输不必都通过服务器,直接在客户端组成的P2P网络内传输,从而减轻服务器的负担。同时,学生也可以在线向老师提问题,老师现场进行视频直播答疑。通过P2P网络,教师可以在任何地方给学生上课,实现了教师上课的分布性,有利于充分利用教师资源,使处于不同地方的优秀教师可以在不同的地方实现教学和辅导,使课程教学安排更加灵活。PPT同步功能通过采集老师讲授PPT课件的动作信息,经由P2P网络传到各节点上,由节点所在系统将动作信息解析,使学生在P2P客户端可以同步显示PPT文档。
2.2 结构设计
在P2P网络中,节点同时具有服务器和客户机的双重角色,因此,在设计中应充分利用现有的计算资源和网络资源,降低服务器资源和网络带宽的消耗,并根据网络中各个节点的带宽和可用性进行动态调整和优化,从而提供高质量的网络流媒体播放。
在P2P网络实时授课系统的每个节点上,通过设置3层软件体系结构来支持流媒体的实时应用,它们分别是网络抽象层、媒体控制层和媒体播放层,如图2所示。
网络抽象层负责建立和维护节点书,确定媒体控制层接收数据的上级节点,以及数据将要转发的下级节点,它处在网络结构的应用层。媒体控制层负责对接收到的数据进行缓存,并且作为服务器,将流数据发送到媒体播放层和下级节点。媒体播放层负责对节点收到的流媒体数据进行播放,媒体播放层并不判断流媒体数据的来源,因此可以采用现有的媒体播放器进行播放。
课堂视频直播系统可采用一个单源组播树来组织和管理各个节点,节点分为服务端节点和客户端节点两类,对应的功能软件为Server软件和Peer软件。
Server软件部署在服务端节点的软件,其主要功能是负责接收用户的加入请求、管理节点的连接、从流媒体文件中读取数据和分发流媒体数据,可划分为3个功能模块:节点管理器(peer manager)、媒体生成服务器(media Encoder)和分发器(dispatcher),其结构组成如图3所示。
节点管理器负责系统中节点的管理,当节点申请加入直播系统时,需要到服务器进行用户名和密码的验证,只有通过验证才能接收系统中的数据。
媒体生成服务器包括媒体捕获模块、媒体编码模块、网络模块、文件读写模块,媒体捕获模块负责视音频数据的获取,编码模块负责将媒体数据按系统需求编码为ASF格式的文件,文件读写模块将编码后的数据包保存至文件,在播放时直接提取数据包通过网络模块发送。
分发器负责从ASF文件读取流媒体数据并将数据向其直接子节点传输,将流媒体数据分割成时间长度相同的片段,每个片段为一秒钟的数据,然后分发给它的子节点。
当一个节点加入P直播系统时,分发器负责发送请求并找到合适的节点建立父子关系;当节点从P网络退出时,分发器向服务器以及其父节点和子节点进行消息通信,当节点的父节点失效时,要能够进行失效恢复。
Peer软件是P2P网络上运行在客户端上的软件,负责从主节点获得数据,同时将数据向它的子节点进行分发。Peer软件包括网络模块、流媒体播放器、缓存管理器,结构图如图4所示。网络模块负责数据的收发,维持与服务器和Peer之间的连接。由于网络的动态性,网络连接是一个不稳定的状态,有可能会在某个节点退出或断开时失效,因此,网络模块还具有节点失效恢复能力,让组播树能够快速恢复。流媒体播放器负责数据缓冲区中的媒体数据的呈现。缓存管理器用来管理peer端缓存的流媒体数据,用于处理由于节点的动态加入和退出,以及网络拥塞、流媒体数据传输可能引起的中断。
2.3 关键技术
P2P校园直播系统的实现采用C++语言开发,流媒体生成和播放模块采用DirectShow实现,数据库采用MS SQL实现。
2.3.1 传输方式
P2P流媒体传输方式主要有基于应用层组播的P2P流媒体传输和基于单播的P2P流媒体传输。
2.3.2 节点管理
节点管理是是实现P2P网络直播系统实现过程中的重要部分,稳定完善的节点管理体系是系统的重要组成部分。无论是服务器端还是客户端,节点管理对于每个节点都要进行加入、退出和调整的管理与控制。节点加入算法描述一个节点如何加入一个P2P网络。以图5为例说明节点加入一个简单P2P网络的节点算法。假设节点F要加入P2P流媒体直播系统,算法流程如下。
(1)节点f给主节点S(服务器)发送请求。
(2)S收到节点F的请求之后,判断自己的直接子节点数是否已经达到上限。
(3)如果没有达到上限,则将节点F作为自己的直接子节点,执行8。
(4)如果直接子节点已经达到上限,则通过节点管理器来查询哪个子树的节点最少,然后将节点的IP地址、端口号发送给它的相应直接子节点。
(5)该节点通过自己的伙伴管理器,判断节点F是否可以作为自己的直接子节点。
(6)如果可以,则将节点F作为直接子节点并建立连接,执行8。
(7)如果不可以,则将节点F的请求向子节点数最少的分支转发,依次类推,直到节点与某个子节点建立连接。
(8)节点F被某个节点接收后,向服务器S发送消息,服务器S记录下节点F在P2P网络中的信息。
此外,由于网络动态性,每个节点都处在不稳定的状态,随时有可能退出P2P网络。在节点的退出方式上,可以分为正常退出和非正常退出。无论节点是哪种方式退出,都会影响到P2P网络直播。因此,需要在节点退出后进行节点恢复。对于正常的退出,节点需要向服务器发送退出消息,同时,节点还要向所有的直接子节点发送消息,直接子节点随机选择一个子节点把退出消息继续转发,直到退出消息到达组播树的叶子节点。由于校园网中节点数目不多,且带宽和速度比较稳定,所以节点离开和失效采用的算法并不复杂。
4 结语
P2P网络流媒体播放系统对网络带宽和服务器处理能力的要求都比较低,同时具有容易部署和扩展能力高的特点,但是同时也具有缓冲时间长的缺点。对于实时性要求不高的流媒体直播,在综合考虑各种因素的情况下,该系统是一个具有较高性价比的大规模流媒体直播解决方案,能够在将来提供更好的网络流媒体播放服务。
摘要:为充分利用教学资源,满足校园网络建设的需要,将P2P技术与流媒体技术相结合,设计并实现了基于P2P的课堂直播系统,并对系统实现过程中的关键技术进行了分析,包括系统的传输方式、节点管理等。最后对P2P的课堂直播系统与非P2P模式的系统进行测试与比较,结果表明,基于P2P的课堂直播系统具有多种性能优势。
关键词:流媒体技术,P2P技术,节点管理,数据传输
参考文献
[1]Gwo-Jen Hwang.A conceptual map model for developing in-telligent tutoring systems.Computers&Education.2003,40(1):217-235.
[2]许骏,史美林,李玉顺,等.网格计算与e-Learning Grid-体系结构·关键技术·示范应用.北京:科学出版社,2005,27-33.
[3]吴国勇,邱学刚,万燕.网络视频-流媒体技术与应用.北京:邮电大学出版社,2001,55-67.
[4]龚海刚,刘明,毛莺池,等.P2P流媒体关键技术的研究进展.计算机研究与发展,2005,42(12):2033-2040.
[5]杨文涛,易志雄,刘卫忠,等.P2P网络流媒体播放系统研究.电视技术,2005,28(6):66-68.
P2P视频直播系统改进设计 第2篇
1P2P视频直播系统概述
由于视频流的数据量较大, 仅依靠服务器的带宽无法支撑起一个大规模的视频直播系统, 传统的客户-服务器模式已无法满足大量的用户需求。然而, P2P网络的特性则使得直播系统的大规模部署成为可能。这种系统由一台 (或多台) 服务器以及观看视频的用户构成, 除了服务器提供的视频流, 用户也会把自己已经拥有的视频数据上传给其他用户。这样, 原本闲置的用户上载带宽被利用起来了, 从而在一定程度上缓解了服务器的压力。
在P2P视频直播系统中, 一个完整的视频流被分成若干个视频数据块 (chunks) , 服务器按播放时间顺序将这些数据块上传给网络中的一些节点 (典型的流速率为500 Kb/s) 。这些节点在收到数据块后再利用自己的上载带宽将它们转发给其他节点, 这样就形成了一个P2P网络。一个节点收到的各个数据块可能来自不同路径, 网络中又存在一定的传播时延, 因此数据块很可能乱序到达。这样, 每个节点就需要维护一个缓存 (buffer) , 缓存中存放即将播放的数据 (典型缓存大小为1 min) 。如果数据块在其播放时间之前没有到达, 那么这个数据块将无法被正常播放。
数据块被服务器上传到网络中后, 要经过一段时间才能被节点收到, 这段时间被称为播放时延。每个节点的播放时延不同, 因此各个节点的播放进度其实不是完全同步的。视频直播系统对播放时延比较敏感, 而丢失少量的数据则是可以容忍的。
2系统结构
2.1 tree-push结构
早期的P2P视频系统都是push-based系统, 如Zattoo[1]。在这样的系统中, 服务器将特定速率的视频流上传到网络中的C个节点, 收到视频流的每个节点在播放视频的同时, 还要利用自己的上载能力将这个视频流上传给其他K个节点。而K个节点再进一步将视频流传给其他的节点, 直到网络中所有的节点都能观看到视频。这样, 整个P2P网络就形成了一棵树, 树根就是视频流服务器 (一台或多台) , 树的深度由观看视频节目的节点数而定。
图1给出了C=3, K=2的例子, 图中树的深度n=3。在实际应用中, 随着用户数量的增加, 树的规模可以扩展。C值的大小是由服务器带宽而定的, 而一个节点上的K值则表示该节点可以同时为几个节点提供上载, 与该节点的带宽有关。一个节点的上载带宽更大, 这个节点就能为更多的节点提供视频流。当然, 在实际网络中, 各个节点的K值不同, 而且往往随时间动态变化。
理论上, push-based系统中各节点的平均K值只要大于或等于1, 系统就可以支持无限多用户在线观看视频。但在真实网络环境中, K值通常小于1, 因此系统的用户数量总是存在一个极限[2]。而且, 用户频繁的加入/离开行为给树形结构系统的稳定性带来了很大的挑战, 结构性缺陷使得树形结构系统很难支撑起规模庞大的P2P直播系统。
2.2 mesh-pull结构
目前应用较为广泛的P2P视频直播系统, 如PPLive, PPStream, UUSee等, 都是pull-based系统。所谓pull, 就是由节点主动发出请求信息 (requests) , 向服务器或周围的节点索取该节点所需的数据块。在系统中, 每个节点都会通过广播buffer map信息来告知邻居节点自己缓存中存放的数据块, 因此每个节点知道自己的邻居拥有哪些数据块。这样的系统并不依赖push-based系统的树形结构来传播视频流, 各节点可以向邻居列表中的任意邻居索取数据块, 因此并不存在树形结构带来的问题。
从图2中可以看出, 每个节点只有主动发出request消息, 邻居或服务器才会为其提供数据块。pull-based系统的部署比较简单, 并且能够充分利用用户的上载带宽, 从而使系统达到很高的吞吐量[3]。但是, 节点频繁地发出request信息, 给系统造成了很大的带宽开销。在有些系统中, request信息所占用的带宽甚至超过了数据流, 这就造成了很大的带宽资源浪费。另外, 在pull-based系统中, 由于节点在收到数据包后并没有立刻将该数据包转发出去, 而是在等其他节点来要, 这就增加了播放时延, 而且这种时延是逐跳积累的。因此, 带宽开销和时延是pull-based系统存在的两个主要问题。
2.3 pull-push hybrid结构
为了解决pull-based系统存在的问题, GridMedia, CoolStreaming, LStreaming等系统采用了推拉结合的结构, 即pull-push hybrid结构。pull-push hybrid系统的网络拓扑结构和pull-based系统相似, 都是一种无结构的mesh网络。在pull-push hybrid系统中, 视频流被分成一些子流 (sub-stream) , 每个子流由若干个数据块组成。
图3中, 一个完整的视频流被分成了3个子流, 每个子流由3个数据块组成。某个节点A加入系统后, 先以拉 (pull) 的方式向周围邻居节点请求数据块0, 如果从邻居B要到了数据块0, B将以推送 (push) 的方式向A传送整个子流0 (包括数据块3和6) , 而不需要A再逐个发出请求。同理, 如果A要到了数据块1, B将向A推送整个子流1。
在pull-push hybrid系统中, 节点收到的95%以上的数据包都是邻居节点或服务器推送来的[4], 只有在推送失败 (因为丢包或传输时延) 时, 节点才会主动地位数据。这样, 就解决了pull-based系统中请求 (request) 信息占用大量带宽的问题。同时, 由于节点主动推送数据块而不必等别人来要, 也在很大程度上减小了播放时延。
这种混合系统具有吞吐量大、节点带宽开销小、播放时延小等优势。同时, 这样的系统比pull-based系统更加节省服务器带宽[5]。当然, pull-push hybrid系统也不是完美的, 由于网络中存在传播时延, 系统中的节点会重复收到一些相同的数据包, 而重复的数据包将会被丢弃, 这也给系统带来了一些带宽开销。
3视频直播系统改进方案
3.1 服务器带宽动态调整
pull-based系统对服务器带宽的要求比较苛刻, 服务器性能对系统吞吐量和用户观看质量起着决定性的作用。在用户相对比较集中的频道, 大量的用户会抢走更多的服务器带宽, 这使得其他用户数量较少的频道很难获得较好的观看质量。目前商用的pull-based系统在这方面都没有恰当的策略来保证服务器为“小频道”提供足够的带宽, 这使得观看行为比较“小众”的用户总是无法得到满意的服务[6]。因此, 在pull-based系统中, 应当提供自适应带宽分配算法, 使得在用户数量变化的动态环境中, 各个频道都能够分配到合理的服务器带宽。算法应该既保障“小频道”得到服务器足够的支持, 又不会在“大频道”中浪费多余的服务器带宽, 从而在系统性能和资源开销之间达到一个平衡点。
在pull-push hybrid系统中, 系统性能对服务器带宽的依赖并不是很大 (在pull-push hybrid系统中, 服务器提供的带宽只要达到视频流速率的1.6倍就可以维持系统的正常运行[7]) , 因为节点之间相互推送的数据比较多。主要问题在于, 系统中用户数量在不同的时段差异较大。比如, 在晚上7点~9点之间系统中的用户数量一般会达到最大值, 而在凌晨1点之后用户数量最少[8]。因此, 服务器带宽应当在不同时段动态分配。在系统中人数很少的时候, 如果系统中存在大量上载性能较高的节点, 甚至可以关闭一定数量的服务器以节省开支。
3.2 邻居选择策略
在P2P视频直播系统中, 每个节点在启动时都会获得一个邻居列表。节点可以从列表中随机选择几个邻居, 并向这些邻居请求数据块。目前在主流的pull-push hybrid系统中, 还没有实施特别高效的邻居选择策略。在实际系统中各节点的上载性能差异较大, 有些高性能节点 (以太网用户) 可以提供很高的上载带宽, 而另外一些低性能节点 (ADSL用户) 则对系统贡献不大。在pull-push hybrid系统中, 为了使高性能节点充分发挥作用, 服务器应当优先考虑把视频流推送给这些节点。这些“超级节点”在拥有足够多的数据块后会利用其强大的上载带宽将数据块推送给更多的邻居节点。“超级节点”在网络中就好像“放大器”一样, 将收到的视频流复制多份供很多个低性能节点下载。充分利用“超级节点”的性能可以在很大程度上缓解服务器的压力, 从而减小系统对服务器性能的依赖。
图4中, “超级节点”A的上载带宽为1.5 Mb/s, 而视频流的速率为500 Kb/s。服务器先向节点A推送数据, A节点收到流后就可以同时给3个普通节点 (上传带宽256 Kb/s) 推送数据。A节点将上载性能发挥到最大, 在节省了服务器的带宽的同时, 又使得视频流在网络中更快地传播开来。
3.3 不同频道间的援助策略
在P2P直播系统中, 各个频道中用户数量的差异是巨大的。有些热门频道的即时观看人数可能会达到数万, 而另外一些频道中可能只有几个人。据统计, 在UUSee系统的795个频道中, 平均观看人数超过5 000的频道只占2%, 而观看人数少于100的频道约占12%, 而大部分 (约占51%) 频道的观看人数在500~3 000之间[3]。事实上, 在一些人数很少的频道中存在着一些高性能用户, 即前面提到的“超级节点”。在现有的P2P直播系统中, 这些“超级节点”的性能并没有被充分地利用起来。
在图5中, 某个频道中只有两个用户A、B, 而这两个用户都是“超级节点”, 拥有1.5 Kb/s的上载带宽。如果服务器直接将视频流推送给这两个节点, 那么这两个节点就不需要给任何节点提供上载。在这种情况下, A和B的带宽资源将会闲置。但事实上, 这两个节点的带宽也可以被充分地利用起来。虽然不需要为本频道中的用户上传数据 (除非有新用户加入) , 但A和B可以为其他频道提供服务, 尤其是那些低性能节点相对集中的频道。服务器可以将另一个视频流也推送给A、B, 然后再由A、B向那个频道中的节点推送视频流。这样, 既利用了A、B闲置的带宽, 又可以改善另一个频道的观看质量。
4结语
P2P直播系统主要依赖各个节点间的相互帮助, 而并不单纯依靠服务器的支持, 因此系统的拓扑结构可以有各种各样的变化。各种主流的商用系统都有自己的部署方案与核心技术, 在很多细节方面缺乏可以参考的、规范性的协议。 P2P视频直播在当前的网络技术中还是一个有待发展完善的技术领域, 进一步的发展需要研究人员、软件开发商以及政府相关部门的通力合作。
本文的创新点在于, 在分析了现有大规模P2P视频直播系统的优缺点后, 提出一些可以进一步提高观看质量, 节省服务器带宽的优化方案, 有效解决了现有系统中存在的一些结构性和技术性的问题。
摘要:为了改善P2P视频直播系统的性能, 介绍了P2P视频直播系统的相关知识, 对比了当前主流P2P视频直播系统的三种主要结构, 分析了三种结构各自的优缺点。针对现有大规模直播系统的不足, 提出了一些系统改进方案, 分别从节省服务器带宽、优化邻居选择策略、充分利用节点上载性能的角度对现有系统做了改进和优化。利用该改进建议, 直播节目的服务提供商能够进一步节省开支, 并提供更高质量的服务。
关键词:P2P视频直播系统,push系统,pull系统,pull-push混合系统
参考文献
[1]WU Chuan, LI Baochun, ZHAO Shuqiao.Diagnosing net-work-wide P2P live streaming inefficiencies[C]//IEEE2009 Proceedings of INFOCOM.Rio de Janeiro:IEEE, 2009:2731-2735.
[2]ZHANG Meng, ZHANG Qian, SUN Lifeng, et al.Under-standing the power of pull-based streaming protocol:can wedo better[J].IEEE Journal on Selected Areas in Communi-cations, 2007, 25 (9) :1678-1694.
[3]SHAMI Khaldoon, MAGONI Damien, CHANG Hyun-seok, et al.Impacts of peer characteristics on P2PTV net-works scalability[C]//IEEE 2009 Proceedings of INFO-COM.Rio de Janeiro:IEEE, 2009:2736-2740.
[4] SILVERSTON T, FOURMAUX O. Measuring P2P IPTV systems [C]// Proceedings of 17th International Workshop on NOSSDAV. [S.l.]: NOSSDAV, 2007: 115-121.
[5]HEI Xiao-jun, LIU Yong, KEITH W Ross.Inferring net-work-wide quality in P2P live streaming systems[J].IEEEJournal on Selected Areas in Communications, 2007, 25 (9) :1627-1639.
[6] TERPSTRA Wesley W, LENG Christof, LEHN Max, et al. Channel-based unidirectional stream protocol (CUSP) [C]// IEEE2010 Proceedings of INFOCOM. San Diego, CA: IEEE, 2010: 1-5.
[7]HEI Xiao-jun, LIANG Chao, LIU Yong, et al.A measure-ment study of large-scale P2P IPTV system[J].IEEETrans.on Multimedia, 2007, 9 (8) :1672-1687.
[8] REJAIE R, ORTEGE A. Pals: peer-to-peer adaptive layered streaming [EB/OL]. [2003-06-03]. http:// www.zdnetasia.com.
[9] PPlive Inc. PPlive [EB/OL]. [2007-04-20]. http://www.pplive.com.
一种P2P直播系统网络模型研究 第3篇
基于P2P的流媒体服务技术策略利用客户端计算机空闲的资源提供部分服务, 通过让客户机缓存一部分信息, 充当服务器的部分功能, 使网络中的资源和服务分散化。P2P的网络架构在进行媒体通信时不存在中心节点, 节点 (Peer) 之间是对等的, 即每一对节点可以进行对等的通信。一个对等节点同时充当服务器的角色和客户端的角色, 这使得P2P系统内部实现自组织的资源共享, 有效地降低了应用成本, 提高了系统资源的整体效率。P2P可以用来进行流媒体通信 (如话音、视频或即时消息) , 也可以传送控制信令、管理信息和其它数据文件。其具体的应用包括NapsterMP3音乐文件搜索与共享、BitTorrent多点文件下载、PPLive直播、Skype VoIP话音通信、QVOD和迅雷等。对P2P流媒体研究的关键技术主要集中在网络拓扑、数据传输和调度以及网络监控等方面。本文在P2P网络主流模型基础上提出了一种基于可信节点的半结构化P2P网络模型, 并对新模型实现方式和重要过程进行详细描述, 最后得出结论。
1 P2P网络主流模型概述
(1) 集中式P2P网络模型。
媒体资源存储在各个对等节点中。节点登录中央服务器后, 节点根据网络流量和延迟等信息选择合适的邻居节点建立直接连接, 进行数据传输, 数据传输不需要经过中央服务器。这种网络架构的资源搜索效率较高, 但容易遭受直接攻击。
(2) 分布式P2P网络模型。
采用无中心结构, 每个节点维护一个邻居列表。使用洪泛式 (Flooding) 的资源查询机制。发起资源查询的节点向所有邻居节点发送消息, 收到消息的节点除了进行本地查询, 即看自己有没有所查询资源外, 还把查询进一步转发给自己的所有邻居节点。邻居节点收到消息后, 重复进行本地查询和消息广播。这种模型具有较好的扩展性, 也不存在单故障点, 但其查询机制效率较低, 而且也不能保证搜索到的资源的有效性, 同时每次查询都要产生大量的转发消息, 容易形成消息泛滥, 增加了网络的负担。
(3) 结构化P2P网络模型。
结构化P2P模型采用纯分布式的消息传递机制, 及根据关键字进行查找的定位服务。主要是采用分布式哈希表 (DHT) 技术进行资源定位。DHT首先将网络中的每一个节点分配虚拟地址 (VID) , 同时用一个关键字 (KEY) 来表示其可提供的共享内容。网络中节点以哈希值相邻。发布信息的时候就把 (KEY, VID) 二元组发布到具有和H (KEY) 相近地址的节点上去, 其中VID指出了文档的存储位置。资源定位的时候, 就可以快速根据H (KEY) 到相近的节点上获取二元组 (KEY, VID) , 从而获得文档的存储位置。不同的DHT算法决定了不同的P2P网络的逻辑拓扑。这种模型比较适用于节点能力相当的小规模网络。
(4) 混合式P2P网络模型。
混合式P2P网络结合了集中式和分布式P2P的优点, 在分布式模式的基础上将用户节点分为普通节点、搜索节点和索引节点三类。普通节点不具有任何特殊功能。搜索节点处理搜索请求, 从它们的“父”节点中搜索媒体资源列表。索引节点保存可以利用的搜索节点信息, 并搜集状态 (焦点内容、空闲机时、存储空间、IP地址等) 信息, 维护网络结构。
一个节点即可以同时具有搜索节点和索引节点的身份。用户节点可以选择n (n3) 个搜索节点作为它的“父”节点。如果“父”节点接受该用户节点作为它的“子”节点, 那么该用户节点就可以提交其所要共享的类表给它的“父”节点。搜索节点管理所属用户的“父”节点列表。用户节点通过索引节点获得搜索信息后, 用户节点就与获得的搜索节点相连。当其数目未达m (可考虑m=300) 时, 就继续遍历其它搜索节点, 否则中止此过程。这种混合式网络架构可有效地消除分布式结构中使用的洪泛算法带来的网络拥塞, 也提高了资源搜索效率, 并且索引节点的引入也能在一定程度上提高整个网络的负载平衡。
2 基于可信节点的半结构化P2P网络模型
2.1 SSPM的设计思想与目的
SSPM的主要设计思想是结合结构化网络模型中的对相邻节点有序组织和混合式网络模型的快速搜索的优点提出半结构化的网络模型。该模型的核心是引入可信节点 (Trusted Node) , 通过优化策略选取可信节点集合取代混合模型中的搜索节点集。由于可信节点良好的时间恒定性和性能稳定性, 使得该新型模型在实际网络环境下能达到较优的性能。
2.2 SSPM中可信节点的构造和选择策略
SSPM模型中主要有两大类节点, 即可信节点和客户节点, 如图1所示。客户节点是所有登录媒体服务器, 请求视频相应的一般节点。一个可信节点定义为性能“优良”和“表现”良好的客户节点。性能优良是指能提供较充足的硬件资源充当服务器。表现良好是指登录后能滞留较长的一段时间。N个可信节点构成K个视频片段上的稳定服务器群。如果第n个可信节点属于第k个视频片段群, 那么它在一段时间内稳定地为第k个群的其他可信节点和客户节点提供下载服务, 而它自己可能在观看第k'个视频段。第k个视频片段群上的可信节点数目至少应大于1。
可信节点的选择应满足以下策略: (1) 在一段时间T内频繁访问视频服务器; (2) 在时间片t{t|P (t|T) >=Y}内的滞留时间超过某一阈值 (如:Y取80%) ; (3) 较优良的路由, 即该路由路径上有较宽的网络带宽; (4) 较大的可用磁盘空间; (5) 较快的CPU时钟频率和较多的空闲机时; (6) 较大的内存空间; (7) 已经存储了较多的内容信息。
登录服务器保留节点的历史信息, 还应包括IP地址等。当节点登录后, 根据以上的选择策略选出可信节点, 然后分配到某个视频片段群中进行服务。
2.3 SSPM模型设计
SSPM模型包含可信节点和客户节点两类节点, 它们和视频/登录服务器的关系如图1所示。可信节点 (PtA, PtB, PtC) 和客户节点 (PcA, PcB, PcC) 都需要登录视频服务器LS, 然后由服务器从历史记录中选出可信节点作为某个视频段上服务群 (Chunk) 中的一员。考虑到可信节点的良好表现, 可假定在t=0时刻有较多的可信节点加入, 因此能很快建立稳定的视频服务群。一种极端的情形是服务器中尚未建立历史记录, 此时可选择任意客户节点暂时取代可信节点。表现良好的客户节点可正式成为可信节点。建立的视频服务群可作为种子向其它客户节点提供服务。若可信节点退出, 则有两种考虑策略:一种是在视频服务群的可信节点数目未下降到某一阈值时, 系统不改变其拓扑结构;另一种情况是若可信节点数目下降至某一阈值, 则可选择客户节点成为暂时的可信节点以求保证服务质量。可信节点和客户节点退出时需要向服务器注销, 服务器可根据节点的此次行为更新其历史记录。
图2表示了某个视频片段群上的可信节点之间的关系。每个片段k上的可信节点构成的集合j可作为一个服务队列。因为是从服务器列表中按历史行为/记录选出, 所以在一定时间 (如5min) 内可看作是稳定的, 即不离开系统。可信节点切换视频片段的行为是随机的且相互独立, 这种行为不影响网络拓扑。如果可信节点切换到视频片段j', 那么它被当做客户节点由j'内的可信节点群提供下载视频服务。
图3给出了一个视频段k上的视频群j的实例。其中PtA、PtB、PtC等节点为可信节点构成的服务群, 向客户节点PCA、PCB、PCC提供服务, 且在一定时间内服务器群的网络拓扑保持稳定。
图4表示SSPM模型更常见的情形。例如, 在视频Channal k上存在两个服务群chunk j和chunk j'。其中可信节点PtA既在j的服务队列中, 也在j'的服务队列中。频道channal k'为另一个视频片段, 其中可信节点PtB'既在channal k的j'服务队列中, 也在channal k'的j'服务队列中。
2.4 SSPM模型分析
SSPM模型在组织服务器群时采用由服务器根据优化策略选出的可信节点, 在很大程度上避免了相邻节点的无序组织状态。把可信节点分配到哪个服务群的策略也由服务器控制, 且每个视频服务群的可信节点数目相对稳定, 这样对观看各个视频段的所有客户都能得到较为公平的服务, 特别避免了观众数量较少的视频片段的不流畅。另外, 在网络规模相当大的情况下, 可引入混合模型中的索引节点, 让索引节点具有服务器的执行选择策略功能和分配可信节点的功能, 并同时执行搜索功能, 这样可有效避免由于网络规模过大而产生的对登录节点而言较长的响应时间。
3 结语
本文主要在研究P2P直播系统网络模型的基础上, 结合结构化网络模型中的对相邻节点有序组织和混合式网络模型的快速搜索的优点, 提出了一种基于可信节点的半结构化的网络模型。由于可信节点良好的时间恒定性和性能稳定性, 使得该新型模型在实际网络环境下能达到较优的性能。下一步的工作是对SSPM建立定量分析模型进行详细分析, 并在此基础上进行仿真实验研究。
参考文献
[1]王艳丽, 鲜继清, 白洁.基于P2P的流媒体技术[J].计算机应用, 2005 (6) .
[2]杨戈, 廖建新, 朱晓民, 等.流媒体分发系统关键技术综述[J].电子学报, 2009 (1) .
[3]ZHANG LIANG, ZOU FU-TAI, MA FAN-YUAN.A survey and-prospects of information retrieval on the peer-to-peer networks[J].Computer Science, 2004 (4) .
[4]ZHANG M, ZHAO L, TANG J, et al.Large-scale live media streaming over peer-to-peer networks through global internet[C]∥Proceedings of ACM International Works hop on Advances in Peer-to-Peer Multimedia Streaming.Hilton:P2PMMS, 2005.
[5]HEEFEDA M, HABIB A, BOTEV B, et al.Promise:peer-to-peer media streaming using collectcast[R].Technical Repor t, Purdue University, 2003.
[6]CASTRO M, DRUSCHEL P, KERMARREC A M, et al.Split-Stream:high-bandwidth content distribution in cooperative environ-ments[C]∥Proceedings of International Works hop on Peer-to-Peer Systems.Berkeley:IPTPS, 2003.
[7]B T LOO, R HUEBSCH, I STOICA, et al.The Case for a Hyrid P2PSearch Infrastructure.In IPTP2004.
[8]吴兆福, 董文永.P2P网络搜索技术研究[J].武汉理工大学学报:信息与管理工程版, 2007 (6) .
[9]PIATEK M, KRISHNAMURTHY A.Contracts:practical contri-bution incentives for P2Plive streaming[C]∥Proceedings of USE-NIX Conference on Networked Systems Design and Implementa-tion.San Jose:NSDI, 2010.
基于仿真的P2P直播系统的研究 第4篇
当前,通过网络观看现场直播已经成为现实,网络中视频的数量以惊人的速度不断发展着。与简单的文字、图像和声音业务进行比较,视频业务对于网络的带宽要求的更多,特别是大型的社会团体活动举行的时候,观看的人数以几何倍数增长。当用户增加到一定限度的时候,服务器的带宽不足会对整个服务造成极大的影响,如果单单以增加服务器数量来解决此类问题,那么无论是从扩展性上还是成本的预算上,都是极其不合算的。此时,全新的P2P模式的直播系统开始展示出强大的生命力。
该技术的基本思想就是从其他的客户那里得到相关的资源服务,同时也不断给相关的客户提供其服务,尽最大可能地利用其网络中带宽,打破了一切依赖服务器的模式。一般说来,基于P2P的流媒体系统由三部分组成:服务器(Server)、客户/用户(Peer)和目录服务器(Tracker),目录服务器主要用来记录用户的信息和相关的资源。
1. P2P直播系统中的重要参数和仿真环境
1.1 系统参数
P2P直播系统的工作原理和组成让人知道了P2P技术的前景和优势,但在实际中,对于P2P直播系统性能的好坏,主要由以下几个参数来决定的。
(1)流媒体数据包大小
在整个直播系统中,视频并不是以一个整体传播出去的,而是将其分割成若干个媒体块,用户播放的是一个个的媒体块,媒体块不能再次分割,每个媒体块都带有序列号,视频播放的顺序由序列号决定。流媒体数据包的大小,决定了传送媒体块的速度,如果媒体块过大,则其完整性无法得到保证,如果过小,则效率降低。一般来说,媒体块普遍都设定在1500个字节左右。
(2)缓存长度
P2P直播系统在接收资源的时候,是在本机的空间中留出一部分,用于存放下载的资源。其缓存的长度直接关系统到整个系统的性能。正常情况下,其缓存的大小是可以播放视频大约几十秒时间所用的空间。在缓存中的数据,是以先进先出的模式进行操作的。这样系统不断地把媒体块放入到缓存中,而用户则不断地把这些媒体块提取出来进行播放,保证了系统视频的流畅性。具体的缓冲区构成如图1所示。
(3)请求窗口长度
在缓冲区中,最前面的空间存放着请求媒体块的请求信息,该空间就是请求窗口。在媒体块的传输过程中,如果没有得到对应的媒体块,则由请求窗口发出请求,从网络中找出对应的媒体块,如果在规定的时间内没有得到响应,则不再请求。如果没有得到这个媒体块,在播放的过程中,将无法保证整个视频的连续性。其窗口是滑动向前移动的,当请求的媒体块滑出请求窗口时,将永远不再请求该媒体块。所以请求窗口长度要合适,正常来说,越长越好,但是也要考虑其缓冲区的大小,保证其存储缓冲区的空间。
(4)用户节点数量
随着网络系统用户的不断扩充和增加,其系统的整体性能将受到影响。这时,需要对服务器的参数进行调整,以满足最大化的需求。
(5)服务器带宽
无论是C/S模式还是P2P模式的运行结构,其服务器带宽对于整个直播系统的正常运行都具有十分重要的作用。一般来说,服务器的带宽最好,其用户的使用越流畅,但同时,其费用也越高。合理处理带宽和费用之间的关系,将其控制在最佳的位置,是每个运营商需要考虑的问题。
1.2 仿真环境
目前,随着P2P直播系统的不断完善,需要进行在实际运行之前进行检测。最常用的方法是通过部暑大量的终端虚拟用户,对其进行极限测试,不断获取其相关的信息,对获取的信息进行分析。该方法的缺点是:需要大量的设备投入,其相关的测试人员也较多,费用高昂。同时,由于在网络中各个用户系统的不同,有很多未知的情形无法考虑周全,所以建立必要的仿真环境是十分有必要的,主要有以下几个优点,分别是:采集数据不受限制、数据量小、便于分析、测试周期短便于代码的维护和修改。
模拟器的编写主要采用C#,系统地实现了P2P的工作流程,从查找节点、节点的维护、服务器传送媒体块等一系列的工作。
2. 媒体块的传播
2.1 传播过程
通过上面参数的分析了解到,在P2P直播系统中,将网络中的整个视频划分为整干个流媒体块,这些流媒体块到达目的用户之后,按照流媒体的序列号进行排序播放。主要分为两大步骤:
(1)当服务器对外释放一个流媒体资源块的时候,连接到该服务器的各个用户节点都会向服务器发出请求,以便自己能够第一时间得到该数据资源。但是,并不是所有请求的节点都能够得到该资源,只有少数的节点取是下载该资源的资格,其它的节点都被服务器所拒绝。这时,没有取得资源的节点会不断地发出请求,导致很多的带宽被消耗地这些无谓的请求上。
(2)当取得下载资格节点获得流媒体块之后,服务器会通知请求未取得资格的用户从该节点下载,从而减少带宽的损耗,随着获取媒体块的节点用户越来越多,对于服务器的请求也越来越少,都从相关的节点上下载资源,使系统的带宽得到充分的利用。
2.2 演播时延与演播连续性指数
演播时延是指服务器播出视频的时间和用户播放视频的时间之差,用字母(T)表示。而演播连续性指数表示节点用户播放视频时,拥有对应流媒体块的概率,用字母(μ)表示。在实际过程中,T值越小,而μ值越大的节点其播放视频的过程越流畅,其观看视频的质量也越好。
T和μ的具体关系是如何,假设P2P服务器在某一时间(t)对外送出一个视频,某个用户节点的演播时延为T,用户节点播放该视频的时间为T+t,事实上节点从网上下载流媒体块,流媒体块具体到达该节点的时间为t1。得到的具体关系为:
μ=P{tl
从上面的公式中可以看出,T值越大,对于用户来说,有更多的时间可以获取对应的媒体块。当μ的值为50%时,T的值为2S时,代表着当媒体块从服务器上释放出2S之后,整个系统网络中有一半的用户节点已经取得了该媒体块。
节点在获取媒体块的时候,具体的策略一般采用随机邻居选择策略。其基本的工作流程如下:用户首先选择一个自己需要的流媒体块,对周围的邻居进行检查,查看是否具有该媒体块。如果没有,则进一步扩大搜索范围;有的话,则从邻居群中随机选择一个邻居,对其发出下载请求。邻居收到请求之后,有两种动作。一是直接发送资源,直至结束;二是拒绝。假如拒绝,则节点再对其它的邻居发出请求,直至接收到该资源为止。
3. 限制服务器放出媒体块数量策略
在现实的网络中,P2P服务器释放出对应的流媒体块之后,要很长时间才能够被系统中的各个用户节点获取到。这主要是由于服务器的宽带有限,被服务器注册的新流媒体块总是不能及时地在网络中出现,这样对于整个对应资源的传播来说,是非常致命的,节点用户无法及时找到该媒体块,便整个资源流通变慢。找到其原因之后,我们在此提出解决方案,即限制服务器放出媒体块数量策略。
为了验证其上述的问题,我们在同构网络中对其进行请求分析,假如在网络中,每个节点的运载能力都是相同的,经过反复实验,发现当服务器发出新的媒体块的时候,就会有大量的请求被拒绝,所以此时,不断地有很多节点用户进行反复的请求,使请求的次数不断地增加。
在P2P服务器中,其带宽一般都被早已存在的媒体块所占据,才导致发布新的媒体块无法被用户第一时间所接收。我们对其进行改进,对服务器进行设置,服务器对外发布的资源块有一定的限制,避免无限制地发布新的资源块,而导致系统因为请求过多,致使整个系统的延迟。
限制服务器放出媒体块数量策略的主要思路是:P2P服务器对网络中的同一个媒体块请求只对其回应m次,超过m次,就不再对其响应,其中m的值为P2P服务器的带宽与流媒体的速率之比。对于仿真系统的设计,其主要的代码如下:
4. 总结
本文针对仿真的P2P直播系统展开研究,首先介绍了系统中可能用到的参数,其次详细分析了流媒体的传播过程,最后针对目前系统的现状,对其进行改进,并给出了一部分具体的代码。
摘要:随着互联网技术的不断发展,基于P2P技术的网络视频直播和点播系统受到广大科研人员和用户的关注。与传统的C/S结构的视频播放系统相比,P2P直播系统可以用户提供更加流畅、更加清晰的视频服务。本文分析P2P直播系统的参数和工作原理,提供同构网中服务器负载的分析。
关键词:对等网络,P2P,流媒体直播
参考文献
[1]陈一帅.P2P流媒体系统能力研究.北京.北京交通大学. 2010,6.
[2]黄道颖,李祖鹏,庄雷,黄建华,张安琳.分布式Peer-to-Peer网络Gnutella模型研究[J].计算机工程与应用, 2003,(05).
[3]吴兆福,董文永.P2P网络搜索技术研究[J].武汉理工大学学报(信息与管理工程版),2007,(06).
P2P视频直播点播系统设计研究 第5篇
关键词:P2P,节点选择算法,流媒体
1、P2P混合型网络构建
本课题构造的视频系统是搭建在混合型P2P网络上的,网络的构建是算法的基础也是本课题的最大的创新之处。
由于计算机软硬件和科学理论的束缚,到目前为止,完全意义上的P2P网络传输模式还没有成行。但科学技术每天都在进步,相信在不远的未来一定会出现完全P2P网络。因此本课题采用的P2P网络是集中中心式和分布型网络的混合型的计算机网络,混合型网络将分别搭建上层和下层两层计算机网络。上层计算机网络是混合型P2P网络的骨架,是在P2P网络构造之初就建成的,而且在原则上并不改动上层网络设计。网络上层结构图如下:
如图1-1所示,上层网络由中心节点和超级节点两种计算机组成,中心节点和超级节点计算机全是由设计指定的计算机组成,其中中心节点计算机是整个计算机网络的"根",超级节点计算机是其下属域的"根"。中心节点计算机上有用于视频直播的视频采集和压缩设备以及用于点播的相关视频文件,超级节点计算机上将存储下属域的节点地址索引表。中心节点计算机和超级节点计算机之间的连接将一直保持。
不同的超级节点管理不同的域,每个域就是混合P2P网络的下层网络结构。如图1-2:
每个域中的节点都会按照相关节点算法构造网络,图1-2中节点之间的连接只是示意,并非实际情况,具体的连接算法要参看后面的核心算法章节。
2、P2P网络功能模块
P2P网络构造之后,将通过中心服务器的数据输出接口建立数据连接,并和点击相关服务的节点经过网络模块进行数据传输和维护。网络域中节点的具体连接方式也由相关的网络模块协作完成。P2P网络功能模块是P2P节点核心算法的承载者,实施者和监督者,也是整个P2P混合网络的核心,在网络模块的具体分工和组成方面,是国内P2P网络系统的重点和难点。本课题研究的网络功能模块借鉴了国外最新的配置方案。P2P网络传输系统由四个关键功能模块组成:
2.1 P2P网络模块
为流媒体应用提供基本的拓扑结构构造维护,信息路由查询和网络状况探测等功能。2.2数据发送节点动态选择模块根据网络状况和数据传输速率等因素来动态选择出"活动数据发送节点集合",从这个集合中的节点请求媒体数据来获取最优的数据传输速率。
2.3 数据调度模块
在数据发送节点间,根据对方服务能力,数据带宽等因素来分派每个数据发送节点所发送数据的次序,从而获得最小的数据接受延迟。
2.4 监控和自调整模块
动态监控每个数据发送节点的数据传输和数据丢失状况,为节点选择模块和数据分派模块提供必要的统计信息。
下面介绍P2P流媒体系统的工作流程,如图2-1所示。当一个用户请求收看某个媒体文件,例如一部电影,首先系统向P2P网络模块发送查询请求。P2P模块通过调用信息查询路由算法找到一个拥有这个媒体资源的节点集合,并通过网络探测模块检查出由用户节点到这些节点中间通讯链路的延迟和带宽。然后,节点选择模块根据这些信息选择出"活动数据发送节点集合"。前面已经提到这个子集合是网络返回的节点集合中与数据接收节点间网络状况最好的节点所构成的集合,其它节点组成备用节点集合,当活动节点集合中有节点退出或者网络传输质量下降,则从这个集合中选出一个节点替代活动节点集合中质量下降的节点。系统调用数据调度模块,来根据网络情况来决定给活动数据发送集合中每个节点分派合适的数据发送速率和数据块序号。然后数据接受节点根据这些参数分别与数据发送节点建立链接请求数据。如果活动数据发送节点退出会话或是链路传输质量下降,则监控模块通知数据调度模块重新在活动节点间分派数据传输速率。如果重新分派之后仍不能满足应用的需求,则通知节点选择模块提供新的合适的节点。同时,节点选择模块还会周期性的从底层网络中提供的新节点集合来选出新节点替换现有活动节点集合中数据传输率较差的节点。
3、核心节点选择算法
P2P流媒体系统的核心模块是对数据发送节点的动态选择和在多个数据发送节点间的数据分派算法。由于P2P环境的高度动态性和异构性,为了实现高质量的媒体流,如何选择最优的数据发送节点是一个很重要的问题,也是设计实现流媒体系统最大的挑战之一。在动态环境中维护和选择出满足流媒体播放质量要求的邻居节点的基础上,还要设计合理的算法在多个数据发送节点间优化数据发送的选择,来获得最小的数据传输延迟。
我们将不同能力的节点分成有限离散的多个级别。为节点赋予离散的异构性级别使得构建分布半结构化的拓扑结构成为可能。我将节点的能力概括为一个包括网络访问带宽、处理器主频、内存容量及外存访问延迟等参数的向量。这些参数都描述与节点与参与P2P系统能力高度相关的资源能力。对于我们特定的流媒体应用而言,与服务质量关系最为密切的参数就是节点带宽。因此,在我们的模型中,我们把节点的网络访问带宽作为最关键的参数,并根据这个参数来为节点定级。
在局域网中实验假设最大带宽为固定值,且设定中心服务器带宽为此固定值M。在直播业务中设定超级节点传输带宽也为固定值M (若在公共网中可以根据硬件条件改变带宽) 。在超级节点下属的域中,为每个节点计算机按照带宽水平分为几级,具体分级如下:
·固定带宽M,即超级节点和中心服务器 (中心服务器一般不参与构造传输网络) 为第一级;
·网络带宽为1M/S以上的节点为第二级;
·网络带宽为1M/S至512K/S的节点为第三级;
·网络带宽为512K/S至100K/S的节点为第四级;
·网络带宽为100K/S以下的节点为第五级;
根据节点不同的等级构造树状网络传输网络,相同级别的节点在同一传输层上,原则上同一传输层上的节点数据传输优先级最高级别最远的节点数据传输优先级最低。
注:优先级级别:最高, 次高, 中, 次低, 低。
按照数据传输优先级进行网络构建,构造出P2P网络树状结构图。如图3-1:
P2P网络构造的树状结构图不同于二叉树或多叉树的传输结构。应该说此P2P网络的树状结构图是多叉树的立体化,把相同层次的节点按照优先级进行数据传输队列排序。不同节点的传输序列相互之间不影响传输效果,但是若高级节点发生故障会造成传输阻塞和网络重组。本文不考虑传输阻塞的情况。每个加入对等组的节点都将根据不同的IP地址分配给不同的超级节点即不同的域。在域中将采用节点选择算法,即节点加入删除的算法,这也是本文研究的核心内容。
3.1 节点加入排序算法:
被分配到域中的计算机节点,将被按照带宽分级并分配给域内唯一的标识即ID号。节点加入后都会被分配到最高数据传输优先级的节点层次上,也就是说具有相同级别的节点原则上会被分配到同一个传输层次上。在域中的每个节点又会按照是数据发送节点数和数据接收节点数分别被标上不同的权,即不同的出度和入度。网络中所有的节点都有出度和入度限制,当然不同级别的节点出度和入度不同。具体的节点级别和权的关系如下:
·第二类节点权的范围是25个传输节点。
·第三类节点权的范围是20个传输节点。
·第四类节点权的范围是15个传输节点。.
·第五类节点权的范围是10个传输节点。
节点的权是一个变量,是左右节点选择算法的一个重要因素。当一个节点的权超出节点限制的范围或大大超过其他节点的平均水平时,系统就会把该节点放到同级节点选择传输序列的最后位置。当有下一级的节点需要建立连接时将最后才考虑该节点。设不同节点的权为Al, A2, A3,…An。
A杠=A的平均值。
假定在域内节点大于10的情况下,设定集合A为An小于A杠的节点集合。集合A中的元素都除以(构成类似四叉树状的网络结构),产生的商为节点选择的数据传输优先级,数值越小优先级越高。余数为节点满足度,相同优先级的节点按照节点满足度进行节点分配传输排序。节点满足度最小为1最大为4,节点满足度越小越能排在传输序列的前部。当有新的节点被分配到域中网络时,P2P网络模块将先给新节点按照带宽分级,然后按照分级确定传输优先级,然后找优先级高的节点进行连接。选择优先级的顺序是先考虑节点选择的数据传输优先级,然后考虑节点满足度。由于每次有新的节点加入时,都会造成网络连接的重排。由于A杠的变化造成集合A的变化也就造成整个网络节点连接组成的不同,但由于P2P网络良好的鲁棒性,A杠的取值又是所有节点权的平均值,所以在整体上看来,网络连接在整体上是稳定的。在节点数稳定的网络中,节点间的连接在长期上来看是稳定的。
3.2 节点离开排序算法
在域内网络已经构建好的情况下,计算机网络节点在没有新节点加入的情况下,计算机网络节点传输稳定,数据流传输不受外部影响。但当节点离开时,对网络的影响会很大,节点离开排序算法也是本课题研究的重点。当网络(下转第107页)内节点离开时分两种情况。第一种情况是节点离开时,节点上并没有出度,即没有其他的节点从这个节点传输数据。当这样的节点离开域网络时,该网络的每个入度,即提供该节点网络数据的计算机,都会接到数据传输溢出的通告,然后这些入度节点,将向超级节点发送一个查询通告,超级节点计算机收到通告后将查询离开节点的网络传输情况,并向入度节点计算机发送缓冲挂起消息。当确认节点离开时,超级节点将向入度节点发送断开指令并更新地址索引表,入度计算机出度减一。这种变化不会改变集合A,所以不会改变整个节点计算机的结构。第二种情况是节点离开时,节点上正在向其他的节点提供数据,即节点有出度。该节点的入度节点情况和第一种情况相同,出度节点将直接断开和该节点的连接,出度减一,并向超级节点发送节点选择通告,超级节点将按照出度节点不同的分类重新给出度节点分配节点传输。但当重新分配节点时,断开节点的入度节点的入度尚未减一,因此有可能造成网络资源的浪费,但由于是多计算入度,所以不会造成网络节点权溢出,不会威胁网络安全。由于视频的特殊性,不能让出度节点等待太长时间,也就是说不能等超级节点确认离开节点并更改离开节点入度节点的出度。因为这样会造成出度节点视频的延时过长。
无论节点怎么变化,超级节点和中心服务器的连接方式不变。混合型P2P网络结构由中心服务器和超级节点构建,所以P2P网络不会因为节点的加入和离开而改变。
参考文献
[1]谢勇均.P2P模式的流媒体服务技术.现代电视技术.2004年第7期.
[2]王艳丽, 鲜继清, 白洁.基于P2P的流媒体技术.计算机应用.2005年6月.第25卷第6期.
[3]B.T.Loo, R.Huebsch, I.Stoica, and J.Hellerstein.The Case for a Hyrid P2PSearch Infrastructure.In IPTP 2004.
[4]Dana Moore;John Hebeler.Peer to Peer.清华大学出版社.2003年2月.
P2P直播 第6篇
IPTV集互联网、多媒体、通信等技术于一身, 向成千上万的家庭用户提供包括数字电视在内的各种交互服务。传统的集中式服务模式需要布置大量服务器, 并要求极大的出口带宽, 所以整个系统的扩展性较差。如果把P2P的资源共享技术应用到IPTV的直播系统中, 前端流媒体服务器内容分发的压力分散到各个客户端上, 就可以提高整个系统的性能。如果按照传统的方式设计和部署以机顶盒加电视机为终端的IPTV直播系统比较困难, 成本也高。本文提出一种面向嵌入式机顶盒终端的基于P2P技术的网络电视直播系统方案。
2 设计思想
2.1 系统现状与特点
据统计, 2008年北京奥运会开幕式开始后, 央视采用悠视网的UUsee平台进行P2P流媒体电视直播, 网络电视的流量即出现暴涨, 在长达近4个小时的直播过程中, 其流量创出悠视网的历史峰值, 日视频观看次数突破6000万, 充分地说明了用P2P方式进行网络直播的可行性。像目前在互联网上流行的一些P2P视频系统 (PPlive、PPStream、TVAnt以及AnySee等) 更是可为数以万计的用户同时提供视频直播服务。
但是面向机顶盒的网络电视直播系统, 与一般P2P视频系统不同, 系统通常由本地运营商进行商业运营和集中管理, 系统具有3个显著的特点:
(1) 中心节点 (P2P服务器) 可靠性很高, 有专门维护;
(2) 内容提供商会限制内容非法和大量传播, 所以基本上每个系统规模不会很大, 但是视频播放质量要求很高;
(3) 运营商需要集中掌握和管理各个用户的播放情况。
这些特点使得P2P网络电视直播系统的设计不同于一般P2P视频系统。
另外, 系统主要面向嵌人式机顶盒终端。这类终端是商用IPTV的主要终端, 具有稳定性好、价格低的优势。但是机顶盒终端与PC终端相比, 存储小、计算能力弱很多, 需要对P2P系统进行专门设计。
2.2 设计原则
考虑到机顶盒IPTV直播系统的特点和要求, 系统采用集中管理的P2P模式, 设计专用的数据节点管理算法和数据传输算法。
集中管理一方面可以将P2P管理功能从机顶盒上移到服务器, 适合于计算能力差的机顶盒, 另一方面, 也便于运营商管理系统, 符合商业运营需要。
节点管理算法是集中式的, 由服务器粗粒度地为机顶盒选择合适的数据提供节点, 在此基础上机顶盒根据实际情况再做细粒度的调整。
数据传输算法是分布式的, 在节点间进行数据分发, 在保证传输质量的前提下, 尽量减小机顶盒各种资源的不必要的开销。
3 系统结构
IPTV直播系统由服务器、传输网络和机顶盒终端几大部分组成, 其中服务器端主要包括内容管理服务器、内容分发服务器和用户管理服务器, 机顶盒包括TV单元、P2P内核和浏览器等。系统框架如图1所示。
各模块功能如下:
(1) 内容管理模块, 提供直播频道管理平台, 自动生成频道信息。
(2) 内容分发模块, 将从原始数据源接收到的媒体数据打包, 根据P2P数据传输协议把数据分发到直播网络中。
(3) 用户管理模块, 管理系统中的机顶盒, 通过节点控制协议对机顶盒进行认证和注册, 以及处理其他的机顶盒请求。
(4) 浏览器提供界面供用户进行节目的浏览和选择。
(5) P2P内核通过节点控制协议完成注册, 通过数据传输协议在节点间分发数据, 并将接收到的数据提供给TV单元。
(6) TV单元从P2P内核获取数据, 进行解码播放。
4 控制流程
(1) 在内容发布中, 用户下载节目后, 浏览器通知机顶盒P2P内核加入特定频道。
(2) P2P内核连接到直播服务器的用户管理, 进行注册并请求加入频道。加入成功后, P2P内核向用户管理申请获取数据提供节点列表, 用户管理从当前频道的节点成员中选出一部分返回给请求节点, 作为它的候选数据提供节点。
(3) P2P内核与分配到的数据提供节点进行连接, 通过P2P数据传输协议获得数据, 并由TV单元进行解码播放。
(4) 在数据传输的同时, 节点对它的数据提供节点进行能力评估, 当发生正在传输数据的节点失效的情况时, 需要把传输任务转移到能力最好的节点。
5 关键算法
P2P直播系统要解决的主要问题是节点成员管理和数据传输。数据提供节点管理和数据传输模式分别是这两者的核心部分。
5.1 数据提供节点选择算法
拥有良好传输能力的数据提供节点是机顶盒进行稳定传输和流畅播放的前提。考虑到IPTV网络是树状层次的拓扑结构, 一个节点被包含在规模上从小到大、层次上从低到高的多个网络中, 同一个网络内的数据节点, 相互间的链路性能比较理想, 因此为终端寻找数据提供节点时, 优先在包含该节点的层次较低的网络中查找, 以保证互相间较好的链路能力。
首先按照层次从低到高、连接性能从好到差的次序形成互不包含的待搜索网络序列。在搜索网络中查找数据提供节点时采取自上而下, 从指定的搜索网络开始, 层层向下直到某个底层网络, 该底层网络中有能力的节点可作为数据提供节点。通过该算法, 可以得到一批与数据请求节点之间链路性能较好、有空闲能力的数据提供节点。
5.2 数据传输算法
在P2P直播系统的数据传输模式的设计中, 需要考虑数据传输稳定性、控制代价等因素。
方案中数据传输算法采用P2P的推播技术, 尽可能减少控制信息和花费在调度传输任务上的时间, 该方法可以通过任何带宽的网络向装有硬盘的IPTV机顶盒终端推送高带宽码流的视频节目, 让用户通过电视机享受高质量视频节目。加上采用H.264先进编码技术, 1Mbps的码流就可得到DVD的视频质量, 从而可以给互联网上的任意用户提供实时、流畅、清晰的电视节目直播, 而不会受到网络带宽和流量的限制。
6 结论
本文提出了基于P2P的直播系统的架构以及关键算法。分析表明, 系统有较强的可扩展性, 并且对客户端处理能力要求低, 适用于机顶盒终端。系统带来最明显的改变是将传统互联网PC终端观看流媒体视频的书房体验转移到了客厅, 前倾坐姿变后仰坐姿, 将键盘操作变为遥控器操作。而且对于视频运营商来讲, 新的IPTV方案的出现无疑为他们带来巨大的惊喜, 它可以让运营商用最小的投资建立起规模最大、质量最好、服务最完善的IPTV视频服务体系, 可以让运营商更方便的组建自己的网络电视台, 大大降低了以往组建同类系统平台的门槛, 任何人、随时、随处都可以建立起属于自己的网络IPTV电视台。
摘要:分析了目前IPTV系统在视频传输方面存在的问题, 提出一种基于P2P (Peer-to-Peer, 即对等网络) 技术面向嵌入式机顶盒的网络电视直播系统方案。该方案能够在较低的硬件配置下为大量用户提供高质量的视频直播服务。
P2P直播 第7篇
P2P是Peer to Peer的简称,是一种网络模型。P2P网络中各节点在功能以及地位上是平等的,对等节点之间可以通过直接连接而共享、传递资源,并不需要通过集中式服务器中转。与传统的客户端/服务器(C/S)网络模式相比较,它有能更好地利用网络资源、减轻服务器负担以及消除服务器瓶颈等优点。基于以上优点,P2P模式越来越受到广泛的关注。很多商业公司、研究部门都认为该技术蕴涵着巨大的商业和技术潜在价值,并从不同的角度应用和研究该技术。目前主要的研究角度有:文件共享、即时通信、流媒体、网络游戏以及对等计算等。
2 技术特点
P2P技术与目前网络中占据主导地位的客户端/服务器(Client/Server)结构的一个本质区别是,在整个网络结构中不存在中心节点(或中心服务器)。P2P技术具有以下4个主要特点。
(1)非中心化。一个纯粹的P2P网络是没有中心服务节点的,所有的Peer既是客户机又是服务器,这是P2P最本质的特征之一。在P2P技术结构中,中心的意义被大大弱化甚至完全消失,去中心化的特点得到了更为充分地体现,网络结构扁平化的特点也进一步凸显。由于完全非集中化带来了实现和管理方面的困难,很多P2P应用采用了混合模式。
(2)可扩展性。可扩展性被认为是P2P网络最重要的特性之一,P2P网络在理论上可以无限扩展。e Mule目前在全球拥有几千万用户,BT的用户数甚至超过了e Mule,而且仍在快速增长。
(3)健壮性。P2P网络架构天生具有耐攻击、高容错的优点。由于服务是分散在各个节点之间进行的,部分节点或网络遭到破坏对其他部分的影响很小,像传统网络结构中中心节点故障导致所有业务瘫痪的现象几乎不会出现。
(4)高性价比。采用P2P架构可以有效地利用互联网中散布的大量普通节点,将计算任务或存储资料分布到所有节点上,利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。通过利用网络中的大量空闲资源,可以用更低的成本提供更高的计算和存储能力。
3 流媒体直播系统的设计
流媒体直播系统设计的目标是充分利用现有计算机资源和网络资源,降低服务器资源和网络带宽的消耗,实现高扩展性和可靠性,提供高质量的网络流媒体播放。整个系统分为服务器和客户端两个部分,在P2P网络上节点是对等的,即作为客户端在接收上级节点传输的与开发过程中,主要包括服务器与客户端的实现。其中,服务器创建服务并接受、处理客户端请求,向子节点发送媒体流,在有节点失效的情况下调整节点位置维持整体结构。客户端向服务器发送加入请求,在服务器的管理下接受、播放、转发媒体流,并监视自己的孩子节点是否仍然有效。系统结构如图1所示。
系统各模块功能如下:
(1)成员管理负责系统中节点的管理。当节点想加入直播系统时,服务器将会把用户的名字、地址、端口号等数据保存在当前用户列表中。如果服务器当前没有子节点或者未达到子节点个数上限,那么服务器会把该节点作为直接子节点,否则,服务器会把该节点作为叶节点。
(2)伙伴管理器是用来负责维护和管理本节点与其他节点之间的关系。当节点加入一个P2P网络时,伙伴管理器负责发送请求并找到合适的节点建立父子关系。当节点消息从P2P直播网络中退出时,伙伴管理器向服务器以及其父节点和子节点发送消息。当本节点的父节点失效时,伙伴管理器还要负责进行失效恢复。伙伴管理器每隔两秒钟与父节点和子节点进行消息通信,用来探测对方是否还在网络上保持可用。
(3)调试器负责调试当前正在播放用户所需要的音视频流,通过共享节点之间的控制信息保证数据信息传输的流畅性和安全性。调试器把流媒体数据侵害成时间长度相同的片断,每个片断为一秒钟的数据,然后分发给它的子节点。
(4)缓存管理器用来管理客户端端缓存的流媒体数据。系统采用循环队列缓冲机制,把节点获得的流媒体数据缓存到本地。通过丢弃已经播放的内容,来缓存后续的数据。环形缓冲区的设计能够平滑了延时抖动,能够较好地满足视频回放的要求,客户端在缓存数据流的同时还向自己的子节点分发数据。
4 节点管理
4.1 节点加入
在系统中,传输结构是随着节点的加入而逐步建立的。服务器发布服务后,节点可以向服务器发起请求,前两个发起请求将成为服务器的子节点,之后向服务器发起请求的节点将由服务器将请求转发给某个子孙请求节点,由子孙节点来提供服务。
由于在工作过程中服务器需要管理节点,所以服务器需要保存已加入的节点的信息,用来在需要时与节点进行通信。使用Array List来保存节点信息,由于完全二叉树的结构特点,用节点加入的顺序编号来索引节点十分方便。
4.2 节点退出
系统中,节点退出,下一级节点将会失去数据源,播放将会中断。因此,在发现节点失效后,要调整传输结构,以保证所有节点的正常播放。由于采用完全二叉树作为传输结构,所以要保证调整传输结构以后,仍然是完全二叉树。系统采用以最后一个节点补充失效节点的方式来调整传输结构,如图2所示。
如果节点2退出,节点1(服务器)将在一定时间后通过监视程序发现节点2失效。于是服务器将查找Array List中最后一个节点,即节点7。服务器通过节点7的编号7找到它的父节点:节点3,通过节点3对7的数据流传输,取消对7的监视。并将节点7的信息调整到Array List中的位置2,之后节点1重新向新的2号节点传输数据流,重新对新的节点2进行监视。最后服务器判断节点2是否有孩子,若有孩子,则服务器向节点4、5请求加入时一样,向新2号节点发送节点4、5请求加入的消息,之后新2号节点将分别对他们传输数据流和监视他们是否失效。
5 系统实现
目前,在流媒体领域中,主要有3种流媒体格式类型,即微软公司的ASF格式、Real Networks公司的Real Media和Apple公司的Quick Time。在本系统中,采用微软公司的ASF格式。
RTP/RTCP是用于网络流媒体实时传输的协议。RTP(实时传输协议)是一种提供端对端的实时传输协议,RTCP(实时传输控制协议)用于统计、管理和控制RTP的数据包的传输。因此,在本系统中,采用RTP/RTCP作为传输协议。通过采集卡从数据源获取流媒体数据信息,并且将流媒体数据压缩成RTP和RTCP包,然后向P2P网络转发,RTCP包信息用于对RTP包信息的控制。
根据源数据提供的方式,P2P流媒体系统可以分为单源和多源两种。
单源P2P流媒体系统,由一个节点向多个节点以组播方式发送数据,接受者有且只有一个数据源,所有节点组成组播树,组播树中间节点接受来自父节点的媒体数据,同时以组播方式将数据传送给其子节点。由于每个节点的数据只能来源于单一的节点。在传输视频数据时,由于视频数据量大,所以会经常出现缓冲时间过长的情况。单点传输无法发挥出P2P技术参与的用户越多传输速度越快的优势,这种情况下节点多只意味着你选择最佳节点的空间大而已,一旦确定一个传输节点,速率可以认为就是固定的。单源P2P流媒体系统中比较有代表的是Peercast。Peercast是非盈利站点Peer Cast.org提供一款免费P2P流媒体软件。从传输协议来看,Peercast只是简单地采用HTTP方式传送视频、音频数据流,并没有考虑到流媒体数据传输地特性,采用适合流传输的实时流放协议RTSP或者端对端协议RTP/RTCP。诸如象PPLIVE、PP-Stream以及OICQ直播,这些在占国内流媒体市场高达59%的P2P流媒体平台流媒体系统都是以Peercast系统为基础,并对其算法、通信机制做了一定的优化。
而多源的P2P流媒体系统,则是由多个节点以单播方式同时向一个接受者发送媒体数据。在这种方式下,单个发送者提供的上行带宽不足以支持一个完整的流媒体回放时所需的带宽R,将多个发送者的能力聚合在一起,使其上行带宽总和大于R,就能够提供正常的流媒体服务。
6 结语
目前,P2P流媒体传输的研究起步不久,还有许多方面需要完善,如何在动态环境下保证流媒体的服务质量,建立合理的激励机制,鼓励参与的客户能最大地共享其资源,以及如何建立一个有效的安全机制,保证互不信任的用户之间的服务能够顺利完成等等这些都是P2P流媒体研究的方向。相信不久的将来,P2P技术的应用将层出不穷。作为一个迅速发展的网络技术,P2P在在日益改善的网络环境下将会大有作为。
摘要:随着P2P技术的不断发展,P2P技术在网络方面的应用越来越突出,P2P已成为影响Internet未来的重要技术之一。先从P2P技术的基本概念和技术背景出发,介绍了基于P2P技术的特点,然后着重分析了基于P2P技术的流媒体传播系统的设计和系统的实现方法。
关键词:P2P技术,流媒体,直播系统,伙伴管理器,缓存管理器
参考文献
[1]许永明,谢质文,欧阳春.IPTV—技术与应用实践.电子工业出版社,2006.
[2]金纯,齐岩松,于鸿洋,陈前斌.IPTV及其解决方案,国防工业出版社,2006.
[3]钟玉琢,向哲,沈洪.流媒体和视频服务器.清华大学出版社,2003.
P2P直播范文
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。


