一种基于对等计算核心算法改进的视频点播传输方法

文档序号:7851229阅读:483来源:国知局
专利名称:一种基于对等计算核心算法改进的视频点播传输方法
技术领域
本发明是一种基于对等计算核心算法改进的视频点播系统传输方法,使用的对等计算协议为BitTorrent协议,它对BitTorrent中的片段选择算法和节点选择算法进行改进,引进自适应滑动窗口机制对分片选择请求进行限制,以满足视频点播对实时性的要求,属于对等网络应用领域。
背景技术
视频点播技术是分布式流媒体的一种重要的应用技术。视频点播也被称为V0D,全称是Video on Demand,即按需要的视频流播放。视频点播技术是当前流媒体通信应用的一项前沿技术,是面向未来的信息、通信等相关技术相结合的新技术。同时,视频点播又是一项业务,它泛指利用交互式网络将声音图像进行实时传输,以实现影视点播、信息查询、电视购物、远程教育等服务的一项交互式多媒体应用业务。 因特网上的传统流媒体系统一般是基于C/S模式的,通常包括一台或多台服务器和若干客户端。在C/S模式下,流媒体系统容量(同时服务的客户端数量)主要由服务器端的网络输出带宽决定,有时服务器的处理能力、内存大小、I/o速率也影响到系统的容量。在C/S模式下,由于传输流媒体占用的带宽大,持续时间长,而服务器端可利用的网络带宽有限,所以即使是使用高档服务器,其系统容量也不过几百个客户,不具有经济规模性。另外,由于互联网的不确定性,如果客户端距离服务器较远,则流媒体传输过程中的延迟、抖动、带宽、丢包率等指标也将更加不确定。服务器为每个客户单独发送一次流媒体内容,故网络资源的消耗也十分巨大。所以在当前资源有限的条件下,如何满足不断增长的用户需求,并在确保服务质量的同时,降低流媒体的服务成本,称为流媒体技术研究中的重要课题。近几年兴起的P2P技术,能利用互联网中的各个节点进行对等计算,充分利用互联网上的空闲资源,允许两个客户端直接交换信息,因此受到了广泛关注。将P2P技术应用于流媒体业务,为解决服务器端网络带宽和服务器能力限制问题提供了一种新的思路。在此背景下,基于P2P的视频点播技术产生了。BitTorrent是一种高效的P2P文件共享下载工具,通过一个中心的Tracker服务器,BitTorrent客户端获取当前下载任务的节点列表,然后各节点之间完全对等的协同完成各文件分片的下载。文件分片共享提高了下载效率,同时无需任何其他服务器的参与。BitTorrent协议中采用的片段选择算法为局部最少分片优先,即每个对等节点都优先选择邻居节点中最少的那些片断去下载,而那些在系统中相对较多的片断,放在后面下载。BitTorrent协议中采用的节点选择算法为在保持种子所占比例接近全局的种子的比例的情况下,随机选取节点信息返回给请求节点。

