一种节点下载调度方法和装置的制造方法

文档序号:10539371阅读:559来源:国知局
一种节点下载调度方法和装置的制造方法
【专利摘要】本发明涉及一种节点下载调度方法和装置,该方法包括:以节点所播放的直播流的当前播放头为基准,设置滑动窗口,其中,对所述滑动窗口内的未下载直播流数据,优先从内容分发网络CDN服务器下载;对该滑动窗口之后的未下载直播流数据,优先以点对点数据传输P2P模式从已连接的、能提供直播流数据的邻居节点下载;设置筛选标准,以便基于该筛选标准从已连接的、能提供直播流数据的邻居节点中筛选出优选邻居节点,并向所述优选邻居节点请求以P2P模式下载直播流数据;在直播流的码率变化的情况下,根据所述变化调整该节点的单次请求从CDN服务器下载的直播流数据量的大小、所述滑动窗口的大小、以及所述筛选标准中的一个或多个。
【专利说明】
一种节点下载调度方法和装置
技术领域
[0001]本发明涉及互联网视频技术领域,尤其涉及一种节点下载调度方法和装置。
【背景技术】
[0002]当前各大视频网站都在大力发展直播,业务范围非常广泛,用户需求也更加多样化。直播系统中用户观看体验是最为关键的因素,而“流畅率”则是衡量用户观看体验的重要指标。流畅率表征播放的流畅度,其根据应用场景不同可有不同的定义。例如,流畅率一般可以指所关注的播放总时长T减去期间发生卡顿(即播放停滞)的总时长Td所得的差与总时长T的比值。
[0003]不同于点播业务,由于具备极高的实时性和短时效,直播业务通常“会且只会”出现短时间请求骤增的情况,造成内容分发网络(CDN)服务器超负载而无法及时响应,使得客户端(即节点)播放出现“卡顿”现象,导致流畅率下降。
[0004]目前解决该问题有几种方案。一种是为CDN服务器扩容,加大带宽以保证质量。然而这种方案将闲置大量的服务器和带宽资源。例如直播系统中最高在线人数峰值可为平时最高在线人数的数百倍。然而出现峰值的概率较低,使用该方案却需为直播系统持续提供满足峰值的服务器和带宽。对于带宽成本占比较高的视频网站而言,这种方案所带来的冗余量过大的服务器和带宽同样难以承担。
[0005]另一种方案是使用点对点数据传输(S卩P2P)算法来减轻CDN服务器负载,节省带宽。P2P算法,就是在观看该直播节目的节点中,选择具有一定上传能力的节点LI(数据提供方,或称为上传方),为其他节点L2(数据接收方,或称为下载方)传送数据,从而使大量节点L2减少向CDN服务器请求数据,降低CDN服务器负载及带宽压力。换言之,传统CDN模式中,所有节点都直接从⑶N服务器获取直播数据,而这种方案采用“⑶N+P2P”模式,根据传输算法的不同,节点L2有一定比例的数据来自节点LI,如图1所示。
[0006]这种“CDN+P2P”模式具体来说,就是先对直播流的码率进行判断,在码率较低的情况下(例如标清直播流,码率约400?600bps),采用P2P模式(即节点L2有一定比例的数据来自节点LI ),对于码率较高的情况下(例如高清或超清直播流,码率约1000bps以上),采用全CDN模式,如图2所示。
[0007]上述方案在码率相对较低的标清直播下利用P2P算法可节省约80%的服务器和带宽成本(即有总量约80%的直播流在终端之间互相传输),并有效提高了流畅率。然而,由于P2P算法针对高码率直播流不仅节省带宽成本较少,反而导致流畅率急剧下降,因此在高码率直播场景中只能放弃使用P2P模式,而采用CDN模式。因此,在高清直播频次增加或在线人数急剧增长时,这种方案仍然会选择几乎全部从CDN服务器下载数据,原有直播系统出现较为严重的带宽负荷过高、CDN服务器无法响应等问题,同样影响用户正常观看。

【发明内容】

