P2P流媒体系统(共10篇)
P2P流媒体系统 篇1
网络多媒体服务在应用范围上不断扩大, 其中P2P作为一种新型网络技术对传统流媒体直播模式进行了改善, 将网络系统内所有计算机均作为服务器/客户端, 实现数据的网上传播。利用P2P网络特点, 可以将网络上任何一台机器变为流媒体段度武器, 承担转发任务, 进而解除了传统流媒体直播系统中服务端网络带宽瓶颈的限制。在对P2P流媒体直播系统进行研究时, 需要确定其关键技术, 并在现有基础上做更进一步的分析。
1 流媒体直播系统概述
流媒体即可以在Internet上实现音频、视频以及其他多媒体实时、、无需下载等待的传播技术, 其文件格式支持使用流失传输与播放。本质上流媒体技术将动画、视音频等多媒体文件经过特殊压缩方式处理后, , 利用视频服务器想用户计算机连续、实时进行传输。这样可以实现多个用户的共同使用, 并且与非流式传播方式相比, 避免了数据下载中的等待时间, 实现了边播放边下载[1]。
2 P2P流媒体直播系统优点
2.1 缩短传播时间
通过流媒体方式来获取文件, 用户可以节省等待文件全部下载完成后才可浏览的时间, 一般情况下, 一个正常的音视频压缩软件, 选择流媒体方式传输, 在一分钟以内既可以显示在用户计算机上, 并且多为连续播放。即便是选择用全屏播放的模式, 也不会对播放效果产生太大影响, 只有在进行快进操作时需要等待一定时间。
2.2 存容量要求低
流媒体选择用Internet包传输为基础的断续异步传输模式, 传输文件中的数据将会被分解成多个包, 动态变化的网路会促使各包选择不同的路由, 进而到达用户计算机的时间延迟各不相同。这样就决定了客户端需要缓存系统来弥补延迟与抖动的影响, 提高数据包传输的准确率, 确保所有媒体数据均能够连续输出, 降低网络拥堵对数据传输与播放效果的影响[2]。
2.3 实时传输性高
流媒体传输实现了特性实时传输协议, 与其他数据传输模式相比, , 其可以更高程度上满足动画、音视频等数据信息在网上的实时传输。
3 P2P流媒体直播系统总体设计分析
3.1 系统框架图
文章以P2P流媒体直播系统P2PSLTV为例子进行分析, 系统主要基于树状拓扑协议与扩展模型, 其框架图如图1所示。包括两个服务器, 一个为媒体服务器, 主要负责流媒体直播源的发布, 建立新的频道列表, 并请求节点索引服务器发布新的频道列表。另一个为节点索引服务器, 主要负责系统内已经加入节点的索引, 并记录各项加入的信息, , 向节点提供发现其他节点的服务, 同时可以周期性的连接PIS, 以求获得相应节点各项信息。在对系统进行设计时, 需要确保MS服务性能满足实际应用需求, 能够按照需求设置ES服务器, 实现与各节点之间流媒体数据的传输, 对MS服务器存有的缺陷进行完善。在系统传输流媒体数据时, 由MS服务器向各个ES发送, 然后ES存储并转发给与其连接的各个节点, 由Peer再次转发给其他Peer[3]。其中, ES与Peer、Peer与Peer之间网络相对复杂, 如果设计不当势必会对多媒体数据的传输效果产生一定影响, 因此设计时需要加强对此方面的研究。
3.2 工作流程
流媒体数据的传输从节点主机开始, 对从直播源获得的数据进行各式调整与缓存处理, 并将其与邻居节点完成数据交换。当有直播需求时, 数据提供者应首先做好直播源服务器MS的配置, 然后请求PIS发布与维护MS建立的频道, 最后MS服务器按照设定完成直播源的直播。另外, 普通节点在获取频道数据后, 会对其进行重新划分, 确保其能够在该流媒体直播系统中正常直播, 并将其放入自身缓冲窗口内。当MS成功与直播源连接后, 选择周期性的方式向PIS报告正在直播的频道信息, 成为该频道覆盖网的第一个节点, 这样其他节点就可以通过PIS发现覆盖网中存在的各个节点, 并进行连接[4]。在其余节点与MS服务器连接并加入到该频道覆盖网后, 会向PIS服务器报告自己缓冲窗口内数据状态。而节点Peer需要访问PIS服务器上频道列表来获得频道所有信息, 然后通知服务器加入到该频道覆盖网中并获得所有信息。节点Peer与各节点连接, 并获取邻居节点各项信息, 这样就可以交换缓冲窗口内数据信息。最后, Peer向邻居节点以及服务器发出数据块请求, 在其获得一定数据信息后, 即可以启动播放器从端点获得连续音视频流进行播放。
3.3 节点软件
与传统媒体数据传输系统性相比, P2P流媒体直播系统可以更好的满足视频直播传输系统对扩展性、传输效果等多方面的要求。设计时可以将系统分为管理调度层、数据交换缓冲层、覆盖网络层以及网络接口层, 不同系统部分所负责的功能不同。例如网络接口层, 主要负责对流媒体数据包进行封装, 并保证其可以在底层网络上正常传输, 是系统与外界的接口。通过其可以与各个节点进行连接, 并满足定时器设计要求, 可以说是TCP/IP协议物理层与数据链路层功能的集合与扩展。度高网络层, 其主要负责与PIS服务器进行周期性的联系, 并实现交换数据的保存与管理。系统运行时, PIS服务器请求与服务器联系, 并对得到的各项数据信息进行统一保存管理, 同时覆盖网络层会通过向PIS服务器请求来获取其他各节点的信息, 来完成P2P覆盖网络的构件。
3.4 功能模块
第一, 节点组织与管理模块。主要负责各节点的组织管理, 即系统内各节点可以按照服务能力等级来自行组织成一棵属性结构, 便于整个系统运行的管理与维护。第二, 查询与数据选择模块。主要实现对系统内各项数据的查询, 并按照一定原则, 从查询得到的结果中挑选出合适的数据源节点来完成数据的传输。第三, 质量监控模块。完成各节点数据传输速度的监控, 一旦监测到节点数据传输失败或者速度严重降低的情况, 对节点进行更换, 来确保数据文件总体下载速度大于媒体文件播放速度。第四, 信誉机制模块。主要负责确定信誉值, 并且对节点信誉值以及节点系统服务进行联系, 鼓励各节点能够通过积极分项数据来提高信誉值, 争取进一步提高系统服务能力。
4 结束语
P2P流媒体直播系统与传统媒体播放模式相比, 无论是传输效率还是播放质量均具有更大的优势, 现在已经得到了广泛的应用。在对其进行设计研究时, 需要了解其所具有的特点, 确定系统框架结构, 对各个环节进行分析, 确保整个系统数据信息传输的有效性, 争取不断提高直播系统服务能力。
摘要:文章对流媒体进行了概述, 并针对P2P流媒体直播系统进行了简要分析。希望通过文章的分析, 能够对相关工作提供参考。
关键词:流媒体,P2P,直播系统
参考文献
[1]唐展锋.基于P2P的流媒体直播系统研究与设计[D].电子科技大学, 2012.
[2]谭冠兰.一种基于P2P流媒体直播系统的研究与实现[D].中南大学, 2008.
[3]赵娟娟.基于P2P技术的流媒体直播系统的设计与实现[D].武汉理工大学, 2009.
P2P流媒体系统 篇2
摘 要:通过阐述流媒体技术对于当今远程教育的重要意义,文章提出了基于云服务的P2P的远程教学系统资源共享网络结构和解决方案,研究表明基于云服务的P2P架构的流媒体技术能够突破固有网络带宽的瓶颈,高效的传输流媒体文件,提高音视频文件的播放质量,保证视频资源的稳定性,更适用当今远程教学系统。
关键词:云服务;流媒体;P2P;教学系统
中图分类号:TP393 文献标志码:A 文章编号:1673-8454(2016)06-0091-04
当今,电子信息技术在以前所未有的速度发展,许多传统领域都受到冲击从而产生各种变革,基于先进的网络通信技术,远程教学模式应运而生,远程教学的开拓与发展,使得现在的教学模式呈多元化趋势发展,无论是教学模式还是教授内容均发生了巨大的变革。而相应的,学生的学习模式也在变化,现在的课堂,学生不再是以单纯的听讲作为主要学习方式,他们开始转变为课堂的主体,带着疑问有目的性的寻求教学资源,因此拥有庞大教学资料储备、方便沟通渠道、良好互动机制的远程教学模式必定成为教育领域的主流教学模式。
一、基于云服务的P2P流媒体技术
1.流媒体
流媒体技术在一定程度上突破了网络宽带对多媒体信息传输的限制,被广泛用于网络视频直播、广告、电子商务等各种领域,它采用流式传输的方式,其数据流能够做到随时传送,对系统缓存要求较低,缩短了启动延时,随时播放,减少了用户等待时间且能够做到断点续播,不必从头下载文件再播放,而且流媒体压缩的音视频文件容量小,易于网络传输。
虽然现代远程教育已经取得了很大的进步,但目前国内的远程教学还存在不足之处,其中最显著的一点是教学模式单一。许多院校只是将原版教材制成电子版上传至网络供学生下载,仅仅是利用了网络的便利条件改变了教学环境,教学形式上反而变得更加消极,在无人监督和学习内容单调乏味的情况下,会极大的打击学生的学习积极性,而且诸如化学、物理、音乐等需要现场实验和演示的学科,在只能传输PDF或PPT文本的形式单一的远程教学平台上根本无法做到有效授课。
流媒体技术的应用可以有效解决这些不足,从效果上看,流媒体技术能够将传统教学中教师授课风采以及现场试验场景呈现在学生面前,帮助学生对课程的理解,同时辅以PPT讲稿和索引,学员可根据需要自由切换学习的课程章节,相比较于传统教学模式,不仅不会降低教学质量,而且极大地提高了教学的便利程度。从成本上看,由于支持流式技术的多媒体文件不需要全部下载完成就能观看,点播延时大大缩短,不需要很大的缓冲区,对网络带宽的要求下降。流式技术采用较高效的压缩编码如MPEG-4等,提高了网络传输视频的质量,即使学员不在现场听课也有身临其境的感觉。
2.P2P概述
大学的教学网络多以C/S模式存在,该模式中,服务器以单播的形式传输媒体流,该传输模式一般用于小范围的局域网内,易于维护管理,但其缺点也十分明显,当用户数量增加到一定程度时,受服务器本身性能及网络带宽的限制,无法承载较大流量的音视频文件传输,这对远程教学流媒体技术的使用开发是一大瓶颈[1]。
P2P是对等计算(Peer to Peer)的简称,可以简单的定义成通过直接交换来共享计算机资源和服务,而对等计算模型应用层形成的网络通常称为对等网络。在P2P网络环境中,整个网络不依赖专用的集中服务器,成千上万台彼此连接的计算机都处于对等的地位,网络中的每一台计算机既能充当网络服务的请求者,又对其它计算机的请求作出响应,提供资源和服务。此类组网的传输模式优点在于能够充分利用客户端(即学生终端)的闲置带宽以及计算资源,减轻中央服务器及骨干网络的负担,解决C/S模式资源受限问题,保证视频流快速流畅播放,而且不需要互联网路由器和网络基础设施的支持,因此性价比高且易于部署。但P2P技术流媒体业务的应用中仍存在一些技术性的问题,如合适源节点查找和数据传输路径维护等,也会对网络的整体稳定性造成负担。基于此背景下,通过构造新的虚拟多源P2P资源共享、传输模式等手段能有效解决远程教学中流媒体应用的问题,解决的方法是在客户端节点中选择优秀节点构建源组,充分利用对等网络中每个终端用户的空闲资源来减轻服务器的负担,在不影响接收教学视频质量的情况下,能够保证客户端稳定、流畅地获取视频,同时,使用该方法建立的网络构架具有良好的扩展性,能自动根据某一时期的用户总量缩减或扩张规模[2]。
3.云服务概述
云服务是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。相对于传统的基于本地设备的服务,它具有大规模、高可靠性、通用性、高可扩展性和按需服务、费用廉价等特点,如此,小规模使用者既能省去高昂的数据中心的管理成本,云平台服务商也可运用闲散资源收取租用费来对云平台进行维护,双方互利互赢。从普通用户的角度来看,通过云平台获取服务价格低廉且方便快捷,只要有网络覆盖的地方即能使用,因此运用云服务,能有效优化基础的P2P流媒体传输系统。
二、系统模型
1.传输系统框架
使用P2P技术在远程教育平台上传输流媒体,是为了充分利用终端设备的边缘性网络资源,减轻中央服务器负担,提高流媒体传输效率,所以在系统模型的结构上使用混合式传统模型[3],如图1所示。
教师端或管理流媒体资源的中央服务器作为传输系统的源节点,整个网络系统中的视频流均源于此。如果采用C/S(客户端/服务器)的方式,那么整个传输系统将受到源节点设备配置的制约,并且当学生用户数量增加到一定程度后,源节点的终端设备会由于负载过重造成当机现象,从而使整个网络瘫痪。而纯P2P的非中心化结构,则无法实现节点的快速定位,且容易产生网络风暴[4]。因此,传输系统采用建立虚拟源分组广播的方式,在普通用户中选择网络资源优秀的节点作为组长建立广播组,由组长专门负责该组内部的流媒体传输管理,即源节点仅负责组长节点的传输补偿,而不对普通节点做流媒体文件传输,普通节点则由其所属广播组组长节点负责流媒体传输[5]。由此,源节点与组长节点、组长节点与组内普通节点均形成集中性结构,而各广播组组长之间、组内普通节点之间的数据传输均采用P2P式的分散性结构,这样即可快速补充节点数据流。
2.数据传输系统的工作原理
(1)传输系统的初始化及资源获取过程
当学生用户需要获取流媒体资源时,必须先与源节点会话,建立通信链接,在首次通信过程中,源节点根据网络通信响应(如网络带宽及响应时长等属性)选择网络资源宽裕、终端性能优秀的学生用户的节点作为广播组组长, 并分配编号GROUP_ID,构建传输网络中的广播组,并更新广播组信息表,形成一级传输构架。源节点优先向组长节点传输初始流媒体数据,而各广播组组长节点间以纯P2P的方式进行数据互联,互补信息差异。当组长节点从源节点获取数据后,马上根据自身管理的组内节点信息表所含路由信息进行资源分发。
随着学生用户接入数量的增加,源节点根据新接入节点的信息,利用均衡负载技术,为用户选择最佳广播组,标识唯一节点编号,并分配到相应广播组中,并向广播组组长节点反馈新节点信息。广播组组长节点接受到反馈信息后,更新组内节点信息表。
节点在加入广播组后,先与组长节点进行对话,并从组长节点获取相应流媒体初始片段流,然后组长节点根据新节点当前连接的片段号检索组内其余用户,如果组内其余用户有相应片段号的流媒体文件资源,则创建新节点与用户P2P连接,由相应用户提供服务;如其余用户无新节点所需资源,则仍由组长节点提供资源服务。
由此可见,广播组内部组成传输网络的二级构架,普通用户与组长节点的层级关系与组长节点与源节点的层级关系一致,普通用户仅向组长节点及组内用户索取流媒体资源,极大地缓解了对源节点的压力。虽然普通节点也需连接到源节点进行认证,但认证信息所需网络流量很小,不会对源节点造成太大影响。
(2)节点信息认证管理及维护
源节点:统一管理传输系统内所有节点信息及广播组信息,当有新节点加入时,由源节点为其选择广播组,并向所选广播组反馈新节点认证信息,同时更新自身节点信息管理表。
组长节点:系统初始化时,从源节点获取流媒体数据,并分发到组内。广播组稳定后,负责组内节点信息管理。在接到源节点反馈的新节点加入认证后,更新组内节点信息表,并开始向新节点提供资源传输服务。同时广播组组长节点之间保持通信及P2P式资源传输补偿。
由于组长节点源于学生用户,为避免该用户退出后出现数据传输的断流现象,源节点应为每个广播组配备后备组长,当现有组长节点退出后,后备组长行驶组长节点职能。后备组长应由组内网络带宽最优、响应时长最短的节点担任。
(3)节点退出
正常退出:源节点信息表中,对新加入节点认证并分配广播组,同时更新节点信息。当节点正常退出时,向源节点发出请求,源节点删除节点信息表相应信息并向对应的广播组组长节点反馈,组长停止对请求退出的组内节点服务,删除相应的组内节点信息。
异常退出:由于网络故障或断电等原因导致用户意外离开时,组长节点不会收到用户节点的退出请求。因此,传输系统内需要通过心跳机制判断节点存活。普通节点每个特定时间t向源节点发送一个状态信息标示节点存活。若源节点在n个特定时间t内未收到某节点状态信息,则视该节点已退出,向对应组长节点发出反馈信息,停止向未响应节点提供服务,更新节点拓扑。若组长节点未响应,则删除组长节点,同时更换后备组长为新节点组长,并向新组长配置相应的组内节点信息。
3.基于云服务的视频资源传输优化
混合结构的P2P视频传输模型能够极大地提高远程教学系统中视频分发传播的效率,但是有三点问题需要解决:①视频资源数据的完整性、安全性:为保证视频资源的存储安全,确保不在硬件损坏的情况下丢失文件,需要考虑到资源的备份工作,要保证在读取备份的过程中不间断视频的传输、分发工作,则至少需要“双机热备份”作为基本配置,即需要两套相同配置的服务器群及存储阵列;②校内服务器负载过量:所有的初始资源均从存储视频资源的源节点获取,会导致传输系统构建的初始阶段,负责视频资源管理的服务器负载过大,出现高延迟甚至当机的现象;③关键点存活效率:组长节点是传输系统中的关键,它是第一批接收视频资源并进行分发管理的重要节点,但是由于组长节点是利用了性能较好的普通用户节点,所以当系统中用户到达一定程度时,组长节点的登录退出会变得相当频繁,继而导致普通用户频繁的更换广播组,期间的认证通信过程会消耗不必要的网络资源,增加网络带宽的负载,降低传输效率,加之也有可能会出现组长节点性能不足导致超级节点成为系统的瓶颈,其组内的普通用户节点成为孤立节点,从而一直等不到视频数据。
由此,为保证传输系统稳定高效的运转,必须解决上述三个问题。对于视频文件数据的完整性、安全性和校内服务器负载过量的问题,最直接的方法就是加强自身硬件配置,然而这需要配置多台高性能服务器以及存储阵列,无论在采购还是日常维护的工作上,均要花费大量的人力物力,对于学校而言,仅为了远程教学系统的视频资源就花费大量成本去构建企业级的硬件设施是十分划不来的。而如果使用云服务,则可以完美解决这一问题。首先,在硬件配置上,云平台的设施都由大型企业作为运营商维护,其硬件配置远比自己构建的机房更高效,更合理,用户从云平台获取流媒体教学资源,无需占用校内网络带宽,能极大缓解校内网压力;其次,从经济上,云平台的设施不需要由学校派专人维护,学校仅需要支付云平台服务租用费用即可,期间硬件的损坏更换、升级服务以及机房维护,学校都不再需要支付任何费用,学校也不用另外购买数据存储备份所需的硬件设备,极大地节约了人力和物力成本;再次,从拓展性来说,使用云服务可以根据实际网络的负载量直接调整传输模型的承载能力,如需扩大规模时不需要更换硬件设备,仅需要向云平台的服务商购买更高等级的环境配置即可。由此可见,使用云平台来解决本文提出的P2P视频传输系统是有效可行并且极富性价比的。
在引入云平台的同时,引入两个定义:①主动源:云平台上一种由多个核心、可变内存和永久的存储空间组成的自动化虚拟机服务,它的任务是主动接受从源节点(校内管理流媒体资源的中央服务器)推送的流媒体文件数据,并立即利用自身上传能力分发到各用户节点,保证用户节点尽可能早的获得缓存视频数据,它的存在能够有效解决视频资源数据的完整性、安全性和校内服务器负载过量的问题。②被动源:仅租用简单的云存储服务,源节点和主动源均可推送任意数据给被动源,而普通的用户节点如果无法在限定时间以前获得流媒体数据,则向被动源请求,由被动源直接推送数据给用户节点,它用于解决关键点关存活问题。
被动源工作机制:在基于P2P的视频流传输系统运行基础上,云节点除了向组长服务器发送流媒体数据外,还负责把数据存储在被动源上。为了保证达到预定义的服务质量,每个节点都先缓存播放时间往后的一定时间段的数据块,把这段数据块定义为缓冲预判,对应的这段时间叫预判时间TL,如果一个数据块不能在它应该的播放时间减去TL这个时刻之前获取到的话,那么这个节点便向被动源求助,从被动源那直接获取这个预判缓冲的数据块。这样,在组长节点失效的情况下,普通用户节点也能及时获取流媒体视频数据,并且被动源基于云服务,不会频繁登录退出浪费网络带宽资源。
主动源工作机制:主动源的目的是为了减少网络带宽压力,分担校内服务器负载,提升服务质量。主动源获得数据的途径可以是媒体源,可以是其它主动源,然后将数据推送给其他主动源或者组长节点、普通节点。由于主动源具有自动化虚拟机服务,它和用户节点一样运行节点取样协议去获取整个传输系统的拓扑信息和运行情况,发现其邻居节点。显然,由于主动源能够自动获取拓扑信息和其他节点的运行信息,它可以对源节点做动态备份,并且能自动寻找压力过大的群组,按负载压力大小主动分担组长节点和被动源的压力,使得更多的节点在更早的时间接收到视频流数据,整个网络的效率会得到提高。然而,由于主动源的服务租用费远比被动源高,所以,主动源和被动源的租用数量应根据实际情况取舍,在用户数量相对较小、拓扑结构复杂度不高的情况,甚至可以考虑仅使用被动源功能。这样才能做到效率和成本的两方面优化。
本文设计和描述了基于云服务的P2P流媒体传输模式在远程教学系统中的应用,并分析了系统的性能及优势。基于云服务的P2P流媒体技术远优于传统的C/S教学模式,将给远程教育模式带来全新的体验,解决网络教学质量难以控制的问题。随着网络基础环境的改善和广泛应用,基于云服务P2P模式的流媒体技术将为远程教学提供更好的平台。
参考文献:
[1]Luaek,CrowcroftJ,Pias M,et al. A survey and comparisonofpeer-to-peer overlay network schemes[J].IEEE Communications Survey and Tutorial,2005,7(2):72-93.
[2]Yiuwpk,XingJ,Chan S HG.Challenges andapproaches inlarge-scale P2Pmediastreaming[J].IEEEMultiMedia,2007,14(2):50-59.
[3]魏国生.基于网络的合作学习的教学设计及案例研究[J].电化教育研究,2004(8).
[4]李俊青,李元振,王文宏.基于P2P的虚拟学习社区平台设计[J].现代情报,2006(6).
[5]邓春红,方群.一种基于P2P的新型网络学习模型[J].安徽职业技术学院学报,2006(3).
P2P流媒体系统激励机制综述 篇3
关键词:P2P,激励机制,流媒体系统
1 背景
流媒体以其特有的娱乐性和交互性正在成为推动未来宽带的主动力。视频业务作为计算机、通信、消费电子技术融合的载体, 得到越来越广泛的应用。数字电视、视频电话、视频会议、远程教育这些视频流媒体通信应用模式正在渗入并影响着人们的工作和生活。根据CNNIC机构2012年1月最新调查显示:截至2011年12月底, 我国网民规模突破5亿, 互联网普及率攀升至38.3%, 而网络视频用户规模已经达到3.25亿人。
在低速网络时代, 网络流媒体应用以C/S模式为主。随着应用规模的扩大, 流媒体的连续性、实时性以及严格的时序性对服务器的性能提出了要求, 带宽、服务器存储及处理能力等成为系统性能瓶颈, 系统的可扩展性差;而且单一服务器系统存在单点故障的可能, 易受攻击。于是, 人们提出利用多台服务器组成CDN (Content Distribution Networks, 内容分发网络) , 将内容从中心推到边缘靠近用户的地方, 有效提高用户访问内容的性能, 而且减轻了中心设备和骨干网络的压力。但CDN实施复杂, 整个系统的部署与维护投入高。随着用户终端性能的不断提高, 人们期望充分利用各终端的资源, 使各个终端彼此也能够提供服务, 这就形成了P2P (Peer-to-Peer, 对等网络) 模式。P2P模式充分体现了“我为人人, 人人为我”的思想。参与系统的节点自组织成覆盖网络, 节点都处于对等的地位, 既从其他节点处获得资源和服务, 也要为其他节点提供资源和服务。P2P系统节点兼具客户端和服务器两种身份的对等性, 使系统的服务能力能够随规模的扩展而增长, 具有“与生俱来”的可扩展性, 能够克服传统C/S系统随规模扩大出现的各种瓶颈问题。P2P节点的自组织工作方式无需中心节点的支持, 适应节点动态加入或退出系统, 因此容错性、数据高可用性和抵抗攻击性好。结合了P2P技术的流媒体系统具有良好的鲁棒性和可扩展性, 成为当前大规模网络流媒体系统的首选模式。
在P2P系统中, 节点具有自治性, 操纵这些节点的组织或个人大多是理性的, 理性的用户都是自私的, 期望能够以最小的代价换取最大的收益。在缺乏激励机制的情况下, 自私节点是不合作的, 不愿共享自己的资源, 由此产生了严重的搭便车 (Free Riding) 问题, 使网络公平性大大降低, 也极大地降低了网络的整体性能, 从而也损害了用户的利益。具有大量自私节点的P2P文件分发系统会导致下载速度变慢, 下载时间变长, 而对于P2P流媒体系统, 会造成播放不连续, 黑屏或者马赛克。
研究和实践表明, 激励机制是促进节点间进行合作, 防止搭便车现象的有效途径。P2P文件共享系统的激励机制研究是近年来的热点之一。Lui等人认为, 用户不愿意协作常常是因为顾虑到安全性和带宽消耗这两个问题[1]。由于要开放一些端口以方便节点间的数据交换, 用户担心病毒和攻击会利用这些开放端口危害计算机安全。而且, 为其他用户提供下载服务意味着消耗带宽, 尤其是对外大数据量的传输, 会影响自己的应用程序的执行。此外, 许多P2P用户担心数据交换频繁读写硬盘会损坏硬盘。还有一类用户为了避免版权问题纠纷也会拒绝上传数据。与传统客户端软件不同, P2P系统的客户端软件都具有较高的开放性, 用户可以根据自己的偏好定制选择系统参数, 甚至可以在遵循协议的前提下编写自己的客户端软件接入系统, 因此用户可以修改客户端设置, 最小化自己的贡献以获得最多的利益。针对以上存在的P2P文件共享系统节点搭便车现象, 研究学者们提出了基于报酬、基于惩罚, 以及基于服务差别的机制来激励文件共享系统中的节点之间的协作。这些激励机制在一些P2P文件系统中得到应用, 并产生了一定的作用。但是流媒体数据具有连续性、实时性、时序性的特点, 适用于文件共享系统的激励机制并不能有效地应用于P2P流媒体系统。
P2P流媒体系统的激励机制研究已经受到研究者的广泛关注, 且已有若干激励机制用于实际系统中, 但仍然存在许多问题。本文基于当前P2P流媒体系统中激励机制的研究与应用成果, 分析并归类应用于P2P流媒体系统的典型的激励机制:基于直接互惠、基于信誉、基于货币交易和基于社会财富再分配的激励机制。通过对不同激励机制的对比分析, 指出目前各自存在的问题及适用场景, 探讨了未来可能的研究方向。
2 典型的P2P流媒体激励机制
早期的P2P流媒体系统 (例如ESM[2]、NICE[3]、Bullet[4]等) 都是强制用户按照设计好的客户端软件来使用P2P流媒体系统, 用户不能修改配置, 因此没有考虑节点的自私性, 没有设计激励机制。
近几年已经有一些对于P2P流媒体系统激励机制的研究。目前应用于P2P流媒体系统的典型的激励机制可以归为基于直接互惠、基于信誉、基于货币交易、基于社会财富再分配的激励机制, 图1抽象描述了这四类激励机制。
2.1 基于直接互惠的激励机制
基于直接互惠的机制首先在Bit Torrent文件共享系统中实现。Tit-for-Tat (TFT, 针锋相对) 机制是Bit Torrent协议采用的一种简单有效的激励机制, 可以达到节点资源的帕累托有效, 即达到系统的总体性能最佳。其思想是每个节点测量其邻居节点的平均上载速率并根据它们的上载速率排序。节点周期性地unchoke邻居节点为其提供服务。节点将为对其提供更多服务的节点提供更多的服务。TFT机制存在着一些局限性, 只有在两节点都拥有对方感兴趣的数据时, 这一机制才能产生作用。BitTorrent系统采用的稀少优先的片段选择策略提供了良好的节点间感兴趣度, 因此TFT机制在Bit Torrent系统中发挥了良好的作用。但P2P流媒体系统中, 尤其是P2P视频点播系统中, 节点常常因为播放进度不同步而对彼此的数据感兴趣程度不大, 因此简单使用TFT机制在这种情况下对节点的激励作用不明显。Mol等人对流媒体数据进行MDC (Multiple Description Coding, 多描述编码) 编码, 增加了节点间的感兴趣度。节点交换MDC编码中的条带 (stripe) , 借鉴TFT思想, 节点对外共享的条带越多, 所获得的条带也越多, 其视频质量也就越高[5]。Liu等人同样借鉴TFT的思想, 提出了一种基于LC (Layered Coding, 分层编码) 的激励机制, 节点贡献越大, 获得的增强层数据也越多, 因而具有更高的视频质量[6]。采用分层编码的目的也是为了提升节点间的感兴趣程度, 使TFT机制在P2P流媒体系统中能获得更大的效用。除了通过提升P2P流媒体系统中节点间感兴趣程度的方法来提高基于直接互惠的激励机制的效用外, 对于节点提供直接互惠服务的程度也有一些研究结果。Agarwal等人采用了一种节点服务对应贡献比例的激励机制, 所有节点依据邻居节点对自身的贡献比例向它们分配上传带宽[7]。
基于直接互惠的激励机制是一种公平的机制, 激励节点如果要获得更多的服务, 就要为其他节点提供更多的服务。但这也导致了它的缺点:服务能力差的节点虽然全力对外提供服务, 但由于其自身能力所限, 相对于其他节点提供的服务就少, 所以此类节点将得不到及时的服务, 无法观看到流畅的或者质量好的视频, 无法生存, 因而会选择离开系统, 由此降低系统的用户量。
2.2 基于信誉的激励机制
基于信誉的激励机制的主要思想是P2P系统中节点依据局部或全局的贡献度、服务质量以及信任程度等对各个节点进行信誉值的统计, 并用节点的信誉值作为反映节点历史行为的度量, 尽量选择良性节点进行交互。
Habib等人设计了一种基于等级 (Rank) 的节点选择机制, 以此来激励用户贡献转发资源[8]。此机制提供了贡献和收益之间的间接映射, 理性的节点选择各自的贡献等级以便最大化其收益, 其主要思想如图2所示。用户的收益Ui是视频流质量Q和贡献开销C的函数:Ui (xi) =aiQ (xi) -bic (xi) , 其中ai和bi分别为用户i的视频流质量和贡献开销的值。节点为其他节点贡献数据会获得分数 (Score) , 分数被映射成系统中的置信等级。节点依据置信等级排序, 并从与自己同级或比自己等级低的节点范围内选择数据提供者。因此高等级节点可以在较大范围选择数据提供者, 可以获得更大的灵活性和更好的服务质量, 而低等级节点选择父节点的范围有限, 收到的视频流的质量可能会较低。这样的节点选择策略体现了差分服务的思想, 可以激励节点进行合作。由于将贡献映射为分数, 分数可以累积, 因此这一激励机制不强制贡献和回报同时发生。此机制存在一个重要缺陷:如果节点已经达到了期望的服务质量, 就没有动力进一步贡献资源了, 因此不能最大限度地激励能力强的节点。
Ye等人提出传统的信誉系统与在线流行为监控相结合的激励机制[9]。在一个流共享会话中, 节点的行为由其上行节点和下行节点监控。如果节点想要获得其上行节点的流数据, 就必须为其他请求节点提供过服务并获得这些节点颁发的流证书, 以此向上行节点证明自己不是自私的。如果节点被验证是自私的, 将被其上行节点惩罚。节点根据自己对其下行节点的评估结果动态选择下行节点并调整服务速率。图3 a) 展示了以P1为“根”的树形拓扑结构。P1为P2和P3提供流数据。P2是一个自私节点, 不愿意将流数据再转发给其他请求节点P7和P8, 而P3是一个合作节点, 将其内容转发给P4、P5和P6。P4、P5和P6收到P3转发的流数据后周期性地为P3颁发验证证书, 证明从其收到了数据。P1周期性地向其子节点索要下行节点颁发的验证证书。因为, P2没有下行节点, P1会很快发现它是一个自私节点, 因此会减少提供给P2的带宽或者不再为P2提供数据。如图3 b) 所示, P1不再为P2提供服务, 而选择P7作为其子节点。
基于信誉的激励机制综合考虑了节点的贡献程度、服务质量以及信任程度等因素, 也体现了公平原则, 综合评价值高的节点会获得好的服务。但由于有些恶意节点会故意降低其他的节点的评价值或集体串谋抬高部分节点的评价值, 以期用最少的贡献获得最大的回报, 因此基于信誉的激励机制还需要应对这些恶意节点的攻击。
2.3 基于货币交易模型的激励机制
前面提到的基于直接互惠的激励机制更像是原始的以物易物的交换, 它要求贡献和获取基本上是同步的。P2P流媒体系统中各节点对数据的感兴趣程度各不相同, 各节点的数据异步性强, 这种同步的激励机制在P2P流媒体系统中效率不高。研究人员借鉴经济学中货币作为媒介的市场理论, 提出了一些基于货币交易模型的激励机制。在这种基于货币交易模型的方案中, 节点提供服务将赚取货币、虚拟货币或其他资源, 获取服务需要付出货币、虚拟货币或其他资源。Vishnumurthy等人最早提出在P2P系统中采用通用的交易货币Karma来调节贡献者和搭便车者的比例[10]。此外, Golle分析研究了通过微支付支持的市场货币[11]。
对于P2P流媒体系统, Tan等人采用“点数” (Point) 这样一个虚拟的内部流通媒介来表示一个节点的贡献程度, 节点向其他节点发送数据片段时赚取点数, 在请求数据片段时消耗点数, 点数高的节点拥有更大的能力去竞争服务质量好的父节点[12]。在节点竞争过程中, 类似于第一价格拍卖策略, 节点依据点数竞价父节点的服务, 出价最高的几个节点可以获得服务, 并成为新的候选父节点, 其余节点继续竞争。节点赢得的点数可以累加, 并可以在后续周期内使用。为了鼓励退出的节点重新加入系统继续做贡献, 重新加入系统的节点可以使用其在以前的会话中累积的点数。最短路径策略 (最小化服务延迟) 和平衡树策略 (降低丢包率) 以及两种策略的结合被用于选择竞拍目标 (父节点) 。在给定点数条件下, 节点如何在子流之间分配点数去竞拍的问题可以模型化为不完全信息博弈。
基于货币交易模型的激励机制体现了公平性。为了服务能力差的节点也可以融入系统, 还可以设计通过系统外的投入为其购买系统内的虚拟货币, 以取得好的服务。但基于货币交易模型的机制需要中央节点来管理虚拟交易, 而中央节点的设立是和对等网络模式相违背的, 并且还要考虑安全性问题。
2.4 基于社会财富再分配的激励机制
激励机制的设计通常都是依据服务区分的思想, 但Chu等人提出了一种基于社会财富再分配的机制, 由拥有特权的内容发布者强制征税, 利用税收, 劫富济贫, 强制服务能力强的节点贡献更多服务, 并通过收入重分配将服务补偿给服务能力差的节点[13]。这一机制有效地将线性税率应用到分布式流媒体协议中, 通过个人收入 (即节点接收的带宽) 的重新分配, 使得每个节点都能拥有满意的服务质量, 达到社会财富 (即所有节点的总收益) 最大化。
基于货币交易模型或基于信誉的激励机制中, 贡献和收益之间是间接映射的, 而基于社会财富再分配的机制中, 赋税提供了贡献和收益间的直接映射, 不必维护间接映射 (分数、点数等) 的状态。与基于直接互惠、基于信誉以及基于货币交易模型的机制体现了服务区分的思想不同, 基于社会财富再分配的机制更多地是追求服务平均化, 这样可以照顾服务能力差的节点, 提高了系统的整体性能, 达到整体视频质量较好, 因此吸引了更多用户。但这种机制对服务能力强的节点并不公平, 这些节点被强制提供更多的服务, 因此不认同这一机制的用户会在会话结束后立即退出系统, 不再提供服务, 这样会影响系统的性能。
2.5 已有P2P流媒体激励机制比较
本文总结了目前已应用于P2P流媒体系统中的比较有代表性的几种激励机制。基于直接互惠和基于信誉的激励机制体现了一种服务区分的思想, 是一种公平的机制, 但服务能力弱的节点可能得不到足够的服务;基于社会财富再分配的机制考虑到了所有节点的服务能力, 但并不公平;基于货币交易模型的激励机制也采用了服务区分的思想, 由于能力弱的节点可以通过其他方式购买虚拟货币, 因此也照顾到了节点的差异性, 但是这种机制存在着安全性与必须部署中央管理节点的挑战。还有一些P2P流媒体系统激励机制基于惩罚、基于自然选择的思想。表1总结了典型的四种P2P流媒体激励机制的优点和主要问题。表2进一步从节点协作程度、公平性以及对于能力不同节点的影响等方面对比了各个机制的特点。
3 总结
P2P流媒体系统 篇4
关键词:信息检索;对等计算;性能评估
中图法分类号:TP311文献标识码:A 文章编号:1009-3044(2007)16-30927-02
A Novel Approach to Evaluate Information Retrieval Systems Based on P2P
HONG Dao-cheng1,2
(1.Shanghai Key Laboratory of Intelligent Information Processing, Fudan University, Shanghai 200433, China;2.Department of Computer Science & Engineering, Fudan University, Shanghai 200433, China)
Abstract:As a hot spot in the computer research and industrial fields, P2P has been mainly applied to information sharing. With P2P-based information retrieval systems applied frequently, the coming issues are how to evaluate the system objectively and fairly, and how to plot the common criteria for system performance evaluation. After having conducted a comprehensive study on P2P-based systems, we point out the implementation mechanism and key techniques in this area. We propose a novel approach to evaluate information retrieval systems based on P2P: Constraint Triangle Law, which will guide the development and evaluation of P2P-based information retrieval systems in the future. Furthermore we fix the key-point research on P2P-based systems: key techniques and strategies.
Key words:Information Retrieval; P2P; Performance Evaluation
1 引言
从2000年中期新一轮对等计算(简称P2P)研究热兴起开始,P2P已被学者认为是重构基于Internet应用的关键技术[1],是影响Internet未来的四项科技之一[2],并由此产生了多个著名的对等计算信息共享系统[3],如Gnutella、Chord等。著名系统CAN的设计者之一Shenker,曾将对等计算系统的主要应用归纳为“以数据为中心的网络”(data-centric networks)[4]。这反映了现阶段对等计算的研究主要围绕数据信息共享的事实。同时,数据信息共享本身是其他基于P2P应用类型的基础,是对等计算应用研究的焦点。
目前的P2P信息共享系统,依据系统拓扑结构的关系可以分为:中心化拓扑(Centralized Topology),全分布式非结构化拓扑(Decentralized Unstructured Topology),全分布式结构化拓扑(Decentralized Structured Topology),半分布式拓扑(Partially Decentralized Topology)。然而,现有P2P系统研究的关键集中在信息检索方面。因此,对相关P2P信息检索系统进行客观公正的评价,确定有效、实用的评估标准已是大势所趋。本文的研究是在以上背景下展开。
2 系统分析
综合分析现有的基于对等计算的信息检索,可以发现各种类型结构系统特点各异,但是却存在共同的局限性,并严重影响着查询效率和效果,导致实际应用结果已与构建基于P2P的信息检索系统的初衷大相径庭。限于实际应用和技术的约束,目前基于对等计算的检索系统存在的问题有:(1)由于数据共享粒度太大,大多数系统仅支持文件层的共享,即以文件为共享单位,导致系统查询、路由的精确度下降;(2)由于系统语义检索的水平较低,包括仅支持弱语义甚至缺乏语义的检索、查询,忽略了自然语言理解,导致检索结果的准确度严重降低;(3)前两个影响因素和现有系统结构的特点都直接导致信息检索的效率低下,造成系统资源浪费。文献[5]对此有详细论述。
仔细分析系统存在的以上问题,挖掘深层次原因,可以发现以上系统均没有充分发挥基于P2P的信息检索技术的特长,包括:系统的协议和检索算法;系统对文件共享粒度、语义检索的支持程度。涉及的具体技术有:系统结构的设计;系统信息资源的管理;系统信息资源的定位和查询路由;系统检索结果的优化和排序;安全和隐私;等等。
通过以上分析可以发现,对等计算系统中信息检索实现的机制,可以归结为三个阶段:信息资源的放置管理、信息资源的定位查找、查询结果的优化和排序。在对等计算信息检索系统中,为保证检索效果和效率,在一定体系结构的基础上,首先要进行资源的放置管理,要合理有效地设计资源的分配和存储机制,为查找资源和优化查询结果提供较好的方便。其次,在真正进行信息检索时,资源查找就成为关键步骤。在合理安排、管理信息数据的基础上,设计出搜索高效的查找和路由算法,已成为问题的核心。最后,由于系统语义理解的有限性,检索结果势必会产生一定的偏差。为了提供高质量的信息资源,减轻用户浏览压力,需要对检索结果进行必要的优化和排序。研究显示,系统实现过程中的评价指标、标准已成为高质量检索系统实现的基础和关键。
3 系统性能评估指标
3.1 系统性能评估定律
基于对等计算的信息检索实质是在预定体系结构的基础上,根据信息查询需求的描述,定位信息资源所在节点,并按照一定策略对这些节点的顺序进行优化和排列。考察系统的性能,衡量评估标准应包括:查询时间(Query Time,简称QT)、查全率(Recall,简称R)、网络负载(Network Load,简称NL)和查准率(Precision,简称P)。在对等计算系统中:(1)假定消息从一个节点传递至其他任意一个节点的时间都相等并规定为单位时间,那么查询时间就可以用消息传递的路径长度来表示,并以此来衡量系统的时间复杂度;(2)查全率要求尽可能多地路由相关节点,保证客观存在的目标信息没有遗漏。节点的路由机制要求计算查询空间,即系统的空间复杂度,在此可以将节点路由存储任一个节点信息定义为一个单位空间;(3)系统查询中,消息的路由传递会增加网络的流量,即网络负载。为有效衡量具体增加的负载程度,在此定义节点的一个消息路由到下一个节点就是一个单位的网络负载;(4)由于系统的动态变化特点,查准率不仅仅指与查询要求匹配,而且要求提供正确、有效和可用的资源链接。
系统性能的四项评估指标是统一整体,指标之间相互依存,相互制约,其关系可以表示成如图1所示的相互牵制的三角图形(Constraint Triangle,简称CT)。
图1系统性能评估指标间的制约关系
在如图1所示的牵制三角形中,查询时间(QT)、查全率(R)、网络负载(NL)位于图形的三个角,查准率(P)位于图形的中央,因为它是用户关心的焦点,是系统性能的重要制约和评价因素。四项评估指标相互擎制,相互制衡,任何一个指标发生变动,都将直接影响其他指标。例如,提高系统的检索正确率将导致时间复杂度的增长,加重网络负载,增加空间复杂度。因此,系统性能评估是四项指标的平衡,为了提高某一项性能指标,必然以牺牲其他的指标为代价,相反也可以理解为通过降低系统的其他性能指标,来提高或者获得某一性能的高效。以上系统性能评估规律总结为Constraint Triangle Law (简称CTL)[6]。
3.2 系统性能评估定律的作用
CTL定律对基于P2P信息检索系统的评价和开发具有实际指导意义。不同的P2P系统对性能提高的侧重点不同,因此对系统的评价就不应该局限在某一点,要统筹兼顾,根据不同的实际应用,做出科学评价。同时,在设计开发P2P信息检索系统时,要根据实际应用需要,制定相应的性能策略,通过相对降低某些性能指标,来达到某一项指标的较优。
通过以上论述,在系统性能评估CTL定律的基础上,我们将在以后的工作中探讨对等计算检索系统的四个主要技术问题:体系结构、资源放置管理机制、资源查找定位机制、检索结果的优化和排序,同时论述相应的问题策略。
4 结束语
通过详细研究分析对等计算的信息共享系统,指出目前基于对等计算的信息检索面临的实现机制和具体技术措施问题。在认真总结和分析的基础上,给出评价系统性能的四项指标体系,提出系统性能评估的CTL定律。在此基础上确定即将开发的P2P信息检索系统的准则,和下一步对等计算信息检索系统研究重点——关键技术问题及其相应策略。
参考文献:
[1]S.Gribble, A.Halevy, Z.Ives, M.Rodrig, and D.Suciu. What can database do for peer-to-peer[A]. In WebDB, 2001.
[2]L. Gong. Peer-to-Peer networks in action. IEEE Internet Computing. 2002, 6(1):37~39.
[3]S. Saroiu, P. K. Gummadi, and S. D. Gribble. A measurement study of peer-to-peer file sharing systems. In Proceedings of the Conference on Multimedia Computing and Networking 2002 (MMCN’2002).
[4]Ryan Huebsch, Joseph M. Hellerstein, Nick Lanham, Boon Thau Loo, Scott Shenker, Ion Stoica. Querying the Internet with PIER. VLDB 2003: 321-332.
[5]黄维雄,等.一种基于自配置策略的新型Peer to Peer平台系统[J]. 软件学报,2003,Vol.14 (2).
校园网P2P流媒体系统的应用 篇5
互联网的普及和迅猛发展为流媒体业务发展提供了强大的市场动力,流媒体业务正变得日益流行。流媒体技术广泛应用于多媒体新闻发布、在线直播、网络广告、电子商务、视频点播、远程教育、远程医疗、网络电台、实时视频会议等互联网信息服务的方方面面。它的应用为网络信息交流带来了革命性的变化,对人们的学习、工作和生活产生了深远的影响。
鉴于当代大学校园中的设施特色,电脑是每个大学生必不可少的日常用品,基本上每个大学生人手一台。因此网络上流媒体的应用更是必不可少,非常广泛。但由于校园网上流媒体同时收看的终端数目较多,如果采用常规网络直播方式,服务器和带宽资源占用较多,因此在校园网内必须采用组播的方式实现流媒体系统。即应用P2P流媒体系统,构建校园网内的网络电视系统。
2 P2P流媒体系统概述
2.1 流媒体技术现状
流媒体是一种多媒体文件。流媒体技术是在网络上使用流技术把连续的声音和视频等多媒体文件经过压缩处理后,让用户一边下载一边收听、观看,不需要等待整个压缩文件下载到本地后才可以观看的网络媒体流式传输术。
流媒体的数据流具有3个特点:连续性、实时性、时序性,即其数据流具有严格的前后时序关系。由于流媒体的这些特点,它已经成为在互联网上实时传输音、视频等多媒体文件主要方式。
2.2 P2P技术现状
P2P即Peer-to-Peer。Peer在英语里是“(地位、能力等)同等者”、“同事”和“伙伴”的意思。P2P理解为“伙伴对伙伴”的意思,或称为对等联网;同时可以理解为Person-to-Person的“人与人”交流,体现“我为人人,人人为我”的思想。
P2P是一种分布式网络,网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力等),这些共享资源需要由网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源(服务和内容)提供者(Server),又是资源(服务和内容)获取者(Client)。
2.3 P2P流媒体系统
P2P流媒体系统是一种网络流媒体组播方式,它利用P2P的原理来建立应用组播网络,从而达到节省服务端带宽消耗、减轻服务端处理压力的目的,使得校园网内有限服务器就能轻松负荷起成千上万的用户同时在线观看视频,而不管在线用户是多少,服务端的带宽消耗都是基本一样的,那就是提供作为P2P传播的种子所需要的几个流的带宽。
2.4 P2P流媒体系统的特点
2.4.1 提升流服务服务器的接入能力
降低对服务器性能的要求,降低服务器出口网络带宽的要求。利用用户的闲置上行带宽来协助服务器分发流媒体内容。在P2P模式下,并非所有的客户端都从服务器获取媒体数据,客户端也连接其他客户端来获取媒体数据,因此在增加用户的同时无须相应增加服务器和带宽,从而大大降低了服务器的负载和带宽占用,成本降低几十倍以上。
2.4.2 可管理的P2P流媒体网络
P2P流媒体服务器同时是校园网中流媒体存储的分布式网络计算节点(超级业务节点),实现用户通信、流媒体分发、存储和内容等资源的有效管理,建立一个可以管理的P2P流媒体系统。避免了P2P网络中过度的无序发展性,提高了整体P2P网络资源、存储资源和计算资源的利用率和服务能力和降低了对基础网络资源的消耗和成本,同时P2P服务器成为网络攻击的工具。
2.4.3 内容的及时互动
基于P2P流媒体,可以不受时间、频道、内容的限制,随时点播、观看、录制所需要的多媒体文件。
3 P2P流媒体系统的构建(见图1)
3.1 采集服务器
采集服务器负责采集电视卡、压缩卡、采集卡、摄像头、麦克风的信号,也可以来自本机的文件,支持rm、rmvb、mpeg、mpg、mpeg4、avi、wmv、DVD等多种文件格式,并将流推送到P2P流媒体服务器。
采集服务器从各种方式得到的节目信号采集后推送到媒体服务器,直播、转播经过P2P流媒体服务器整理后把直播节目信号分发到各个客户端P2P流媒体播放器。
3.2 P2P流媒体服务器
使用Windows Media Server流媒体服务器构建流媒体服务器,使用点播和广播的模式发布媒体服务器的流格式媒体文件,客户端使用单播、P2P应用组播的传输模式接受。
P2P流媒体服务器能将来自采集服务器的多媒体数据流发布到校园网。
3.3 P2P流媒体客户端
客户端软件安装在客户端主机侧使用,使用网络媒体流式传输技术将媒体文件便下载,便使用;同时,客户端软件支持P2P协议,客户端之间利用用户的闲置上行带宽来协助服务器分发流媒体内容。
4 实现效果
这样的P2P流媒体系统在很少的带宽和服务器下轻松实现大面积直播功能,使网站在很短的时间内就可以建设起支持10000人以上在线的网络视频系统。
结束语
基于P2P和流媒体技术开发的校园网直播系统,通过改变传统C/S模式下的服务方式和数据传输路径,运用应用层组播的传输方式,有效地缓解了传统流媒体播放系统中存在的服务器负载和网络带宽的占用问题,使直播系统的性能得到极大的提高,实现了校园网络环境中视、音频数据的高效传输,具有重要的意义和应用前景。
摘要:针对传统流媒体系统的缺点,提出P2P流媒体系统,并且给出了实际可行的P2P流媒体系统的构建,以及它的实现效果。
关键词:P2P,流媒体,技术现状
参考文献
[1]杨国燕,韩雪梅.基于P2P网络流媒体直播系统研究与设计[J].信息技术,2008,5.
[2]张娟,刘美琪.基于P2P和流媒体技术的校园网直播系统的设计[J].河南农业大学学报,2008,4.
一种基于P2P的流媒体分发系统 篇6
当前,流媒体技术得到了广泛应用,然而流媒体数据对网络带宽资源的需求很大。传统的基于C/S模式的流媒体服务系统由于计算能力和带宽的限制,很难满足大量用户的并发请求。IP组播是解决C/S模式弊端的方案之一。但IP组播需要路由器保存每个组的状态,这就使得网络层变得复杂,在可靠传输、拥塞控制、流量控制、安全控制以及对下层网络的要求等方面都产生了很多的问题,因此IP组播没有被广泛地采用到流媒体传输技术中[1]。随着P2P技术的发展,在应用层采用组播技术[2]就成为解决C/S模式瓶颈的有效方法,并且被广泛地使用。在应用层采用组播是通过在应用层构建一个覆盖网络,这个网络中的节点是对等的,每个节点在接收数据的同时也在向其它节点发送数据,这样既减轻了服务器的负担又充分利用了每个节点的空闲资源。这种方式使得网络的负载得到很好均衡的同时,使得系统的扩展性也得到了很好的增强,并能够支持大数量的用户同时在线[3,4]。
本文利用P2P思想,通过在应用层构造覆盖网络,实现一个基于P2P的流媒体分发系统———P2PStreaming。在本系统中,节点被组织成网状。但是在同一CCluster内,节点以树的形式被组织在一起。另外,在选择父节点时,通过对各种因素的综合考虑,使得所选的父节点具有较高的Qo S。同时,系统也具有较高的稳定性和可靠性。
1 Do Net网络模型
Do Net(Date-Driven Overlay Network)[5]是一个目前较为流行的基于Gossip[6]协议的模型。在Do Net中,每个节点既是数据的接收者,也是数据的提供者。服务器是一个特殊的节点,只作为数据的提供者,称为源节点。源节点的媒体流被分成若干的数据片断(seg),并为每个数据片断按序打上序号,然后分发到网络中去。如图1所示,描述了Do Net中的节点关系和数据流向。实箭头为seg1的传输路径,点箭头为seg2的传输路径,虚箭头为seg3的传输路径。可以看到,对于不同的seg,两个邻居节点之间的数据可能是双向的,但对于同一个seg,其传输路径不构成环。还可以看到,每一个seg的传输路径实际上还是形成了一棵树。这棵树的形成并不是预先存在的,节点之间通过彼此通告相互的缓冲区状况确定自己伙伴节点是否包含需要的数据,然后通过请求调度算法从某个邻居节点获取数据。在取得数据后,又可以为别的节点提供数据,而成为父节点。只有在数据被分发后,数据分发路径所形成的树才能显现出来。
2 P2PStreaming系统模型建立
在设计应用层覆盖网络时,一方面,由于P2P结构有其自身的特点,另一方面,流媒体数据在传输的时候具有实时性、顺序性、本地缓冲保存的非持久性等特点,因此要考虑以下几点:
(1)可扩展性在P2P网络中,随着节点的不断加入,网络规模会很大,因此要考虑到它的可扩展性。
(2)充分利用网络资源在进行节点功能模块设计时,要充分的利用每一个Peer的计算资源和带宽资源,实现功能的分散化。
(3)鲁棒性在P2P网络中,每个节点的行为都是不可预知的,而且在节点的数量比较大的时候,节点的加入和离开比较频繁。因此一个用来维护稳定的节点管理系统是必须的。
(4)延迟尽可能小流媒体数据的一个显著特点就是它的实时性,对于某一片数据,用户必须在某一规定的时间段内得到,否则就没有意义。因此,该网络一定要保证数据的高效传输。
2.1 P2PStreaming系统的网络拓扑结构
2.1.1 系统内实体的定义
在本文所设计的P2PStreaming系统网络模型中,共有六种实体,分别定义如下:
定义1媒体服务器MSer对音视频数据进行编解码的Server称为MSer。
MSer把实时采集到的音视频数据或者已经存在的音视频数据进行解码,并对外输出,从而形成可通过流的形式在网络上传输的媒体数据。
定义2目录服务器DSer把用来发布所有节目的Server称为DSer。
DSer以网页的形式向用户提供服务,所有广播者发布的频道都可以在DSer中显示出来。用户在登录DSer后,可以查看到当前已经存在的广播频道。
定义3广播服务器BSer把广播一个频道的节点称为BSer。
任何一个加入P2PStreamng系统并且在该系统中作为一个频道源的节点都是BSer。BSer从MSer处获取媒体数据,并对外广播该频道,是一个广播簇的根节点。BSer知道MSer的具体地址和端口,并从MSer处获取媒体数据,放入自己的缓冲区中。同时,把这个频道的一些相关信息发送到DSer处,由DSer发布这个频道的存在及其相关的链接信息。BSer是与之对应的CCluster的簇首。
定义4转播节点RPeer把既接收数据又转发数据的节点称为RPeer。
RPeer兼有客户端和服务器的双重特点。RPeer在观看某个节目时,先登录DSer,查看上面的具体节目信息,并通过链接信息找到该节目的BSer,然后根据后文所述的节点选择算法,选择一个合适的节点作为父节点并请求数据。该节点播放节目时,如果有其它节点向它请求服务,它就会把该数据发送给请求节点。这类节点的特点是它既请求数据又转发数据。
定义5叶子节点LPeer只接收数据,但并不转发数据的节点称为LPeer。
LPeer与RPeer具有相同的功能,但因为没有子节点,因此并不进行数据转发。
定义6频道簇CCluster把所有播放同一个频道的簇称为一个CCluster。
在同一个CCluster内,BSer是这个CCluster的簇首,其余的Peer,或者是RPeer,或者是LPeer。从数据传输路径上来看,这些在同一CCluster中的节点形成了一个树形结构的P2P覆盖网络。
2.1.2 系统的拓扑结构
如图2所示为P2PStreaming系统拓扑结构图。系统具有中心目录服务器DSer。对于播放同一频道的用户,把它们划分在同一CCluster内。从数据传输的路径角度来看,这些用户被组织成了树的形式。在该簇内,BSer是树根,其余的节点,或者是RPeer,或者是LPeer。在CCluster1内,BSer1、RPeer1、RPeer2、LPeer1、LPeer2、LPeer3被组织成树的形式传输CCluster1中的媒体数据;在CCluster2内,BSer2、RPeer2、RPeer3、RPeer4、LPeer4、LPeer5、LPeer6被组织成树的形式传输CCluster2中的媒体数据。但是,同一个节点相对于不同的簇,可能会扮演不同的角色,比如其中的节点RPeer2,该节点同时传输CCluster1和CCluster2的数据。在CCluster1内,RPeer2从BSer1处获取数据,然后又把数据发送给LPeer3,因此该节点是RPeer。但在CCluster2内,该节点只从BSer2处获取数据,但并不转发数据,因此又是LPeer。
另外,对于CCluster,该簇内的BSer也可以称为该CCluster的超级节点,因为它负责了CCluster内的主要管理工作,比如节点加入的管理、父节点失效的管理等。
2.2 节点管理
2.2.1 节点间管理协议
节点之间关系的维护和状态的了解都是通过节点管理协议来进行的。而节点管理协议是通过节点间相互发送消息来完成。在这些消息中,包含有节点负载状况、节点在线时间、节点与根节点之间的距离等与节点所能提供服务质量密切相关的消息。如表1所示,列出了部分与服务质量密切的响应消息。
在表1中,P_Load F是该节点的负载因子,P_Load F可由式(1)得到。其中,Peer.Load表示节点Peer当前的负载,β是过载系数,β的取值范围是0<β<1。当节点的服务能力较强时,而且当Peer.Load小于某个范围时,都可以认为该节点仍然有较强的服务能力,此时就可以取较大的β值。Peer.Max Load表示节点Peer可以容纳的最大负载。
2.2.2 父节点的选择
在选择父节点时,还有一个要考虑的重要因素是这两个节点之间的物理距离,当这个距离比较小时,数据传输的延迟也会比较小。把在选取父节点时,要考虑到的距离称为距离因素,用Dis F(Peeri,Peerj)来表示。其值在0和1之间,两节点间的距离越小,值越大;反之则越小。
在选择节点时要考虑表1中的4个因素,即P_Hop、P_Grade、P_Load F和Dis F。把这四个因素结合起来就可以表示这个节点的可用性(Usability)。Usability可由式(2)计算得到。在式(2)中,每一种因素前面都有一个系数,这个系数的大小表示该因素在计算Usability时的权值。
在进行节点选择时,式(2)中的四个因素都直接影响该节点所能得到Qo S。不同的因素反映了不同的方面。P_Load F是节点负载能力的反映,如果该节点的负载较小,说明该节点仍有较多的可用资源,这时可以适当地增加α的值来提高该节点的Usability。Dis F是节点之间距离的反映,其系数σ可以根据网络的状况来决定,对于一个负载比较轻的网络,可以选用较大的σ值。反之则可选用比较小的σ值。P_Hop反映的是节点到根节点的距离,其值越小,说明中间经过的节点数越少,则获取媒体数据所需的绝对延迟也会越小,同时相对于该CCluster所生成的树,在降低树的高度,维护树的平衡也起到非常大的作用。P_Grade反映节点在线时长,级别越高,在线时间越长,能够提供的服务也相对越稳定。对于动态性特别高的P2P网络,这个因素在提高网络的Qo S方面尤为重要。
2.2.3 节点的退出
(1)节点的正常退出当节点Peer A离开的时候,如果是LPeer,则Peer A只需要向其父节点发一个退出请求,通知父节点释放为Peer A提供服务的资源,组播树的其它节点维持不变。然而,如果节点Peer A不是叶子节点,则节点Peer A的离开会导致Peer A的所有后续子节点失去服务,所以在节点Peer A离开之前,必须为Peer A的所有子节点重新分配父节点。重新分配父节点时,Peer A只把它的直接子节点(用集合“C”来表示)作为一个子树重新定向给新的服务节点。采用这种分配方法可以把节点离开所产生的影响降底到最小。理想的情况下,在这个CCluster中,只有C中的节点知道父节点的离开,而C的子节点则感觉不到该CCluster的结构已经发生了变化。非理想的情况下,C内的节点及C的后继节点可能会因为数据的延迟而产生画面的抖动,但这种情况下,对P2PStreaming的拓扑结构却不会产生大的影响。
(2)节点的异常退出由于种种原因,节点可能在任意时刻在没有发送任何消息的情况下突然中断离开。系统为了检测到这种状况,每个节点需要周期性地向他们的父节点和子节点发送消息,说明自己工作正常。如果某个节点在几个周期内都没有收到子节点的消息,则认为子节点己经非正常离开,该节点将回收服务子节点的资源,同样子节点在几个周期内都没有收到父节点的消息,则认为父节点已经非正常地离开,该节点就要重新加入网络。重新加入的方法与节点在第一次加入系统时的方法相似。不同的是,此时,这些节点不用再去BSer处获取其它节点信息,而是直接从自己缓存的邻居节点中找到一个合适的父节点并请求数据。
3 性能分析
通过上述对Do Net模型进行的分析和对P2PStreaming模型的介绍可知,P2PStreaming模型和Do Net模型都是在应用层构建的覆盖网络,但是它们在节点选择和数据传输方面却存在明显区别。
3.1 节点选择算法不同
Do Net是随机选择节点进行调度,而不考虑节点的底层物理网络拓扑的匹配,这样使得系统的启动延时和网络异构带宽的适应性不好。如节2.2.2所述,本文在选择父节点时却考虑了四种因素。父节点选择时,尽量按照它们的底层物理网络进行匹配,从而可以选择物理距离较小的父节点,这样就大大减少了节点之间的数据传输延迟,也降低了整个网络的负载。另外其它三种因素的考虑都可以保证所选的父节点能够提供较高的Qo S,而Do Net中却没有这样的机制来保证一个较高的Qo S。
3.2 数据流传输策略不同
Do Net采用基于请求的数据调度策略,节点之间首先互相交换各自缓存中存在的媒体数据的指示信息BM(buffer map),然后将自己的缓存中缺失的数据从其他声明拥有该数据的节点处请求过来,以补全自己缓存中的数据。
由图3可以看出,Peer B在向Peer A请求Data Packti时,需要节点Peer A和Peer B进行3次通信。本文假设Peer B和Peer A之间的数据传输延迟为τdelay,节点进行缓存影射(BM)和请求发送的周期为λ(其中BM的平均时间τBM=0.5λ,发送请求的平均时间τreqest=0.5λ)。另外,τsend的存在是因为节点A在收到请求后,需要对请求的数据包按照一定的顺序进行发送,且发送过程在周期λ内完成,因此其平均值τsend=0.5λ。由图3可知,在数据请求的传输策略下,数据包在两个节点之间传递的平均延迟Packetdelay可以表示为:
而在P2PStreaming系统中,Peer A收到数据包Data Packeti后能够立即将其转发至Peer B,因此,数据包传递的平均时间仅为τdelay。由此可见,基于请求的数据调度策略会导致数据包传递的延迟大幅度增加。另外,在基于请求的数据调度策略中,节点需要周期性地向邻居节点发送BM信息和请求,使得网络流量中控制信息的比重较高,导致系统的控制开销增大,这也是基于请求数据调度策略的不足之处。
4 结束语
结合C/S和P2P的特点,本文设计了一个基于P2P的流媒体分发系统,详细描述了系统的拓扑结构、节点管理机制。该系统具有如下特点:
(1)功能分散化通过DSer、BSer、Peer这三层结构,把服务器端的主要负担进行转移,并分散到系统内的各个节点上;
(2)数据延迟小通过特定的节点选择算法和数据传输方式,一方面减小了端到端的传输延迟,另一方面也减小了源到终点之间的延迟;
(3)适应性强通过完善的节点管理机制,使得节点的加入和离开对系统的影响都很小;
(4)扩展性好由于采用的是P2P的模式,因此,加入系统的用户越多,系统的性能会越好。
参考文献
[1]林彤,钱华林,葛敬国,等.面向混合网络的半覆盖组播路由协议[J].软件学报,2007,18(10):25722583.
[2]章淼,徐明伟,吴建平.应用层组播研究综述[J].电子学报,2004,32(12):2225.
[3]杨路明,彭凯.基于节点异构性优化的P2P流媒体传输技术[J].计算机工程与应用,2006(29):177179.
[4]Gao Wen,Huo Longshe,Fu Qiang.Recent Advances in Peer-to-Peer Media Streaming Systems[J].China Communications,2006(10):5257.
[5]Zhang X,Liu J,Li B.DONet/CoolStreaming:A Data-driven Overlay Network for Live Media Streaming[C]//Proceedings of IEEE INFO-COM,2005,3:21022111.
P2P流媒体系统 篇7
伴随着互联网产业的飞速发展和新技术的不断创新, 网络流媒体应用在人们的生活中也日益普及, 成为人们生活、学习、工作和娱乐不可分割的部分, 如:网络电视、直播节目、在线视频游戏以及远程教育等等, 而这些应用的共同特点就是需要流媒体技术的支持。近年来, 人们逐渐把P2P技术应用到流媒体传输中, 从而形成P2P流媒体技术。该技术可以突破传统C/S模式的局限, 能更好地实现流媒体系统稳定、迅速和高清晰等特点, 从而可以为用户提供更高质量的流媒体服务。
针对对等网中超节点的选择大都根据节点的物理性能而没有考虑到网络中节点“搭便车”的现象, 本文研究设计了一种新的P2P流媒体直播系统。为了有效进行超节点的选取与组织, 在综合考虑节点的服务能力与自愿性的基础上, 选取那些处理信息能力强又积极参与贡献资源的节点作为超级节点。为了维护网络的稳定性, 本文还提出了备用超级节点机制。
1 P2P技术
P2P即Peer-to-Peer, 称为对等连接或对等网络, 网络中的节点既是资源的享用者又是资源的提供者。因此 P2P模式与C/S模式的主要不同点在于节点与节点在通信的过程中, 可以忽略服务器的角色, 完成一种直接通信来实现网络中资源的共享。
与C/S结构相对比, P2P的优势体现在非中心化、可扩展性、健壮性、高性能/价格比、隐私保护和负载均衡这几个方面, 如图1所示。
目前P2P应用吸引力远远超过简单的只读网络 (Web) 方式, 由于其技术和应用的特点, P2P成为互联网的杀手级应用, 主要应用有:①即时通信, 典型的应用:QQ、Yahoo Messenger、MSN等;②文件交换, 如: BitTorrent、eDonkey、Napster、等;③流媒体应用, 典型的代表: PPLive、PPStream、Gridcast等;④基于P2P方式的协同工作, P2P技术可以帮助企业建立自己的虚拟网, 例如JXTA、Magi、Groove等;⑤更有力的搜索引擎, 典型的应用:Google已宣称将使用P2P来改进它的搜索工具。
2 P2P流媒体直播技术
2.1 P2P流媒体技术
P2P流媒体技术是P2P技术与流媒体技术的结合, P2P流媒体直播是指在基于P2P技术构建的有同步时序要求的流媒体网络。
P2P流媒体直播服务, 基本上都采用应用层组播技术。系统中的所有节点组成应用层覆盖网, 并利用节点的能力实现流媒体数据分发功能。按照应用层覆盖网中结点的组织方式, P2P流媒体直播技术分为3类:树型、网型和数据驱动型。
2.2 P2P直播的特点
P2P直播有如下特点:
(1) P2P直播在理论上对用户数量没有限制。在线用户越多, 网络越顺畅。
(2) P2P直播不同于VOD点播, 用户不可以选择播放的内容, 只能按时间点来观看节目。因此P2P在直播形式上更像网络电视, 用户可以在频道之间进行选择。
(3) P2P直播有延时。由于需要建立缓冲来进行P2P交换, 会带来大约半分钟左右的延时。在节目开始播放前也需要几十秒的下载缓冲时间。
3 超级节点与备用节点选取机制
在基于P2P技术的流媒体直播系统的整个体系结构中, 对等网中所选取的超级节点的性能会对该系统的服务质量产生一定的影响。如果所选择的超级节点不合适反而会取得适得其反的效果, 导致降低整个直播系统的服务质量, 因此, 我们将在对等网中采用新的超节点选取算法和组织结构以提高系统的性能。
3.1 超级节点覆盖网拓扑结构
在P2P网络中, 采用一种层次化的节点网络拓扑结构, 由基于层次化的节点自治域 (简称“AD”) 组成。AD中由有限个子节点子自治域组成 (简称“ASD”) , 详细结构如图2所示。
图2所示为一个4*4的节点自治子区域分布图, 在节点子自治域中每个节点首先通过判断其它节点的坐标信息V (i, j) , 然后只能与自己的行坐标或者列坐标相同的节点直接连接进行通信。因此对于一个L*L的子自治域图, 每个节点有2 (L-1) 个邻居节点, 称之为NP节点。如果一个节点要与其它非邻居节点进行通信, 则只能通过其NP节点或者其超级节点间接进行消息转发。
3.2 超级节点的选取机制
3.2.1 超级节点的定义
在P2P网络中, 每个用户都是一个节点, 数据传输通过节点进行。为了保证数据传输质量, P2P网络会自动分析每个节点的硬件资源, 选取那些高带宽而且本身处理能力强的节点作为超级节点, 其它未被选用的作为普通节点。
3.2.2 超级节点的选择
在P2P网络中, 为了有效地进行超级节点的选取, 本文在综合考虑节点的服务能力与自愿性的基础上, 选取那些处理信息能力强又积极参与贡献资源的节点作为超级节点。
此外, 判断一个节点是否适合做超级节点, 不光是要考虑节点当前的处理信息的能力, 还要判断节点的贡献度, 即该节点的在线时长或者主动上传文件数或者间接成功转发的请求消息数等等因素。从概率上讲, 在线时间越短的节点越容易失效, 时间越长失效的可能性就越低, 而且随着节点在线时长的增加, 节点在单位时间内离开或者发生故障的概率越低。因此, 对于节点单位时间内的贡献度给出如下定义:
undefined
其中Fs 表示在时间T内节点成功上传的文件数, Fn表示节点成功转发的消息数, 即间接为系统做出的奉献, T表示系统运行的时间周期。
当系统运行到了一定的周期需要选择超级节点时, 服务器就首先判断节点的荣誉度以及在线时长等因素, 选取那些有可能成为超级节点的节点并计算它们的整体效用Utility值, 并将这些值按照从大到小的顺序进行比较, 选取拥有最大Utility值的节点作为超级节点, 次大的作为备用超级节点。
3.3 备用超级节点选择机制
在P2P流媒体直播系统中, 如果超级节点选取不当会大大降低系统性能。同时也为了维护系统的稳定性, 我们提出了备用超级节点选取机制。
当超级节点不稳定或发生故障时, 它所管辖的子自治域ASD中对应的普通节点就不能再与其它的超级节点通信, 消息不能够被转发, 为了解决这个问题, 提出了一种备用超级节点的方法, 备用超级节点的选择思路是:
在基于超级节点的P2P网络中, 超级节点负责维护其所管理的ASD内普通节点列表的信息, 包括节点IP和文件资源列表等, 同时超级节点也将自己维护的信息表转发给它的备用超级节点。这样, 当超级节点失效的时候, 备用超级节点就可以代替原来的超级节点为请求服务的节点继续提供服务, 不会造成太大的网络延时。虽然这样加大了维护的成本, 但是在节点失效的时候, 可以在比较短的时间内收敛。
3.4 节点的管理与通信
节点管理的一个首要任务就是对网络中相互交互的节点进行统一的管理和协调, 从而有效地减少流媒体数据传输的负载压力和传输延迟。因此在P2P流媒体直播系统中如何有效地进行节点的组织管理是一个关键问题, 主要包括节点标识的生成、节点的加入、节点的退出以及节点间的通信等。
在节点自治域中, 每个节点都只能与其连接节点进行通信。当某一个节点C向系统请求资源, 如果其邻居节点中有节点C所请求的资源, 则两者直接进行通信;反之, 如果没有, 则只能通过其邻居节点或者超级节点间接地为其转发请求信息, 直到找到节点C所需的资源为止。图3描述了本域内两个节点之间进行通信过程的用例图。
4结语
近年来, 人们逐渐把P2P技术应用到流媒体直播领域, 从而为用户提供更高质量的流媒体服务。本文在研究P2P流媒体直播系统的基础上, 充分利用了超级节点的特性, 使超级节点有效地参与到网络结构的管理中来。
尽管当前基于P2P技术的流媒体系统仍然面临着很多问题, 如系统中网络节点的不稳定性、节点的“搭便车”现象等等, 但不可否认, 虽然存在这些问题, 其还是给流媒体技术领域带来了一次新的革命。相信随着P2P技术的不断发展创新, P2P流媒体的研究必将发展得更加成熟和完善, 并将在更多领域得到广泛的应用。
摘要:详细介绍了基于P2P技术的流媒体直播系统的相关理论与技术, 结合现有P2P流媒体系统中的节点管理问题以及“搭便车”现象, 提出了一种基于超节点的P2P流媒体直播系统设计方案。同时为了维护网络的稳定性, 采用了备用超级节点机制, 从而在一定程度上降低时延, 提高了系统服务质量。
关键词:流媒体,超级节点,P2P技术
参考文献
[1]管磊.P2P技术揭秘—P2P网络技术原理与典型系统开发[M].北京:清华大学出版社, 2011.
[2]彭凯, 武娟, 杨总凯, 等.基于P2P的流媒体直播技术研究与展望[J].计算机科学, 2009 (1) .
[3]STEINMETZ R, WEHRLE K.Peer-to-peer systems and applica-tions[C].Lecture Notes in Computer Science, LNC S3485, Springer, 2005.
P2P流媒体系统 篇8
随着Internet技术的快速发展,互联网中传统的客户机/服务器(Client-Server)通信模式统治的局面被逐渐打破,出现了越来越多对等网络技术,即P2P(Peer to Peer)技术[1],在P2P网络中,每个终端(也称节点)同时具有客户端和服务器功能,每个节点将接收的内容缓存并提供给其他请求节点,利用P2P技术可以充分利用Internet上的空闲资源,允许两个客户机之间直接交换信息。P2P技术使网络上的沟通变得容易、更直接共享和交互。
将P2P技术应用于流媒体领域将打破传统的客户/服务器模式,客户端不仅可以从服务器那里直接取得数据,还可以彼此相连获取流媒体数据。因此,只需要系统中的部分客户端从服务器获取流媒体数据[2]进行播放,其余的客户端通过彼此建立的连接便可以实现播放了。这样可以使服务分散化,从而减轻服务器负载并支持更大范围流媒体发布,支持大规模用户在线,投入成本很低,具有广泛应用价值。
1 直播系统方案设计
1.1 直播系统原理
基于P2P网络中流媒体直播系统的原理是:媒体服务器存放着已经压缩好的实时播放的全部流媒体文件。服务器将媒体文件按照一定的流媒体文件格式分割成很多个媒体数据包,然后发送到自身的缓存区中,为请求的客户端提供服务。当一个新的客户端节点C加入P2P网络时,首先它会向服务器发出连接请求,若服务器有足够的剩余带宽资源,则响应C节点的请求,与C建立起连接,为C提供能播放的媒体数据包。假如服务器没有剩余带宽资源,则会随机选择一个与之直接相连的子节点(假设在C1,C2,C3中随机选择C3节点),子节点再根据自己的剩余带宽资源状况判断是否为这个新的客户端节点提供服务,以此类推,直到找到一个能为自己服务的节点为止(这里假设节点C6可为新节点C提供服务)。此时,服务器再将节点C的请求命令包和请求的媒体数据包转发给C6节点。至此,节点C6和节点C就可以建立起连接,双方进行通信,在此基础上伙伴关系也会相应建立起来。
节点C按照自己请求的数据接收来自于节点C6中相应的媒体数据包,对C6中不存在的数据包,节点C会继续寻找其它的伙伴,直到接收到能够播放的所需的全部媒体数据包为止。然后,节点C再将收到的媒体数据包重新进行过滤、排序和封装,组合成能实时播放的节目流。如图1所示。
1.2 服务器端设计
服务器端主要包含5个模块:流媒体文件生成器、流媒体文件读取器、媒体数据缓冲区、媒体数据提供管理模块和节点管理模块。
流媒体文件生成器主要负责将非压缩的媒体数据源编码成流媒体支持的格式数据,在本系统中采用微软公司专为流媒体设计、开发的一种文件格式ASF[3]。
流媒体文件读取器主要负责读取ASF文件的相关信息。按照媒体数据缓冲区中要求的数量读取ASF文件中的数据,组装成流媒体数据包传送给媒体数据缓冲区。
媒体数据缓冲区主要用来存储流媒体数据包,内设有一定时器,规定1秒钟定时爆发一事件,按照事先设定的数据包大小向媒体数据提供管理模块发送流媒体数据,并且定时更新buffer缓冲区。
媒体数据提供管理模块主要用来监听和管理客户端数据请求,建立TCP[4]连接,并开放线程,将发送相应的媒体数据。
节点管理模块主要负责响应节点请求并更新节点列表,这包括处理新节点的加入、退出、隔离,为节点随机选择伙伴节点。服务器端设计架构图如图2所示。
1.3 客户端设计
客户端主要包含6个模块:节点管理模块、伙伴管理模块、数据收集管理模块、媒体数据缓冲区、内嵌的媒体服务器、网络监听和服务质量QoS模块。
节点管理模块跟服务器端的节点管理模块相似,负责响应客户端其他节点请求并更新节点列表,维护P2P网络。
伙伴管理模块主要负责伙伴节点的加入与退出,更新自己的伙伴列表,建立本节点与伙伴节点的连接。
数据收集管理模块主要负责接收客户端伙伴管理模块类的信息,开放流媒体数据传输线程,控制并撤销线程。
媒体数据缓冲区主要负责接收服务器或伙伴节点传输来的流媒体数据,保存、更新本节点的流媒体数据。
内嵌的媒体服务器属于内嵌流媒体服务类,负责接收流媒体数据,播放流媒体数据,实现流媒体文件的直播。
网络监听和服务质量QoS模块主要用来监测目前的网络动态状况,用于QoS控制。
客户端设计架构图如图3所示。
2 P2P网络中节点的管理
无论是服务器端还是客户端,都涉及到节点管理。节点管理主要包括新节点的加入、节点的正常退出、节点的非正常退出。
2.1 节点的加入
构造P2P网络时,节点加入算法如下:
(1)连接请求。当新节点加入P2P网络时,首先会向服务器发送一个请求加入的连接,服务器根据剩余带宽资源状况,随机选择一个节点,作为新加入节点的联系人,从此,它们之间就可以彼此交换部分节点列表中的信息。
(2)新节点加入。当一个节点接收到一个新节点的加入请求时,它会将这个加入请求消息,附带一个新节点的唯一标识(取节点的IP地址),一起发送给其所维护的节点列表中所有的成员节点。
(3)转发消息。当一个节点接收到的是转发的消息时,它会首先检查自己所维护的节点列表,判断该列表中是否已存在新节点的相关信息,只要列表中不存在要转发节点的IP地址,该节点就会以P概率(P依赖于其所维护的节点列表的大小,这里,取P=1/(1+size of节点列表)接收新节点的加入,如果节点以(1P)的概率拒绝接收新节点时,它仍会在自身的节点列表中随机选择几个节点继续转发新节点加入的消息,以此类推。显然,这个要转发的消息很可能会在节点间不停转发,直到有足够的剩余带宽资源的节点愿意接受它为止。
(4)维护节点列表。P2P网络中每个节点都要维护两张列表,一个是PList列表,另一个是IList列表。PList中存储的是该节点转发给其它节点的消息,主要为转发出去的节点的IP地址,IList存储的是其它节点向该节点发送的消息,主要为来自于其它节点的IP地址。换句话说,也就是如果节点i决定接收节点j的加入,节点i会将节点j的IP地址放入到它的PList列表中,同时,i节点也会向j节点发送一个消息,通知j节点将i节点的IP地址放入j节点的IList列表中。
2.2 节点的正常退出
当一个节点正常退出时,首先会向IList列表中的节点发送一个退出请求,由于该节点的退出,可能会影响到其PList列表中的节点,所以,要将PList列表中的节点重定向到IList列表中的节点或服务器。同时,收到退出请求的节点会简单地从自己的节点列表中删除要退出的节点。
2.3 节点的非正常退出
由于突然断电等情况的发生,节点可能在任意时刻在没有发送退出消息的情况下突然地离开,导致网络状况的中断。为了检测到这种情况的发生,在系统中采用了“心跳”机制,即每个节点周期性地(通常取1秒钟)为其IList列表中的节点发送消息,以说明自己能够正常地工作。如果IList列表中的节点在一段时间内并没有收到某节点的消息,则认为该节点非正常地退出,同时将该节点从节点列表中删除。
3 P2P流媒体直播系统中关键技术问题
要保证P2P网络中流媒体直播系统能正常运行,需要解决以下几个关键问题。
3.1 节点管理
节点管理是P2P网络构建中最基础的部分,成熟稳定的流媒体直播系统需要完善稳定的节点管理体系。服务器端的节点管理负责监视客户端节点的运行状况,维护系统节点的资源信息,管理网络中的节点,定时更新所有节点的节点列表,也可为节点随机选择伙伴节点,以便伙伴节点间交换资源信息。客户端的节点管理负责响应其它客户端节点请求,更新节点列表,维护节点资源信息,也可为节点随机选择伙伴节点。作为其它节点的流媒体服务器,能提供流媒体服务。可见,节点管理是整个流媒体直播系统的基础和纽带。
3.2 伙伴管理
伙伴管理是节点管理的更深入化过程,当P2P网络构建成功后,各节点之间可以进行通信和交换数据时,伙伴关系就在此基础上建立起来。节点加入网络后,首先会向服务器获取初始的伙伴列表,在程序的运行过程中,伙伴列表也会动态地进行更新,节点会不断地选择新的节点作为其新的伙伴,这样做的原因如下:
(1)网络的动态性和不稳定性:Internet是一个动态异构的网络,在数据传输过程中存在着许多不确定的因素,导致了网络的不稳定性,网络中的任何一个节点都有可能在任何时候离开或中断退出,为了维护P2P网络中相对稳定的伙伴数目,需要不断地更新伙伴列表,一旦检测到有伙伴离开时,就要重新获取新的节点加入到其伙伴列表中。
(2)优化伙伴列表:选择良好的伙伴有利于媒体数据包的传输和减少播放延迟,而良好的伙伴应该具有比较大的出口带宽,并且在物理位置上应该尽可能的靠近。为了选择更好的伙伴节点,采用了类似于DONet[5]模型中伙伴优化的策略,即每个节点i会为它当前的伙伴j计算一个分数max{si,j,sj,i},其中si,j表示单位时间内节点i从节点j平均获取的媒体数据包的个数。显然,伙伴节点若具有比较大的出口带宽和更多可利用的媒体数据包就将获得比较高的分数。si,j的值比较大就说明单位时间内节点i从节点j获取的媒体数据包多,同样,sj,i的值比较大说明单位时间内节点i向节点j提供的媒体数据包多。在每一轮的调度后,节点会从伙伴列表中删除分数最低的伙伴节点,并重新获取一个新的节点作为其伙伴节点。
3.3 数据调度策略管理
当播放节点接收数据所需的带宽无法达到正常播放的要求时,需要采用合理的数据调度策略和启动多线程,争取得到更多服务节点加入到此播放节点的服务行列中。当此播放节点所需的媒体数据包没有收齐时,伙伴节点或服务器节点仍需要继续发送媒体数据包将丢失的包收齐,以形成完整的节目流文件,为其它节点用户服务。当播放节点还有丰富的剩余带宽资源时,在不影响节目播放质量前提下可以主动关闭与那些网络延时较大、数据包下载量小的节点的连接。
可见,数据调度策略管理是整个流媒体直播系统的核心和关键。
3.4 媒体播放列表管理
如何保证不同来源的媒体数据包对应着同一个节目,这需要有一个统一的媒体播放列表进行管理。通过使用媒体播放列表可以确保这一机制有效实行。媒体播放列表记录着节目文件的ID号、文件名称、文件存放路径、文件大小、所属节点等属性。媒体播放列表可以简单地理解为系统的节目直播菜单,它由服务器节点产生和维护,通过媒体播放列表的管理,不同机器上节目物理文件可以对应一个逻辑文件,即可以为同一个节目流服务。
3.5 网络监测
网络监测包括实时监视系统中各节点运行状态、网络延时、网络带宽和下载流量等。在节目播放过程中,节目播放质量要稳定可靠,但是系统的网络状况不停地动态改变,播放节点会根据当前的网络状况周期性的向其IList列表中的节点发送“心跳”机制来保持状态的监控。同样,通过网络的监测,节点能自动调整数据调度策略,如对一个节点收包失败后,能够自动将服务切换到其它节点。
3.6 QoS控制
服务质量(QoS)是指用户要求网络传输系统所必须保证的关于信息传输的质和量的特征集,它反映服务提供者(系统)和服务使用者(用户)之间的能力和需求关系,是用来描述网络性能的。
网络系统通过QoS体系来支持流媒体应用,提供服务质量保证。QoS所追求的传输质量在于:媒体数据包不仅要到达其欲传输的目的地址,而且要保证数据包的顺序性、完整性和实时性。
4 基于P2P网络流媒体直播技术应用前景
随着Internet网络的不断普及和流媒体技术的不断发展,可以利用基于P2P网络流媒体直播系统直接收看体育赛事、重要新闻、举行视频会议,实现远程教育在线课堂等。网络带宽问题的改善促进了Internet网络直播的发展,基于P2P网络的流媒体直播技术已经日趋成熟,并能够提供较满意的音视频效果。最大限度地支持同时在线的收看直播节目的终端节点数目;减少服务器端的负载,所以基于P2P网络流媒体直播技术在Internet网络直播中充当着重要角色,具有很广泛的应用前景。
摘要:主要讨论了一种基于P2P网络的流媒体直播的相关技术,研究设计了一个支持大量用户同时在线的直播系统方案,能够充分利用客户端资源,减轻服务器负载,并实现较好的视频直播效果,该系统采用了P2P传输技术,系统的可扩展性和稳定性都明显优于传统流媒体视频传输系统。
关键词:流媒体,P2P,直播系统
参考文献
[1]张联峰,刘乃安,钱秀槟,等.综述:对等网(P2P)技术[J].计算机工程与应用,2003,39(12).
[2]陆其明.Windows Media编程导向[M].清华大学出版社.
[3]吴国勇,邱学刚,万燕仔.流媒体技术与应用[M].北京:北京邮电出版社,2001:141-145.
[4]Handbook of Communication Technologies:The Next Decade-Multime-dia over IP:RSVP,RTP,RTCP,RTSP[M].R.Osso,Ed.,CRC Press,BocaRaton,FL,1999:29-46.
P2P流媒体系统 篇9
本论文通过模拟实验分析几类传统节点算法的不足,得出网络教学系统节点信息收集算法能有效地降低多余消息的产生,改善网络运行环境。
一、TSNNIM算法的提出
在网络教学系统中,需要查找大量的文本、音频、图像、视频等信息,如何快速定位资源节点,是目前P2P网络研究的主要课题。Flooding是应用在非结构化P2P网络中的基本搜索方法。它具有响应时间短,搜索成功率高,可靠性好等优点;它的不足是会产生大量多余搜索消息,消耗带宽等。根据泛洪和随机漫步的特性,在此提出网络教学系统节点收集算法(TSNNIM ,teaching system network node information-gathering method)。
二、TSNNIM算法原理分析
1.基本分析
对非结构化Gnutella系统进行的一项测试显示:在Gnutella网络中,95%以上的节点都可以在7 hops内被搜索到。相同请求消息可能被很多邻居节点发到同一个节点上。除了第1个接收的消息,其余的都是多余消息。将一个请求消息经过的7hops分为两个阶段(低hops和高hops)。在低hops阶段时,搜索覆盖范围相对广,产生多余消息少;而在高hops阶段时,情况相反。
任意一个拓扑图形都可以以一个点为顶点将它变成一个金字塔结构。上面分析的结果也可以用金字塔状结构想象出来。以发出请求消息的节点为顶点,将P2P网络变为塔状图形。大部分的节点都在7层以内。在上层(低hops处),向外发送请求消息的节点数目相对较少,没接到消息的节点相对较多。一个节点只从一个邻居或很少邻居处接收请求消息的情况比较多,一个节点向外发出请求消息而产生覆盖面积相对比较广,产生的多余消息比较少。在塔的下层(高hops),随着越来越多的节点得到请求信息,一个节点越来越有可能从它多个邻居节点处接收到请求消息,相对于请求消息的数量,请求消息的覆盖面积变小,产生多余消息的数量大幅度的增加。
根据以上的分析,可以在上层对Flooding算法改进,限制多余信息产生;在下层当接收到请求消息的节点达到一定数量时,改用其他适当的搜索算法。级别相同的节点彼此间度数平衡。
2. TSNNIM算法
P2P网络中每个节点都有网络标示ID。每个节点都可以对它的邻居节点进行不同的编号,区别不同的邻居节点。当一个节点加入P2P网络时,它会将自己的ID传给它的邻居节点,它的邻居节点记录该节点的ID,并为这个节点编号。同时它的邻居节点也会将自己的ID传给这个节点,这个节点记录这些ID并分别为这些邻居编号。这个节点再将它邻居节点的ID和对它们的编号分别发给它的邻居。它的邻居节点也做同样的步骤。图l中将S,A两个节点所存储和标注的信息列在了表1中。
依据图l和表l,当S节点向外发出请求消息。先向邻居节点A,C发出请求。并且它会通知A节点不需要向C节点发出请求;它也会通知C节点不需要向A,D,F,H,I节点发出请求信息。当节点A接到请求信息后,如果需要向其他的邻居节点发送请求消息,它会首先检查看有没有不需要发送的节点,发现节点C和节点S不需要发送。节点A只会向节点D,F,H,I发出请求信息;同时通知节点D不需要向节点C,F,H,I发送请求消息;同样处理节点F、节点H和节点I。当节点C接到请求信息后,如果也需要向它的邻居节点发送请求消息,它也会首先检查看有没有不需要发送的节点,发现节点S,A,D,F,H,I不需要发送,它没有可发送的节点,就停止发送请求信息。其余的节点也这样工作。
3. TSNNIM算法分析
假设每个节点都有k个子节点;计算利用上面的方法可以减少多余消息。任何一个节点和同层的其他节点相连或和下层的非子节点相连都会产生多余请求消息。如果一个节点与同层中的兄弟节点相连,利用上面的方法不会产生多余请求消息;如果一个节点与下层兄弟节点的子节点相连同时并与这个兄弟节点也相连,利用上面的方法也不会产生多余请求信息。
假设满足一个条件:如果一个节点与下层兄弟节点的子节点相连,那么它就与这个兄弟节点相连。一个在m层的节点现在有多余的一条边,这条多余的边与同层节点或下层节点相连有 种可能性;满足算法的条件,不产生多余请求消息的可能性有k+k2个。改进的比率就是(k+ k2)/( k + k( +1) )前3层总的改进概率是3*k/(k+ k2+ k3)*100%从上面的公式可以看出,当m和k增大时,改进的效率也随之下降。虽然图形和满足的条件都是假设的,但是真实的图形都是这种图形的变形。改进的效率也是随着图形的变化而变化。但是无论什么图形,都随着m和k的增加,改进比率降低。
4.多点随机漫步算法
当接收到请求消息节点达到一定数量时,改用随机漫步算法。在网络中,可以认为任何一个节点存储一个文件的概率是相等的,一个节点存储所希望的文件的概率是很低的,把它认为是小概率事件。但是当这样的事件很多时,发生该事件的概率就会很高。例如,10 000个节点,每个节点可能有需要的文件的概率是0.001,那么根据伯努利公式1-p (q=1-p);搜索2400个节点能够发现所需要的文件的概率是:1-C (0.001) (0.999) =90.9%。当一个节点使用随机漫步向一个邻居发送请求消息时,很难找到所需的文件,但是当很多节点同时向它们的邻居发送请求消息时,发现的概率就会很高。例如:200个节点,各随机漫步12步,可以近似的认为搜索了200×12=2400个节点。为了更有效的提高搜索命中率,可以把邻居节点的度作为选择邻居的标准。
三、TSNNIM完整算法
步骤1 节点S首先列出可以发送到的网络节点标示ID。
步骤2 列出它的一些不需要邻居节点再发送的节点,确定这些节点分别属于哪些邻居。
步骤3 将请求信息分别发给邻居,连同将不需要发送的节点也分别发给对应的邻居节点,同时发送参数ttl=3和rdw=12。
步骤4 邻居节点收到请求搜索消息时,它首先检查消息ID看是否接收过这个请求消息,若没接到过,标记这个请求信息ID,并检查自己是否有所需的文件。如果有,回应请求节点。结束请求信息的发送。如果没有,转到步骤5。若以前接到过这个消息ID转到步骤6。
步骤5 检查传来的参数ttl是否为0。若不为0,将m的标记减1。并查看是否有不需要发送的邻居节点,若没有,向邻居节点发送请求消息;若有,去掉这些邻居节点,再向邻居节点发送请求消息,若ttl=0,转到步骤6。
步骤6 查看参数rdw是否为0,如果是0,停止发送请求信息;如果不为0;将rdw减1。在可选邻居中选择度数最高的节点(若有两个邻居节点度数一样高,按先进先出的规则),将这个选择过的节点标为不可选节点。向所选的邻居节点发送请求消息。如果已经没有可选节点。停止发送请求信息。
四、系统验证
模拟建立一个由10000个节点组成的P2P网络。网络中每一个节点和其他节点任意相连,各节点的度在2~10之间随机的选取。将任意的一个节点作为源点向外发出请求信息。将要搜索的文件任意的放到10个节点上。分别用TSNNIM算法和泛洪算法搜索文件。改变不同的参数,比较两种算法。在前4层上TSNNIM算法相对于泛洪算法在产生多余消息方面的改进比率是减少的多余消息比上Flooding算法产生的多余消息再乘以100%。在整个7层,比较本文提出的选择算法相对于泛洪算法在产生搜索消息数量上的改进比率是选择算法产生消息数量比上Flooding算法产生消息数量再乘以100%。从图2中可以看出,在前4层,随着节点平均度的增加,TSNNIM算法的改进比率也在增加。这主要是因为在网络内节点数目不变化的情况下,单个节点的平均度增加,有利于不产生多余请求信息。同样可改变节点的数量,其他参数不变。
从图3可看出,改进的比率随着节点数量的增加而下降,这可以理解为节点数的增加不利于限制多余消息的产生,或理解为k的增大导致了改进比率的下降。
从试验数据可以看出,与FIooding相比较,TSNNlM算法的改进比率是7.1%。这个效率不是很高,但是在前4层产生的多余消息不是很多的情况下,降低后产生的多余消息是可以接受的。在整个7层上,使用本文提到的TSNNIM算法和Flooding算法在搜索文件时产生搜索消息的量进行比较,可以测得TSNNIM算法的改进比率是12.5%。
P2P流媒体系统 篇10
由于P2P流媒体系统节点数量较大,节点的动态性较高,且节点之间还存在异构性,如何进行优化对系统性能有着重要影响。此外,节点仅拥有邻居节点的带宽,链路延时,内容等信息,对系统中其它节点的信息量获取较少,在进行系统性能优化时一般采用基于邻居节点信息的局部优化策略(Local Optimization Method)。该策略是指系统中每个节点以自身角度进行局部视图的邻居节点关系调整,提高节点相应的性能指标(如,带宽利用率,平均播放质量,播放延时等)。论文[1]分析了在节点的度一定的情况下,系统的最大吞吐率,提出了一种基于树的聚类算法,将带宽较高的节点通过分簇的方式聚集在一起,并理论分析了在节点的度为O(logN)的情况下,能接近系统最优吞吐率。论文[2,3,4]采用对偶的方法,将系统的全局优化算法转化为分布式算法求解,来分析系统的最大吞吐率。论文[5]将P2P流媒体系统覆盖网建模为树形结构,并对系统节点的平均播放率进行优化,并证明该问题为NP完全问题,进而提出了一种启发式算法进行求解。论文[6]分析了在树形结构下,如何构建分发树使得系统的平均延时最小,但该论文假设系统中的节点的带宽参数是相同的,这很难满足实际系统中的情况。论文[7]优化的目标为最小化系统传输延时,该文主要提出一种覆盖网的构建策略。该策略通过将距离服务器延时值相近的节点聚合在一起,并按照延时值从小到大的方式安排在分发树不同的层次,进而降低数据的分发延时,但该策略没有考虑到节点的带宽限制。
综上,以上的研究主要针对P2P流媒体系统的全局优化,在实际系统中难以实现,本文将以系统的平均延时为优化目标,分别提出基于协作与无协作的局部优化策略,并分析对系统性能的影响。
2 问题描述
按照已知的局部信息的范围,本文将局部优化分为广义的局部优化(Generalized Local Optimization, GLO)和狭义的局部优化(Narrow Local Optimization, NLO)。其中广义的局部优化指系统中每个节点均拥有其它节点的信息,选择传输延时最小的节点作为邻居;狭义的局部优化指节点仅已知系统中部分节点信息,从中选择传输延时较小的节点作为邻居。二者目标一致,均是指从节点角度出发,选择向自身传送数据时延时最小的节点作为邻居。
如图1所示,考虑仅有5个节点的P2P系统,节点A,B准备从备选节点集合C,D,E中选择邻居并向其它节点请求数据,每次请求量为一个单位流作为度量。节点C向节点A,B的发送延时c(x)=x,其中x为链路上传输的单位流的数量;节点D向节点A,B的发送延时为常数值2,节点E向节点A,B的发送延时为常数值1+ε,ε为一大于0的小量。显然,对于全局最优情况下为节点A或者B向节点C请求数据,另外一个节点向E请求数据,这样总的延时为2+ε。对于广义局部最优,节点A,B会从自身角度自私的进行选择,它们均会向节点C请求,节点C由于收到2个单位的流请求,则发送总延时为4。同理,对于狭义局部最优,节点A或者B向节点C请求,另外一个节点向节点D请求,总的发送延时为3,而由于节点C的存在,采用自私的方式系统的总延时并没有得到改善,狭义局部最优的总延时仍为4。产生该问题的主要原因是节点A,B之间是纯粹的“自私”关系,没有进行充分的协商,选取较优化的策略,称为无协作局部优化(Non-Cooperation Local Optimization,NCLO);反之,若节点之间采用某种方式进行有机的协作,共同达到较为优化的结果,称为协作局部优化(Cooperation Local Optimization,CLO),下面将建立博弈模型来描述这2种优化策略,并分析其性能。
3 优化策略分析
3.1 延时博弈模型
设P2P覆盖网为图G=(V,E),其中每一个节点vi∈V表示网络中的节点,图G中的边eij=(vi,vj)∈E表示vi和vj属于邻居关系,eij=eji。因此,图G表示的是覆盖网结构图,而非物理网络上节点之间的关系。数据在覆盖网中的分发通过邻居节点之间的边eij进行。
在无协作局部优化过程中,节点在选择邻居时主动选择传输延时最小的节点,在最小化自身延时的基础上每个节点都做最“有利”于自己的选择,节点之间的选择可能会有一定冲突导致选择的结果与期望结果存在一定差别,每个节点都在充分利用自身已知信息来做出选择策略,该过程非常类似于经济学中的博弈模型,该模型用四元组(P,Si∈P,E,ce∈E(f))描述如下:
1. 系统中的N个节点为博弈中的个体,构成集合P。
2. 节点i的选择策略集合为Si,决定节点选择哪些节点作为邻居,其中备选节点集合为Ai,因此,系统中节点的博弈资源为与备选节点之间的传输延时,定义为集合为E。
3. ce∈E(f)是指选择边e∈E之后,数据在该边上的传输延时,该延时与流过边e的流量有关。
下面针对博弈模型做一些概念的说明。对于集合U,其元素构成一k元组,a=(a1,a2...ak),其中i=1,2...k表示k元组中的元素索引。(a-i,u)=(u1,...,ui-1,u,ui+1,...uk),表示从k元组中用u∈U替换掉ui。选择某一策略后,节点i的数据传输延时ωi:S1×...×Sn→R代表节点i接收数据的延时体验,ωi可以看做是不同策略对节点i收益的影响,称ωi为收益函数,集合S1×...×Sn称为策略该博弈模型的策略集合,用状态σ=(σ1,...σn)∈S表示。若存在某一策略s∈Si,对另一状态σ′=(σ-i,s),使得ωi(σ′)<ωi(σ),则称策略s为改善策略。因此,节点在进行局部优化时,实际上是在不断选择使ωi减小的策略,更具体的形式使得ωi(σ)=∑e∈σice(fundefined(σ))最小。备选节点集合Ai的大小用来表示广义局部优化与狭义局部优化的特征,显然,Ai为系统所有节点时为广义的局部优化,而Ai仅为部分节点时为狭义局部优化,本文通过系统中节点之间已知的边的关系来描述备选邻居节点集合大小。
3.2 无协作局部优化
对于博弈论中最重要的一个问题是,如果节点都采用自私策略,系统最终会达到一个什么样的状态。在纯纳什策略[8]中的道路模型,数据源服务器将数据报文分发的过程则对应于汽车从节点S出发到达每个节点的过程,图中每个边的延时不同,相当于道路的行车时间不同,如果节点都自私的选择延时最小的道路,最终将达到纯策略纳什均衡。Nash均衡的存在问题等同于如下的凸优化问题[9]:
Minimize ∑e∫undefinedce(t)dt
其中,fundefined为边eij的流量,满足节点上下行带宽的约束。
纳什均衡条件下的最优问题与全局最优问题有所差别。设全局优化问题最优解为f*,该解为最小化系统中每个节点平均延时,f*也称为社会最适流(Socially Optimum Flow)。纳什均衡下,流f带来的延时开销与f*延时开销的比值ρ(G,r,c)=c(f)/c(f*),该值称为混乱率(Price of Anarchy, PoA),值越大表明采用自私的方式进行局部优化将会对系统性能造成较大的损害,相反,该值越小通过局部优化能达到系统的全局优化。若延时函数c(f)为线性函数ce(x)=aex+be,则ρ(G,r,c)的上界为4/3[9];若函数c(f)为其它任意函数则混乱率没有界。值得指出的是,以上的PoA值计算是已知系统中所有节点信息的条件下得出的,即博弈模型条件2中的备选合作节点集合Ai={vj,j≠i},为广义局部优化。
对于广义局部优化,上文建立了博弈论模型进行描述,但这与实际的流媒体系统协议之间还存在一些区别,存在以下问题:
1.在上述博弈论模型中,节点进行局部优化的前提是已知系统中与其它所有节点之间的延时信息以及带宽信息,而在实际P2P系统中则很难达到。
2.节点之间的延时信息可能由于底层的路由路径不同而发生变化。
3.节点的动态特性对局部优化能否达到纳什均衡也有很大影响。例如,节点A已经选定节点B作为邻居,节点A向节点B请求数据后,节点B退出了系统,而节点C此时又加入了系统,节点A需要重新计算目标请求节点。
为解决上述问题,需要在P2P流媒体优化策略中进行适当的修改,使其达到博弈论模型所述的条件,进而逼近纳什均衡条件下的最优值。
针对问题1,可以采用中心服务器来记录每个节点收到数据流的延时及带宽信息,节点p加入系统后与中心服务器联系,获得当前拥有数据且能提供服务的节点集合A,其中集合A中的节点按照与节点p的延时升序排列。节点之间的延时信息可以根据实际的数据交换进行估算。节点p从集合A中选择当前延时最小的节点作为邻居。
针对问题2,可以采用捎带(piggyback)的方式进行调整,由于节点之间会有各种各样的数据报文交互,因此可以在报文中加上时间戳,根据报文的送达时间计算节点之间的实际延时,可以根据多次的测量来计算平均值。
针对问题3,为了在优化过程中快速的恢复,可以在选择延时最小的邻居节点时,按照延时升序选择多个节点作为备份,如果有新的节点加入只需要与备份的邻居节点作比较,降低计算开销。值得注意的是,论文[10]指出,动态环境下的P2P流媒体系统的纳什均衡随着节点的动态性而在不断变化,实际是动态环境下的准纳什均衡。
3.3 协作局部优化
重新考虑图1所描述的问题。首先,如果节点A在作出选择时已知节点B的选择,则节点A能在该情形下达到自身的最优选择。例如,在广义局部优化条件下,节点A已知节点B选择了节点C,则节点A将会选择E作为邻居,达到总延时为2+ε,达到了系统的最优值。另外一方面,节点A,B在获取数据后还能为其它节点服务,为缩短其它节点的接收延时,显然A,B中带宽较大的节点更具有优势。
因此,综合以上两点,可以从两方面来构建基于协作的局部优化策略:
1.处于竞争关系的节点之间通过交换信息来协调冲突,避免因完全“自私”的行为导致性能下降。
2.被选择节点在收到具有竞争关系的多个节点的请求时,可以考虑请求节点的带宽来决定优先为哪些节点提供服务。
通过以上2个层面的描述,节点之间不是纯粹的竞争关系,而是具有一定的合作关系。更进一步的讲,如果将局部的节点看做一个集合,则实质是寻找在该局部范围内的一个最优值。下面提出一种基于节点协作的局部优化策略。
1) 按照节点与服务器延时的不同,将系统中的节点划分为N个集合,记为P={p1,...pN};每个集合的节点数目不同,记为xi;每个集合中的节点与服务器的延时范围定义为[tundefined,tundefined],i=1,...N,采用集合内节点的延时平均值作为该集合与服务器的延时,记为τi,i=1,...N。服务器维护集合P的延时信息,当新节点q加入系统时,服务器返回τi较小的节点集合A,节点q从该集合中选择节点作为邻居,这样可以保证新加入的节点尽量从延时较小的节点获得数据。为了避免新加入的节点都向延时较小的集合pi请求数据,服务器根据集合pi中节点的上行带宽计算该集合最大的服务能力,如果该集合不能为其它节点提供服务则返回延时次小的节点集合A。
2) 节点q从服务器获得备选节点集合A后,为降低启动延时,节点从集合A中随机选择m个节点作为邻居,开始进行数据请求,之后启动基于局部信息的节点优化策略。包括如下步骤:
I) 节点q按照步骤1)中所述,定期从服务器获得备选节点集合,用以扩充自身的邻居节点选择范围。
II) 节点q从备选集合A中选择延时最小的z个节点,记为a1,...az。节点q向邻居节点发送Gossip消息,表明自身选择的延时最小的目标节点为a1,及自身的上行带宽信息uq,同时节点q向节点a1发送投标消息(Bid Message),该消息具有最高的权值表明节点q将a1作为邻居的请求级别较高,依次类推,节点q同时向其它z-1个节点发送权值依次降低的投标消息。
III) 节点q的邻居节点y收到q的Gossip消息后,会将该信息存入参考信息列表中。若节点y同时选定了目标节点a1,则节点y会比较自身的上行带宽信息uy与uq的大小,若uy>uq则节点y向节点a1发送最高权值的投标消息;若uy
IV) 节点a1收到多个不同节点的投标消息后,按照投标消息的权值由高到低进行处理,处于同一权值级别的消息,节点a1优先响应上行带宽较大的投标节点的请求。
通过以上策略,节点在选择节点时会考虑到处于竞争关系的节点的选择,主动作出最有利与自身的选择;此外,节点在收到多个投标消息后会根据节点的上行带宽决定优先服务哪个节点,因为拥有带宽较高的节点能尽快的把数据传输给其它节点,降低系统的传输延时。
3 仿真实验
为验证相关优化算法,本章的实验场景设定如下。基于p2pstrmsim[11]进行二次开发,底层拓扑采用Meridian[12]提供的实际网络拓扑数据来进行构建,设数据源服务器的上行带宽为600kbps,数据播放速率为300kbps。其中拓扑关系由邻居边数决定,便于考察不同节点数目与邻居数目情况下的系统性能。系统中的节点上下行带宽如下表所示。按照每个节点都能进行流畅播放所需的最小带宽计算,系统上下行带宽比率为1.2,详细比例如表1所示,满足系统优化的基本条件,即若充分利用系统中节点的上行带宽资源则能满足所有节点的播放需求。
图3描述了无协作的局部优化(NCLO)及协作局部优化算法(CLO)对系统平均延时的影响。邻居节点边数目为10N,N=100为节点数目。从图中可以看出,在节点数目较少的情况下,可以看出不同的优化算法所得平均延时值没有太大差别。此外,协作局部优化算法充分利用了节点拥有的局部的信息来选择邻居,相对无协作局部优化算法有较好的系统延体验。
图4描述了不同的备选邻居数目对优化算法的影响,系统节点为200,备选邻居节点数目为横坐标所示。从图可以看出,随着备选邻居数目增多,两种算法所描述的系统平均延时均有所降低。已知的备选邻居数目越多,表明系统中节点之间的边的关系越丰富,进行优化时的拥有的系统信息越多,因此系统平均延时有所降低,但随着备选邻居节点数目的增大,系统的平均延时变化并不明显,这表明在已知足够数量的邻居节点信息的情况下进行局部优化的效果有限,需要进一步寻求新的局部优化策略。
4 结束语
无协作的局部优化算法(NCLO)由于节点的“自私”性,对系统性能优化非常有限,且由于节点的动态性较强,很难达到纳什均衡条件下的最优值。协作局部优化算法(CLO)是一种启发式算法,协作局部优化算法的最主要优点是策略具有较强的可实现性,且符合优化的直观描述,适用于一般的P2P流媒体系优化,仿真实验表明,相对于无协作局部优化算法能大大改善系统性能。
参考文献
[1]Shao, L., C. Minghua, S. Sudipta, et al. P2P Streaming Capacity under Node Degree Bound[C]. in Proceedings of the 2010 IEEE 30th International Conference on Distributed Computing Systems: IEEE Computer Society.
[2]Yifeng,H.,I.Lee,G.Ling.Distributed Rate Allocation in P2P Streaming[C].inMultimedia and Expo,2007IEEE Interna-tional Conference on.2007.
[3]Danny, B., T. Yoav, Z. Argyris, et al. Distributed large scale network utility maximization[C]. in Proceedings of the 2009 IEEE international conference on Symposium on Information Theory - Volume 2. 2009. Coex, Seoul, Korea: IEEE Press.
[4]Minghua, C., P. Miroslav, S. Sudipta, et al., Utility maximization in peer-to-peer systems[J]. SIGMETRICS Perform. Eval. Rev., 2008. 36(1): p. 169-180.
[5]Li, R., Qishi Wu, Yunyue Lin, et al., On Topology Construction in Layered P2P Live Streaming Networks.[J]. Management, 2010: p. 599-606.
[6]Jiang,J.W.,Z.Shaoquan,C.Minghua,et al.Minimizing streaming delay in homogeneous peer-to-peer networks[C].inIn-formation Theory Proceedings(ISIT),2010IEEE International Symposium on.
[7]J. Chakareski,P. Frossard. P2P video broadcast with latency and utility optimization[R]. Lausanne, Switzerland, 2009.
[8]Po-An,C.,K.David.Altruism,selfishness,and spite in traffic routing[C].inProceedings ofthe9th ACMconference on Elec-tronic commerce.2008.Chicago,Il,USA:ACM.
[9]Tim, R.,T. va, How bad is selfish routing?[J]. J. ACM, 2002. 49(2): p. 236-259.
[10]Richard,T.B.M.,C.M.L.Sam,C.S.L.John,et al.,A game theoretic approach to provide incentive and service differentia-tion in P2P networks[J].SIGMETRICS Perform.Eval.Rev.,2004.32(1):p.189-198.
[11]Meng, Z., Z. Qian, S. Lifeng, et al., Understanding the Power of Pull-Based Streaming Protocol: Can We Do Better?[J]. Selected Areas in Communications, IEEE Journal on, 2007. 25(9): p. 1678-1694.
【P2P流媒体系统】推荐阅读:
P2P流媒体点播系统08-02
流媒体系统应用08-19
流媒体管理系统09-14
企业流媒体系统方案09-30
产品系统部技术主管(流媒体)岗位职责11-20
流媒体服务07-17
流媒体发布05-20
移动流媒体07-03
无线流媒体08-05
流媒体文件12-18