一种节点连接调整方法和装置的制造方法_2

文档序号:9914797阅读:来源:国知局
中,节点可以通过多种方式获知直播流的码率变化情况,例如,如果节点在播放直播流时出现卡顿情况,节点可依此判断当前直播流的码率提高了,又例如,节点可以接收来自P2P服务器的通知,该通知可包含当前直播流的码率变化情况。本发明对节点获知直播流码率变化情况的方式不作限制。
[0035]在直播流的码率变化的情况下,节点可以获取节点的当前状态,在一个示例中,节点的当前状态可包括P2P上传、P2P下载和卡顿其中之一。其中P2P上传状态表示该节点作为P2P传输中的数据提供方(例如图1中的节点LI ),P2P下载表示该节点作为P2P传输中的数据接收方(例如图1中的节点L2),卡顿表示该节点当前播放发生卡顿。在一个示例中,节点的当前状态可以是节点根据其当前传输方式(例如上传或下载)、下载数据源(例如节点LI或CDN服务器)、网络状况(例如流畅或阻塞)、与其他节点的连接状况(例如连接多少邻居节点及各邻居节点是否活动)及播放状况(例如是否卡顿)中的一个或多个来确定的。
[0036]本文所说的“邻居节点”,是指对于一个节点来说,可以与其建立数据通信的那些节点。
[0037]在一个示例中,节点还可以与邻居节点交换各自的当前状态及节点信息,其中,节点信息可包括:网络状况(例如流畅或阻塞)、与其他节点的连接状况(例如连接多少邻居节点及各邻居节点是否活动)、播放状况(例如是否卡顿)中的一种或多种。
[0038]接收推荐的优选邻居节点
[0039]节点可向P2P服务器发送包含所获取的当前状态的请求,以从服务器获取所推荐的优选邻居节点。在码率不发生变化的情况下,节点可以定期向服务器发起请求以获取所推荐的优选邻居节点,而一旦码率发生变化,节点可以临时增加一定次数的请求,以响应于码率的变化实时请求服务器推荐优选邻居节点。
[0040]服务器可基于该当前状态推荐针对该节点的优选邻居节点。服务器可以根据需要,采用任何适当的方式推荐优选邻居节点,例如,如果当前节点的状态为“卡顿”,那么服务器可以向该节点推荐一定数量的状态为“P2P上传”的邻居节点,并且在推荐中还可参考邻居节点的数据通信能力等参数,以尽可能推荐数据通信能力强、已连接的P2P下载状态节点较少的优选邻居节点。本领域技术人员可以根据需要设定推荐优选邻居节点的规则。
[0041]在一个示例中,节点还可以通过如下方式,从服务器推荐的优选邻居节点中,进一步挑选出更优选邻居节点,以供后续进行节点连接的调整:可根据该节点与邻居节点的连接状况以及所推荐的优选邻居节点,更新与该节点相关的邻居节点的连接状态信息,基于所述连接状态信息从所述优选邻居节点中筛选出更优选邻居节点。
[0042]举例来说,节点可以设置存储池,用来按照连接状态分类存储与该节点相关的邻居节点的信息(例如节点ID、连接时间、连接方式等)。所述存储池可包括:待连接存储池、正连接存储池、已连接存储池、曾删除存储池、连接失败存储池、差连接存储池。待连接存储池可用于存储该节点待连接的邻居节点的信息;正连接存储池可用于存储该节点正在连接的邻居节点的信息;已连接存储池可用于存储该节点已经连接的邻居节点的信息;曾删除存储池可用于存储该节点曾经删除的邻居节点的信息;连接失败存储池可用于存储与该节点连接失败的邻居节点的信息;差连接存储池可用于存储与该节点连接状况差的邻居节点的?目息O
[0043]节点可以根据该节点与邻居节点的连接状况以及所推荐的优选邻居节点,更新上述存储池,从而更新与该节点相关的邻居节点的连接状态信息。
[0044]举例而言,如果该节点尚未与邻居节点A建立连接,则可将该邻居节点A的信息存储在所述待连接存储池,如果节点向该邻居节点A发起连接,则可将该优选邻居节点A的信息存储在所述正连接存储池,如果所发起的连接成功建立,则可将该优选邻居节点A的信息存储在已连接存储池,如果该节点与所述邻居节点A的连接情况较差(例如所述连接时断时续),则可将该邻居节点A的信息存储在差连接存储池;如果该节点向邻居节点A发起连接,但该连接建立失败,则可该邻居节点A存储在连接失败存储池。如果该节点与邻居节点A的连接不可用或者由于该节点为了连接推荐的优选邻居节点而断开了与邻居节点A的连接,则可将该邻居节点A的信息存储在曾删除存储池中,并从其他存储池中删除该邻居节点A的信息。上述邻居节点A即可以是节点原本连接过的邻居节点,也可以是服务器新推荐的优选邻居节点。通过上述说明可知,上述存储池的存储内容是随着节点与相关的邻居节点之间的连接状态的变化而动态更新的,并且同一个邻居节点的信息在上述多个存储池中可能同时存在。
[0045]基于上述存储池,可对服务器推荐的优选邻居节点进行进一步筛选,例如如果节点接收到P2P服务器返回的推荐优选邻居节点的通知,并发现推荐的优选邻居节点中有部分优选邻居节点存储在所述连接失败存储池中,则所述节点可以认为再次与该部分优选邻居节点发起连接建立成功的可能性低,为了保证直播流畅性,该节点可在所推荐的优选邻居节点中剔除该部分优选邻居节点,从而筛选出更优选邻居节点,根据所述更优选邻居节点,调整所述节点与邻居节点的连接。
[0046]连接调整
[0047]以下以码率从高变低和码率从低变高两种情况,分别举例说明各种示例性的调整方式。
[0048]1.码率从低变高
[0049]在码率从低变高的情况下,可增大节点从CDN服务器获取的直播流数据量,以及可发起与优选邻居节点的连接,连接成功后,可从已连接的优选邻居节点获取直播流数据;以及断开与不能提供有效直播流数据的邻居节点的连接。
[0050]举例而言,在直播流码率从低变高的情况下,节点的直播流数据下载负荷会增加,节点进行直播流数据上传的能力将会受到限制,此时节点调整的主要目标是保证直播流畅率。为了保证直播流畅率,节点可增大从CDN服务器获取的直播流数据量,例如节点可调高从CDN服务器获取直播流数据量的额度,尽快从CDN服务器获取距离当前播放较近的直播流数据量;也可以根据P2P服务器推荐的优选邻居节点调整该节点与邻居节点的连接,以尽可能的利用P2P模式降低CDN服务器的负担。一般而言,优选邻居节点相比于已连接的邻居节点提供P2P直播流数据的能力更强,因此该节点可向所述优选邻居节点发起连接,连接成功后,从已连接的优选邻居节点获取P2P直播流数据。一般而言,节点与邻居节点的连接数是受限的,节点为了与更多的优选邻居节点建立连接,可断开与不能提供有效直播流数据的邻居节点的连接。
[0051]在一个示例中,在码率从低变高的情况下,可以通过以下方式,针对不同的节点状态进行连接调整:
[0052]I)如果节点的当前状态为P2P上传,则可通过断开与能从所述节点获取直播流数据的邻居节点的连接,来减少与能从所述节点获取直播流数据的邻居节点的连接数(也称为上传连接数)。在直播流码率从低变高的情况下,为了保证直播流畅率,节点通常会增加从优选邻居节点获取P2P直播流数据的连接数(即节点可增加下载连接数)。一般而言,由于节点与邻居节点的连接数是受限的,因此,节点可相应地减少与能从该节点获取P2P直播流数据的邻居节点的连接数(即节点可减少上传连接数),以在高码率下保证数据通信顺畅;
[0053]2)如果节点的当前状态为P2P下载,则可主动发起与优选邻居节点的连接,以尽可能更多地从优选邻居节点下载P2P直播流数据;
[0054]3)如果节点的当前状态为卡顿,则可通过断开与不能提供有效直播流数据的邻居节点的连接,来减少与不能提供有效直播流数据的邻居节点的连接数。在直播流码率从低变高的情况下,如果节点的当前状态为卡顿,一般而言,所述节点已不能从邻居节点获取有效的直播流数据。因此,该节点可通过断开与不能提供有效P2P直播流数据的邻居节点的连接,来减少与不能提供有效P2P直播流数据的邻居节点的连接数,为了保证直播流畅率,该节点可以主要从⑶N服务器获取的直播流数据。
[0055]2.码率从高变低
[0056]在码率从高变低的情况下,可减少节点从CDN服务器获取的直播流数据量,以及向邻居节点更多地提供P2P直播流数据。
[0057]举例而言,在直播流码率从高变低的情况下,节点的直播流数据下载负荷会减轻,此时节点调整的主要目标是更多地节省CDN服务器带宽。为此,节点可减少从CDN服务器下载直播流数据量,例如节点可调低从CDN服务器下载直播流数据量的额度,按直播流数据的实际缓存情况,从CDN服务器获
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1