论文部分内容阅读
[摘要]随着信息技术的飞速发展和计算机应用水平的不断提高,网络中流媒体的传输也越来越普遍,本文通过分析P2P网络实时传输流媒体数据的一般流程,提出了通过开辟流媒体内容二级缓存区,来平稳网络负载的策略。
[关键词]P2P 流媒体 缓存
中图分类号:TP393.02文献标识码:A 文章编号:1671-7597(2008)1120072-02
一、绪论
流媒体在播放前并不下载整个文件,只将开始部分内容存入内存,其他的数据流随时传送随时播放,只是在开始时有一些延迟。由于网络的不稳定,会出现网络拥塞、数据丢包、网络时延等现象,在C/S模式下流媒体系统通过在接收端设置一个内容缓存区,可以比较有效的解决网络短时间内出现的数据丢包、时延等问题。P2P智能节点是在不同类型的链路(时延/带宽)下,由节点实时对网络环境进行监视、评估和调节,实现网络的自优化和自恢复,尽可能提高应用的有效性:由节点实现端到端的流媒体数据传输,一条路径不好可以自动切换到另一条路径,或使用多条路径共同传输,以保证服务质量[1]。
在P2P分布式网络构架下,可实现流媒体内容存和取同时进行,后续用户可直接从其它已取得内容资源的用户那里获取资源,同时存放已经取得的数据。通过这种方式,可极大提高流媒体内容存取速度,使得参与的用户越多,获取资源的速度越快。
二、一般数据的传输流程
P2P网络中节点间数据可多路径选择传输,由于节点的异构性[2],出现了节点不确定、节点服务能力不一,致使流媒体内容实时传输不稳定。为满足流媒体内容实时传输需求,目前P2P模式流媒体系统一般采用如下步骤进行数据传输[3][4]:
(l)搜索有效的Peer节点,选择带宽、路由等条件较好的节点;
(2)与选中的节点建立连接,并尝试获取数据,进一步确定有效性;
(3)通过活动窗口机制控制传输,以获得单路径最大传输速率;
(4)通过多路径同时传输,以最快传输速率把获得的数据填满一个缓存区;
(5)从数据缓存区中取出流媒体数据,送入播放器进行播放。
从上面的P2P模式流媒体系统传输流程中,可以看出,由于各Peer节点网络带宽等条件的不一致,使得网络资源较好的Peer节点获得了较高的传输速率,得到了较好的实时播放质量,但同时资源较好的Peer节点占用了较多的网络资源,严重影响了其他普通节点的流媒体实时传输。由于各Peer节点都有实时性传输需求,使得整体网络节点流媒体实时传输效果较差。
假设在 P2P模式流媒体系统的数据接收端节点,设置一个单级缓存区(Buffer,在计算机内存中开辟一块存储空间,用于存放接收到的流媒体数据)。在P2P网络下,通过多路径同时传输流媒体数据时,由于P2P网络中节点的异构性,每条路径可获得的数据传输带宽和稳定性不一致,多条路径接收的流媒体数据都进入同一个单级缓存区,然后流媒体数据被系统推入播放器呈现音/视频节目,这使得系统无法根据实时播放情况,区别对待单级缓存区内已保存的不同路径接收的流媒体数据,从而使得系统无法根据传输路径的带宽和稳定性,对传输路径实施多种策略有效调整(如放弃低带宽传输路径、降低高带宽路径传输速率、有预见性的建立新传输路径等)。所以在P2P模式下设置一个单级缓存区,一般采用以最快数据传输速度填满一个缓存区的简单策略。
P2P模式流媒体系统中设置一个单级缓存区,跟C/S模式流媒体系统中设置一个内容缓存区的作用是一样的,主要是为流媒体实时播放过程中有一段缓冲时间,以适应网络传输速率短暂变化(如网络抖动等)。P2P模式流媒体系统中设置一个单级缓存区,使得P2P网络下多路径同时传输的多种策略有效调整优势不能很好发挥。以最快数据传输速度填满一个缓存区的简单策略,不能有效解决P2P模式下流媒体传输问题,使得网络负载不均衡,不能很好发挥整体网络节点流媒体实时传输效果。
三、基于二级缓存区数据的传输流程
为了使 P2P节点的资源分配较均匀,更多的Peer节点能获得实时传输效果,多条传输路径应该根据其可提供的传输带宽和稳定性,有策略的区别对待,本文提出在P2P网络的接收端节点内设置二级缓存区的方法,对传输路径按传输带宽和稳定性进行分类,并选择传输带宽适中的路径进行数据传输,同时保持数据接收的稳定性(如建立紧急路径),具体如下:
在一个接收端节点内设置二级缓存区(Buffer,在Peer节点的计算机内存中开辟一块存储空间,用于存放流媒体数据),如下图1所示,流媒体数据发送端(源节点)是源节点A、源节点B,流媒体数据接收端(宿节点)是宿节点C,在宿节点C内设置二个缓存区,分别是缓存区A、缓存区B。在源节点A和宿节点C之间建立一条传输路径A,在源节点B和宿节点C之间建立一条传输路径B。
缓存区A为常用缓存区,在宿节点C接收数据实时播放过程中,缓存区A通过路径A获得数据,当缓存区A内填满数据时,缓存区A中的数据以先入先出(FIFO,First in First out)方式开始下溢到缓存区B,同时缓存区A继续通过路径A获得数据。缓存区B为紧急缓存区,缓存区B获得数据后按流媒体实时播放顺序和视频帧播放速率推送给播放器,同时通过路径B获得数据,当缓存区B内填满数据时,路径B停止传输,这时缓存区B只通过缓存区A获得数据。
当路径A获得数据的速率大于等于播放器实时播放需求的速率时,路径B处于待命状态,不传输数据。当路径A获得数据的速率小于播放器实时播放需求的速率时,路径B开始传输数据。因此路径A可选择消耗节点资源和网络资源较少的通路,如通常的点对点方式传输路径;路径B可采用最大限度获得传输速率的通路,如组织代理节点路径或者在IPv6下采用流标记路径等。
四、调整缓存区填充速率策略
从源节点传输数据到宿节点缓存区的过程中,由于网络抖动、拥塞及带宽的影响,通过在Peer节点上建立滑动窗口机制,可调优缓存区填充速率。
使用滑动窗口机制调整缓存区填充速率,其原理与TCP/IP控制数据包传输的滑动窗口机制相同,在由多个IP报文组合而成的流媒体数据包中,通过对一个传输单位的数据包作上序列号标记,按照滑动窗口机制控制数据包在节点间传输[5]。
可把缓存区内数据包划分成三种状态,分别是未请求状态、已请求但未接收状态、已接收状态。在数据传输开始后,滑动窗口调用默认的窗口大小参数以及缓存区内数据包状态进行传输。数据包根据在Peer节点缓存区的状态、各条网络传输路径上的可用带宽资源以及各Peer节点所缓存的数据内容,决定向哪些Peer节点发送哪些数据包调度请求,这些待调度的数据包仅包括那些当前状态为未请求或为已请求但未接收的数据包,而不包括那些状态为己接收的数包,其目的是最大化Peer节点的服务质量,同时满足各条网络传输路径的带宽约束以及各Peer节点所缓存数据内容的约束。
通过在Peer节点上建立滑动窗口机制,可调优缓存区填充速率,在一定程度上使Peer节点保持较平稳的整体网络负载,提高了网络实时传输效果。
五、代理路径传输中节点的选择
P2P节点索引控制由以前集中式发展到现在的分布式,但就其数据传输而言,目前主要是点对点的传输[6],在部分P2P模式直播系统中,引入了树形节点组织方式,但从索引控制器中检索到的源节点和宿节点看,仍然是点对点传输,没有通过代理节点传输数据。目前部分P2P文件传输系统为了绕过防火墙,部分采用了节点代理中转数据。
设置流媒体内容二级缓存区的系统中,为了满足二级缓存区的适中传输策略需求,需要选择二条传输路径,分别是用于填充常用缓存区的传输路径,记作常用路径;用于填充紧急缓存区的传输路径,记作紧急路径。图2路径1由于点对点直接传输,对其他节点的资源消耗较少,可优先考虑作为常用路径,同时与路径1类似的其他点对点传输路径可考虑作为紧急路径。图2路径3通过一个节点中转形成的路径,由于比较容易获得高质量的传输带宽,也可以用于紧急路径。
在实际使用过程中,考虑Peer节点的不稳定性,需要选择三条传输路径,分别是常用路径、紧急路径和备用路径。备用路径是常用路径的备份,在常用路径破坏时,把备用路径纳入常用路径,Peer节点再寻找建立新的备用路径。常用路径的选择原则是带宽满足需求的前提下消耗网络节点资源较少;紧急路径的选择原则是能获得最佳的传输速率,使紧急缓存区能在最短时间内填充完成;备用路径的选择原则与常用路径选择原则一样,即满足带宽需求的前提下消耗网络节点资源最少。
为满足设置流媒体内容二级缓存区需要,每个宿节点调用传输路径节点选择算法,组织形成常用路径和紧急路径。传输路径节点选择算法的任务是决定该宿节点应该选择哪个邻近Peer节点组建为常用路径,选择哪个邻近Peer节点组建为紧急路径。
(1)对于常用路径,传输路径节点选择算法同时也应该满足如下约束:
宿节点和每个邻近Peer节点间可用带宽的约束;每个邻近Peer节点包含宿节点需要内容范围的约束。算法考虑尽可能少的切换Peer节点,以免重新组建常用路径;同时要考虑尽可能占用少的网络资源,使其他节点能获得较好体验。
(2)对于紧急路径,传输路径节点选择算法同时也应该满足如下约束:
宿节点和每个邻近Peer节点间可用带宽的约束;每个邻近Peer节点能提供中转传输带宽的约束。算法考虑Peer节点尽可能保持高性能的数据传输通道,当常用路径失效时,紧急路径能及时有效补充流媒体内容数据。
六、结论
在P2P网络结构下,实现流媒体内容实时流式传输时,传统单级缓存区方式,由于各Peer节点异构性,网络带宽等条件的不一致,使得网络资源较好的Peer节点获得了较高传输速率,得到了较好的实时播放质量,但同时资源较好的Peer节点占用了较多网络资源,严重影响了其他普通节点的实时流媒体传输,由于流媒体实时性传输需求,使得整体网络节点流媒体实时传输播放效果较差。本文提出一种在Peer节点内设置流媒体内容二级缓存区方式,实现流媒体内容实时流式传输时,使Peer节点保持较平稳的整体网络负载,使更多的Peer节点能满足实时传输播放条件,P2P网络实时传输播放效果较好。
参考文献:
[1]V.K.Goyal.Multiple Description Coding:Compression Meets the Network,IEEE signal Processing Magazine,Sep2001.vol.18,n.5:P74-94.
[2]刘亚杰等,P2P流媒体内容分发关键技术研究:[工学博士论文]国防科学技术大学研究生 院,2005年.
[3]龚海刚、刘明、谢立等,P2P流媒体传输的研究进展综述.计算机科学,2004年31卷9期: p20-22.
[4]王钊,基于P2P系统应用层组播在流媒体中的应用.计算机与现代化,2005年第2期:P35-37.
[5]K.A.Hua,D.A.Tran and R. Villafane.Caching muIticast protocol for on-demand video delivery.In Proceedings of ACMISPIE Conefernce on Multimedia Computing and Networking(MMCN 2000):P2-13.
[6]Ching Law,Kai-Yeung Siu Distributed construction of random expander networks,in Proc.Infocom.IEEE,2003.
作者简介:
王倩,女,汉族,山东淄博,淄博职业学院信息工程系,学士,在读硕士,助教,主要研究方向:计算机应用与技术。
[关键词]P2P 流媒体 缓存
中图分类号:TP393.02文献标识码:A 文章编号:1671-7597(2008)1120072-02
一、绪论
流媒体在播放前并不下载整个文件,只将开始部分内容存入内存,其他的数据流随时传送随时播放,只是在开始时有一些延迟。由于网络的不稳定,会出现网络拥塞、数据丢包、网络时延等现象,在C/S模式下流媒体系统通过在接收端设置一个内容缓存区,可以比较有效的解决网络短时间内出现的数据丢包、时延等问题。P2P智能节点是在不同类型的链路(时延/带宽)下,由节点实时对网络环境进行监视、评估和调节,实现网络的自优化和自恢复,尽可能提高应用的有效性:由节点实现端到端的流媒体数据传输,一条路径不好可以自动切换到另一条路径,或使用多条路径共同传输,以保证服务质量[1]。
在P2P分布式网络构架下,可实现流媒体内容存和取同时进行,后续用户可直接从其它已取得内容资源的用户那里获取资源,同时存放已经取得的数据。通过这种方式,可极大提高流媒体内容存取速度,使得参与的用户越多,获取资源的速度越快。
二、一般数据的传输流程
P2P网络中节点间数据可多路径选择传输,由于节点的异构性[2],出现了节点不确定、节点服务能力不一,致使流媒体内容实时传输不稳定。为满足流媒体内容实时传输需求,目前P2P模式流媒体系统一般采用如下步骤进行数据传输[3][4]:
(l)搜索有效的Peer节点,选择带宽、路由等条件较好的节点;
(2)与选中的节点建立连接,并尝试获取数据,进一步确定有效性;
(3)通过活动窗口机制控制传输,以获得单路径最大传输速率;
(4)通过多路径同时传输,以最快传输速率把获得的数据填满一个缓存区;
(5)从数据缓存区中取出流媒体数据,送入播放器进行播放。
从上面的P2P模式流媒体系统传输流程中,可以看出,由于各Peer节点网络带宽等条件的不一致,使得网络资源较好的Peer节点获得了较高的传输速率,得到了较好的实时播放质量,但同时资源较好的Peer节点占用了较多的网络资源,严重影响了其他普通节点的流媒体实时传输。由于各Peer节点都有实时性传输需求,使得整体网络节点流媒体实时传输效果较差。
假设在 P2P模式流媒体系统的数据接收端节点,设置一个单级缓存区(Buffer,在计算机内存中开辟一块存储空间,用于存放接收到的流媒体数据)。在P2P网络下,通过多路径同时传输流媒体数据时,由于P2P网络中节点的异构性,每条路径可获得的数据传输带宽和稳定性不一致,多条路径接收的流媒体数据都进入同一个单级缓存区,然后流媒体数据被系统推入播放器呈现音/视频节目,这使得系统无法根据实时播放情况,区别对待单级缓存区内已保存的不同路径接收的流媒体数据,从而使得系统无法根据传输路径的带宽和稳定性,对传输路径实施多种策略有效调整(如放弃低带宽传输路径、降低高带宽路径传输速率、有预见性的建立新传输路径等)。所以在P2P模式下设置一个单级缓存区,一般采用以最快数据传输速度填满一个缓存区的简单策略。
P2P模式流媒体系统中设置一个单级缓存区,跟C/S模式流媒体系统中设置一个内容缓存区的作用是一样的,主要是为流媒体实时播放过程中有一段缓冲时间,以适应网络传输速率短暂变化(如网络抖动等)。P2P模式流媒体系统中设置一个单级缓存区,使得P2P网络下多路径同时传输的多种策略有效调整优势不能很好发挥。以最快数据传输速度填满一个缓存区的简单策略,不能有效解决P2P模式下流媒体传输问题,使得网络负载不均衡,不能很好发挥整体网络节点流媒体实时传输效果。
三、基于二级缓存区数据的传输流程
为了使 P2P节点的资源分配较均匀,更多的Peer节点能获得实时传输效果,多条传输路径应该根据其可提供的传输带宽和稳定性,有策略的区别对待,本文提出在P2P网络的接收端节点内设置二级缓存区的方法,对传输路径按传输带宽和稳定性进行分类,并选择传输带宽适中的路径进行数据传输,同时保持数据接收的稳定性(如建立紧急路径),具体如下:
在一个接收端节点内设置二级缓存区(Buffer,在Peer节点的计算机内存中开辟一块存储空间,用于存放流媒体数据),如下图1所示,流媒体数据发送端(源节点)是源节点A、源节点B,流媒体数据接收端(宿节点)是宿节点C,在宿节点C内设置二个缓存区,分别是缓存区A、缓存区B。在源节点A和宿节点C之间建立一条传输路径A,在源节点B和宿节点C之间建立一条传输路径B。
缓存区A为常用缓存区,在宿节点C接收数据实时播放过程中,缓存区A通过路径A获得数据,当缓存区A内填满数据时,缓存区A中的数据以先入先出(FIFO,First in First out)方式开始下溢到缓存区B,同时缓存区A继续通过路径A获得数据。缓存区B为紧急缓存区,缓存区B获得数据后按流媒体实时播放顺序和视频帧播放速率推送给播放器,同时通过路径B获得数据,当缓存区B内填满数据时,路径B停止传输,这时缓存区B只通过缓存区A获得数据。
当路径A获得数据的速率大于等于播放器实时播放需求的速率时,路径B处于待命状态,不传输数据。当路径A获得数据的速率小于播放器实时播放需求的速率时,路径B开始传输数据。因此路径A可选择消耗节点资源和网络资源较少的通路,如通常的点对点方式传输路径;路径B可采用最大限度获得传输速率的通路,如组织代理节点路径或者在IPv6下采用流标记路径等。
四、调整缓存区填充速率策略
从源节点传输数据到宿节点缓存区的过程中,由于网络抖动、拥塞及带宽的影响,通过在Peer节点上建立滑动窗口机制,可调优缓存区填充速率。
使用滑动窗口机制调整缓存区填充速率,其原理与TCP/IP控制数据包传输的滑动窗口机制相同,在由多个IP报文组合而成的流媒体数据包中,通过对一个传输单位的数据包作上序列号标记,按照滑动窗口机制控制数据包在节点间传输[5]。
可把缓存区内数据包划分成三种状态,分别是未请求状态、已请求但未接收状态、已接收状态。在数据传输开始后,滑动窗口调用默认的窗口大小参数以及缓存区内数据包状态进行传输。数据包根据在Peer节点缓存区的状态、各条网络传输路径上的可用带宽资源以及各Peer节点所缓存的数据内容,决定向哪些Peer节点发送哪些数据包调度请求,这些待调度的数据包仅包括那些当前状态为未请求或为已请求但未接收的数据包,而不包括那些状态为己接收的数包,其目的是最大化Peer节点的服务质量,同时满足各条网络传输路径的带宽约束以及各Peer节点所缓存数据内容的约束。
通过在Peer节点上建立滑动窗口机制,可调优缓存区填充速率,在一定程度上使Peer节点保持较平稳的整体网络负载,提高了网络实时传输效果。
五、代理路径传输中节点的选择
P2P节点索引控制由以前集中式发展到现在的分布式,但就其数据传输而言,目前主要是点对点的传输[6],在部分P2P模式直播系统中,引入了树形节点组织方式,但从索引控制器中检索到的源节点和宿节点看,仍然是点对点传输,没有通过代理节点传输数据。目前部分P2P文件传输系统为了绕过防火墙,部分采用了节点代理中转数据。
设置流媒体内容二级缓存区的系统中,为了满足二级缓存区的适中传输策略需求,需要选择二条传输路径,分别是用于填充常用缓存区的传输路径,记作常用路径;用于填充紧急缓存区的传输路径,记作紧急路径。图2路径1由于点对点直接传输,对其他节点的资源消耗较少,可优先考虑作为常用路径,同时与路径1类似的其他点对点传输路径可考虑作为紧急路径。图2路径3通过一个节点中转形成的路径,由于比较容易获得高质量的传输带宽,也可以用于紧急路径。
在实际使用过程中,考虑Peer节点的不稳定性,需要选择三条传输路径,分别是常用路径、紧急路径和备用路径。备用路径是常用路径的备份,在常用路径破坏时,把备用路径纳入常用路径,Peer节点再寻找建立新的备用路径。常用路径的选择原则是带宽满足需求的前提下消耗网络节点资源较少;紧急路径的选择原则是能获得最佳的传输速率,使紧急缓存区能在最短时间内填充完成;备用路径的选择原则与常用路径选择原则一样,即满足带宽需求的前提下消耗网络节点资源最少。
为满足设置流媒体内容二级缓存区需要,每个宿节点调用传输路径节点选择算法,组织形成常用路径和紧急路径。传输路径节点选择算法的任务是决定该宿节点应该选择哪个邻近Peer节点组建为常用路径,选择哪个邻近Peer节点组建为紧急路径。
(1)对于常用路径,传输路径节点选择算法同时也应该满足如下约束:
宿节点和每个邻近Peer节点间可用带宽的约束;每个邻近Peer节点包含宿节点需要内容范围的约束。算法考虑尽可能少的切换Peer节点,以免重新组建常用路径;同时要考虑尽可能占用少的网络资源,使其他节点能获得较好体验。
(2)对于紧急路径,传输路径节点选择算法同时也应该满足如下约束:
宿节点和每个邻近Peer节点间可用带宽的约束;每个邻近Peer节点能提供中转传输带宽的约束。算法考虑Peer节点尽可能保持高性能的数据传输通道,当常用路径失效时,紧急路径能及时有效补充流媒体内容数据。
六、结论
在P2P网络结构下,实现流媒体内容实时流式传输时,传统单级缓存区方式,由于各Peer节点异构性,网络带宽等条件的不一致,使得网络资源较好的Peer节点获得了较高传输速率,得到了较好的实时播放质量,但同时资源较好的Peer节点占用了较多网络资源,严重影响了其他普通节点的实时流媒体传输,由于流媒体实时性传输需求,使得整体网络节点流媒体实时传输播放效果较差。本文提出一种在Peer节点内设置流媒体内容二级缓存区方式,实现流媒体内容实时流式传输时,使Peer节点保持较平稳的整体网络负载,使更多的Peer节点能满足实时传输播放条件,P2P网络实时传输播放效果较好。
参考文献:
[1]V.K.Goyal.Multiple Description Coding:Compression Meets the Network,IEEE signal Processing Magazine,Sep2001.vol.18,n.5:P74-94.
[2]刘亚杰等,P2P流媒体内容分发关键技术研究:[工学博士论文]国防科学技术大学研究生 院,2005年.
[3]龚海刚、刘明、谢立等,P2P流媒体传输的研究进展综述.计算机科学,2004年31卷9期: p20-22.
[4]王钊,基于P2P系统应用层组播在流媒体中的应用.计算机与现代化,2005年第2期:P35-37.
[5]K.A.Hua,D.A.Tran and R. Villafane.Caching muIticast protocol for on-demand video delivery.In Proceedings of ACMISPIE Conefernce on Multimedia Computing and Networking(MMCN 2000):P2-13.
[6]Ching Law,Kai-Yeung Siu Distributed construction of random expander networks,in Proc.Infocom.IEEE,2003.
作者简介:
王倩,女,汉族,山东淄博,淄博职业学院信息工程系,学士,在读硕士,助教,主要研究方向:计算机应用与技术。