[0008]技术问题
[0009]有鉴于此,本发明要解决的技术问题是,在直播流的码率变化的情况下,节点如何在保证直播流畅率的同时,节省CDN服务器和带宽资源。
[0010]解决方案
[0011]—方面,提出了一种节点下载调度方法,该方法包括:以节点所播放的直播流的当前播放头为基准,设置滑动窗口,其中,对所述滑动窗口内的未下载直播流数据,优先从内容分发网络CDN服务器下载;对该滑动窗口之后的未下载直播流数据,优先以点对点数据传输P2P模式从已连接的、能提供直播流数据的邻居节点下载;设置筛选标准,以便基于该筛选标准从已连接的、能提供直播流数据的邻居节点中筛选出优选邻居节点,并向所述优选邻居节点请求以P2P模式下载直播流数据;在直播流的码率变化的情况下,根据所述变化调整该节点的单次请求从CDN服务器下载的直播流数据量的大小、所述滑动窗口的大小、以及所述筛选标准中的一个或多个。
[0012]另一方面,提出了一种节点下载调度装置,该装置包括:滑动窗口设置部件,用于以节点所播放的直播流的当前播放头为基准,设置滑动窗口,其中,对所述滑动窗口内的未下载直播流数据,优先从内容分发网络CDN服务器下载;对该滑动窗口之后的未下载直播流数据,优先以点对点数据传输P2P模式从已连接的、能提供直播流数据的邻居节点下载;筛选标准设置部件,用于设置筛选标准,以便基于该筛选标准从已连接的、能提供直播流数据的邻居节点中筛选出优选邻居节点,并向所述优选邻居节点请求以P2P模式下载直播流数据;调整部件,用于在直播流的码率变化的情况下,根据所述变化调整该节点的单次请求从CDN服务器下载的直播流数据量的大小、所述滑动窗口的大小、以及所述筛选标准中的一个或多个。
[0013]有益效果
[0014]本发明实施例是基于“⑶N+P2P”的混合模式,但与现有技术不同的是,本实施例并非简单地根据码率在CDN模式和P2P模式之间切换,也不是仅利用P2P模式进行单一的低码率直播流的传输。本实施例节点通过设置滑动窗口,对滑动窗口内的未下载直播流数据,优先从⑶N服务器下载;对滑动窗口之后的未下载直播流数据,优先以P2P模式从邻居节点下载;又通过设置的筛选标准筛选出优选邻居节点,以便向优选邻居节点请求以P2P模式下载直播流数据。在直播流的码率变化的情况下,根据所述变化调整该节点的单次请求从CDN月艮务器下载的直播流数据量的大小、调整滑动窗口的大小、调整筛选标准。通过上述技术手段,节点能够利用⑶N和P2P这两种模式传输直播流数据,并在码率变化的情况下动态地在⑶N模式和P2P模式之间进行调整,在保证了直播流畅率的同时,有效地节省了⑶N服务器和带宽资源。
[0015]根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
【附图说明】
[0016]包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
[0017]图1示出⑶N+P2P模式的示意图;
[0018]图2示出现有技术中直播流传输方法的流程图;
[0019]图3示出根据本发明一实施例的节点下载调度方法的流程图;
[0020]图4示出根据本发明一实施例的滑动窗口的示意图;
[0021]图5示出根据本发明一实施例的节点下载调度装置的结构框图;
[0022]图6示出根据本发明一实施例的另一个节点下载调度装置的结构框图;
[0023]图7示出了本发明的一实施例的一种节点下载调度设备的结构框图。
【具体实施方式】
[0024]以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
[0025]在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
[0026]另外,为了更好的说明本发明,在下文的【具体实施方式】中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
[0027]实施例1
[0028]图3示出根据本发明一实施例的节点下载调度方法的流程图。该实施例可在节点(客户端,例如个人计算机PC浏览器)执行。如图3所示,该方法主要包括:
[0029]步骤301,以节点所播放的直播流的当前播放头为基准,设置滑动窗口,其中,对所述滑动窗口内的未下载直播流数据,优先从内容分发网络CDN服务器下载;对该滑动窗口之后的未下载直播流数据,优先以点对点数据传输P2P模式从已连接的、能提供直播流数据的邻居节点下载;
[0030]步骤302,设置筛选标准,以便基于该筛选标准从已连接的、能提供直播流数据的邻居节点中筛选出优选邻居节点,并向所述优选邻居节点请求以P2P模式下载直播流数据;
[0031]步骤303,在直播流的码率变化的情况下,根据所述变化调整该节点的单次请求从CDN服务器下载的直播流数据量的大小、所述滑动窗口的大小、以及所述筛选标准中的一个或多个。
[0032]本发明实施例是基于“⑶N+P2P”的混合模式,但与现有技术不同的是,本实施例并非简单地根据码率在CDN模式和P2P模式之间切换,也不是仅利用P2P模式进行单一的低码率直播流的传输。本实施例节点通过设置滑动窗口,对滑动窗口内的未下载直播流数据,优先从⑶N服务器下载;对滑动窗口之后的未下载直播流数据,优先以P2P模式从邻居节点下载;又通过设置的筛选标准筛选出优选邻居节点,以便向优选邻居节点请求以P2P模式下载直播流数据。在直播流的码率变化的情况下,根据所述变化调整该节点的单次请求从CDN月艮务器下载的直播流数据量的大小、调整滑动窗口的大小、调整筛选标准。通过上述技术手段,节点能够利用⑶N和P2P这两种模式传输直播流数据,并在码率变化的情况下动态地在⑶N模式和P2P模式之间进行调整,在保证了直播流畅率的同时,有效地节省了⑶N服务器和带宽资源。
[0033]设置滑动窗口
[0034]图4示出了根据本发明一实施例的滑动窗口的示意图。
[0035]在一个示例中,如图4所示,可以节点所播放的直播流的当前位置为播放头41,以播放头41为基准,可设置滑动窗口 42,其中,播放头41可随直播流的播放进度而移动,滑动窗口 42可随播放头41滑动。滑动窗口 42的窗口长度可以为数据量(例如20M),也可以为时间量(例如120s),滑动窗口 42中可包含已下载的直播流数据43和未下载的直播流数据44,对滑动窗口 42内的未下载的直播流数据44可优选从CDN服务器下载。滑动窗口 42之后的数据可包含已下载的直播流数据45和未下载的直播流数据46,对滑动窗口 42之后的未下载的直播流数据46可优先以P2P模式从已连接的、能提供直播流数据的邻居节点下载。本文所说的“邻居节点”,是指对于一个节点来说,可以与其建立数据通信的那些节点。
[0036]设置筛选标准
[0037]在一个示例中,节点可设置筛选标准,以便基于该筛选标准从已连接的、能提供直播流数据的邻居节点中筛选出优选邻居节点,并向所述优选邻居节点请求以P2P模式下载直播流数据;其中,所述筛选标准可以由邻居节点的播放头位置、已缓存数据长度、响应时间和所述节点与邻居节点之间的传输性能指标中的一个或多个来确定。
[0038]以下对确定筛选标准的各个筛选影响因子进行说明:
[0039]I)邻居节点的播放头位置
[0040]例如,如果邻居节点的播放头位置在该节点的播放头之后,则该邻居节点中已经缓存了一部分该节点所需的直播流数据,因此可以以“播放头位置在该节点的播放头之后”为筛选标准,从邻居节点中筛选出优选邻居节点;
[0041]2)邻居节点的已缓存数据长度
[0042]如果邻居节点已缓存数据长度越大,则该邻居节点能提供的直播流数据越多,因此可以以“已缓存数据长度超过预定阈值”为筛选标准,从邻居节点中筛选出优选邻居节占.V ,
[0043]3)邻居节点的响应时间
[0044]不同邻居节点由于所处的网络状况不同(例如路由跳数或网络带宽不同),对该节点发出的请求的响应时间也不相同,响应时间越短,则邻居节点响应该节点发出的请求的能力越强,因此可以以“响应时间低于预定阈值”为筛选标准,从邻居节点中筛选出优选邻居节点;
[0045]4)节点与邻居节点之间的传输性能指标
[0046]该指标反应了节点与邻居节点之间的传输性能。传输性能指标例如包括丢包率,如果丢包率越高,则节点从邻居节点下载的有效直播流数据越少。因此,可以以“传输性能指标超过/低于预定阈值”为筛选标准,从邻居节点中筛选出优选邻居节点。
[0047]节点可根据直播流播放的实际情况,采用上述筛选影响因子中的一个或多个来确定筛选标准,例如可以选择邻居节点的播放头位置、已缓存数据长度和响应时间作为该节点的筛选标准。在采用多个筛选影响因子来确定筛选标准时,各个筛选影响因子可根据需要具有不同的权重。
[0048]调整下载调度
[0049]在一个示例中,节点可以通过多种方式获知直播流的码率变化情况,例如,如果节点在播放直播流时出现卡顿情况,节点可依此判断当前直播流的码率提高了,又例如,节点可以接收来自P2P服务器的通知,该通知可包含当前直播流的码率变化情况。本发明对节点获知直播流的码率变化情况的方式不作限制。
[0050]以下以码率从低变高和码率从高变低两种情况,分别举例说明各种示例性的调整方式。
[0051 ] 1.码率从低变高
[0052]在一个示例中,在码率从低变高的情况下,可进行以下操作中的一个或多个:增大该节点的单次请求从CDN服务器下载的直播流数据量、增大所述滑动窗口、以及提高所述的筛选标准。
[0053]举例而言,在直播流的码率从低变高的情况下,节点的直播流数据下载负荷会增加,由于单位时间内传输的数据块大,节点与邻居节点之间在P2P模式下存在较为严重的消息阻塞。此时节点调整的主要目标是保证直播流畅率。为了保证直播流畅率,节点可增大该节点的单次请求从CDN服务器下载的直播流数据量,例如,将单次请求从CDN服务器下载的直播流数据量从30M提高到40M,在减少请求次数的同时,尽快从CDN服务器获取距离播放头较近的直播流数据量;也可以增大所述滑动窗口,例如将滑动窗口的窗口长度从120s增大至IJ240S,以保证更多地从⑶N服务器获取距离播放头较近的直播流数据量;也可以提高筛选标准,例如以更高的筛选标准从邻居节点之中挑选出播放头位置在后的、已缓存数据长度大的、响应时间快、传输性能指标高(例如丢包率低)的优选邻居节点,并主动向优选邻居节点请求以P2P模式下载直播流数据;可以通过提高各筛选影响因子的标准来提高筛选标准,并且,也可以通过增加传输性能指标(例如除了丢包率之外,再引入误码率等新的传输性能指标)来提高筛选标准。
[0054]在一个示例中,在直播流的码率变化的情况下,节点可以获取节点的当前状态,在一个示例中,节点的当前状态可包括P2P上传、P2P下载和卡顿其中之一。其中P2P上传状态表示该节点作为P2P传输中的数据提供方(例如图1中的节点LI),P2P下载表示该节点作为P2P传输中的数据接收方(例如图1中的节点L2),卡顿表示该节点当前播放发生卡顿。在一个示例中,节点的当前状态可以是节点根据其当前传输方式(例如上传或下载)、下载数据源(例如节点LI或CDN服务器)、网络状况(例如流畅或阻塞)、与其他节点的连接状况(例如连接多少邻居节点及各邻居节点是否活动)及播放状况(例如是否卡顿)中的一个或多个来确定的。
[0055]在一个示例中,在码率从低变高的情况下,可以通过以下方式,针对不同的节点状态进行下载调度调整:
[0056]I)如果节点的当前状态为P2P上传,则可降低该节点向邻居节点以P2P模式发送直播流数据的频率(也称为上传频率)。在直播流的码率从低变高的情况下,由于节点与邻居节点之间在P2P模式下存在较为严重的消息阻塞,此时,为了减少消息阻塞可降低上传频率,以保证有效的P2P模式下的直播流数据传输。
[0057]2)如果节点的当前状态为P2P下载,则可提高该节点从⑶N服务器下载的直播流数据相对于该节点从邻居节点以P2P模式下载的直播流数据的比例,更多的从CDN服务器下载直播流数据,和/或主动向指定的邻居节点请求以P2P模式下载直播流数据。其中,所述的指定的邻居节点可以是提高筛选标准后从邻居节点中筛选出的优选邻居节点,也可以是P2P服务器指定的邻居节点(所接收到的P2P服务器通知中指定的邻居节点),或者两者都有。
[0058]2.码率从高变低
[0059]在一个示例中,在码率从高变低的情况下,可进行以下操作中的一个或多个:减小该节点的单次请求从CDN服务器下载的直播流数据量、减小所述滑动窗口、以及降低所述的筛选标准。
[0060]举例而言,在直播流的码率从高变低的情况下,节点的直播流数据下载负荷会减轻,此时节点调整的主要目标是更多地节省CDN服务器带宽,恢复节点之间普通的P2P模式下的数据传输。为此,节点可以将单次请求从CDN服务器下载的直播流数据量例如从40M减少到30M;也可以将滑动窗口的窗口长度例如从240s减小到120s;也可以降低筛选标准以筛选出更多的优选邻居节点,并向更多的优选邻居节点请求以P2P模式下载直播流数据。
[0061]在一个示例中,在码率从高变低的情况下,可以通过以下方式,针对不同的节点状态进行下载调度调整:
[0062]I)如果节点的当前状态为P2P上传,则可提高该节点向邻居节点以P2P模式发送直播流数据的频率(也称为上传频率);在直播流的码率从高变低的情况下,由于节点与邻居节点之间在P2P模式下的消息阻塞已经减轻,此时,节点可提高上传频率,向邻居节点以P2P模式发送更多的直播流数据。
[0063]2)如果节点的当前状态为P2P下载,则可降低该节点从CDN服务器下载的直播流数据相对于该节点从所述邻居节点以P2P模式下载直播流数据的比例,更多地节省CDN服务器带宽资源,和/或向所述邻居节点请求以P2P模式下载直播流数据;该请求可大范围针对各类邻居节点进行,例如优选邻居节点以及能够提供直播流数据的其他邻居节点。
[0064]3)如果节点的当前状态为卡顿,则可尝试从邻居节点提前以P2P模式下载滑动窗口之后的部分未下载的直播流数据。例如,此前,在直播流的码率较高时,针对在滑动窗口之后离直播头较近的直播流数据,节点已经向邻居节点发出了下载请求,在直播流的码率从高变低的情况下,由于节点与邻居节点之间的消息阻塞已经减轻,原先请求的数据会逐渐传输至该节点。因此,为了避免下载冗余的直播流数据,节点可尝试提前下载滑动窗口之后离播放头较远的部分直播流数据。
[0065]调整数据块阈值
[0066]在一个示例中,在直播流的码率变化的情况下,还可根据所述变化调整所述节点与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值。
[0067]举例而言,应用层的直播流数据需要通过传输层的UDP(用户数据报协议)数据包进行节点之间(源节点与目标节点之间)的数据传输,在应用层数据块大于UDP数据包中的数据长度(例如548字节)的情况下,源节点需要在传输层将应用层的数据块进行拆分,放入到不同的UPD数据包中以发送至目标节点,目标节点接收到所有UDP数据包后对UDP中的数据重新组合,生成应用层数据块,如果发生UDP数据包丢失,则目标节点无法生成应用层数据块。因此,节点可设置与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值,可调整该阈值,使单次能够传输的数据块大小与所述的UDP数据包中的数据长度相匹配,以减少在传输层进行数据包拆分。
[0068]在一个示例中,在码率从低变高的情况下,可减小所述节点与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值。
[0069]举例而言,在码率从低变高的情况下,节点之间会存在消息阻塞,传输丢包率将提高,因此,可以减小该节点与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值,例如将阈值从1024字节减小到512字节,通常互联网传输层的UDP的数据长度为548字节,这样避免了应用层的单次能够传输的数据块在传输层被拆分,以利于节点之间在P2P模式下进行高效数据传输。
[0070]在一个示例中,在码率从高变低的情况下,增大所述节点与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值。
[0071]举例而言,在直播流的码率从高变低的情况下,节点之间的消息阻塞已经缓解,传输丢包率将降低,因此,节点可增大所述节点与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值,例如将阈值从512字节增大到1024字节,以利于节点之间在P2P模式下进行高效数据传输。
[0072]防止误删邻居节点
[0073]在一个示例中,在直播流的码率从低变高的情况下,节点可增大删除邻居节点所基于的邻居节点的响应时间上限,以防止误删邻居节点。举例而言,在直播流的码率从低变高的情况下,由于节点与邻居节点之间在P2P模式下存在较为严重的消息阻塞,节点发送的请求后,邻居节点的响应变慢,响应时间变长。为了防止错误删除这部分邻居节点,可增大删除邻居节点所基于的邻居节点的响应时间上限,例如从原来的3s增大到5s,这样,相当于考虑到码率变化可能引起的阻塞,增大了等待邻居节点响应的时间,防止误删邻居节点。
[0074]相应地,在直播流的码率从高变低的情况下,节点可减小删除邻居节点所基于的邻居节点的响应时间上限,例如恢复到正常上限。
[0075]实施例2
[0076]图5示出根据本发明一实施例的节点下载调度装置500的结构框图。该装置可内置于节点中。如图5所示,该装置主要包括:
[0077]滑动窗口设置部件501,用于以节点所播放的直播流的当前播放头为基准,设置滑动窗口,其中,对所述滑动窗口内的未下载直播流数据,优先从内容分发网络CDN服务器下载;对该滑动窗口之后的未下载直播流数据,优先以点对点数据传输P2P模式从已连接的、能提供直播流数据的邻居节点下载;
[0078]筛选标准设置部件502,用于设置筛选标准,以便基于该筛选标准从已连接的、能提供直播流数据的邻居节点中筛选出优选邻居节点,并向所述优选邻居节点请求以P2P模式下载直播流数据;
[0079]调整部件503,用于在直播流的码率变化的情况下,根据所述变化调整该节点的单次请求从CDN服务器下载的直播流数据量的大小、所述滑动窗口的大小、以及所述筛选标准中的一个或多个。
[0080]本发明实施例是基于“⑶N+P2P”的混合模式,但与现有技术不同的是,本实施例并非简单地根据码率在CDN模式和P2P模式之间切换,也不是仅利用P2P模式进行单一的低码率直播流的传输。本实施例的装置通过滑动窗口设置部件501设置滑动窗口,对滑动窗口内的未下载直播流数据,优先从CDN服务器下载;对滑动窗口之后的未下载直播流数据,优先以P2P模式从邻居节点下载;又通过筛选标准设置部件502设置的筛选标准筛选出优选邻居节点,以便向优选邻居节点请求以P2P模式下载直播流数据。在直播流的码率变化的情况下,调整部件503根据所述变化调整该节点的单次请求从CDN服务器下载的直播流数据量的大小、调整滑动窗口的大小、调整筛选标准。通过上述技术手段,节点能够利用CDN和P2P这两种模式传输直播流数据,并在码率变化的情况下动态地在CDN模式和P2P模式之间进行调整,在保证了直播流畅率的同时,有效地节省了 CDN服务器和带宽资源。
[0081]在一个示例中,如图4所示,滑动窗口设置部件501可以以所播放的直播流的当前位置为播放头41,以播放头41为基准,可设置滑动窗口42,其中,播放头41可随直播流的播放进度而移动,滑动窗口 42可随播放头41滑动。滑动窗口 42的窗口长度可以为数据量(例如20M),也可以为时间量(例如120s),滑动窗口 42中可包含已下载的直播流数据43和未下载的直播流数据44,对滑动窗口 42内的未下载的直播流数据44可优选从CDN服务器下载。滑动窗口 42之后的数据可包含已下载的直播流数据45和未下载的直播流数据46,对滑动窗口 42之后的未下载的直播流数据46可优先以P2P模式从已连接的、能提供直播流数据的邻居节点下载。
[0082]在一个示例中,筛选标准设置部件502可设置筛选标准,以便基于该筛选标准从已连接的、能提供直播流数据的邻居节点中筛选出优选邻居节点,并向所述优选邻居节点请求以P2P模式下载直播流数据;其中,所述筛选标准可以由邻居节点的播放头位置、已缓存数据长度、响应时间和所述节点与邻居节点之间的传输性能指标中的一个或多个来确定。
[0083]对于确定筛选标准的各个筛选影响因子的说明,可参见实施例1的描述,这里不再重述。
[0084]在一个示例中,节点可以通过多种方式获知直播流的码率变化情况,具体可参见实施例1的描述,这里不再重述。
[0085]在一个示例中,在码率从低变高的情况下,调整部件503可进行以下操作中的一个或多个:增大该节点的单次请求从CDN服务器下载的直播流数据量、增大所述滑动窗口、以及提高所述的筛选标准。
[0086]举例而言,在直播流的码率从低变高的情况下,节点的直播流数据下载负荷会增加,由于单位时间内传输的数据块大,节点与邻居节点之间在P2P模式下存在较为严重的消息阻塞。此时节点调整的主要目标是保证直播流畅率。为了保证直播流畅率,调整部件503可增大该节点的单次请求从CDN服务器下载的直播流数据量,例如,将单次请求从CDN服务器下载的直播流数据量从30M提高到40M,在减少请求次数的同时,尽快从CDN服务器获取距离播放头较近的直播流数据量;也可以增大所述滑动窗口,例如将滑动窗口的窗口长度从120s增大到240s,以保证更多地从⑶N服务器获取距离播放头较近的直播流数据量;也可以提高筛选标准,例如以更高的筛选标准从邻居节点之中挑选出播放头位置在后的、已缓存数据长度大的、响应时间快、传输性能指标高(例如丢包率低)的优选邻居节点,并主动向优选邻居节点请求以P2P模式下载直播流数据;可以通过提高各筛选影响因子的标准来提高筛选标准,并且,也可以通过增加传输性能指标(例如除了丢包率之外,再引入误码率等新的传输性能指标)来提尚筛选标准。
[0087]在一个示例中,在码率从高变低的情况下,调整部件503可进行以下操作中的一个或多个:减小该节点的单次请求从CDN服务器下载的直播流数据量、减小所述滑动窗口、以及降低所述的筛选标准。
[0088]举例而言,在直播流的码率从高变低的情况下,节点的直播流数据下载负荷会减轻,此时节点调整的主要目标是更多地节省CDN服务器带宽,恢复节点之间普通的P2P模式下的数据传输。为此,调整部件503可以将单次请求从CDN服务器下载的直播流数据量例如从40M减少到30M;也可以将滑动窗口的窗口长度例如从240s减小到120s;也可以降低筛选标准以筛选出更多的优选邻居节点,并向更多的优选邻居节点请求以P2P模式下载直播流数据。
[0089]在一个示例中,在直播流的码率变化的情况下,节点可以获取节点的当前状态,在一个示例中,节点的当前状态可包括P2P上传、P2P下载和卡顿其中之一。关于节点的状态的描述可参见实施例1,此处不再重述。
[0090]图6示出根据本发明一实施例的另一个节点下载调度装置的结构框图。
[0091 ] 在一个示例中,如图6所示,节点下载调度装置500还可包括第一调整部件504,在码率从低变高的情况下,节点下载调度装置500可以通过第一调整部件504,针对不同的节点状态进行下载调度调整:
[0092]I)如果节点的当前状态为P2P上传,则可降低该节点向邻居节点以P2P模式发送直播流数据的频率(也称为上传频率)。在直播流的码率从低变高的情况下,由于节点与邻居节点之间在P2P模式下存在较为严重的消息阻塞,此时,为了减少消息阻塞可降低上传频率,以保证有效的P2P模式下的直播流数据传输。
[0093]2)如果节点的当前状态为P2P下载,则可提高该节点从⑶N服务器下载的直播流数据相对于该节点从邻居节点以P2P模式下载的直播流数据的比例,更多的从CDN服务器下载直播流数据,和/或主动向指定的邻居节点请求以P2P模式下载直播流数据。其中,所述的指定的邻居节点可以是提高筛选标准后从邻居节点中筛选出的优选邻居节点,也可以是P2P服务器指定的邻居节点(所接收到的P2P服务器通知中指定的邻居节点),或者两者都有。
[0094]在一个示例中,如图6所示,节点下载调度装置500还可包括第二调整部件505,在码率从高变低的情况下,节点下载调度装置500可以通过第二调整部件505,针对不同的节点状态进行下载调度调整:
[0095]I)如果节点的当前状态为P2P上传,则可提高该节点向邻居节点以P2P模式发送直播流数据的频率(也称为上传频率);在直播流的码率从高变低的情况下,由于节点与邻居节点之间在P2P模式下的消息阻塞已经减轻,此时,节点可提高上传频率,向邻居节点以P2P模式发送更多的直播流数据。
[0096]2)如果节点的当前状态为P2P下载,则可降低该节点从CDN服务器下载的直播流数据相对于该节点从所述邻居节点以P2P模式下载直播流数据的比例,更多地节省CDN服务器带宽资源,和/或向所述邻居节点请求以P2P模式下载直播流数据;该请求可大范围针对各类邻居节点进行,例如优选邻居节点以及能够提供直播流数据的其他邻居节点。
[0097]3)如果节点的当前状态为卡顿,则可尝试从邻居节点提前以P2P模式下载滑动窗口之后的部分未下载的直播流数据。例如,此前,在直播流的码率较高时,针对在滑动窗口之后离直播头较近的直播流数据,节点已经向邻居节点发出了下载请求,在直播流的码率从高变低的情况下,由于节点与邻居节点之间的消息阻塞已经减轻,原先请求的数据会逐渐传输至该节点。因此,为了避免下载冗余的直播流数据,节点可尝试提前下载滑动窗口之后离播放头较远的部分直播流数据。
[0098]在一个示例中,如图6所示,节点下载调度装置500还可包括阈值调整部件506,在直播流的码率变化的情况下,节点下载调度装置500还可通过阈值调整部件506根据所述变化调整所述节点与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值。
[0099]对于应用层的直播流数据需要通过传输层的UDP(用户数据报协议)数据包进行节点之间(源节点与目标节点之间)的数据传输的描述可参见实施例1,这里为了简明,不再重述。阈值调整部件506可设置与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值,可调整该阈值,使单次能够传输的数据块大小与所述的UDP数据包中的数据长度相匹配,以减少在传输层进行数据包拆分。
[0100]在一个示例中,在码率从低变高的情况下,阈值调整部件506可减小所述节点与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值。
[0101]举例而言,在码率从低变高的情况下,节点之间会存在消息阻塞,传输丢包率将提高,因此,阈值调整部件506可以减小该节点与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值,例如将阈值从1024字节减小到512字节,通常互联网传输层的UDP的数据长度为548字节,这样避免了应用层的单次能够传输的数据块在传输层被拆分,以利于节点之间在P2P模式下进行高效数据传输。
[0102]在一个示例中,在码率从高变低的情况下,阈值调整部件506增大所述节点与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值。
[0103]举例而言,在直播流的码率从高变低的情况下,节点之间的消息阻塞已经缓解,传输丢包率将降低,因此,阈值调整部件506可增大所述节点与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值,例如将阈值从512字节增大到1024字节,以利于节点之间在P2P模式下进行高效数据传输。
[0104]在一个示例中,如图6所示,节点下载调度装置500还可包括响应时间调整部件507,在直播流的码率从低变高的情况下,节点下载调度装置500可通过响应时间调整部件507增大删除邻居节点所基于的邻居节点的响应时间上限,以防止误删邻居节点。举例而言,在直播流的码率从低变高的情况下,由于节点与邻居节点之间在P2P模式下存在较为严重的消息阻塞,节点发送的请求后,邻居节点的响应变慢,响应时间变长。为了防止错误删除这部分邻居节点,响应时间调整部件507可增大删除邻居节点所基于的邻居节点的响应时间上限,例如从原来的3s增大到5s,这样,相当于考虑到码率变化可能引起的阻塞,增大了等待邻居节点响应的时间,防止误删邻居节点。
[0105]相应地,在直播流的码率从高变低的情况下,响应时间调整部件507可减小删除邻居节点所基于的邻居节点的响应时间上限,例如恢复到正常上限。
[0106]实施例3
[0107]图7示出了本发明的一实施例的一种节点下载调度设备的结构框图。所述节点下载调度设备1100可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对计算节点的具体实现做限定。
[0?08] 所述节点下载调度设备1100包括处理器(processor)lllO、通信接口(Communicat1ns Interface) 1120、存储器(memory) 1130和总线1140。其中,处理器1110、通信接口 1120、以及存储器1130通过总线1140完成相互间的通信。
[0109]通信接口 1120用于与网络设备通信,其中网络设备包括例如虚拟机管理中心、共享存储等。
[0110]处理器1110用于执行程序。处理器1110可能是一个中央处理器CPU,或者是专用集成电路ASIC(Applicat1n Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
[0111]存储器1130用于存放文件。存储器1130可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1130也可以是存储器阵列。存储器1130还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
[0112]在一种可能的实施方式中,上述程序可为包括计算机操作指令的程序代码。该程序具体可用于执行实施例1中的各步骤。
[0113]本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0114]如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的非易失性存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(R0M,Read_0nly Memory)、随机存取存储器(RAM ,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0115]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【主权项】
1.一种节点下载调度方法,该方法包括: 以节点所播放的直播流的当前播放头为基准,设置滑动窗口,其中,对所述滑动窗口内的未下载直播流数据,优先从内容分发网络CDN服务器下载;对该滑动窗口之后的未下载直播流数据,优先以点对点数据传输P2P模式从已连接的、能提供直播流数据的邻居节点下载; 设置筛选标准,以便基于该筛选标准从已连接的、能提供直播流数据的邻居节点中筛选出优选邻居节点,并向所述优选邻居节点请求以P2P模式下载直播流数据; 在直播流的码率变化的情况下,根据所述变化调整该节点的单次请求从CDN服务器下载的直播流数据量的大小、所述滑动窗口的大小、以及所述筛选标准中的一个或多个。2.根据权利要求1所述的节点下载调度方法,所述方法还包括: 在直播流的码率变化的情况下,根据所述变化调整所述节点与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值。3.根据权利要求1所述的节点下载调度方法,其中,所述筛选标准由邻居节点的播放头位置、已缓存数据长度、响应时间和所述节点与邻居节点之间的传输性能指标中的一个或多个来确定。4.根据权利要求1所述的节点下载调度方法,其中,根据所述变化调整该节点的单次请求从CDN服务器下载的直播流数据量的大小、所述滑动窗口的大小、以及所述的筛选标准中的一个或多个,包括: 在码率从低变高的情况下,进行以下操作中的一个或多个:增大该节点的单次请求从CDN服务器下载的直播流数据量、增大所述滑动窗口、以及提高所述的筛选标准。5.根据权利要求4所述的节点下载调度方法,还包括: 在码率从低变高的情况下: 如果节点的当前状态为P2P上传,则降低该节点向邻居节点以P2P模式发送直播流数据的频率; 如果节点的当前状态为P2P下载,则提高该节点从CDN服务器下载的直播流数据相对于该节点从邻居节点以P2P模式下载的直播流数据的比例,和/或主动向指定的邻居节点请求以P2P模式下载直播流数据。6.根据权利要求5所述的节点下载调度方法,其中,所述指定的邻居节点包括所述优选邻居节点和/或P2P服务器指定的邻居节点。7.根据权利要求2所述的节点下载调度方法,其中,根据所述变化调整所述节点与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值,包括: 在码率从低变高的情况下,减小所述节点与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值。8.根据权利要求1所述的节点下载调度方法,还包括: 在码率从低变高的情况下,增大删除邻居节点所基于的邻居节点的响应时间上限。9.根据权利要求1所述的节点下载调度方法,其中,根据所述变化调整该节点的单次请求从CDN服务器下载的直播流数据量的大小、所述滑动窗口的大小、以及所述的筛选标准中的一个或多个,包括: 在码率从高变低的情况下,进行以下操作中的一个或多个:减小该节点的单次请求从CDN服务器下载的直播流数据量、减小所述滑动窗口、以及降低所述的筛选标准。10.根据权利要求9所述的节点下载调度方法,还包括: 在码率从高变低的情况下: 如果节点的当前状态为P2P上传,则提高该节点向邻居节点以P2P模式发送直播流数据的频率; 如果节点的当前状态为P2P下载,则降低该节点从CDN服务器下载的直播流数据相对于该节点从所述邻居节点以P2P模式下载的直播流数据的比例,和/或向邻居节点请求以P2P模式下载直播流数据; 如果节点的当前状态为卡顿,则尝试从邻居节点提前以P2P模式下载所述滑动窗口之后的部分未下载的直播流数据。11.根据权利要求2所述的节点下载调度方法,其中,根据所述变化调整所述节点与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值,包括: 在码率从高变低的情况下,增大所述节点与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值。12.根据权利要求1所述的节点下载调度方法,还包括: 在码率从高变低的情况下,减小删除邻居节点所基于的邻居节点的响应时间上限。13.一种节点下载调度装置,该装置包括: 滑动窗口设置部件,用于以节点所播放的直播流的当前播放头为基准,设置滑动窗口,其中,对所述滑动窗口内的未下载直播流数据,优先从内容分发网络CDN服务器下载;对该滑动窗口之后的未下载直播流数据,优先以点对点数据传输P2P模式从已连接的、能提供直播流数据的邻居节点下载; 筛选标准设置部件,用于设置筛选标准,以便基于该筛选标准从已连接的、能提供直播流数据的邻居节点中筛选出优选邻居节点,并向所述优选邻居节点请求以P2P模式下载直播流数据; 调整部件,用于在直播流的码率变化的情况下,根据所述变化调整该节点的单次请求从CDN服务器下载的直播流数据量的大小、所述滑动窗口的大小、以及所述筛选标准中的一个或多个。14.根据权利要求13所述的节点下载调度装置,该装置还包括: 阈值调整部件,用于在直播流的码率变化的情况下,根据所述变化调整所述节点与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值。15.根据权利要求13所述的节点下载调度装置,其中,所述筛选标准由邻居节点的播放头位置、已缓存数据长度、响应时间和所述节点与邻居节点之间的传输性能指标中的一个或多个来确定。16.根据权利要求13所述的节点下载调度装置,其中,根据所述变化调整该节点的单次请求从CDN服务器下载的直播流数据量的大小、所述滑动窗口的大小、以及所述的筛选标准中的一个或多个,包括: 在码率从低变高的情况下,进行以下操作中的一个或多个:增大该节点的单次请求从CDN服务器下载的直播流数据量、增大所述滑动窗口、以及提高所述的筛选标准。17.根据权利要求16所述的节点下载调度装置,该装置还包括:基于节点当前状态的第一调整部件,用于在码率从低变高的情况下:如果节点的当前状态为P2P上传,则降低该节点向邻居节点以P2P模式发送直播流数据的频率;如果节点的当前状态为P2P下载,则提高该节点从CDN服务器下载的直播流数据相对于该节点从邻居节点以P2P模式下载的直播流数据的比例,和/或主动向指定的邻居节点请求以P2P模式下载直播流数据。18.根据权利要求17所述的节点下载调度装置,其中,所述指定的邻居节点包括所述优选邻居节点和/或P2P服务器指定的邻居节点。19.根据权利要求14所述的节点下载调度装置,其中,根据所述变化调整所述节点与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值,包括: 在码率从低变高的情况下,减小所述节点与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值。20.根据权利要求13所述的节点下载调度装置,该装置还包括: 响应时间调整部件,用于在码率从低变高的情况下,增大删除邻居节点所基于的邻居节点的响应时间上限。21.根据权利要求13所述的节点下载调度装置,其中,根据所述变化调整该节点的单次请求从CDN服务器下载的直播流数据量的大小、所述滑动窗口的大小、以及所述的筛选标准中的一个或多个,包括: 在码率从高变低的情况下,进行以下操作中的一个或多个:减小该节点的单次请求从CDN服务器下载的直播流数据量、减小所述滑动窗口、以及降低所述的筛选标准。22.根据权利要求21所述的节点下载调度装置,该装置还包括:基于节点当前状态的第二调整部件,用于在码率从高变低的情况下:如果节点的当前状态为P2P上传,则提高该节点向邻居节点以P2P模式发送直播流数据的频率;如果节点的当前状态为P2P下载,则降低该节点从CDN服务器下载的直播流数据相对于该节点从所述邻居节点以P2P模式下载的直播流数据的比例,和/或向邻居节点请求以P2P模式下载直播流数据;如果节点的当前状态为卡顿,则尝试从邻居节点提前以P2P模式下载所述滑动窗口之后的部分未下载的直播流数据。23.根据权利要求14所述的节点下载调度装置,其中,根据所述变化调整所述节点与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值,包括: 在码率从高变低的情况下,增大所述节点与邻居节点之间基于P2P模式单次能够传输的数据块大小的阈值。24.根据权利要求13所述的节点下载调度装置,该装置还包括: 响应时间调整部件,用于在码率从高变低的情况下,减小删除邻居节点所基于的邻居节点的响应时间上限。
【文档编号】H04N21/238GK105898388SQ201610206227
【公开日】2016年8月24日
【申请日】2016年4月5日
【发明人】房福志, 潘金亚, 杨敬宇, 姚键, 潘柏宇, 王冀
【申请人】合网络技术(北京)有限公司, 合一网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1