发明内容
技术问题本发明的目的是通过对BitTorrent协议中的片段选择算法和节点选择算法进行改进,同时引进一种自适应滑动窗口机制满足视频点播对实时性的要求。较之传统视频点播系统,它不仅能够高效的进行数据传送,确保视频点播的流畅性,并能够降低系统负载,降低运营成本。技术方案本发明的一种基于对等计算核心算法改进的视频点播传输方法采用改进的BitTorrent客户端和改进的索引服务器Tracker提升流媒体资源文件传输速度,算法涉及种子文件制作服务器、电子节目单服务器EPG、改进的索引服务器Tracker、流媒体服务器和改进的BitTorrent客户端模块;整个视频点播的传输过程如下
步骤.11 :种子文件制作服务器将要发布的流媒体文件制作成种子文件,然 后将种子文件发送到电子节目单服务器EPG ;
步骤12 :电子节目单服务器EPG下载种子文件,同时根据种子信息制作电 子节目单;
步骤13 :视频点播客户端在启动后会自动向电子节目单服务器EPG请求电 子节目单,电子节目单服务器EPG根据该用户的信息验证是否属于注册用户,如果用户通过验证电子节目单服务器EPG就会向该用户发送电子节目单,然后用户的客户端上就会出现点播节目菜单;
步骤14 :根据点播菜单用户点播想看的节目,之后向电子节目单服务器EPG 请求种子文件,接着电子节目单服务器EPG向用户发送种子文件;
步骤15 :当用户收到种子文件后马上进入下载过程,首先通过改进的 BitTorrent客户端与改进的索引服务器Tracker建立连接,得到邻居节点信息;
步骤16 :改进的BitTorrent客户端通过这些邻居节点的信息,采用滑动窗口机制部分有序的下载流媒体文件,边下载边播放,同时也为其他邻居节点提供上载服务;客户端下载完成后变成种子节点,种子节点通过改进的片段选择算法为其它节点提供上传。改进的BitTorrent客户端,采用改进的片段选择算法,能够解决文件分片的均勻分发,改进步骤如下
步骤21 :为了分片在网络中的均匀分布,废除种子的上传策略,不再根据 下载速度来提供上传;
步骤22 :在下载完成节点Seed中设置一个列表,初始化时所有片段号都放 在列表中,当片段被客户端节点上传后,则把该片段号从列表删除;
步骤23 :当下载节点使用最少的分片优先下载的方式向Seed请求分片时,
如果下载分片在列表中,Seed发送分片文件给下载节点,并将分片号从列表中删除;如果不在,Seed通过下载节点的位域发送给下载节点没有且片段号在列表中的分片,然后将该分片从列表中删除,如果以上两种情况都不符合,则阻塞该节点;
步骤24 :当列表中的片段号都被删除后,即列表为空时,重新进行初始化,
把所有片段号重新加入列表供节点下载。改进的索引服务器Tracker,采用改进的节点选择算法,能够充分利用节点的上传效率,改进步骤如下
步骤31.扩展节点与追踪服务器之间的通信,让Tracker能够知道节点的下 载进度;步骤32.在Tracker服务器方对每个种子文件建立一个根据下载进度排列 的升序列表;
步骤33.当有种子文件发布时,将节点Seed首先加入到列表中,并将它的 下载进度置为I ;
步骤34.当有对等节点与Tracker通信时,如果该节点为新加入节点则根据下载进度将它插入到列表相应的位置,如果对等节点已经在列表中,则删除以前列表所在位置,并将根据节点进度重新插入到列表中去;
步骤35.根据节点位置查找40个跟节点进度差距最小的节点;
步骤36.返回邻居节点列表给请求节点。步骤16中采用滑动窗口机制部分有序的下载流媒体文件,使得播放点附近的分片能够优先得到下载;在运行过程中,每次有新的文件分片要请求时,先检查紧急窗口中的文件分片是否被全部请求或下载完,若没有,则先请求滑动窗口中的分片,若请求完则从非 滑动窗口中取文件分片进行请求,随着播放点的移动,滑动窗口也做出相应的滑动;并且这个滑动窗口的大小在播放过程中能够根据解码速度和播放延迟自适应的做出调整,既满足了视频点播对实时性的要求,又充分利用了 BitTorrent高效的传输效率。有益效果本发明方法提出了基于BitTorrent核心算法改进的视频点播传输方法,旨在结合BitTorrent高效的文件分发机制,来解决视频点播系统中流媒体服务器负载压力过重,效率不高的问题。该发明提出的技术方法并不是现有技术的简单罗列,而是根据现有技术的特点,通过不断实践提炼出的,通过将各种机制有效的结合,来实现高效的P2P视频点播传输系统。下面给出具体的说明。数据孤岛如果网络中只有服务器A拥有资源S,那么当服务器A由于某些原因宕机或是损坏时,网络中的所有节点都无法访问或是获取资源S,直到服务器A重新正常工作,服务器A的这种状态就称为“数据孤岛”。数据孤岛严重的影响了系统的稳定性和灵活性,网络中的少数节点就能影响到全局的性能。数据孤岛在传统的音乐点播系统中极为常见,点播用户的所有资源均来自媒体服务器,一旦媒体服务器宕掉,所有点播用户就无法获取媒体资源,一种解决方法是设置多个备用的媒体服务器,但这会带来极大的成本开销。而在我们的基于BitTorrent的视频点播传输系统中,点播用户的资源并不一定来自于媒体服务,而且在很多时候可以完全脱离媒体服务器,这样就摆脱了数据孤岛的问题了。负载均衡是指系统的各个处理单元均衡的分担服务请求。即将网络中的负载分散到多个服务器或是节点上,从而有效的避免了网络中部分服务器或是节点负载过重,使得所有节点平均分担网络中的负载,保证网络更有效的运行。传统的多媒体点播系统中的负载均衡技术,通常只是对系统中的所有媒体服务器进行负载均衡,让所有的媒体服务器有接近的负载量,避免少数媒体服务器不堪重负,而有些却没有被有效的利用,如共享式多媒体点播系统中的负载均衡技术。在P2P音乐点播系统中,负载均衡技术是利用客户节点分担媒体服务器的负载,来减轻媒体服务器的负载,这种负载均衡技术相对于传统多媒体点播系统中的负载均衡技术来说,其作用更广泛,也更加彻底和有效。改进的BitTorrent核心算法BitTorrent协议中的片段选择算法采用的是分片副本数量局部最少优先策略,这种策略不能使分片数量均匀度接近于最优,本发明采用改进的种子节点上传策略对这种策略进行改进,实验证明分片数量均匀度、下载速度、平均下载时间比传统的策略和改进前的策略有了较大的改进。Tracker节点选择算法近似于一种随机选择策略,算法存在不确定性、随机性比较强,可能需要很长的搜寻时间才能找到合适的服务提供者。针对这个问题,本发明采用改进的节点选择算法,帮助节点在最短的时间内找到合适的节点。经过实验证明改进后算法下载速度有了明显提高,并且在最后阶段模式下载速度也没有明显的降低。


