CN109951723B - 对等网络直播系统中根节点的调整方法、装置及存储介质 - Google Patents

对等网络直播系统中根节点的调整方法、装置及存储介质 Download PDF

Info

Publication number
CN109951723B
CN109951723B CN201910234508.0A CN201910234508A CN109951723B CN 109951723 B CN109951723 B CN 109951723B CN 201910234508 A CN201910234508 A CN 201910234508A CN 109951723 B CN109951723 B CN 109951723B
Authority
CN
China
Prior art keywords
node
nodes
root
sub
total number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910234508.0A
Other languages
English (en)
Other versions
CN109951723A (zh
Inventor
戴满佐
张华�
陈贤明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Huaduo Network Technology Co Ltd
Original Assignee
Guangzhou Huaduo Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Huaduo Network Technology Co Ltd filed Critical Guangzhou Huaduo Network Technology Co Ltd
Priority to CN201910234508.0A priority Critical patent/CN109951723B/zh
Publication of CN109951723A publication Critical patent/CN109951723A/zh
Application granted granted Critical
Publication of CN109951723B publication Critical patent/CN109951723B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种对等网络直播系统中根节点的调整方法及装置。本申请通过获取第一时长内的强制订阅子流总数和空闲子流总数来确定根节点上调量和根节点下调量,从而根据根节点上调量和根节点下调量来对P2P直播系统中的多个根节点进行调整。也即,在本申请中不需要CDN服务器根据订阅每个子流的根节点的数量来选择根节点,解决了相关技术中当CDN服务器推送的视频流为FLV格式的视频流时,无法实现根节点的调整的问题,从而有效的提升了CDN服务器推送FLV格式的视频流时的分享率。

Description

对等网络直播系统中根节点的调整方法、装置及存储介质
技术领域
本申请涉及直播技术领域,特别涉及一种对等网络直播系统中根节点的调整方法、装置及存储介质。
背景技术
为了解决C/S视频直播模式下服务器资源和带宽压力较大、视频质量较低等问题,业界提出了基于P2P(peer to peer,对等网络)技术的P2P直播系统。其中,P2P直播系统包括内容分发网络(Content Delivery Network,CDN)服务器、P2P服务器、多个根节点以及多个子节点。其中,多个根节点是指从CDN服务器中获取视频流的终端,多个子节点是指从根节点或者是其他子节点中获取视频流的终端。
相关技术中,P2P直播系统中的一条视频流可以被切分为n个子流。CDN服务器可以接收多个终端对n个子流中的每个子流的订阅请求。其中,当CDN服务器在当前时刻接收到第一终端对n个子流中的任一子流的订阅请求时,可以判断当前已订阅该子流的终端的数量是否已达到订阅阈值。其中,当前已订阅该子流的终端即为根节点。若已达到订阅阈值,则CDN服务器可以将第一终端的上行带宽与已订阅该子流的终端的上行带宽中的最小上行带宽进行比较,若第一终端的上行带宽大于该最小上行带宽,则CDN服务器可以接受第一终端的订阅请求,终止最小上行带宽对应的终端的订阅,并向P2P服务器发送通知消息,以便P2P服务器根据该通知消息将第一终端的节点类型设置为根节点,而将被替换的终端的节点类型设置为子节点。否则,CDN服务器可以向第一终端发送拒绝订阅的消息。
由此可见,在相关技术中,CDN服务器根据订阅每个子流的根节点的数量以及当前请求订阅子流的终端的上行带宽来决定是否将该终端作为根节点。然而,当CDN服务器推送的视频流为FLV格式的视频流时,由于FLV格式的视频流是未切分的整流,因此,终端无法再向CDN服务器订阅子流,在这种情况下,CDN服务器自然也无法通过相关技术中的方法来调整根节点。
发明内容
本申请实施例提供了一种对等网络直播系统中根节点的调整方法、装置及存储介质,可以用于解决相关技术中当CDN服务器推送的视频流为FLV格式的视频流时,无法实现根节点的调整的问题。所述技术方案如下:
第一方面,提供了一种对等网络直播系统中根节点的调整方法,所述方法包括:
获取第一时长内的强制订阅子流总数和空闲子流总数,所述强制订阅子流总数是指对等网络P2P直播系统中多个子节点向重传服务器订阅的子流的总数量,所述空闲子流总数是指所述P2P直播系统中多个根节点所提供的子流中未被订阅的子流的总数量;
根据所述强制订阅子流总数,确定根节点上调量,并根据所述空闲子流总数,确定根节点下调量;
根据所述根节点上调量和所述根节点下调量,调整所述P2P直播系统中的多个根节点。
可选地,所述获取强制订阅子流总数和空闲子流总数,包括:
获取所述多个子节点中每个子节点在所述第一时长内发送的强制订阅数,并获取所述多个根节点中每个根节点在所述第一时长内发送的空闲子流数;
根据获取到的每个子节点发送的强制订阅数确定所述强制订阅子流总数,并根据获取到的每个根节点发送的空闲子流数确定所述空闲子流总数。
可选地,所述根据所述强制订阅子流总数,确定根节点上调量,包括:
判断所述强制订阅子流总数是否大于总子流数,所述总子流数是指对视频流划分得到的子流的总数量;
若所述强制订阅子流总数大于所述总子流数,则根据所述强制订阅子流总数、所述总子流数和第一调整比例,确定所述根节点上调量。
可选地,所述根据所述强制订阅子流总数、所述总子流数和第一调整比例,确定所述根节点上调量,包括:
根据所述强制订阅子流总数、所述总子流数和所述第一调整比例,通过下述模型确定第一数值:
x1=(Q/S)*w;
其中,所述x1为所述第一数值,所述Q为所述强制订阅子流总数,所述S为所述总子流数,所述w为所述第一调整比例;
若所述第一数值为整数,将所述第一数值确定为所述根节点上调量;
若所述第一数值不为整数,将大于所述第一数值且与所述第一数值之间的差值最小的整数确定为所述根节点上调量。
可选地,所述根据所述空闲子流总数,确定根节点下调量,包括:
根据所述多个子节点的数量和所述多个根节点的数量确定总节点数;
根据所述总节点数、所述总子流数和冗余比例,确定第二数值;
判断所述空闲子流总数与所述第二数值之间的差值是否大于所述总子流数;
若所述空闲子流总数与所述第二数值之间的差值大于所述总子流数,则根据所述空闲子流总数、所述总节点数、所述总子流数、所述冗余比例和第二调整比例,确定所述根节点下调量。
可选地,所述根据所述空闲子流总数、所述总节点数、所述总子流数、所述冗余比例和第二调整比例,确定所述根节点下调量,包括:
根据所述空闲子流总数、所述总节点数、所述总子流数、所述冗余比例和第二调整比例,通过下述模型确定第三数值:
Figure BDA0002007729410000031
其中,所述x2为所述第三数值,所述K为所述空闲子流总数,所述n为所述总节点数,所述S为所述总子流数,所述w1为所述冗余比例,所述w2为所述第二调整比例;
若所述第三数值为整数,则将所述第三数值确定为所述根节点下调量;
若所述第三数值不为整数,将大于所述第三数值且与所述第三数值之间的差值最小的整数确定为所述根节点下调量。
可选地,所述根据所述根节点上调量和所述根节点下调量,调整所述P2P直播系统中的多个根节点,包括:
将所述根节点上调量和所述根节点下调量之间的差值确定为根节点调整量;
若所述根节点调整量大于0,则根据所述多个子节点中每个子节点的当前上行带宽和所述多个根节点中每个根节点的上行带宽,从所述多个子节点和所述多个根节点中选择N个节点,所述N等于所述根节点调整量和所述多个根节点的总数量的总和;
将所述多个根节点中未包含在所述N个节点中的根节点的节点类型调整为子节点,并向所述多个根节点中未包含在所述N个节点中的根节点发送第一节点状态调整信息,以使所述多个根节点中未包含在所述N个节点中的根节点根据所述第一节点状态调整信息转换为子节点,所述节点类型用于指示相应地节点为根节点或子节点;
将所述N个节点中的子节点的节点类型更新为根节点,并向所述N个节点中的子节点发送第二节点状态调整信息,以使所述N个节点中的子节点根据所述第二节点状态调整信息转换为根节点。
可选地,所述根据所述多个子节点中每个子节点的当前上行带宽和所述多个根节点中每个根节点的上行带宽,从所述多个子节点和所述多个根节点中选择N个节点,包括:
根据所述多个子节点中每个子节点的当前上行带宽和所述多个根节点中每个根节点的当前上行带宽,按照从大到小的顺序对所述多个子节点和所述多个根节点进行排序,得到第一排序结果;
从所述第一排序结果中选择排在前N位的节点,得到所述N个节点。
可选地,所述方法还包括:
若所述根节点调整量小于0,则根据所述多个根节点中每个根节点的当前上行带宽,从所述多个根节点中选择数量为所述根节点调整量的根节点;
将存储的选择的根节点的节点类型更新为子节点,并向选择的根节点发送第一节点状态调整信息,以使选择的根节点根据所述第一节点状态调整信息转换为子节点。
可选地,所述根据所述多个根节点中每个根节点的当前上行带宽,从所述多个根节点中选择数量为所述根节点调整量的根节点,包括:
根据所述多个根节点中每个根节点的当前上行带宽,按照从小到大的顺序对所述多个根节点进行排序,得到第二排序结果;
从所述第二排序结果中选择排在前N位的根节点,所述N等于所述根节点调整量。
可选地,所述方法还包括:
判断当前已登录的终端是否满足分配条件;
若当前已登录的终端满足分配条件,则将所述当前已登录的终端确定为新增子节点;
当检测到新增子节点的数量达到M时,则根据所述多个子节点中的每个子节点的当前上行带宽,从所述多个子节点中选择一个子节点,将选择的子节点调整为根节点,所述M为正整数。
可选地,所述方法还包括:
当检测到所述多个子节点中退出登录的子节点的数量达到R时,则根据所述多个根节点中每个根节点的当前上行带宽,从所述多个根节点中选择一个根节点,所述R为正整数;
将选择的根节点调整为子节点。
可选地,所述方法还包括:
根据所述多个根节点中每个根节点的当前上行带宽以及所述多个子节点中每个子节点的当前上行带宽,按照从大到小的顺序,对所述多个根节点和所述多个子节点进行排序,得到第三排序结果;
在所述第三排序结果中查找排位大于第四数值的根节点,所述第四数值大于所述多个根节点的总数量;
若查找到排位大于所述第四数值的根节点,则根据所述第三排序结果中排位小于查找到的根节点的排位的子节点,对所述查找到的根节点进行调整。
可选地,所述调整所述P2P直播系统中的多个根节点之后还包括:
接收第一节点发送的第一节点类型,所述第一节点是指调整后的多个根节点和调整后的多个子节点中的任一节点;
获取存储的所述第一节点的第二节点类型;
若所述第一节点的第一节点类型和所述第一节点的第二节点类型不同,则向所述第一节点发送第三节点状态调整信息,以使所述第一节点调整为所述第二节点类型的节点。
第二方面,提供了一种对等网络直播系统中根节点的调整装置,所述装置包括:
获取模块,用于获取第一时长内的强制订阅子流总数和空闲子流总数,所述强制订阅子流总数是指对等网络P2P直播系统中多个子节点向重传服务器订阅的子流的总数量,所述空闲子流总数是指所述P2P直播系统中多个根节点所提供的子流中未被订阅的子流的总数量;
确定模块,用于根据所述强制订阅子流总数,确定根节点上调量,并根据所述空闲子流总数,确定根节点下调量;
调整模块,用于根据所述根节点上调量和所述根节点下调量,调整所述P2P直播系统中的多个根节点。
可选地,获取模块包括:
第一获取子模块,用于获取所述多个子节点中每个子节点在所述第一时长内发送的强制订阅数,并获取所述多个根节点中每个根节点在所述第一时长内发送的空闲子流数;
第一确定子模块,用于根据获取到的每个子节点发送的强制订阅数确定所述强制订阅子流总数,并根据获取到的每个根节点发送的空闲子流数确定所述空闲子流总数。
可选地,所述确定模块包括:
第一判断子模块,用于判断所述强制订阅子流总数是否大于总子流数,所述总子流数是指对视频流划分得到的子流的总数量;
第二确定子模块,用于若所述强制订阅子流总数大于所述总子流数,则根据所述强制订阅子流总数、所述总子流数和第一调整比例,确定所述根节点上调量。
可选地,所述第二确定子模块具体用于:
根据所述强制订阅子流总数、所述总子流数和所述第一调整比例,通过下述模型确定第一数值:
x1=(Q/S)*w;
其中,所述x1为所述第一数值,所述Q为所述强制订阅子流总数,所述S为所述总子流数,所述w为所述第一调整比例;
若所述第一数值为整数,将所述第一数值确定为所述根节点上调量;
若所述第一数值不为整数,将大于所述第一数值且与所述第一数值之间的差值最小的整数确定为所述根节点上调量。
可选地,所述确定模块包括:
第三确定子模块,用于根据所述多个子节点的数量和所述多个根节点的数量确定总节点数;
第四确定子模块,用于根据所述总节点数、所述总子流数和冗余比例,确定第二数值;
第二判断子模块,用于判断所述空闲子流总数与所述第二数值之间的差值是否大于所述总子流数;
第五确定子模块,用于若所述空闲子流总数与所述第二数值之间的差值大于所述总子流数,则根据所述空闲子流总数、所述总节点数、所述总子流数、所述冗余比例和第二调整比例,确定所述根节点下调量。
可选地,所述第五确定子模块具体用于:
根据所述空闲子流总数、所述总节点数、所述总子流数、所述冗余比例和第二调整比例,通过下述模型确定第三数值:
Figure BDA0002007729410000071
其中,所述x2为所述第三数值,所述K为所述空闲子流总数,所述n为所述总节点数,所述S为所述总子流数,所述w1为所述冗余比例,所述w2为所述第二调整比例;
若所述第三数值为整数,则将所述第三数值确定为所述根节点下调量;
若所述第三数值不为整数,将大于所述第三数值且与所述第三数值之间的差值最小的整数确定为所述根节点下调量。
可选地,所述调整模块503包括:
第六确定子模块,用于将所述根节点上调量和所述根节点下调量之间的差值确定为根节点调整量;
第一选择子模块,用于若所述根节点调整量大于0,则根据所述多个子节点中每个子节点的当前上行带宽和所述多个根节点中每个根节点的上行带宽,从所述多个子节点和所述多个根节点中选择N个节点,所述N等于所述根节点调整量和所述多个根节点的总数量的总和;
第一调整子模块,用于将所述多个根节点中未包含在所述N个节点中的根节点的节点类型调整为子节点,并向所述多个根节点中未包含在所述N个节点中的根节点发送第一节点状态调整信息,以使所述多个根节点中未包含在所述N个节点中的根节点根据所述第一节点状态调整信息转换为子节点,所述节点类型用于指示相应地节点为根节点或子节点;
所述第一调整子模块,还用于将所述N个节点中的子节点的节点类型更新为根节点,并向所述N个节点中的子节点发送第二节点状态调整信息,以使所述N个节点中的子节点根据所述第二节点状态调整信息转换为根节点。
可选地,所述第一选择子模块具体用于:
根据所述多个子节点中每个子节点的当前上行带宽和所述多个根节点中每个根节点的当前上行带宽,按照从大到小的顺序对所述多个子节点和所述多个根节点进行排序,得到第一排序结果;
从所述第一排序结果中选择排在前N位的节点,得到所述N个节点。
可选地,所述调整模块还包括:
第二选择子模块,用于若所述根节点调整量小于0,则根据所述多个根节点中每个根节点的当前上行带宽,从所述多个根节点中选择数量为所述根节点调整量的根节点;
第二调整子模块,用于将存储的选择的根节点的节点类型更新为子节点,并向选择的根节点发送第一节点状态调整信息,以使选择的根节点根据所述第一节点状态调整信息转换为子节点。
可选地,所述第二选择子模块具体用于:
根据所述多个根节点中每个根节点的当前上行带宽,按照从小到大的顺序对所述多个根节点进行排序,得到第二排序结果;
从所述第二排序结果中选择排在前N位的根节点,所述N等于所述根节点调整量。
可选地,所述装置还用于:
判断当前已登录的终端是否满足分配条件;
若当前已登录的终端满足分配条件,则将所述当前已登录的终端确定为新增子节点;
当检测到新增子节点的数量达到M时,则根据所述多个子节点中的每个子节点的当前上行带宽,从所述多个子节点中选择一个子节点,将选择的子节点调整为根节点,所述M为正整数。
可选地,所述装置还用于:
当检测到所述多个子节点中退出登录的子节点的数量达到R时,则根据所述多个根节点中每个根节点的当前上行带宽,从所述多个根节点中选择一个根节点,所述R为正整数;
将选择的根节点调整为子节点。
可选地,所述装置还用于:
根据所述多个根节点中每个根节点的当前上行带宽以及所述多个子节点中每个子节点的当前上行带宽,按照从大到小的顺序,对所述多个根节点和所述多个子节点进行排序,得到第三排序结果;
在所述第三排序结果中查找排位大于第四数值的根节点,所述第四数值大于所述多个根节点的总数量;
若查找到排位大于所述第四数值的根节点,则根据所述第三排序结果中排位小于查找到的根节点的排位的子节点,对所述查找到的根节点进行调整。
可选地,所述装置还用于:
接收第一节点发送的第一节点类型,所述第一节点是指调整后的多个根节点和调整后的多个子节点中的任一节点;
获取存储的所述第一节点的第二节点类型;
若所述第一节点的第一节点类型和所述第一节点的第二节点类型不同,则向所述第一节点发送第三节点状态调整信息,以使所述第一节点调整为所述第二节点类型的节点。
第三方面,提供了一种对等网络直播系统中根节点的调整装置,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器执行所述存储器中的可执行指令来执行上述第一方面所述的任一项方法。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述第一方面所述的任一项方法的步骤。
本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例可以通过获取第一时长内的强制订阅子流总数和空闲子流总数来确定根节点上调量和根节点下调量,从而根据根节点上调量和根节点下调量来对P2P直播系统中的多个根节点进行调整。也即,在本申请中不需要CDN服务器根据订阅每个子流的根节点的数量来选择根节点,解决了相关技术中当CDN服务器推送的视频流为FLV格式的视频流时,无法实现根节点的调整的问题,从而有效的提升了CDN服务器推送FLV格式的视频流时的分享率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种P2P直播系统的系统架构图;
图2是本申请实施例提供的一种P2P直播系统中根节点的调整方法的流程图;
图3是本申请实施例提供的另一种P2P直播系统中的根节点的调整方法的流程图;
图4是本申请实施例提供的又一种P2P直播系统中的根节点的调整方法的的流程图;
图5是本申请实施例提供的一种P2P直播系统中的根节点的调整装置的框图;
图6是本申请实施例提供的一种用于P2P直播系统中的根节点的调整的服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在对本申请实施例进行详细的解释说明之前,先对本申请实施例涉及的系统结构进行介绍。
图1是本申请实施例涉及的P2P直播系统的示意图。如图1所示,该P2P直播系统包括CDN服务器10、P2P服务器20、多个根节点30、多个子节点40、重传服务器50。
其中,CDN服务器10可以向多个根节点30发送FLV格式的视频流。每个根节点30可以将接收到的FLV格式的视频流划分为多个子流。每个子节点40可以从任一根节点30中获取多个子流中的至少一个子流。
例如,CDN服务器10向多个根节点30发送了一条FLV格式的视频流,每个根节点30将该视频流划分为15条子流,假设根据根节点的最大上行能力,每个根节点能向子节点40提供的最大子流数为5,也即,子节点40从每个根节点中最多能够获取到的子流的数量为5。在这种情况下,每个子节点40可以从至少三个根节点30中获取得到15条子流。
P2P服务器40中存储有多个根节点30和多个子节点40的节点信息。其中,节点信息包括用于指示各个节点为根节点或子节点的节点类型。并且,P2P服务器40可以通过本申请实施例提供的根节点的调整方法与多个根节点30和多个子节点40进行交互,以对多个根节点30和多个子节点40的节点类型进行调整。
还需要说明的是,P2P服务器40还可以接收终端的登录请求,并向终端发送登录确认消息。之后,P2P服务器40可以向已登录的终端发送存储的节点信息,以便终端可以根据接收到的节点信息进行与其他节点连通。当终端与至少两个节点连通之后,P2P服务器40可以为该终端设置节点类型。也即,P2P服务器40可以将已登录的终端分配为根节点或子节点。
当多个根节点30的数量不够导致多个子节点40无法向多个根节点订阅到子流时,多个子节点40可以从重传服务器50中获取子流。相应地,重传服务器50可以向多个子节点40推送子流。
在P2P直播系统中,根节点的上行带宽将直接影响视频流的分享率。基于此,如何选择根节点是P2P直播系统中的关键问题。而本申请实施例提供的根节点调整方法即可以用于在P2P直播系统中进行根节点的选择。接下来将对本申请实施例中提供的根节点调整方法进行介绍。
图2是本申请实施例提供的一种P2P直播系统中根节点的调整方法。该方法可以应用于图1所示的P2P直播系统中的P2P服务器。如图2所示,该方法包括以下步骤:
步骤201:获取第一时长内的强制订阅子流总数和空闲子流总数。
其中,强制订阅子流总数是指P2P直播系统中多个子节点向重传服务器订阅的子流的总数量,空闲子流总数是指P2P直播系统中多个根节点所提供的子流中未被订阅的子流的总数量。
在本申请实施例中,P2P直播系统中的多个子节点中的每个子节点可以每隔第二时长向P2P服务器上报自身向重传服务器订阅的子流的数量,也即强制订阅数。并且,多个根节点中的每个根节点可以每隔第二时长向P2P服务器上报自身提供的多个子流中未被订阅的子流的数量,也即空闲子流数。其中,第二时长可以小于第一时长。其中,第一时长可以为15秒,第二时长可以为1-6秒中的任一数值,本申请实施例对此不做限定。
P2P服务器可以获取在第一时长内接收到的多个子节点中每个子节点上报的强制订阅数,并获取在第一时长内多个根节点中每个根节点上报的空闲子流数。之后,P2P服务器可以根据获取到的每个子节点发送的强制订阅数确定强制订阅子流总数,并根据获取到的每个根节点发送的空闲子流数确定空闲子流总数。
具体地,对于多个子节点中的每个子节点,P2P服务器可以根据在第一时长内接收到的该子节点上报的多个强制订阅数,计算该子节点的平均强制订阅数。之后,P2P服务器可以计算多个子节点的平均强制订阅数的总和,计算得到的总和即为强制订阅子流总数。同理,对于多个根节点中的每个根节点,P2P服务器可以根据第一时长内接收到的该根节点上报的多个空闲子流数,计算该根节点的平均空闲子流数。之后,P2P服务器可以将多个平均空闲子流数的总和确定为空闲子流总数。
需要说明的是,P2P服务器可以通过定时器进行计时,从而获取第一时长内接收到的多个节点上报的数据。在此基础上,P2P服务器可以每隔第一时长即获取一次强制订阅子流总数和空闲子流总数,进而通过下述步骤202-204来对根节点进行一次调整。换句话说,在本申请实施例中,P2P服务器可以以第一时长为周期,定时触发调整根节点的操作。
可选地,在本申请实施例中,在根据第一时长内接收到的多个子节点的强制订阅数确定强制订阅子流总数之前,P2P服务器还可以根据总子流数和每个根节点数能提供的最大子流数来对多个子节点的强制订阅数进行筛选。
其中,总子流数是指对视频流进行划分得到的子流的总数量,P2P服务器可以根据总子流数和每个根节点所能提供的最大子流数来计算最小根节点数,该最小根节点数是指该P2P直播系统中所需的最少根节点。例如,将一条视频流划分为15个子流,也即,总子流数为15,假设每个根节点做多能够提供5条子流,则最小根节点数为3。
需要说明的是,在根节点数量为最小根节点数时,若子节点未与每个根节点均连通,则必然会存在强制订阅。也即,强制订阅数必然会大于0。对于这类子节点,由于其本身未与根节点连通,因此,可以将此类子节点确定为异常子节点。基于此,在本申请实施例中,P2P服务器在获取到第一时长内每个子节点上报的强制订阅数之后,判断每个子节点连通的根节点的数量是否小于最小根节点数。若存在连通的根节点的数量是否小于最小根节点数的子节点,则P2P服务器可以将该子节点的强制订阅数删除。之后,P2P服务器可以根据剩余的第一时长内接收到的每个子节点的强制订阅数,参考前述介绍的方法来确定强制订阅子流总数。
可选地,在本申请实施例中,在根据第一时长内接收到的多个根节点的空闲子流数确定空闲子流总数之前,P2P服务器可以统计多个根节点中连通的子节点的数量均大于0的根节点的数量,若统计的数量大于最小根节点数,则说明当前可用的根节点数满足要求,此时,P2P服务器可以根据连通的子节点的数量大于0的根节点在第一时长内上报的空闲子流数,参考前述介绍的方法来确定空闲子流总数。
步骤202:根据强制订阅子流总数,确定根节点上调量。
由于强制订阅子流总数是指子节点向重传服务器订阅的子流的总数量,而子节点在无法向其他节点订阅子流的情况下才会向重传服务器订阅子流,因此,根据该强制订阅子流总数可以确定出需要增加的根节点的数量,即根节点上调量。
示例性的,在本申请实施例中,P2P服务器可以判断强制订阅子流总数是否大于总子流数。若强制订阅子流总数大于总子流数,则P2P服务器可以根据强制订阅子流总数、总子流数和第一调整比例,确定根节点上调量。其中,第一调整比例预设的小于1的上调比例。例如,第一调整比例可以为10%、20%或30%等,本申请实施例对此不做限定。
需要说明的是,当强制订阅子流总数大于总子流数时,说明即使当前增加一个根节点,该根节点也有很大概率将不会存在空闲子流,也即,当前需要上调根节点的数量。在这种情况下,P2P服务器可以首先根据强制订阅子流总数、总子流数和第一调整比例确定根节点上调量。
其中,P2P服务器可以首先通过下述模型(1)来确定第一数值:
x1=(Q/S)*w (1)
其中,x1为第一数值,Q为强制订阅子流总数,S为总子流数,w为第一调整比例。
在确定第一数值之后,若第一数值不为整数,则P2P服务器可以将第一数值向上取整,从而得到根节点上调量。例如假设第一数值为1.2,则P2P服务器可以确定根节点上调量为2。当然,若第一数值为整数,则P2P服务器可以直接将第一数值确定为根节点上调量。
可选地,若强制订阅子流总数不大于总子流数,则P2P服务器可以直接将根节点上调量确定为0。
步骤203:根据空闲子流总数,确定根节点下调量。
由于空闲子流总数是指根节点所能提供的子流中未被订阅的子流的总数量,也即,空闲子流总数表明当前根节点的数量可能是过多的,因此,根据该空闲子流总数可以确定出需要减少的根节点的数量,即根节点下调量。
在本申请实施例中,P2P服务器可以根据多个子节点数量和多个根节点的数量确定总节点数;根据总节点数、总子流数和冗余比例,确定第二数值;判断空闲子流总数与第二数值之间的差值是否大于总子流数;若空闲子流总数与第二数值之间的差值大于总子流数,则根据空闲子流总数、总节点数、总子流数、冗余比例和第二调整比例,确定根节点下调量。
其中,P2P服务器可以计算总节点数、总子流数和冗余比例的乘积,并将该乘积确定为第二数值。其中,冗余比例是指在当前所有节点所能提供的子流数之外预留的子流数所占的比例。例如,该冗余比例可以为20%、30%或其他小于1的数值,本申请对此不做限定。第二数值实际上是指在当前所有节点所能提供的子流数之外预留的子流数。
在确定第二数值之后,P2P服务器可以判断空闲子流总数与第二数值之间的差值是否大于总子流数。若空闲子流总数与第二数值之间的差值大于总子流数,则说明除去预留的子流数,仍然剩余较多空闲子流。此时,P2P服务器可以根据该空闲子流总数、总节点数、总子流数、冗余比例和第二调整比例,确定通过下述模型(2)来确定第三数值。其中,第二调整比例是指预设的小于1的下调比例。例如,第二调整比例可以为40%、50%等数值,本申请对此不做限定。
Figure BDA0002007729410000151
其中,x2为第三数值,K为空闲子流总数,n为总节点数,S为总子流数,w1为冗余比例,w2为第二调整比例。
在确定第三数值后,若第三数值为整数,则P2P服务器可以直接将第三数值确定为根节点下调量。若第三数值不为整数,则P2P服务器可以将第三数值向上取整,从而得到根节点下调量。例如,假设第三数值为0.5,则根节点下调量为1。
步骤204:根据根节点上调量和根节点下调量,调整P2P直播系统中的多个根节点。
在确定根节点上调量和根节点下调量之后,P2P服务器可以根据该根节点上调量和根节点下调量确定根节点调整量,进而根据根节点调整量来对多个根节点进行调整。
具体地,P2P服务器可以计算根节点上调量和根节点下调量之间的差值,并将该差值确定为当前所需的根节点调整量。由于根节点上调量有可能大于根节点下调量,也有可能小于根节点下调量,或者,还可能等于根节点下调量,因此,根据根节点上调量和根节点下调量确定的根节点调整量可能大于0,可能小于0,也可能等于0。基于此,本申请实施例在根据该根节点调整量来调整多个根节点时可以分以下三种情况。
第一种情况:若根节点调整量大于0,则多个子节点中每个子节点的当前上行带宽和多个根节点中每个根节点的上行带宽,从多个子节点和多个根节点中选择数量为根节点调整量和多个根节点的调整量的总和的节点;将多个根节点中未包含在选择的节点中的根节点的节点类型调整为子节点,并向多个根节点中未包含在选择的节点中的根节点发送第一节点状态调整信息,以使多个根节点中未包含在选择的节点中的根节点根据第一节点状态调整信息转换为子节点,节点类型用于指示相应地节点为根节点或子节点;将选择的节点中的子节点的节点类型更新为根节点,并向选择的节点中的子节点发送第一节点状态调整信息,以使选择的节点中的子节点根据第一节点状态调整信息转换为根节点。
其中,根节点调整量大于0说明根节点上调量大于根节点下调量,也即,当前需要增加根节点数量。在这种情况下,P2P服务器可以根据多个根节点中每个根节点的当前上行带宽和多个子节点中每个子节点的当前上行带宽,按照从大到小的顺序,对所述多个根节点和所述多个子节点进行排序,得到第一排序结果。之后,P2P服务器可以从第一排序结果中获取排在前N位的节点。其中,N等于多个根节点的总数量和根节点调整量的总和。
由于多个子节点中可能存在当前上行带宽大于根节点的当前上行带宽的子节点,因此,在选择N个节点之后,选择的N个节点中有可能包含有子节点。而多个根节点中的某些根节点也有可能不包含在这N个节点中。在这种情况下,对于多个根节点中未包含在这N个节点中的根节点,P2P服务器可以将这些根节点调整为子节点。具体地,P2P服务器可以将存储的这些根节点的节点类型更为子节点,同时向这些根节点发送第一节点状态调整信息,以便这些根节点在接收到第一节点状态调整信息之后,可以根据该第一节点状态调整信息来将自身的节点类型切换为子节点。
对于选择的N个节点中包含的子节点,P2P服务器可以将存储的这些子节点的节点类型更新为根节点,并向这些子节点发送第二节点状态调整信息,以便这些子节点在接收到第二节点状态调整信息之后,可以根据该第二节点状态调整信息将自身的节点类型切换为根节点。
对于选择的N个节点中包含的根节点,P2P服务器可以保持这些根节点的状态不变,也即,不对这些根节点进行调整。
需要说明的是,第一节点状态调整信息和第二节点状态调整信息可以相同,在这种情况下,第一节点状态调整信息和第二节点状态调整信息均用于触发相应节点对自身的节点类型进行切换。可选地,第一节点状态调整信息和第二节点状态调整信息也可以不同,在这种情况下,第一节点状态调整信息用于指示将节点的节点类型设置为子节点,第二节点状态调整信息用于指示将节点的节点类型设置为根节点。
另外,在本申请实施例中,当根节点切换为子节点之后,该节点可以向之前向其订阅子流的子节点发送退订消息,并断开与CDN服务器之间的连接。当子节点切换为根节点之后,该节点可以建立与CDN服务器之间的连接,以从CDN服务器中获取FLV格式的视频流。之后,该节点可以接受其他子节点的订阅请求,以向其他子节点推送子流。
还需要说明的是,在本申请实施例中,在对根节点和子节点的节点类型进行更新之后,P2P服务器还可以向CDN服务器发送更新后的各节点的节点类型,以便CDN服务器根据更新后的各节点的节点类型,与各节点中的根节点建立连接,并向与之建立连接的根节点推送FLV视频流。
第二种情况:若根节点调整量小于0,则根据多个根节点中每个根节点的当前上行带宽,从多个根节点中选择数量为根节点调整量的根节点;将存储的选择的根节点的节点类型更新为子节点,并向选择的根节点发送第一节点状态调整信息,以使选择的根节点根据第一节点状态调整信息转换为子节点。
其中,根节点调整量小于0说明根节点上调量大于根节点下调量,也即,当前需要减少根节点的数量。在这种情况下,P2P服务器可以根据多个根节点中每个根节点的当前上行带宽,按照从小到大的顺序对多个根节点进行排序,得到第二排序结果。之后,P2P服务器可以从第二排序结果中选择排在前N位的根节点。此时,N等于根节点调整量。
由于第二排序结果是根据根节点的当前上行带宽按照从小到大的顺序排序得到的,因此,在从多个根节点中减少N个根节点时,P2P服务器可以从第二排序结果中选择的排在前N位的当前上行带宽相对较小的N个根节点进行调整。
在选择得到这N个根节点之后,P2P服务器可以将当前存储的这N个根节点的节点类型更改为子节点,并向这N个根节点中的每个根节点发送第一节点状态调整信息,以便这N个根节点在接收到第一节点状态调整信息之后,可以根据该第一节点状态调整信息将自身的节点状态切换为子节点。
需要说明的是,这N个根节点将自身节点状态切换为子节点之后,每个根节点的具体操作可以参考前述第一种情况中的相关实现方式,本申请实施例在此不再赘述。
另外,在该种情况中,在对节点进行调整之后,P2P服务器同样可以向CDN服务器发送更新后的各节点的节点类型,以便CDN服务器根据更新后的各节点的节点类型向相应地根节点推送视频流。具体的实现方式可以参考前述第一种情况中的相关实现方式,本申请实施例在此不再赘述。
第三种情况:若根节点调整量等于0,则不对多个根节点进行调整。
其中,若根节点调整量等于0,则说明在第一时长内,根节点上调量和根节点下调量持平,此时,P2P服务器可以不对多个根节点进行调整。或者,在一种可能的实现方式中,P2P服务器也可以参考下文中图4所示的实施例中的方法,根据多个根节点中每个根节点的当前上行带宽和多个子节点中每个子节点的当前上行带宽,重新优选与当前的根节点的数量相同的多个根节点。
需要说明的是,在本申请实施例中,P2P服务器也可以根据强制订阅子流总数和空闲子流总数中的任一个来对根节点进行调整。也即,P2P服务器可以单独根据强制订阅子流总数确定根节点上调量,之后,即根据确定的根节点上调量来上调根节点的数量。或者,P2P服务器可以单独根据空闲子流总数确定根节点下调量,之后,根据确定的根节点下调量来下调根节点的数量。当然,在一种可能的实现方式中,P2P服务器在通过上述步骤201-203确定根节点上调量和根节点下调量之后,也可以不计算根节点上调量和根节点下调量之间的差值,而是根据根节点上调量上调根节点的数量,之后,再根据根节点的下调量来下调根节点的数量。或者,先根据根节点下调量下调根节点的数量,然后再根节点上调量上调根节点的数量。其中,根据根节点上调量来上调根节点的数量的具体实现方式可以参考前述第一种情况下根据根节点调整量来调整的实现方式,而根据根节点下调量来下调根节点的数量的实现方式则可以参考前述第二种情况中根据根节点调整量来调整根节点的数量的实现方式,本申请实施例在此不再赘述。
在本申请实施例中,P2P服务器通过获取第一时长内的强制订阅子流总数和空闲子流总数来确定根节点上调量和根节点下调量,从而根据根节点上调量和根节点下调量来对P2P直播系统中的多个根节点进行调整。也即,在本申请中不需要CDN服务器根据订阅每个子流的根节点的数量来选择根节点,解决了相关技术中当CDN服务器推送的视频流为FLV格式的视频流时,无法实现根节点的调整的问题,从而有效的提升了CDN服务器推送FLV格式的视频流时的分享率。
另外,由于强制订阅子流总数和空闲子流总数是由各节点定时上报的,可以动态的反应各节点的用户状态,因此,根据该强制订阅子流总数和空闲子流总数来对根节点进行调整相当于是动态的根据用户状态来调整根节点的数量。这样,可以使得根节点的数量的调整更为灵活,且使得调整后的根节点的数量更符合用户需求,从而可以有效的提升该P2P直播系统的分享率。
上述实施例主要介绍了P2P服务器根据强制订阅子流总数和空闲子流总数来确定根节点调整量,进而根据该根节点调整量来对根节点的数量进行调整的过程。其中,当根节点的调整量为0或者是当前时刻未到达P2P服务器根据上述方法来调整根节点的触发时刻时,P2P服务器还可以根据图3中介绍的调整方法来对当前的多个根节点进行调整。
图3是本申请实施例提供的另一种P2P直播系统中根节点的调整方法的流程图。该方法可以应用于图1所示的P2P直播系统中的P2P服务器中。如图3所示,该方法包括以下步骤:
步骤301:根据多个根节点中每个根节点的当前上行带宽以及多个子节点中每个子节点的当前上行带宽,按照从大到小的顺序,对多个根节点和多个子节点进行排序,得到第三排序结果。
由于P2P直播系统中的多个根节点和多个子节点的上行带宽会实时变化,而上行带宽的变化会直接影响分享率,因此,P2P服务器可以根据每个节点的当前上行带宽来对当前的多个根节点和多个子节点进行调整。
其中,对于P2P直播系统中当前的多个根节点和多个子节点,P2P服务器可以根据该多个根节点和多个子节点的当前上行带宽的大小,按照从大到小的顺序对该多个根节点和多个子节点进行排序,从而得到第三排序结果。
步骤302:在第三排序结果中查找排位大于第四数值的根节点,第四数值大于多个根节点的总数量。
在得到第三排序结果之后,P2P服务器可以从第三排序结果中查找大于第四数值的根节点。其中,第四数值是根据总节点数、多个根节点的数量以及预设的个数容忍比例确定得到。
具体地,第四数值可以通过下述模型(3)确定得到:
Figure BDA0002007729410000191
其中,x3是指第四数值,d是指根节点的数量,n是指总节点数,w3是指个数容忍比例。其中,w3大于0且小于1。
步骤303:若查找到排位大于第四数值的根节点,则根据第三排序结果中排位小于查找到的根节点的排位的子节点,对查找到的根节点进行调整。
由上述确定第四数值的模型可以看出,第四数值是由根节点在所有节点中所占的比例加了一个容忍比例之后,再乘以总节点数确定得到的,这样,第四数值将大于根节点的数量。
基于此,若在第三排序结果中存在排位大于第四数值的根节点,则说明多个子节点中必然存在当前上行带宽大于这些查找到的根节点的子节点。在这种情况下,P2P服务器则可以通过这些上行带宽大于查找到的根节点的子节点,来替换查找到的根节点,从而保证P2P直播系统中的调整后的多个根节点的上行带宽相对调整后的子节点更大,以此来提升分享率。
具体地,P2P服务器可以将查找到的根节点按照当前上行带宽从小到大的顺序依次排列,得到第四排序结果。之后,P2P服务器可以确定第四排序结果中排在第一位的根节点,为了便于描述,将之称为第一根节点。之后,P2P服务器可以将第三排序结果中排在第一根节点之前的所有子节点按照当前上行带宽从小到大的顺序进行排序,得到第五排序结果。
在得到第四排序结果和第五排序结果之后,P2P服务器可以根据第四排序结果排在第一位的根节点的当前上行带宽确定第五数值。其中,第五数值可以通过下述模型(4)确定得到:
Ti=Ui*(1+w4) (4)
其中,Ui是指第四排序结果中排在第i位的根节点的当前上行带宽,Ti是指Ui对应的第五数值,w4是指预设的带宽容忍比例。其中,w4大于0且小于1。
由第五数值的确定模型可以看出,第五数值是在该根节点的当前上行带宽的基础上考虑了一定容忍比例之后确定的带宽,其大于该根节点的当前上行带宽。在此基础上,P2P服务器可以将第五排序结果中排在第一位的子节点的当前上行带宽与该第五数值进行比较,若该子节点的当前上行带宽不小于该第五数值,则P2P服务器可以将第五排序结果中排在第一位的子节点调整为根节点,而将第四排序结果中排在第一位的根节点调整为子节点。接下来,P2P服务器可以按照前述方法来对比第四排序结果中排在第二位的根节点的当前上行带宽和第五排序结果中排在第二位的子节点的当前上行带宽,以此类推。
当然,若第五排序结果中排在第一位的子节点的当前上行带宽小于该第五数值,则说明第五排序结果中排在第一位的子节点的当前上行带宽太小,不能用于替换该根节点,此时,P2P服务器可以将第四排序结果中排在第一位的根节点的当前上行带宽按照上述方法与第五排序结果中排在第二位的子节点的当前上行带宽进行比较,以此类推。
接下来,本申请实施例以一个具体示例来对上述过程进行说明。
假设P2P服务器对查找到的根节点进行排序得到的第四排序结果为(a1,a2,a3,a4),对当前上行带宽大于a1的子节点进行排序得到的第五排序结果为(b1,b2,b3,b4)。P2P服务器可以首先根据a1的当前上行带宽U1通过上述模型(4)确定得到对应的第五数值T1。之后,P2P服务器可以判断b1的当前上行带宽u1是否小于T1。若u1不小于T1,则P2P服务器可以将b1调整为根节点,而将a1调整为子节点。也即,相当于是将a1替换为b1。接下来,P2P服务器可以按照上述方法来处理a2和b2
当然,若u1小于T1,则P2P服务器接下来可以判断b2的当前上行带宽u2是否小于T1。若u2不小于T1,则P2P服务器可以将b2调整为根节点,而将a1调整为子节点。也即,相当于是将a1替换为b2。接下来,P2P服务器可以根据a2和b3的当前上行带宽来确定b3是否能替换a2。当然,若u2依然小于T1,则P2P服务器将继续判断b3的当前上行带宽u3是否小于T1,以此类推。若最终b4的当前上行带宽u4依然小于T1,则说明第五排序结果中的所有子节点均不符合替换条件,此时,P2P服务器可以不对第四排序结果中的根节点进行调整。
需要说明的是,在本申请实施例中,P2P服务器将根节点调整为子节点,将子节点调整为根节点的实现方式可以参考前述图2所示实施例中的相关实现方式,本申请在此不再赘述。
在本申请实施例中,P2P服务器可以根据多个根节点和多个子节点的当前上行带宽,对多个根节点中当前上行带宽不满足条件的根节点进行替换,从而保证调整后的根节点的上行带宽均大于调整后的子节点的上行带宽,以此来提高P2P直播系统的分享率。
图2和图3所示实施例中分别介绍了如何增减根节点的数量以及如何根据上行带宽来调整根节点和子节点的实现过程。在通过上述方法来对根节点进行调整的过程,考虑到还可能存在新登录P2P服务器的终端,P2P服务器需要为这些终端分配节点类型。若将这些终端均作为子节点,则该P2P直播系统中的子节点的数量将增加,在这种情况下,根节点的节点数量也可能对应的需要调整。基于此,本申请实施例还可以通过图4所示的调整方法来对根节点的数量进行调整。
图4是本申请实施例提供的又一种P2P直播系统中的根节点的调整方法的流程图。该方法可以应用于图1所示的P2P直播系统中的P2P服务器中。如图3所示,该方法包括以下步骤:
步骤401:判断当前已登录的终端是否满足分配条件。
在本申请实施例中,P2P服务器可以实时接受终端的登录请求,从而使得终端登录到该P2P服务器。每当有一个终端登录到P2P服务器时,该终端可以向P2P服务器请求其他节点的节点信息,在获取到其他节点的节点信息之后,该终端可以根据获取到的节点信息进行P2P打洞,以与其他节点连通,并向P2P服务器上报连通状态。该P2P服务器可以根据该连通状态来判断该终端是否满足分配条件。其中,分配条件是指终端连通的其他节点的数量大于预设阈值。
步骤402:若当前已登录的终端满足分配条件,则将当前已登录的终端确定为新增子节点。
需要说明的是,终端只有与预设阈值的其他节点打通才能与其他节点进行交互。也即,该终端满足分配条件才能作为该P2P直播系统中的子节点。基于此,若登录的终端满足分配条件,则P2P服务器可以为该终端的节点类型设置为用于指示该终端为子节点的第一节点类型,之后,P2P服务器可以将该终端的节点类型进行存储,并向该终端发送节点状态设置信息,以便终端根据该节点状态设置信息将自身切换为子节点。
在为该终端设置节点类型之后,P2P服务器可以将该终端作为新增子节点,并将新增子节点的计数加1。其中,新增子节点的计数的初始值为0。每确定一个新增子节点,P2P服务器可以根据新增子节点的计数来判断到当前时刻为止新增子节点的计数是否已达到M。其中,M为大于0的整数。例如,M可以为5。
步骤403:当检测到新增子节点的数量达到M时,则根据多个子节点中的每个子节点的当前上行带宽,从多个子节点中选择一个子节点,将选择的子节点调整为根节点,M为正整数。
当到当前时刻为止新增子节点的数量已经达到M时,P2P服务器可以从除这些新增子节点之外该P2P直播系统中已有的多个子节点中选择一个子节点,并将选择的子节点调整为根节点。其中,选择子节点的依据依然是各个子节点的当前上行带宽,具体的选择方式以及将选择的子节点调整为根节点的实现方式可以参考前述实施例的相关实现方式,本申请实施例在此不再赘述。
可选地,当检测到新增子节点的数量已经达到M时,P2P服务器也可以从包括这些新增子节点在内的所有子节点中选择一个子节点,并将选择的子节点调整为根节点。或者,P2P服务器也可以参照前述步骤204中第一种情况的处理方法,将当前P2P直播系统中所有的节点按照当前上行带宽从大到小的顺序进行排序,并从中选择排在前N位的节点作为根节点。此时,N等于之前已有的根节点的数量加1。
需要说明的是,在根据新增子节点的数量增加根节点之后,P2P服务器将新增子节点的数量置为0,并重新开始对新增子节点的数量进行计数。当计数再次达到M时,继续按照本申请实施例提供的方法来上调根节点的数量。
上述实施例主要介绍了根据新增子节点数来上调根节点的数量的实现方式,可选地,在直播过程中,该P2P直播系统中的子节点随时都可能下线,也即推出该直播系统。当子节点退出该P2P直播系统后,该P2P直播系统中的根节点的数量可能会冗余。此时,P2P服务器还可以根据退出的子节点的数量来下调根节点的数量。
具体地,P2P服务器可以检测从该P2P直播系统中的多个子节点中退出登录的子节点的数量是否达到R;当检测到多个子节点中退出登录的子节点的数量达到R时,则根据多个根节点中每个根节点的当前上行带宽,从多个根节点中选择一个根节点,R为正整数;将选择的根节点调整为子节点。
其中,P2P服务器可以从第一时刻起,每检测到一个子节点退出登录,则将退出登录的子节点的计数加1,当退出登录的子节点的计数达到R时,则P2P服务器可以减少一个根节点。其中,P2P服务器可以根据多个根节点的当前上行带宽,从多个根节点中选择一个当前上行带宽最小的根节点,将选择的根节点调整为子节点。其中,将选择的根节点调整为子节点的实现方式可以参考前述实施例中的相关实现方式,本申请实施例在此不再赘述。
还需要说明的是,在本申请实施例中,P2P服务器也可以根据一定时长内新增子节点数和退出登录的子节点数的差值来确定是否增加或减少根节点的数量。具体实现方式与前述实施例中综合根节点上调量和根节点下调量的原理类型,本申请实施例在此不再赘述。
在本申请实施例中,P2P服务器可以根据新增子节点的数量和/或退出登录的子节点的数量来对根节点的数量进行调整,也即,P2P服务器可以动态的根据用户数量来调整根节点数量以适应实际情况,调整方式更为灵活,并且,可以在有效的提升分享率的同时保证较好的用户体验。
在本申请实施例中,在通过前述几种方法对节点进行调整时,P2P服务器向节点发送节点状态调整信息或者是节点状态设置信息之后,有可能会由于网络质量等因素导致节点未能接收到,或者是,节点在接收到上述信息之后可能会由于其他因素而未能完成切换。在这种情况下,为了保证节点本身的节点状态与P2P服务器中存储的节点的节点类型一致,各节点还可以定时向P2P服务器上报自身当前的节点状态。P2P服务器在接收到各节点自身上报的节点状态之后,P2P服务器可以根据存储的节点类型对节点当前的节点状态进行校验。
示例性的,P2P服务器可以接收第一节点发送的第一节点类型,第一节点是指调整后的多个根节点和调整后的多个子节点中的任一节点;获取存储的第一节点的第二节点类型;若第一节点的第一节点类型和第一节点的第二节点类型不同,则向第一节点发送第三节点状态调整信息,以使第一节点调整为第二节点类型的节点。
其中,P2P服务器可以接收第一节点发送的第一节点类型,该第一节点类型即为该第一节点上报的自身当前的真实节点类型。P2P服务器可以将第一节点类型与存储的第一节点的节点类型也即第二节点类型进行比较,若二者不一致,则P2P服务器可以向第一节点发送第三节点状态调整信息,以便第一节点可以根据该第三节点状态调整信息将自身切换为二节点类型的节点。其中,第一节点类型和第二节点类型可以用于指示节点为根节点或子节点。
需要说明的是,第三节点状态调整信息可以是一个仅仅用于触发第一节点进行节点状态切换的触发信号。或者,第三节点状态调整信息中可以携带有第二节点类型,这样,第一节点可以根据其中携带的第二节点类型来进行切换。
接下来,对本申请实施例提供的P2P直播系统中根节点的调整装置进行介绍。
参见图5,本申请实施例提供了一种P2P直播系统中根节点的调整装置500,该装置500包括:
获取模块501,用于获取第一时长内的强制订阅子流总数和空闲子流总数,强制订阅子流总数是指对等网络P2P直播系统中多个子节点向重传服务器订阅的子流的总数量,空闲子流总数是指P2P直播系统中多个根节点所提供的子流中未被订阅的子流的总数量;
确定模块502,用于根据强制订阅子流总数,确定根节点上调量,并根据空闲子流总数,确定根节点下调量;
调整模块503,用于根据根节点上调量和根节点下调量,调整P2P直播系统中的多个根节点。
可选地,获取模块501包括:
第一获取子模块,用于获取多个子节点中每个子节点在第一时长内发送的强制订阅数,并获取多个根节点中每个根节点在第一时长内发送的空闲子流数;
第一确定子模块,用于根据获取到的每个子节点发送的强制订阅数确定强制订阅子流总数,并根据获取到的每个根节点发送的空闲子流数确定空闲子流总数。
可选地,确定模块502包括:
第一判断子模块,用于判断强制订阅子流总数是否大于总子流数,总子流数是指对视频流划分得到的子流的总数量;
第二确定子模块,用于若强制订阅子流总数大于总子流数,则根据强制订阅子流总数、总子流数和第一调整比例,确定根节点上调量。
可选地,第二确定子模块具体用于:
根据强制订阅子流总数、总子流数和第一调整比例,通过下述模型确定第一数值:
x1=(Q/S)*w;
其中,x1为第一数值,Q为强制订阅子流总数,S为总子流数,w为第一调整比例;
若第一数值为整数,将第一数值确定为根节点上调量;
若第一数值不为整数,将大于第一数值且与第一数值之间的差值最小的整数确定为根节点上调量。
可选地,确定模块502包括:
第三确定子模块,用于根据多个子节点的数量和多个根节点的数量确定总节点数;
第四确定子模块,用于根据总节点数、总子流数和冗余比例,确定第二数值;
第二判断子模块,用于判断空闲子流总数与第二数值之间的差值是否大于总子流数;
第五确定子模块,用于若空闲子流总数与第二数值之间的差值大于总子流数,则根据空闲子流总数、总节点数、总子流数、冗余比例和第二调整比例,确定根节点下调量。
可选地,第五确定子模块具体用于:
根据空闲子流总数、总节点数、总子流数、冗余比例和第二调整比例,通过下述模型确定第三数值:
Figure BDA0002007729410000261
其中,x2为第三数值,K为空闲子流总数,n为总节点数,S为总子流数,w1为冗余比例,w2为第二调整比例;
若第三数值为整数,则将第三数值确定为根节点下调量;
若第三数值不为整数,将大于第三数值且与第三数值之间的差值最小的整数确定为根节点下调量。
可选地,调整模块503包括:
第六确定子模块,用于将根节点上调量和根节点下调量之间的差值确定为根节点调整量;
第一选择子模块,用于若根节点调整量大于0,则根据多个子节点中每个子节点的当前上行带宽和多个根节点中每个根节点的上行带宽,从多个子节点和多个根节点中选择N个节点,N等于根节点调整量和多个根节点的总数量的总和;
第一调整子模块,用于将多个根节点中未包含在N个节点中的根节点的节点类型调整为子节点,并向多个根节点中未包含在N个节点中的根节点发送第一节点状态调整信息,以使多个根节点中未包含在N个节点中的根节点根据第一节点状态调整信息转换为子节点,节点类型用于指示相应地节点为根节点或子节点;
第一调整子模块,还用于将N个节点中的子节点的节点类型更新为根节点,并向N个节点中的子节点发送第二节点状态调整信息,以使N个节点中的子节点根据第二节点状态调整信息转换为根节点。
可选地,第一选择子模块具体用于:
根据多个子节点中每个子节点的当前上行带宽和多个根节点中每个根节点的当前上行带宽,按照从大到小的顺序对多个子节点和多个根节点进行排序,得到第一排序结果;
从第一排序结果中选择排在前N位的节点,得到N个节点。
可选地,调整模块503还包括:
第二选择子模块,用于若根节点调整量小于0,则根据多个根节点中每个根节点的当前上行带宽,从多个根节点中选择数量为根节点调整量的根节点;
第二调整子模块,用于将存储的选择的根节点的节点类型更新为子节点,并向选择的根节点发送第一节点状态调整信息,以使选择的根节点根据第一节点状态调整信息转换为子节点。
可选地,第二选择子模块具体用于:
根据多个根节点中每个根节点的当前上行带宽,按照从小到大的顺序对多个根节点进行排序,得到第二排序结果;
从第二排序结果中选择排在前N位的根节点,N等于根节点调整量。
可选地,装置还用于:
判断当前已登录的终端是否满足分配条件;
若当前已登录的终端满足分配条件,则将当前已登录的终端确定为新增子节点;
当检测到新增子节点的数量达到M时,则根据多个子节点中的每个子节点的当前上行带宽,从多个子节点中选择一个子节点,将选择的子节点调整为根节点,M为正整数。
可选地,该装置500还用于:
当检测到多个子节点中退出登录的子节点的数量达到R时,则根据多个根节点中每个根节点的当前上行带宽,从多个根节点中选择一个根节点,R为正整数;
将选择的根节点调整为子节点。
可选地,该装置500还用于:
根据多个根节点中每个根节点的当前上行带宽以及多个子节点中每个子节点的当前上行带宽,按照从大到小的顺序,对多个根节点和多个子节点进行排序,得到第三排序结果;
在第三排序结果中查找排位大于第四数值的根节点,第四数值大于多个根节点的总数量;
若查找到排位大于第四数值的根节点,则根据第三排序结果中排位小于查找到的根节点的排位的子节点,对查找到的根节点进行调整。
可选地,该装置500还用于:
接收第一节点发送的第一节点类型,第一节点是指调整后的多个根节点和调整后的多个子节点中的任一节点;
获取存储的第一节点的第二节点类型;
若第一节点的第一节点类型和第一节点的第二节点类型不同,则向第一节点发送第三节点状态调整信息,以使第一节点调整为第二节点类型的节点。
综上所述,本申请实施例可以通过获取第一时长内的强制订阅子流总数和空闲子流总数来确定根节点上调量和根节点下调量,从而根据根节点上调量和根节点下调量来对P2P直播系统中的多个根节点进行调整。也即,在本申请中不需要CDN服务器根据订阅每个子流的根节点的数量来选择根节点,解决了相关技术中当CDN服务器推送的视频流为FLV格式的视频流时,无法实现根节点的调整的问题,从而有效的提升了CDN服务器推送FLV格式的视频流时的分享率。
需要说明的是:上述实施例提供的P2P直播系统中根节点的调整装置在调整根节点时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的P2P直播系统中根节点的调整装置与P2P直播系统中根节点的调整方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是根据一示例性实施例示出的一种P2P直播系统中根节点的调整装置的服务器结构示意图。上述图2-4所示的实施例中的P2P服务器的功能即可以通过图6中所示的服务器来实现。该服务器可以是后台服务器集群中的服务器。
具体来讲:
服务器600包括中央处理单元(CPU)601、包括随机存取存储器(RAM)602和只读存储器(ROM)603的系统存储器604,以及连接系统存储器604和中央处理单元601的系统总线605。服务器600还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)606,和用于存储操作系统613、应用程序614和其他程序模块615的大容量存储设备607。
基本输入/输出系统606包括有用于显示信息的显示器608和用于用户输入信息的诸如鼠标、键盘之类的输入设备609。其中显示器608和输入设备609都通过连接到系统总线605的输入输出控制器610连接到中央处理单元601。基本输入/输出系统606还可以包括输入输出控制器610以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器610还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备607通过连接到系统总线605的大容量存储控制器(未示出)连接到中央处理单元601。大容量存储设备607及其相关联的计算机可读介质为服务器600提供非易失性存储。也就是说,大容量存储设备607可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器604和大容量存储设备607可以统称为存储器。
根据本申请的各种实施例,服务器600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器600可以通过连接在系统总线605上的网络接口单元611连接到网络612,或者说,也可以使用网络接口单元611来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。所述一个或者一个以上程序包含用于进行本申请实施例提供的P2P直播系统中根节点的调整方法的指令。
本申请实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得服务器能够执行上述图2-4所示实施例提供的P2P直播系统中根节点的调整方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述图2-4所示实施例提供的P2P直播系统中根节点的调整方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (17)

