论文部分内容阅读
摘要:网络改变着我们得生活,越来越多的人都通过网络来观看电视节目,让人们有了更多的频道选择。在此基础上,各种基于P2P 流媒体播放软件层出不穷,本文将着重介绍P2P 流媒体技术,包括流媒体传输协议以及如何实时传送。最后简要介绍流媒体播放的实现架构。
关键词:P2P;流媒体;流式传输
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)15-2pppp-0c
Abstract:Network has been changing our life.More and more people watch TV programes through network,so that people could have more choices,now.Basic on p2p stream media player software are emerge in an endless.This passage will introduce p2p stream media technology,include p2p’s protocol and how to transport in real time..At last this passage will introduce in the architecture of streammedia, briefly.
Key word:P2P;Stream media;Stream transmission
1 流媒体技术
目前,在网络上传输音、视频等多媒体信息有两种解决方案:Http (或Ftp) 以及流式传输(流媒体传输)。Http传输使用标准的Http协议。一般多媒体信息文件都很大,下载一个多媒体文件时间,可能比整个视频的时间更长。这样造成的情况很可能是:网络带宽不断提高,人们下载的等待时间越来越少,但最终还是不能观看网上现场直播。
流式传输时,声音、影像或动画等多媒体信息,由流媒体服务器向用户计算机提供连续、实时传送。它首先在客户端的电脑上创建一个缓冲区,在播放前预先下载一段作为缓冲,用户不必等到整个文件全部下载完毕,而只需经过几秒或数十秒的启动延时即可进行观看。当多媒体信息在客户端播放时,文件的剩余部分将在后台从服务器上继续下载。如果网络连接速度小于播放的多媒体信息需要的速度时,播放程序就会取用先前建立的一小段缓冲区内的资料,避免播放的中断,使得播放品质得以维持。
流式传输除了能够发送已经制作完成的文件外,还可以通过采集服务器实时采集现场音、视频,送到流媒体服务器端,实时提供给用户。因此流媒体除了能够更好的承担如下载一样的多媒体点播服务外,更能够应用在现场直播、电视转播、突发事件报道等多种对实时性传输要求较高的领域。
MMS (Microsoft Media Server protocol) , 这是微软的流媒体服务器协议,MMS 是连接Windows Media单播服务的默认方法。
实时传输协议RTP(real-time transport protocol)是用于internet上针对多媒体数据流的一种传输协议。rtp被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。rtp通常使用udp来传送数据,但也可以在tcp协议之上工作。
实时传输控制协议RTCP(real-time transport control protocol)和rtp一起提供流量控制和拥塞控制服务。在rtp会话期间,各参与者周期性地传送rtcp包。rtcp包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。rtp和rtcp配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。
3.2 P2P 流媒体实时传送的原理
比如说我们在收看一个p2p 流媒体软件上正在播放的电视节目,这个节目信号是由服务器发出的, 服务器的信号来自于电视卡,电视卡的信号来自电视台, 那么这里就有个问题了,如何进行数据的实时接受与实时发送呢?怎么我们就可以在网络上看到基本同步了的电视信号呢?
首先,刚刚开始我们说过,客户端把数据不断接受的数据放到到缓冲区,当缓冲区满了,下一块数据又进来了,使得缓冲区内第一块数据被顶出了缓冲区。最后开始被视频程序解码,开始播放。就这样我们在客户端上看到了和现场基本同步了的视频了。
当有热门节目时,观看的用户必然很多,那么,P2P 流媒体是如何实现观看人数众多而不卡、观看人数越多速度越快的呢?
在传统C/S 模式的流媒体服务系统中, 服务器S 若要同时为A、B、C 三个客户提供相同的媒体流,则服务器S 要发送3份相同的数据,最极端的情况就是A、B、C 处于同一个子网内,3份数据的路由路径相同,这造成服务器和网络带宽的极大浪费。P2P网络可以不通过服务器而在两节点间直接传递数据的特点就促使我们设想,如果让A缓存收到的数据,然后提供给B 和C 使用,则服务器S 只需向A发送一份数据就可以使A、B、C 都能得到服务。显然, C/S 模式只使用服务器的资源为客户提供服务,因此服务质量和容量受到服务器性能和服务器端网络带宽的限制。而引入P2P后,不仅可以使用服务器的资源,而且可以充分利用客户计算机的资源,客户在享受流媒体节目的同时,也在利用自身计算机的资源为其他客户提供服务。整个系统的计算和网络资源随客户数的增多而增多。
理论上,基于P2P的流媒体服务系统的客户数可以达到无限大,而且在建立系统时不用增加服务器和网络设施。通过上面的分析可知,基于P2P 的流媒体服务系统并不改变现有的流媒体服务架构, 只是在现有系统的基础上,改变传统模式下的服务方式和数据传输路径,使请求同一媒体流的客户端组成一个P2P网络,使服务器只须向这个P2P 网络中的少数节点发送数据,而这些节点可以把得到的数据共享给其余的节点。
3.3 P2P 流媒体网络模型
流媒体服务系统中的P2P在其组织上有别于一般的P2P下载。我们把它组织成树型结构,称为多播树,服务器是树的根,树的第一层节点直接从服务器获取数据,树的第二层节点从第一层节点那里获取数据,依次类推。多播树可以在节点的不断加入过程中建立起来。由于多播树中一般的节点的服务能力有限,其所带的子节点不能太多,一般为几个,另外因流媒体对时延的要求较高,所以节点与服务器之间的路径不能太长,否则流的时延太大,即树的高度受限。因此,服务器需要维护一些信息, 如当前树中哪些是非饱和(指有剩余带宽资源,可以接纳新节点) 节点,这些节点的IP 地址等信息。下面描述节点加入时建立多播树的算法。如图当新节点P 加入时,步骤如下:
(1)P向服务器S提出请求,如图步骤①。
(2)服务器S接受请求后,根据自己保存的信息,选择与P 物理拓扑接近的非饱和节点的集合I发送给P,如图步骤②。
(3)P从中选择一个与自己连接状况好的节点,如图步骤③,P选择P3。
(4)P向P3直接请求连接,P3同意后开始向P发送数据。P 加入多播树。如图步骤④。
(5)P3向服务器S 要求更新信息,P3连接数加1,如图步骤⑤。
(6)P向服务器S 要求更新信息,P可以向其它节点提供服务了,如图步骤⑥。
由于P2P 网络中的节点的行为具有Ad2hoc 性质,一个节点可以随时退出某节目的观看而导致不能再为其它节点提供服务。如何保证一个节点的退出不影响其它节点用户的收呢? 一种方法是采用重定向机制。假设退出的节点向其父节点注销,并向所有节点转发重定向(Redirect) 消息, 重定向的目的为父节点或服务器S。若节点失效(掉电等原因), 则子节点需重新向服务器发起加入请求。这种方式的最大问题是一旦父节点失效,其子节点将成为孤儿节点,需向服务器重新发起加入请求过程,从而可能导致服务服务中断的时间太长。
另一种方法是可以采用冗余数据链路,就是某节点加入多播树后,通过在树中传播查询消息,找到一个备用的父节点,一旦当前的父节点退出或失效,可以迅速通过备用父节点传输数据。但这种方法要求多播树中每个节点要经常性的在树中传播查询消息,以维持一个有效的父节点。
参考文献:
[1]SH IRKY C. What is P2P andWhat Isn’t[C].O’Reilly’s E2 merging Technology Conference,May 13216,2002.
[2]刘亚杰,窦文华.一种P2P 环境下的VoD流媒体服务体系[J].软件学报,2006,50 (4):36-240.
[3]Gadde s,Chase J,RabinoichM. W eb Cach ing and Content D istribution: a V iew from the Interior[J].Computer Com2
munications,2000,24(2):222-231.
收稿日期:2008-02-18
作者简介:韩迪,湖北武汉人,中山大学硕士,现在任广州大学华软软件学院软件工程系教师,广州大学华软软件学院高等教育研究所研究员,研究方向:计算机网络,高校教育管理等。
关键词:P2P;流媒体;流式传输
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)15-2pppp-0c
Abstract:Network has been changing our life.More and more people watch TV programes through network,so that people could have more choices,now.Basic on p2p stream media player software are emerge in an endless.This passage will introduce p2p stream media technology,include p2p’s protocol and how to transport in real time..At last this passage will introduce in the architecture of streammedia, briefly.
Key word:P2P;Stream media;Stream transmission
1 流媒体技术
目前,在网络上传输音、视频等多媒体信息有两种解决方案:Http (或Ftp) 以及流式传输(流媒体传输)。Http传输使用标准的Http协议。一般多媒体信息文件都很大,下载一个多媒体文件时间,可能比整个视频的时间更长。这样造成的情况很可能是:网络带宽不断提高,人们下载的等待时间越来越少,但最终还是不能观看网上现场直播。
流式传输时,声音、影像或动画等多媒体信息,由流媒体服务器向用户计算机提供连续、实时传送。它首先在客户端的电脑上创建一个缓冲区,在播放前预先下载一段作为缓冲,用户不必等到整个文件全部下载完毕,而只需经过几秒或数十秒的启动延时即可进行观看。当多媒体信息在客户端播放时,文件的剩余部分将在后台从服务器上继续下载。如果网络连接速度小于播放的多媒体信息需要的速度时,播放程序就会取用先前建立的一小段缓冲区内的资料,避免播放的中断,使得播放品质得以维持。
流式传输除了能够发送已经制作完成的文件外,还可以通过采集服务器实时采集现场音、视频,送到流媒体服务器端,实时提供给用户。因此流媒体除了能够更好的承担如下载一样的多媒体点播服务外,更能够应用在现场直播、电视转播、突发事件报道等多种对实时性传输要求较高的领域。
MMS (Microsoft Media Server protocol) , 这是微软的流媒体服务器协议,MMS 是连接Windows Media单播服务的默认方法。
实时传输协议RTP(real-time transport protocol)是用于internet上针对多媒体数据流的一种传输协议。rtp被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。rtp通常使用udp来传送数据,但也可以在tcp协议之上工作。
实时传输控制协议RTCP(real-time transport control protocol)和rtp一起提供流量控制和拥塞控制服务。在rtp会话期间,各参与者周期性地传送rtcp包。rtcp包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。rtp和rtcp配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。
3.2 P2P 流媒体实时传送的原理
比如说我们在收看一个p2p 流媒体软件上正在播放的电视节目,这个节目信号是由服务器发出的, 服务器的信号来自于电视卡,电视卡的信号来自电视台, 那么这里就有个问题了,如何进行数据的实时接受与实时发送呢?怎么我们就可以在网络上看到基本同步了的电视信号呢?
首先,刚刚开始我们说过,客户端把数据不断接受的数据放到到缓冲区,当缓冲区满了,下一块数据又进来了,使得缓冲区内第一块数据被顶出了缓冲区。最后开始被视频程序解码,开始播放。就这样我们在客户端上看到了和现场基本同步了的视频了。
当有热门节目时,观看的用户必然很多,那么,P2P 流媒体是如何实现观看人数众多而不卡、观看人数越多速度越快的呢?
在传统C/S 模式的流媒体服务系统中, 服务器S 若要同时为A、B、C 三个客户提供相同的媒体流,则服务器S 要发送3份相同的数据,最极端的情况就是A、B、C 处于同一个子网内,3份数据的路由路径相同,这造成服务器和网络带宽的极大浪费。P2P网络可以不通过服务器而在两节点间直接传递数据的特点就促使我们设想,如果让A缓存收到的数据,然后提供给B 和C 使用,则服务器S 只需向A发送一份数据就可以使A、B、C 都能得到服务。显然, C/S 模式只使用服务器的资源为客户提供服务,因此服务质量和容量受到服务器性能和服务器端网络带宽的限制。而引入P2P后,不仅可以使用服务器的资源,而且可以充分利用客户计算机的资源,客户在享受流媒体节目的同时,也在利用自身计算机的资源为其他客户提供服务。整个系统的计算和网络资源随客户数的增多而增多。
理论上,基于P2P的流媒体服务系统的客户数可以达到无限大,而且在建立系统时不用增加服务器和网络设施。通过上面的分析可知,基于P2P 的流媒体服务系统并不改变现有的流媒体服务架构, 只是在现有系统的基础上,改变传统模式下的服务方式和数据传输路径,使请求同一媒体流的客户端组成一个P2P网络,使服务器只须向这个P2P 网络中的少数节点发送数据,而这些节点可以把得到的数据共享给其余的节点。
3.3 P2P 流媒体网络模型
流媒体服务系统中的P2P在其组织上有别于一般的P2P下载。我们把它组织成树型结构,称为多播树,服务器是树的根,树的第一层节点直接从服务器获取数据,树的第二层节点从第一层节点那里获取数据,依次类推。多播树可以在节点的不断加入过程中建立起来。由于多播树中一般的节点的服务能力有限,其所带的子节点不能太多,一般为几个,另外因流媒体对时延的要求较高,所以节点与服务器之间的路径不能太长,否则流的时延太大,即树的高度受限。因此,服务器需要维护一些信息, 如当前树中哪些是非饱和(指有剩余带宽资源,可以接纳新节点) 节点,这些节点的IP 地址等信息。下面描述节点加入时建立多播树的算法。如图当新节点P 加入时,步骤如下:
(1)P向服务器S提出请求,如图步骤①。
(2)服务器S接受请求后,根据自己保存的信息,选择与P 物理拓扑接近的非饱和节点的集合I发送给P,如图步骤②。
(3)P从中选择一个与自己连接状况好的节点,如图步骤③,P选择P3。
(4)P向P3直接请求连接,P3同意后开始向P发送数据。P 加入多播树。如图步骤④。
(5)P3向服务器S 要求更新信息,P3连接数加1,如图步骤⑤。
(6)P向服务器S 要求更新信息,P可以向其它节点提供服务了,如图步骤⑥。
由于P2P 网络中的节点的行为具有Ad2hoc 性质,一个节点可以随时退出某节目的观看而导致不能再为其它节点提供服务。如何保证一个节点的退出不影响其它节点用户的收呢? 一种方法是采用重定向机制。假设退出的节点向其父节点注销,并向所有节点转发重定向(Redirect) 消息, 重定向的目的为父节点或服务器S。若节点失效(掉电等原因), 则子节点需重新向服务器发起加入请求。这种方式的最大问题是一旦父节点失效,其子节点将成为孤儿节点,需向服务器重新发起加入请求过程,从而可能导致服务服务中断的时间太长。
另一种方法是可以采用冗余数据链路,就是某节点加入多播树后,通过在树中传播查询消息,找到一个备用的父节点,一旦当前的父节点退出或失效,可以迅速通过备用父节点传输数据。但这种方法要求多播树中每个节点要经常性的在树中传播查询消息,以维持一个有效的父节点。
参考文献:
[1]SH IRKY C. What is P2P andWhat Isn’t[C].O’Reilly’s E2 merging Technology Conference,May 13216,2002.
[2]刘亚杰,窦文华.一种P2P 环境下的VoD流媒体服务体系[J].软件学报,2006,50 (4):36-240.
[3]Gadde s,Chase J,RabinoichM. W eb Cach ing and Content D istribution: a V iew from the Interior[J].Computer Com2
munications,2000,24(2):222-231.
收稿日期:2008-02-18
作者简介:韩迪,湖北武汉人,中山大学硕士,现在任广州大学华软软件学院软件工程系教师,广州大学华软软件学院高等教育研究所研究员,研究方向:计算机网络,高校教育管理等。