图I是改进后种子节点上传流程图,,
图2是改进后的节点选择算法流程图,
图3是基于BitTorrent的视频点播传输的流程图,
图4是系统在运行过程中的具体流程图。
具体实施例方式本发明的方法强调对BitTorrent中的核心算法进行改进,并引进自适应滑动窗口机制以满足视频点播对实时性的要求。.改进的片段选择算法
在BitTorrent系统中采用的是局部文件片优先策略(Local Rarest First),也就是节点只需知道共享文件的文件片在其邻居节点(一般是50个节点)中的分布,在其和其所有邻居节点中执行最少文件块优先策略。这样可以降低系统负载,并在局部保持了文件块的均匀分布。但BitTorrent在片段选择策略方面存在一些问题由于局部最少优先仅仅基于局部信息,局部最少不代表全局最少,因此文件块的选择在一定程度上存在盲目性。改进后的片段选择算法为通过改进种子上传策略,由上传策略间接的影响文件分片分布的均衡度。传统的种子上传策略为当客户端节点的所有分片都下载完成后,如果它没有马上离开网络它将转变为种子节点,由于种子节点不会再从其他节点下载文件分片,它将不再使用节点选择策略选择节点进行上传,而是选择从本节点得到最快下载速度的几个节点提供上传,这样可以尽可能的利用上传带宽。本发明提出一种改进后的片段选择算法,算法思想如图I所示,其流程为
I.为了分片在网络中的均匀分布,废除种子的上传策略,不再根据下载速
度来提供上传。2.下载节点的片段选择算法不做改变,即还保留以前的随机的第一个分片、 最少的优先、严格的优先级、最后阶段模式。3.在Seed里设置一个列表,初始化时所有片段号都放在列表中,当片段被 Seed节点上传后,则把该片段号从列表删除。4.当下载节点使用最少优先向Seed请求分片时,如果下载分片在列表中,
Seed发送分片文件给下载节点,并将分片号从列表中删除。如果不在,Seed可以通过
下载节点的bitfield域发送给下载节点下载节点没有且片段号在列表中的分片,然后将该分片从列表中删除,如果以上两种情况都不符合,则阻塞该节点。5.当列表中的片段号都被删除后,即列表为空时,重新进行初始化,把所有片段号重新加入列表供节点下载。.改进的节点选择算法
为了充分利用邻居节点的上传带宽,节点的邻居节点最好包含节点所需的文件分片。而传统的Tracker算法采用一种随机选取邻居节点的办法,这在一定程度上影响了节点的下载效率,不利于文件分片高效的分发。这种情况在节点下载的最后阶段尤为明显,由于在下载的最后节点所需的分片数量比较少,如果选取拥有分片比较少的节点作为邻居节点,往往得到分片的概率会很低,也就造成了在最后阶段节点的下载速度会有明显的降低。本发明提出一种改进的节点选择算法,算法思想如图2所示,其流程为
I.扩展对等节点与Tracker之间的通信,让Tracker能够知道节点的下载进度。2.在Tracker服务器方对每个torrent文件建立一个根据下载进度排列的升 序列表。3.当有种子文件发布时,将Seed节点首先加入到列表中,并将它的下载进 度置为I。4.当对等节点与Tracker通信时,如果对等节点为新加入节点则根据下载进度将它插入到列表相应的位置,如果对等节点已经在列表中,则删除以前列表所在位置,并将根据节点进度重新插入到列表中去。5.根据节点位置查找40个跟节点进度差距最小的节点。6.返回邻居节点列表给请求节点。.自适应滑动窗口机制
滑动窗口维护一个关于媒体数据接收缓冲的窗口,这个窗口将根据播放器消耗数据和对等节点接收数据的状态变化向前移动,一旦位于滑动窗口内的数据被播放器消耗掉,则滑动窗口将向前移动,以获取播放器后续播放需要的媒体数据。位于滑动窗口内的数据将根据紧急程度按照优先级顺序地从服务器或其它伙伴节点请求。从前面的讨论我们可以知道,滑动窗口越大,则获取紧急数据的速度越快,同时由于滑动窗口内每个分片都向多个对等节点请求(以达到和保证迅速获取分片),无疑将增加系统中分片请求和响应的冗余,而滑动窗口越小,相对地,位于滑动窗口外的数据请求比率将会增大。对于那些位于滑动窗口外的数据,除了后面我们所采取的设置“锚点”的部分,我们仍然采用的是BitTorrent的“最少者优先”策略,系统的冗余将相对变小,能够有效地降低系统负载,但是这样可能不能够及时地满足播放器对即将播放数据的需求。这主要取决于播放器缓冲数据接收和消耗的速度的变化,当接收速度大于消耗速度的时候,显然缓冲能够满足播放器消耗的速度,这时候应该将滑动窗口减小,以降低系统负载,而滑动窗口将用于保证“最少者优先”策略没有下载下来的播放器所需的紧急数据的请求(我们知道“最少者优先”为了平衡系统负载,总是最先下载群集中复制较少的分片,这种无序下载的方式不能够满足播放器顺序播放的需要),当接收速度小于消耗速度的时候,因为播放器缓冲数据消耗较快,为了减少用户播放等待的时间,我们应该增大滑动窗口,以尽快获取播放器所需要的数据,因此,为了动态地反映滑动窗口内数据的变化,以达到更好的平衡系统负载,我们提出一种自适应大小的滑动窗口方案。从上述论述中我们可以清楚地认识到,滑动窗口的大小是一个影响系统性能的至关重要的参数。我们认为滑动窗口的大小应该与播放启动等待时间相对应,客户端应该在这个播放等待时间内填充满滑动窗口缓冲,而后开始播放媒体流,在播放的同时,不断地继续填充这个缓冲,以保证播放的连续性。这样关于滑动窗口的最佳大小,根据试验统计,滑动窗口的大小应该静态的设置为能够缓冲300s的媒体数据。根据
(其中-表示播放器的播放延迟,即从客户端请求节目到播放器开始播放之间的时间
间隔;^表示分片的大小,用于保存在对等节点的媒体数据的最小单位,大小为256K字节;#表示媒体文件的解码速度)的滑动窗口大小计算公式,前提都在于假设分片获取的速度总是至少大于或等于播放器流媒体的解码速度,这在实际应用中,特别对于广大的ADSL用户和具有高质量QoS保证的流媒体数据,具有极大的不现实性。我们滑动窗口的初始大小同样采取的计算方案,同时鉴于BitTorrent分片获取的波动性,以及前述所讨论的滑动窗口对系统整体性能的影响,我们的自适应大小滑动窗口将根据分片获取的速度动态地自我调整大小。 一、体系结构
系统设计的目的是为了实现新的系统,但是新的系统如果与原有系统差异过大,就会造成系统升级的代价巨大,特别是对于大规模的网络系统,系统的重大升级会带来相当的成本和时间代价。因此,在设计基于BitTorrent的视频点播系统时要充分考虑原有系统构架,以实现两种系统之间的简单升级。从传统的视频点播系统中可以看出,它的问题主要来源于媒体服务器的瓶颈,而对于网络中的其他部分没有严重的问题。按照现在通用的共享式视频点播系统来简单的在各媒体服务器间均衡负载,无法彻底解决媒体服务器的瓶颈,而以P2P的方式将服务器的负载均衡到各节点上,才能彻底实现媒体服务器瓶颈问题的彻底解决。图3给出了基于BitTorrent视频点播系统的总体架构,该结构以现有成熟的大规模视频点播系统为蓝本,同时考虑到P2P的特性。不仅实现了基于BitTorrent视频点播系统,同时保证了系统的性能和可扩展性。从图3中可以看出,在总体架构上,它与传统的视频点播系统很相似,这也确保了在对系统升级时的改动会比较小。而整个系统的主要改变在与客户节点端,同时服务器的功能也会有所改变,它不再只是简单的返回媒体服务器的信息,还要返回邻居节点的信息。对于客户节点的改变,主要是针对于客户节点上运行的客户端,在升级过程中也相对简单的多。二、实施例
根据图4中所示,系统在运行过程中的具体流程为
I、种子文件制作服务器制作将要发布的流媒体文件,然后将种子文件发送 EPG服务器。2、EPG服务器下载种子文件,同时根据种子信息制作电子节目单。3、视频点播客户端在启动后会自动向EPG服务器请求电子节目单,EPG 服务器根据该用户的信息验证是否属于注册用户,如果用户通过验证EPG服务器就会
向该用户发送电子节目单,然后用户的客户端上就会出现点播节目菜单。4、根据点播菜单用户可以点播想看的节目,之后向EPG服务器请求种子文 件,接着EPG服务器向用户发送种子文件。
5、当用户收到种子文件后马上进入下载过程,首先在客户端上经过改进的 BitTorrent客户端与Tracker服务器建立连接,根据改进后的Tracker算法得到邻居
节点信息。6、客户端通过 这些邻居节点的信息,根据改进后的BitTorrent客户端部分 有序的下载流媒体文件,边下载边播放,同时也为其他邻居节点提供上载服务,这样用
户马上就可以看到点播节目直至文件播放完毕。下面介绍一下自适应滑动窗口的实现。首先给出如下定义
节点P/下载分片的速度之和,是实时动态的反映,根据我们上面的讨论,可得知I的大小有如下计算公式
s=Am*m=^
M
:初始滑动窗口大小(理想滑动窗口大小),大小可由如下公式计算
权利要求
1.一种基于对等计算核心算法改进的视频点播传输方法,其特征在于采用改进的BitTorrent客户端和改进的索引服务器Tracker提升流媒体资源文件传输速度,采用的拓扑结构包括种子文件制作服务器、电子节目单服务器EPG、改进的索引服务器Tracker、流媒体服务器和改进的BitTorrent客户端;整个视频点播的传输过程如下 步骤.11 :种子文件制作服务器将要发布的流媒体文件制作成种子文件,然 后将种子文件发送到电子节目单服务器EPG ; 步骤12 :电子节目单服务器EPG下载种子文件,同时根据种子信息制作电 子节目单; 步骤13 :视频点播客户端在启动后会自动向电子节目单服务器EPG请求电子节目单,电子节目单服务器EPG根据该用户的信息验证是否属于注册用户,如果用户通过验证电子节目单服务器EPG就会向该用户发送电子节目单,然后用户的客户端上就会出现点播节目菜单; 步骤14 :根据点播菜单用户点播想看的节目,之后向电子节目单服务器EPG 请求种子文件,接着电子节目单服务器EPG向用户发送种子文件; 步骤15 :当用户收到种子文件后马上进入下载过程,首先通过改进的 BitTorrent客户端与改进的索引服务器Tracker建立连接,得到邻居节点信息; 步骤16 :改进的BitTorrent客户端通过这些邻居节点的信息,采用滑动窗口机制部分有序的下载流媒体文件,边下载边播放,同时也为其他邻居节点提供上载服务;客户端下载完成后变成种子节点,种子节点通过改进的片段选择算法为其它节点提供上传。
2.根据权利I所述的基于对等计算核心算法改进的视频点播传输方法,其特征在于改进的BitTorrent客户端,采用改进的片段选择算法,能够解决文件分片的均勻分发,改进步骤如下 步骤21 :为了分片在网络中的均匀分布,废除种子的上传策略,不再根据 下载速度来提供上传; 步骤22 :在下载完成节点Seed中设置一个列表,初始化时所有片段号都放 在列表中,当片段被客户端节点上传后,则把该片段号从列表删除; 步骤23 :当下载节点使用最少的分片优先下载的方式向Seed请求分片时, 如果下载分片在列表中,Seed发送分片文件给下载节点,并将分片号从列表中删除;如果不在,Seed通过下载节点的位域发送给下载节点没有且片段号在列表中的分片,然后将该分片从列表中删除,如果以上两种情况都不符合,则阻塞该节点; 步骤24 :当列表中的片段号都被删除后,即列表为空时,重新进行初始化, 把所有片段号重新加入列表供节点下载。
3.根据权利I所述的基于对等计算核心算法改进的视频点播传输方法,其特征在于改进的索引服务器Tracker,采用改进的节点选择算法,能够充分利用节点的上传效率,改进步骤如下 步骤31.扩展节点与追踪服务器之间的通信,让Tracker能够知道节点的下 载进度; 步骤32.在Tracker服务器方对每个种子文件建立一个根据下载进度排列的升序列表; 步骤33.当有种子文件发布时,将节点Seed首先加入到列表中,并将它的 下载进度置为I ;步骤34.当有对等节点与Tracker通信时,如果该节点为新加入节点则根据下载进度将它插入到列表相应的位置,如果对等节点已经在列表中,则删除以前列表所在位置,并将根据节点进度重新插入到列表中去; 步骤35.根据节点位置查找40个跟节点进度差距最小的节点; 步骤36.返回邻居节点列表给请求节点。
4.根据权利I所述的基于对等计算核心算法改进的视频点播传输方法,其特征在于步骤16中采用滑动窗口机制部分有序的下载流媒体文件,使得播放点附近的分片能够优先得到下载;在运行过程中,每次有新的文件分片要请求时,先检查紧急窗口中的文件分片是否被全部请求或下载完,若没有,则先请求滑动窗口中的分片,若请求完则从非滑动窗口中取文件分片进行请求,随着播放点的移动,滑动窗口也做出相应的滑动;并且这个滑动窗口的大小在播放过程中能够根据解码速度和播放延迟自适应的做出调整,既满足了视频点播对实时性的要求,又充分利用了 BitTorrent高效的传输效率。
全文摘要
一种基于对等计算核心算法改进的视频点播传输方法拓扑结构包括种子文件制作服务器、电子节目单服务器(EPG)、改进后的索引服务器(Tracker)、流媒体服务器和改进后的BitTorrent客户端。本发明改进了BitTorrent协议中的片段选择算法和节点选择算法,引进了自适应滑动窗口机制,充分利用了BitTorrent协议高效的文件分发能力、同时又能够满足视频点播对实时性的要求。该方法既能够解决服务器单点失效和连接服务器瓶颈问题,同时又能减轻服务器端负载压力。
文档编号H04N21/438GK102821316SQ201210147990
公开日2012年12月12日 申请日期2012年5月14日 优先权日2012年5月14日
发明者王汝传, 裴双迎, 李致远, 孙力娟, 韩志杰, 邵星, 林巧民, 肖甫, 黄海平 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1