1.一种对等网络直播系统中根节点的调整方法,其特征在于,所述方法包括:
获取第一时长内的强制订阅子流总数和空闲子流总数,所述强制订阅子流总数是指对等网络P2P直播系统中多个子节点向重传服务器订阅的子流的总数量,所述空闲子流总数是指所述P2P直播系统中多个根节点所提供的子流中未被订阅的子流的总数量;
根据所述强制订阅子流总数,确定根节点上调量,并根据所述空闲子流总数,确定根节点下调量;
根据所述根节点上调量和所述根节点下调量,调整所述P2P直播系统中的多个根节点。
2.根据权利要求1所述的方法,其特征在于,所述获取强制订阅子流总数和空闲子流总数,包括:
获取所述多个子节点中每个子节点在所述第一时长内发送的强制订阅数,并获取所述多个根节点中每个根节点在所述第一时长内发送的空闲子流数;
根据获取到的每个子节点发送的强制订阅数确定所述强制订阅子流总数,并根据获取到的每个根节点发送的空闲子流数确定所述空闲子流总数。
3.根据权利要求1所述的方法,其特征在于,所述根据所述强制订阅子流总数,确定根节点上调量,包括:
判断所述强制订阅子流总数是否大于总子流数,所述总子流数是指对视频流划分得到的子流的总数量;
若所述强制订阅子流总数大于所述总子流数,则根据所述强制订阅子流总数、所述总子流数和第一调整比例,确定所述根节点上调量。
4.根据权利要求3所述的方法,其特征在于,所述根据所述强制订阅子流总数、所述总子流数和第一调整比例,确定所述根节点上调量,包括:
根据所述强制订阅子流总数、所述总子流数和所述第一调整比例,通过下述模型确定第一数值:
x1=(Q/S)*w;
其中,所述x1为所述第一数值,所述Q为所述强制订阅子流总数,所述S为所述总子流数,所述w为所述第一调整比例;
若所述第一数值为整数,将所述第一数值确定为所述根节点上调量;
若所述第一数值不为整数,将大于所述第一数值且与所述第一数值之间的差值最小的整数确定为所述根节点上调量。
5.根据权利要求1所述的方法,其特征在于,所述根据所述空闲子流总数,确定根节点下调量,包括:
根据所述多个子节点的数量和所述多个根节点的数量确定总节点数;
根据所述总节点数、总子流数和冗余比例,确定第二数值,所述总子流数是指对视频流划分得到的子流的总数量;
判断所述空闲子流总数与所述第二数值之间的差值是否大于所述总子流数;
若所述空闲子流总数与所述第二数值之间的差值大于所述总子流数,则根据所述空闲子流总数、所述总节点数、所述总子流数、所述冗余比例和第二调整比例,确定所述根节点下调量。
6.根据权利要求5所述的方法,其特征在于,所述根据所述空闲子流总数、所述总节点数、所述总子流数、所述冗余比例和第二调整比例,确定所述根节点下调量,包括:
根据所述空闲子流总数、所述总节点数、所述总子流数、所述冗余比例和第二调整比例,通过下述模型确定第三数值:
Figure FDA0003005993730000021
其中,所述x2为所述第三数值,所述K为所述空闲子流总数,所述n为所述总节点数,所述S为所述总子流数,所述w1为所述冗余比例,所述w2为所述第二调整比例;
若所述第三数值为整数,则将所述第三数值确定为所述根节点下调量;
若所述第三数值不为整数,将大于所述第三数值且与所述第三数值之间的差值最小的整数确定为所述根节点下调量。
7.根据权利要求1-6任一所述的方法,其特征在于,所述根据所述根节点上调量和所述根节点下调量,调整所述P2P直播系统中的多个根节点,包括:
将所述根节点上调量和所述根节点下调量之间的差值确定为根节点调整量;
若所述根节点调整量大于0,则根据所述多个子节点中每个子节点的当前上行带宽和所述多个根节点中每个根节点的上行带宽,从所述多个子节点和所述多个根节点中选择N个节点,所述N等于所述根节点调整量和所述多个根节点的总数量的总和;
将所述多个根节点中未包含在所述N个节点中的根节点的节点类型调整为子节点,并向所述多个根节点中未包含在所述N个节点中的根节点发送第一节点状态调整信息,以使所述多个根节点中未包含在所述N个节点中的根节点根据所述第一节点状态调整信息转换为子节点,所述节点类型用于指示相应地节点为根节点或子节点;
将所述N个节点中的子节点的节点类型更新为根节点,并向所述N个节点中的子节点发送第二节点状态调整信息,以使所述N个节点中的子节点根据所述第二节点状态调整信息转换为根节点。
8.根据权利要求7所述的方法,其特征在于,所述根据所述多个子节点中每个子节点的当前上行带宽和所述多个根节点中每个根节点的上行带宽,从所述多个子节点和所述多个根节点中选择N个节点,包括:
根据所述多个子节点中每个子节点的当前上行带宽和所述多个根节点中每个根节点的当前上行带宽,按照从大到小的顺序对所述多个子节点和所述多个根节点进行排序,得到第一排序结果;
从所述第一排序结果中选择排在前N位的节点,得到所述N个节点。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
若所述根节点调整量小于0,则根据所述多个根节点中每个根节点的当前上行带宽,从所述多个根节点中选择数量为所述根节点调整量的根节点;
将存储的选择的根节点的节点类型更新为子节点,并向选择的根节点发送第一节点状态调整信息,以使选择的根节点根据所述第一节点状态调整信息转换为子节点。
10.根据权利要求9所述的方法,其特征在于,所述根据所述多个根节点中每个根节点的当前上行带宽,从所述多个根节点中选择数量为所述根节点调整量的根节点,包括:
根据所述多个根节点中每个根节点的当前上行带宽,按照从小到大的顺序对所述多个根节点进行排序,得到第二排序结果;
从所述第二排序结果中选择排在前N位的根节点,所述N等于所述根节点调整量。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
判断当前已登录的终端是否满足分配条件;
若当前已登录的终端满足分配条件,则将所述当前已登录的终端确定为新增子节点;
当检测到新增子节点的数量达到M时,则根据所述多个子节点中的每个子节点的当前上行带宽,从所述多个子节点中选择一个子节点,将选择的子节点调整为根节点,所述M为正整数。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当检测到所述多个子节点中退出登录的子节点的数量达到R时,则根据所述多个根节点中每个根节点的当前上行带宽,从所述多个根节点中选择一个根节点,所述R为正整数;
将选择的根节点调整为子节点。
13.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述多个根节点中每个根节点的当前上行带宽以及所述多个子节点中每个子节点的当前上行带宽,按照从大到小的顺序,对所述多个根节点和所述多个子节点进行排序,得到第三排序结果;
在所述第三排序结果中查找排位大于第四数值的根节点,所述第四数值大于所述多个根节点的总数量;
若查找到排位大于所述第四数值的根节点,则根据所述第三排序结果中排位小于查找到的根节点的排位的子节点,对所述查找到的根节点进行调整。
14.根据权利要求1所述的方法,其特征在于,所述调整所述P2P直播系统中的多个根节点之后还包括:
接收第一节点发送的第一节点类型,所述第一节点是指调整后的多个根节点和调整后的多个子节点中的任一节点;
获取存储的所述第一节点的第二节点类型;
若所述第一节点的第一节点类型和所述第一节点的第二节点类型不同,则向所述第一节点发送第三节点状态调整信息,以使所述第一节点调整为所述第二节点类型的节点。
15.一种对等网络直播系统中根节点的调整装置,其特征在于,所述装置包括:
获取模块,用于获取第一时长内的强制订阅子流总数和空闲子流总数,所述强制订阅子流总数是指对等网络P2P直播系统中多个子节点向重传服务器订阅的子流的总数量,所述空闲子流总数是指所述P2P直播系统中多个根节点所提供的子流中未被订阅的子流的总数量;
确定模块,用于根据所述强制订阅子流总数,确定根节点上调量,并根据所述空闲子流总数,确定根节点下调量;
调整模块,用于根据所述根节点上调量和所述根节点下调量,调整所述P2P直播系统中的多个根节点。
16.一种对等网络直播系统中根节点的调整装置,其特征在于,所述装置包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器执行所述存储器中的可执行指令来执行权利要求1-14任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现权利要求1-14任一项所述的方法的步骤。
CN201910234508.0A 2019-03-26 2019-03-26 对等网络直播系统中根节点的调整方法、装置及存储介质 Active CN109951723B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910234508.0A CN109951723B (zh) 2019-03-26 2019-03-26 对等网络直播系统中根节点的调整方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910234508.0A CN109951723B (zh) 2019-03-26 2019-03-26 对等网络直播系统中根节点的调整方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN109951723A CN109951723A (zh) 2019-06-28
CN109951723B true CN109951723B (zh) 2021-06-29

