基于多源的P2P流媒体传输系统的设计
2008-03-17
作者:林 强, 黄建华, 毛军鹏
摘 要: 针对实际P2P网络中存在的异构性问题,提出一种基于多源的P2P流媒体" title="流媒体">流媒体传输系统" title="传输系统">传输系统。
关键词: P2P 流媒体传输 多描述编码 多源
近年来,随着Bittorrent、eMule等P2P[1]应用软件的出现,业界已广泛展开了对P2P网络的研究。P2P网络中,每个节点同时具有服务器和客户端功能,每个节点将接收的内容缓存并提供给其他请求节点,这充分挖掘了Internet上被忽视的客户机资源,在利用率、可扩展性、容错等方面具有巨大潜力。把P2P引入流媒体服务,将打破传统的C/S模式,使服务分散化,从而减轻服务器负载并支持更大范围流媒体发布,具有潜在的应用前景。
现有的基于P2P流媒体系统多采用基于应用层[2-3]的组播方式,这种方式通常基于单源传输。组播组内的Peer必须提供足够的带宽来传送一个完整的媒体流" title="媒体流">媒体流。然而在实际的网络环境中,各个Peer之间在提供的带宽、存储空间以及CPU能力等方面存在着很大的异构性。有些Peer所提供的出口带宽通常不能支持一个完整的媒体流的传送。例如在ADSL方式下,Peer的上行带宽只有几百kbps左右,而一部以MPEG-1编码的视频流的带宽是1.5Mbps,单个Peer无法传送完整的媒体流,因此需要多个Peer对一个Peer进行服务,即提供服务的所有Peer的出口带宽之和要大于媒体流的编码带宽,Peer之间则以单播的形式通信。
为了解决上述的流媒体在异构的P2P网络中存在的问题,本文提出一种基于多源的P2P流媒体传输系统PSMTMS(P2P Streaming Media Transmission System Based on Multi-Source)。通过组群划分机制建立起分层集中的PSMTMS网络模型。在此模型上采用多描述编码方式把原始视频编码成多个描述,形成多个描述子流(码流),每个描述子流经过不同Peer传送到用户端。这种传输方式不需要网络提供可靠的子信道,能很好地解决Peer节点所体现出的异构性问题,从而提高视频传输的鲁棒性;并且引入服务节点的选择策略" title="选择策略">选择策略,用户端能从品质度最佳的Peer下载描述子流,既充分利用了Peer的资源,又保障了流媒体的服务质量。
1 PSMTMS网络模型
PSMTMS网络模型的设计思想是以引入分级集中和层次化树型结构为核心,从而建立分层集中网络体系结构。提出组群划分和层次化结构的目的是充分考虑节点网络邻近性特征。通过组群划分机制将物理距离较近的节点划为一组,以使网络中邻近节点间的数据传输尽量都在所在区域内部完成,降低了媒体流传输延迟。
1.1 基本概念
(1) 媒体管理服务器(MMS):保存着各个兴趣组内所有节点的相关信息,负责管理所在兴趣组中的节点的加入、退出,以及为用户选择高品质的服务节点。每个媒体文件在MMS中设立一个兴趣组。
(2) 流媒体服务器(SMS):存储媒体数据,传送媒体数据给用户,并且能把原始视频通过MDC编码成媒体流数据。
(3) 普通节点(Peer):类似于C/S结构中的普通用户。
1.2 PSMTMS体系结构
本系统网络拓扑是构建于物理网络拓扑之上的一层重叠网络,属于应用层的虚拟网络。网络拓扑分为两层(如图1所示):底层是由区域组成的集合,每个区域是按组群划分机制组织起来的用户群;顶层由一个媒体管理服务器(MMS)、一个或多个流媒体服务器(SMS)组成。在图1中,Peer12从所在区域1中选取Peer11和Peer1n以及在区域n中选取Peern1三个节点作为自己的接收节点。其他节点依此相互协作,实现多源的媒体流传输。
1.3 组群划分机制
为了实现媒体流传送尽量都在网络中邻近节点间进行,本文将物理距离较近的节点归为一个组群,从而降低了媒体流的传输延迟。
组群划分机制具体描述如下:
(1)当一个新节点Peer希望加入网络时,它首先向MMS发送请求加入消息。
(2)MMS返回标志节点列表给Peer。标志节点也是普通节点,它一般是第一个加入所在区域的节点。
(3)Peer计算到各个标志节点的物理网络距离。最简单的方法可以使用Ping消息。如果计算的物理距离小于PSMTMS系统设定的门限值,则Peer将通过向MMS发送消息加入到标志节点所在的区域中,组群划分过程结束;否则,自动成为一个标志节点,并相应添加一个新区域。
2 多描述编码
多描述编码[4]MDC(Multiple Description Coding)将视频信息(或其他信息源)编码成多个独立的、等优先级的码流。每个码流称为一个“描述”。这些无优先级的码流可分别通过独立信道传输,不分特殊层,每个描述都能被独立译码。假设在接收、发送端之间有多个独立的并行信道,各信道中误码的发生是相互独立的, 即所有信道同时发生误码的概率较小。这样在接收端至少有部分描述被正确接收,可以重构视频。若全部描述被正确接收,接收端能重构最佳质量的视频。这一特性使MDC非常适合分组交换的网络。由于多描述编码可以在支持不同比特率的路径上传输,可以充分利用包交换网络的传输资源,所以具有广泛的应用前景。
针对视频的多描述编码方法很多,最简单的方法是时域划分, 即发送端依据采样时间分成奇偶两个视频信号,生成两个描述经不同信道传输[5]。此外,还有多描述量化、多描述变换编码及基于FEC的多描述编码。
本文采用的MDC编解码模型如图2所示,对经小波" title="小波">小波变换后的视频的小波系数进行分割,采用空间-时间分块方法,将小波系数分成多个子块,分别对各子块进行3D-SPIHT(三维等级树集合划分算法)[6]编码,得到多个编码比特流(描述)。对每一描述,以固定长度k个比特构成一个信息码组(在此称为“打包”),再分别对每个包加循环冗余码(CRC)校验,加上与Reed-Solomon(RS)编码纠错码组合使用,提高了系统的性能。编码后的描述流通过不同的信道发往接收者(实际上在P2P的发送方式下,不同的描述流是由不同的Peer发往接收者的)。在接收端,先对多个独立信道接收的各描述包进行RS解码,对每一描述(码流),分别进行3D-SPIHT解码,得到相应于各描述(码流)的小波系数。CRC检测到包被污染,即停止该包所属描述的3D-SPIHT解码,全部描述3D-SPIHT解码完成后将各小波系数合成为一小波系数矩阵;然后进行小波逆变换,即得到解码的视频信号。
3 PSMTMS传输系统实现方案
本文提出的流媒体传输系统对原始视频采用多描述编码,形成多路码流(描述);对编码后的多路描述子流采用P2P方式,使多点(即多个Peer)相互协作,实现多径传输。
3.1 服务节点的选择策略
服务节点的选择可以根据不同的QoS需求采取不同的选择策略。如果希望流媒体服务的延迟小,可以选择物理邻近的节点作为服务的节点以快速建立会话,如在局域网内有提供服务的节点,就不选择Internet上的节点,这样可以避开Internet上的带宽波动和拥塞;如果希望得到高质量的流媒体服务,则可选择能够提供高带宽、CPU 能力强的节点,例如在宽带接入的PC机和ADSL接入的终端之间选择前者。
本系统结合以上两种选择策略,对服务节点的选择采用如下策略:
(1)优先从本区域中选取Peer作为转发描述子流(即成为服务节点)。根据上述的组群划分机制组成的区域中所有节点间的物理网络距离较近,这样数据传输延迟也较小。
(2)不同的描述子流尽量从不同的Peer上接收,避免了由于所选Peer的离开而造成多个描述子流的丢失。
(3)优先选取品质度好的Peer。根据Peer的当前系统信息(如CPU处理能力、内存信息、上传带宽、下载带宽、上传连接数和下载连接数等),通过某种算法计算得到一个性能评估值。性能评估值越大,Peer的品质度越好。
3.2 媒体流传输网络的构建
在PSMTMS系统中,由多个提供不同带宽的服务节点向一个接收节点发送数据。为了保证服务延迟小以及服务的连续性和稳定性,接收节点根据所接收到的各描述子流的质量,动态地选择相应的服务节点。
本系统每路描述子流采用RTP打包发送,在包头中要包含以下私有字段:原始流惟一标识、子流标识和时间戳(或帧同步标识)。
3.2.1 Peer节点的加入过程
当流媒体服务器(SMS)有新媒体文件时,SMS就会向媒体管理服务器(MMS)发布Create消息。MMS收到消息后,首先创建一个新的兴趣组,并生成一个惟一的媒体流标识来表示此媒体文件;然后向MMS发送Response消息,这样新媒体文件就可以提供给用户访问了。
新节点Peer加入兴趣组的过程如图3所示,其详细描述如下:
(1)当新节点PeerA想要访问某个媒体文件时,首先根据PeerA的系统信息,按照某种算法计算出品质度;并向MMS发送请求消息,包括PeerA的IP地址、品质度以及媒体文件的描述信息;
(2)MMS生成PeerA的唯一标识号(NodeID)并搜索媒体文件所在的兴趣组,返回PeerA的NodeID和标志节点列表消息;
(3)PeerA根据收到的节点列表信息,按照1.3节所述的组群划分机制,加入到相应的区域,并告知MMS;
(4)MMS根据上述服务节点的选择策略,选出目前每个描述子流所对应的品质度最佳的服务节点,并向PeerA发送服务节点列表消息。每个服务节点信息包括:NodeID、IP地址、可转发的描述子流标识。
如果兴趣组的成员较少(少于描述子流总数)或SMS可用带宽大于带宽下界BWbound,可把SMS当作服务节点,以便用户获取数据,保证用户接收到尽可能多的描述子流。
3.2.2 Peer节点的退出过程
Peer的退出有两种:正常退出和异常退出。对于Peer的正常退出(如用户正常关闭程序),Peer首先检查是否有下载节点从Peer那里下载描述子流;如果有,则向它们分别发送Leave报文,各下载节点重新获取相应的服务节点;最后Peer向媒体管理服务器发送LeaveGroup报文,媒体管理服务器更新相应的信息。对于Peer的异常退出(如节点掉线或死机等)的处理方式为:Peer周期性地向其下载节点发送Keeplive报文,如果下载节点在一段时间内没收到Peer的报文,就认为Peer失效,重新向媒体管理服务器申请新的服务节点以替换Peer。
3.3 媒体流的传输过程
Peer根据MMS提供的服务节点列表信息,对不同的描述子流分别启用单独的线程从不同的服务节点进行接收和解码。先对接收到的各描述包进行RS解码;然后对每一描述(码流)分别进行3D-SPIHT解码,得到相对于各描述(码流)的小波系数,如果CRC检测到包被污染,即停止该包所属描述的3D-SPIHT解码。解码后的多路视频块置于合成处理缓冲区中。对每块数据的处理设置一个最大等待时间。当等待时间到达时,根据处理缓冲区中收到的解码后的子块编号,将各小波系数合成为一小波系数矩阵;最后进行小波逆变换,即得到解码的视频信号并显示出来。
在整个接收过程中,Peer节点同时对各个正确接收到的描述子流进行统计。对于时延和丢包率大的子流,Peer可以向媒体管理服务器发送该描述子流的下载请求,重新获取新的服务节点。对于接收状态良好的子流,Peer可以生成发布消息发往媒体管理服务器进行登记,通告媒体管理服务器,自己可以对该描述子流进行转发,Peer自动成为该描述子流的服务节点。
针对流媒体在异构的P2P网络中存在的问题,本文提出了一种基于多源的P2P流媒体传输系统。下一步研究工作是设计出一种Peer性能评估值算法,进一步完善P2P流媒体传输系统。
参考文献
[1] MILOJICIC D S, KALOGERAKI V, et al. Peer-to-Peer Computing .HP Laboratories Palo Alto HPL-2002-57 (R.1) July 3rd, 2003.
[2] DESHPANDE H,BAWA M,GARCIA M H. Streaming live media over a peer-to-peer network. In Work at CS-Stanford.Submitted for publication,2002.
[3] TRAN D, HUA K, DO T. Zigzag: An efficient peer-to-peer scheme for media streaming. In: Proc.of IEEE INFOCOM ‘03. San Francisco.CA.USA.IEEE.2003.
[4] GOYAL V K. Multiple description coding: Compression meet the network. IEEE Signal Processing Magazine,2001,18(5):74-93.
[5] BEGEN A C,AHUNBASAK Y, ERGUN O,et a1. Multi-path selection for multiple description video streaming over overlay networks[M].Signal Processing:Image Communica-tion,2005,(20):39-60.
[6] KIM B J, XIONG Z. WILLIAM A P. Low Bit-Rate scalable video coder with 3-D set partitioning in hier-archical trees(3D-SPIHT)[J]. IEEE Trans on Circuits and System for Video Technology,2000,10(8):1374-1387.