基于P2P技术的流媒体直播系统的研究与实现
- 格式:pdf
- 大小:243.74 KB
- 文档页数:5
基于P2P技术的流媒体应用探讨摘要:该文讨论了流媒体结合p2p技术所产生的互联网新应用,通过在互联网环境下数字媒体的传播与应用。
另外介绍、分析了流媒体的工作原理。
关键词:流媒体;数字媒体;p2p中图分类号:tp3 文献标识码:a 文章编号:1009-3044(2013)08-1931-02由数字技术为支持的数字媒体具有互动、视觉冲击力等特性。
当前互联网环境下最适合基于p2p端系统协议的流媒体进行传输,它可自行适应网络的变化。
1 流媒体简介及其构成流媒体应用于电视监播系统以可以实时录制2套电视节目的监播系统为例。
一台电视监录工作站两台电视监录机通过集线器组成网络,两台电视监录机分别对两套节目进行压缩,电视监播工作站是存储管理。
采用压缩功能压制节目,互联网上直播与点播的格式与文件格式完全兼容。
监录压缩码率、时间间隔可任意选择,还可按照工作的需求来设定监录的起始、终止时间。
实时录播压缩分别送入电视监录机内的1套和2套节目的视音频信号,完成压缩后,通过网络,文件自动传输到电视监录站存储。
应用如图2所示。
2 流媒体技术音视频流媒体的文件对于传输质量的要求不高,但对传输的速度却有很高的要求。
流媒体传输协议基于udp协议上的rtp/rtsp实时传输。
所以则更合适采用udp协议的传输。
rtp通常用udp传送信息、数据,用rtp传输实时视/音数据。
时间信息和实现流同步,主要管理声音同步和qos等。
rtsp定义在多应用程序上如何有效地将多媒体数据通过ip网络传送。
rtsp使用tcp或rtp完成数据传输,在结构上位于rtp和rtcp之上。
流媒体的体系组成部分包括:网络、编码工具、服务器、流媒体数据和播放器。
在流媒体的传输中,整个工作过程如下:当我们选择流媒体服务时,浏览器通过http/tcp与服务器之间交换信息,从服务器中检索出用以传输的实时数据;接着,浏览器启动vhelper 程序, http从web服务器检索有关参数并初始化helper程序。
基于P2P网络的视频流媒体传输技术研究近年来,随着互联网的飞速发展,视频流媒体已经成为了人们生活中不可或缺的一部分。
在互联网上观看视频已经成为了人们休闲娱乐的主要方式之一。
然而,传统的视频流媒体传输方式在面临着带宽瓶颈、延迟高等问题。
为了解决这一问题,基于P2P网络的视频流媒体传输技术应运而生。
基于P2P网络的视频流媒体传输技术是指利用P2P(peer-to-peer)网络架构来实现视频流媒体的传输和共享。
与传统的中心服务器架构不同,P2P网络通过将传输任务分配给大量的终端用户,减轻了服务器的负担,提高了整体的传输效率和可靠性。
首先,基于P2P网络的视频流媒体传输技术的核心之一是资源共享。
在传统的中心服务器架构中,用户需要直接从服务器下载视频内容。
而在基于P2P网络的视频流媒体传输技术中,每个终端用户不仅充当接收者的角色,同时也可以成为发送者的角色,共享自己的带宽和资源。
这种分布式的资源共享方式大大提高了整体的传输速度和质量。
其次,基于P2P网络的视频流媒体传输技术具有较好的可扩展性。
P2P网络的节点数量可以非常庞大,这意味着更多的终端用户可以参与到视频流媒体的传输过程中。
相比之下,传统的中心服务器架构往往只能承载有限数量的用户请求,随着用户规模的增加,服务器压力也会不断增加。
而P2P网络通过分散传输任务,使得任何一个节点都可以作为发送者或接收者参与到传输过程中,从而实现了高度的可扩展性。
另外,基于P2P网络的视频流媒体传输技术还具有一定的容灾能力。
由于P2P网络是一个分布式系统,不存在单点故障的问题。
即使某个节点出现故障或离线,其他节点仍然可以继续工作,保证了视频流媒体传输的稳定性和连续性。
然而,基于P2P网络的视频流媒体传输技术也面临着一些挑战和问题。
首先,由于每个终端用户都可以作为发送者和接收者,数据传输的路径变得复杂而不可预测。
这导致了一定的传输延迟和不确定性,影响了用户观看视频的体验。
基于P2P技术的流媒体直播系统研究摘要:详细介绍了基于P2P技术的流媒体直播系统的相关理论与技术,结合现有P2P流媒体系统中的节点管理问题以及“搭便车”现象,提出了一种基于超节点的P2P流媒体直播系统设计方案。
同时为了维护网络的稳定性,采用了备用超级节点机制,从而在一定程度上降低时延,提高了系统服务质量。
关键词:流媒体;超级节点;P2P技术0引言伴随着互联网产业的飞速发展和新技术的不断创新,网络流媒体应用在人们的生活中也日益普及,成为人们生活、学习、工作和娱乐不可分割的部分,如:网络电视、直播节目、在线视频游戏以及远程教育等等,而这些应用的共同特点就是需要流媒体技术的支持。
近年来,人们逐渐把P2P技术应用到流媒体传输中,从而形成P2P流媒体技术。
该技术可以突破传统C/S模式的局限,能更好地实现流媒体系统稳定、迅速和高清晰等特点,从而可以为用户提供更高质量的流媒体服务。
针对对等网中超节点的选择大都根据节点的物理性能而没有考虑到网络中节点“搭便车”的现象,本文研究设计了一种新的P2P 流媒体直播系统。
为了有效进行超节点的选取与组织,在综合考虑节点的服务能力与自愿性的基础上,选取那些处理信息能力强又积极参与贡献资源的节点作为超级节点。
为了维护网络的稳定性,本文还提出了备用超级节点机制。
1P2P技术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来改进它的搜索工具。
基于P2P技术的流媒体直播系统的研究与实现许统德(广东农工商职业技术学院,广东广州511365)摘要本文介绍了P2P技术和流媒体的技术框架,并对它们进行研究和分析,并在此基础上设计和实现了一个高质量的流媒体直播系统。
关键词P2P;流媒体;系统设计;系统实现1引言近几年来,随着网络技术和流媒体技术的发展,远程教学管理、视频聊天室、IPTV、视频会议等流媒体系统正在兴起或被广泛应用。
然而,在当前的Internet上传输媒体并没有任何服务质量(QoS)的保证,并且实时媒体的传输有带宽,时延和丢包等问题的出现。
另外,网络和终端的异构性使得带宽效率和服务的适应能力也有所下降。
但是,随着P2P技术越来越被广泛研究和运用,这些问题都得到了解决。
并且,P2P已经在分布式计算、网络游戏、文件共享、深度搜索、协同工作方面得到了广泛的应用[1]。
因此,利用P2P技术进行实时的分发传输,便能充分利用客户端闲置的CPU、存储器、网络带宽等资源,减轻服务器和网络带宽负担,构建出一个成本低、扩展性好、并有一定QoS保证的流媒体直播系统。
2P2P技术P2P(peer to peer)即对等计算或对等网络,通常简称为P2P,可以简单地定义成通过直接交换,共享计算机资源和服务[2]。
P2P技术从根本上颠覆了C/S(Client/Server)这一传统模式。
新的模式模糊了服务提供者与使用者的界限,甚至不再有传统意义上的服务器,服务提供者的作用大为减弱。
P2P具有的自组织、容错性好、可扩展性强等优点使其在文件共享,流媒体技术,即时通讯等方面广泛应用[3]。
P2P网络按照集中化程度可以分为纯P2P和混合P2P两类:纯P2P网络完全没有中央服务器,通过基于P2P的客户端软件搜索网络中存在的对等节点,每个节点都是完全平等的,节点之间可直接建立连接,如Gmitella。
混合P2P网络设有中央服务器,它主要作为索引服务器。
与C/S模式中的服务器不同,P2P网络中的索引服务器只记录内容的索引和节点的必要信息,辅助节点之间建立连接,而内容本身存储在节点中,内容的传送只在节点之间进行,不通过服务器。
如早期的NaPster和现在的BT,eMule,QQ等。
本文采用的就是混合P2P网络。
3流媒体直播技术在流媒体的应用中,媒体经过压缩技术存在硬盘上,流媒体服务器接收客户端的请求,根据QoS的要求以及网络状况调整压缩的媒体流的参数(如比特率),然后流媒体传输层对其进行打包,通过P2P技术进行连续媒体分发,客户端接收到媒体流后,通过媒体同步技术进行播放。
整个过程涉及到六个技术领域:媒体压缩技术,应用层的QoS控制,应用层组播技术,视频服务器技术,媒体同步技术和流媒体传输协议,彼此之间的相互转换传输如图1所示。
4基于P2P技术的流媒体直播系统的设计在P2P技术和流媒体技术的研究基础上,综合研究了当前P2P系统的内容分发技术,提出一个基于P2P技术的流媒体直播系统模型。
该模型主要包括以下三个部分的设计:4.1系统模型的结构设计如图2所示,系统模型结构主要包含了四个主要的模块,分别是P2P网络覆盖层模块,流媒体数据分发算法模块,视频源编码,终端解码模块,P2P网络安全模块以及认证计费模块。
(1)P2P网络覆盖层模块:该模块使用一个中心服务器维护系统中所有活跃节点的信息视图,也就是说用强劲的服务器来换取节点之间交换节点信息带来的不便。
(2)流媒体数据分发算法模块:该模块是系统中最核心的模块之一,共包括四个部分:伙伴管理,数据缓冲区管理,数据调度,传输协议设计。
(3)视频源编码,终端解码模块:视频源编码模块即是频道服务器中的读取媒体数据模块,该模块连接媒体编码器(比如Windows Media Eneoder),并读取媒体数据,送给流媒体数据分发模块处理。
终端解码模块即是频道接收端中的提供媒体数据模块,该模块连接媒体播放器(比如Windows Media Player),并把流媒体数据分发模块送出的媒体数据发送到媒体播放器以供播放。
(4)P2P网络安全模块以及认证计费模块:P2P网络安全模块负责保护网络安全,阻止恶意攻击。
该模块在连接建立时交换加密密钥,以后的传输数据进行流加密保护。
认证计费系统使用RADIUS协议,以便产品商业化和运营推广。
4.2系统模型中的P2P网络覆盖模型设计在P2P网络层中将同时请求同一节目的所有普通节点(peers)归为一组,我们称为同一个频道(channel)。
这个频道的源节点(发布服务器)我们称为root。
应当注意到root节点在网络中也具有普通节点的行为,它和普通节点的一个主要区别就是普通节点的媒体数据是从P2P网络中获取的,而root的媒体数据是通过别的方式中获取的,比如编码器。
该模型主要包括以下四个部分:1)注册新节点一个新的想观看频道的节点想进入到P2P网络中,第一步必须先注册到中心服务器。
频道终端发送注册请求,携带自己要观看的频道信息。
中心服务器收到后检索对应的频道是否存在,如果不存在,发送注册失败的信息。
如果存在,则为新节点分配一个ID,加入到节点列表中,并返回注册成功的信息。
2)心跳信号成功加入到P2P网络中后,节点必须定期的向中心服务器发送一个心跳包,表示自己在这个网络中还是活跃的,以便其它的节点能够通过服务器找到。
同时中心服务器收到一个节点的心跳包后,首先找到该节点在列表中的位置,更新这个节点的最后活跃时间。
如果没找着,则发回一个节点无效的信息,要求该节点再注册一次。
中心服务器定时(比如,15秒)的对节点列表刷新,删除那些最后活跃时间距现在超出预期(比如,15秒)的节点。
3)查询邻居节点当节点想要获取一些邻居节点时,向中心服务器发送一个查询请求,查询请求包括欲返回的节点数。
中心服务器收到该请求后,检索出符合要求的邻居节点,返回给请求节点。
4)NAT反向穿透当有终端节点是处于内网时,别的终端节点没法直接与其进行连接。
需要中心服务器协助进行连接,即辅助建立NAT 内的节点与NAT外的节点的连接。
4.3系统模型中的流媒体内容分发方案设计流媒体数据分发算法模块是系统中最核心的模块之一,共包括以下四个部分,模块关系如图3所示。
图3流媒体分发设计方案(1)节点管理:负责管理与邻居节点建立的连接的集合。
包括发起,接受连接,检测并删除无效连接,节点优化策略,统计节点优先级及收发信息。
(2)缓冲区管理以及负责生成缓存映射(BufferMap,以下简称为BM):视频数据被分割成相同大小的片断(Segment),节点使用一个环形队列的缓冲区存储片断。
用一个缓存映射BM来表示节点中是否拥有某个片断的数据。
节点和伙伴通过不断交换BM来了解相互间的缓存情况。
(3)数据调度:负责动态的和其它结点交换数据。
数据调度的目的就是根据节点和伙伴的BM,如何从伙伴节点那里获取数据。
(4)传输协议的选择:传输媒体数据的可供选择的协议有TCP,UDP,UDT等。
本论文使用UDP协议传输。
5系统实现在系统的功能模块上,整个系统是由编码系统、加密系统、分发系统、终端系统以及用户认证计费管理系统五大子系统组成的。
各模块的算法实现在上面已经描述,以下主要描述下系统软件的算法实现。
5.1数据分发算法的具体实现数据调度算法的一个前提就是buffermap的交换是在一个“流”的连接上进行,更严格的要求是buffermap的交换和流媒体数据的传输是在同一个“流”上进行的。
也就是说,邻居关系是靠一个面向连接的链路来维持的,比如TCP。
一个典型方案就是两个节点建立有一个TCP的连接,在这个连接上交换buffermap,传输流媒体数据。
然而,现有的TCP实现在传输效率等方面并不如人意,为此,可以使用UDT(UDP-based Data Transfer Library)来大幅度提升传输性能。
UDT 是一个TCPoverUDP的开源项目,它使用UDP来实现TCP的一系列功能,提供了与TCP相同的函数接口。
同时它还可以对拥塞控制、流量控制实行自定义。
实验测得UDT的性能优于TCP百倍以上,是一个相当高性能的网络程序库。
在实际中,本人推荐使用UDT作为底层传输模块以提供类TCP的连接特性,例如在系统中,可以利用UDT的类TCP 的连接特性使节点之间的节点管理消息、BM交换以及真正的媒体数据都可以在这同一个连接上进行的。
5.2基于UDP的TCP的实现如上所述,在系统中使用UDP将具有很好的网络性能,但是这将丧失了TCP的可靠性和连接特性,也就是说每一次的数据交换都是一次全新数据的发送没有任何的连接的概念。
而UDT虽然使用了UDP来模拟了TCP的连接特性,但是针对该系统,它有两个限制:①UDT是一个规模比较大的网络库,如果要修改它来适应该系统,将是一个工作量比较大的事情。
②UDT它本身模拟TCP的连接时,每一个UDT连接实质上都是一个UDP的连接,也就是说,如果开多个UDT 连接的话,这将要占用多个UDP端口。
为了避免上面的这些弊端,本人开发了一个轻量级的基于UDP模拟TCP连接特性的连接库。
图4基于UDP的TCP连接实现如图4所示,针对节点A而言,它和其它的节点B,C,D的连接实质上都是基于UDP的,并且都是从一个端口中连接出去的。
这样我们就克服了UDT所带来的每一个连接都开一个端口的问题,如果要想使得每个连接都具有TCP的连接特性,这就要求系统能够模拟TCP的可靠性和连接特性,本人是这样实现的:(1)在系统中的每一个连接都是一个对象,用连接对象本身的不同来区分连接是针对不同的节点的。
(2)在每一个连接对象内,都根据了节点自身与其它节点数据交换的情况来进行连接的拥塞控制。
(3)为了保持连接,使得每一秒都会进行BM信息的数据交换,如果一个连接对象在6秒之内都没有进行一次数据交换,那么就认为这个连接已经失效。
(4)在系统中本人用一个单例对象来管理所有的连接对象。
6结束语本文建立了一个基于P2P技术的流媒体直播系统,该系统主要功能是实现在Internet上进行视频直播。
系统模型已基本构建,软件功能模块在完善中,涉及系统的安全性问题、搜索效率、QoS等技术难点会进一步研究和探讨,并希望能与流媒体点播领域相呼应,进一步提高系统流媒体的QoS。
参考文献[1]张联峰,刘乃安,钱秀槟,等.综述:对等网P2P技术[J].计算机工程与应用,2003.03[2]张文等,P2P网络技术原理与C++开发案例.人民邮电出版社,2008年8月[3]唐占红,兰聪花.P2P技术及其应用.甘肃科技纵横[J],2008,01收稿日期:3月2日修改日期:3月11日作者简介:许统德,软件工程硕士,助教,广东农工商职业技术学院。