Family

ID=67011536

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910234508.0A Active CN109951723B (zh) 2019-03-26 2019-03-26 对等网络直播系统中根节点的调整方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN109951723B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110493327B (zh) * 2019-08-05 2022-06-10 网宿科技股份有限公司 一种数据传输方法及装置
CN113038291B (zh) * 2021-02-07 2024-02-23 网宿科技股份有限公司 一种盒子类型的设定方法及服务器
CN112925793B (zh) * 2021-03-29 2023-12-29 北京赛博云睿智能科技有限公司 一种多种结构数据分布式混合存储方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101924678A (zh) * 2009-06-09 2010-12-22 华为技术有限公司 P2p直播系统中的流量本地化处理方法及装置
CN102546525A (zh) * 2010-12-07 2012-07-04 中国移动通信集团公司 一种多媒体内容分发方法、系统和装置
CN102761582A (zh) * 2011-04-26 2012-10-31 财团法人工业技术研究院 对等网络中反馈式同侪选择方法与装置
WO2013134847A1 (en) * 2012-03-16 2013-09-19 Research In Motion Limited System and method for managing data using tree structures
CN109348257A (zh) * 2018-11-14 2019-02-15 广州虎牙信息科技有限公司 拉流控制方法、装置及直播系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101924678A (zh) * 2009-06-09 2010-12-22 华为技术有限公司 P2p直播系统中的流量本地化处理方法及装置
CN102546525A (zh) * 2010-12-07 2012-07-04 中国移动通信集团公司 一种多媒体内容分发方法、系统和装置
CN102761582A (zh) * 2011-04-26 2012-10-31 财团法人工业技术研究院 对等网络中反馈式同侪选择方法与装置
WO2013134847A1 (en) * 2012-03-16 2013-09-19 Research In Motion Limited System and method for managing data using tree structures
CN109348257A (zh) * 2018-11-14 2019-02-15 广州虎牙信息科技有限公司 拉流控制方法、装置及直播系统

Also Published As

Publication number Publication date
CN109951723A (zh) 2019-06-28

Similar Documents

Publication Publication Date Title
CN109951723B (zh) 对等网络直播系统中根节点的调整方法、装置及存储介质
Wu et al. Queuing network models for multi-channel P2P live streaming systems
CN101529863B (zh) 用于控制可从内容分发点获得的信息的方法和设备
CN114270344A (zh) 用于递送实时消息的消息传递平台
US20100042668A1 (en) Hierarchically clustered p2p streaming system
EP2754272B1 (en) Method, device and system for providing and selecting candidate nodes for live streaming services
JP6442507B2 (ja) ネットワークのデバイスにより実行される進行中のトラフィックセッションの中でネットワークの利用可能な帯域幅を割り当てる方法、対応するデバイス
CN109189578B (zh) 存储服务器分配方法、装置、管理服务器以及存储系统
CN107819797B (zh) 访问请求处理方法和装置
CN105847398A (zh) 业务调度方法、调度服务器及业务服务器
CN110995866A (zh) 节点调度方法、装置、调度服务器及存储介质
CN117880605B (zh) 基于5g技术的短信视频快速播放方法及系统
JP6660283B2 (ja) トラヒック需要予測装置、トラヒック需要予測方法、及びプログラム
CN111538572A (zh) 任务处理方法、装置、调度服务器及介质
CN111083204A (zh) 文件传输方法、装置及存储介质
CN117081983B (zh) 数据传输方法及装置
CN104967868A (zh) 视频转码方法、装置和服务器
KR20150031470A (ko) 대규모 데이터 프로세싱 시스템들에 있어서의 분리된 어노멀리 검출을 위한 방법
CN111555918B (zh) 一种回源优化方法、装置及电子设备
CN113676341B (zh) 一种质差评估方法及相关设备
CN112256454B (zh) 消息延时处理方法和系统
CN110535853B (zh) 一种视频请求调度方法、装置、服务器及存储介质
Cetinkaya et al. Segment‐aware dynamic routing for DASH flows over software‐defined networks
CN113873001A (zh) 一种基于http请求分类的负载均衡优化方法
KR101328351B1 (ko) 퍼지 로직을 기반으로 하는 트래픽의 대역폭을 제어하는 방법 및 시스템

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20190628

Assignee: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd.

Assignor: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd.

Contract record no.: X2021440000030

Denomination of invention: Adjustment method, device and storage medium of root node in P2P Live Broadcast System

License type: Common License

Record date: 20210125

GR01 Patent grant
GR01 Patent grant