CN115834597A - 一种内容分发方法及客户端、电子设备、存储介质 - Google Patents

一种内容分发方法及客户端、电子设备、存储介质 Download PDF

Info

Publication number
CN115834597A
CN115834597A CN202211484131.2A CN202211484131A CN115834597A CN 115834597 A CN115834597 A CN 115834597A CN 202211484131 A CN202211484131 A CN 202211484131A CN 115834597 A CN115834597 A CN 115834597A
Authority
CN
China
Prior art keywords
client
data
current
target
target client
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.)
Pending
Application number
CN202211484131.2A
Other languages
English (en)
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.)
Hunan MgtvCom Interactive Entertainment Media Co Ltd
Original Assignee
Hunan MgtvCom Interactive Entertainment Media 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 Hunan MgtvCom Interactive Entertainment Media Co Ltd filed Critical Hunan MgtvCom Interactive Entertainment Media Co Ltd
Priority to CN202211484131.2A priority Critical patent/CN115834597A/zh
Publication of CN115834597A publication Critical patent/CN115834597A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了一种内容分发方法及客户端、电子设备、存储介质,所述应用于目标客户端,所述目标客户端为任意一个所述客户端,所述方法包括:当需要预取视频数据时,根据当前目标客户端的缓冲策略指示的缓存数据范围,确定当前待预取的目标视频数据;其中,当前目标客户端的缓存策略根据其分享率和节省率确定;分享率为客户端在单位时间内通过KAD网络分享数据的占比;节省率为客户端在单位时间内从KAD网络拉取数据的占比;按照目标客户端的缓存策略中的网络请求占比,将目标视频数据的各个视频分片数据划分为临界视频数据和当前缓冲视频数据;从内容分发网络CDN中拉取各个临界视频数据,以及从KAD网络中拉取各个当前缓冲视频数据。

Description

一种内容分发方法及客户端、电子设备、存储介质
技术领域
本申请涉及内容分发技术领域,特别涉及一种内容分发方法及客户端、电子设备、存储介质。
背景技术
由于当前的视频数量以及视频体积都呈指数级增长,所以通过传统的CDN网络进行内容分发,需要更高的带宽成本,并且还需要承担更多的存储成本。所以P2P模式与CDN网络相结合而相结合的PCDN网络应运而生。
当前的PCDN网络主要采用内容预分发结合调度中心控制的方法进行内容分发,即在CDN网络的外网增加一个支持P2P协议的自治域,域内的节点为专用的P2P节点或者从各个客户端中择优选择的部分P2P节点,由这些节点接收预分发内容,后续在用户申请视频时,可以通过调度服务从这些节点获取到预分发的内容。
但是由于P2P不够稳定,所以通过P2P传输的内容不宜过大,因此需要将视频文件切分为多个碎片文件进行传输。所以这部分节点需要对海量的碎片文件进行管理、请求匹配等,所以资源消耗过高,会给这些客户端带来太大的负担。
发明内容
基于上述现有技术的不足,本申请提供了一种内容分发方法及客户端、电子设备、存储介质,以解决现有的技术对客户端资源消耗过高,给客户端造成多大的负担的问题。
为了实现上述目的,本申请提供了以下技术方案:
本申请第一方面提供了一种内容分发方法,应用于目标客户端,所述目标客户端为任意一个客户端,所述内容分发方法,包括:
当需要预取视频数据时,根据当前所述目标客户端的缓冲策略指示的缓存数据范围,确定当前待预取的目标视频数据;其中,当前所述目标客户端的缓存策略根据当前所述目标客户端的分享率和节省率确定;所述分享率为客户端在单位时间内通过KAD网络分享数据的占比;所述节省率为客户端在单位时间内从所述KAD网络拉取数据的占比;所述KAD网络由各个所述客户端组成;
按照所述目标客户端的缓存策略中的网络请求占比,将所述目标视频数据的各个视频分片数据中相对靠近播放点的各个所述视频分片数据确定为临界视频数据,并将所述目标数据的其余各个所述视频分片数据确定为当前缓冲视频数据;
从内容分发网络CDN中拉取各个所述临界视频数据,以及从所述KAD网络中拉取各个所述当前缓冲视频数据。
可选地,在上述的内容分发方法中,还包括:
在上线或者切换网络时,将所述目标客户端的节点标识、IP以及端口信息提交至节点查询服务器,并通过所述节点查询服务器查询所述目标客户端的临近客户端信息列表;
基于所述目标客户端的临近客户端信息列表,将所述目标客户端与所述目标客户端的临近客户端建立连接;
通过对所述临近客户端存储的索引哈希值表DHT进行拆分,以使所述目标客户端加入所述KAD网络中;
对所述目标客户端的分享率和节省率进行初始化。
可选地,在上述的内容分发方法中,所述从所述KAD网络中拉取各个所述当前缓冲视频数据,包括:
将所述各个所述当前缓冲视频数据的信息更新至的所述目标客户端的请求列表中;
将所述目标客户端的请求列表以及最新的所述目标客户端的账单广播给当前连接的各个客户端;其中,所述账单中至少包括所述分享率以及所述节省率;
分别针对每个所述当前缓冲视频数据,基于所述缓存视频数据的哈希值在所述KAD网络中进行寻址,查找到存储有所述缓存视频数据的客户端;
连接存储有所述缓存视频数据的客户端,并将所述目标客户端的请求列表以及最新的所述目标客户端的账单发送给所述客户端;
实时接收各个当前交互客户端反馈的所述当前缓冲视频数据;其中,所述当前交互客户端指代当前与所述目标客户端连接的各个客户端;所述当前交互客户端基于所述目标客户端的账单对本地存储的属于所述目标客户端的请求列表的所述当前缓冲视频数据进行反馈。
可选地,在上述的内容分发方法中,还包括:
实时接收各个所述当前交互客户端发送的各个所述当前交互客户端的请求列表以及账单;
依据各个所述当前交互客户端的账单中的所述分享率和所述节省率,对各个所述当前交互客户端的请求列表进行排序;
当轮询到任意一个所述当前交互客户端的请求列表时,将本地存储的各个所述视频分片数据中,属于所述当前交互客户端的请求列表的所述视频分片数据反馈给所述当前交互客户端。
可选地,在上述的内容分发方法中,还包括:
每间隔预设时间段,基于当前所述目标客户端的分享率和节省率,以及当前的所述预设时间段内各个所述当前交互客户端与所述目标客户端的数据交互量,计算各个所述当前交互客户端的维持比重;
将各个所述当前交互客户端按照所述维持比重进行降序排序,得到当前排序结果;
断开与所述当前排序结果中排序在N位后的各个所述当前交互客户端的连接。
可选地,在上述的内容分发方法中,还包括:
当所述目标客户端新增或者删除任意一个所述视频分片数据时,基于所述视频分片数据的哈希值,将所述视频分片数据的信息发送给所述KAD网络中的当前最近客户端,以触发所述当前最近客户端利用所述视频分片数据的信息对本地存储的索引哈希值表DHT进行更新;其中,所述当前最近客户端指代对应的哈希值与所述视频分片数据的哈希值最接近的客户端。
可选地,在上述的内容分发方法中,还包括:
每间隔预设的所述单位时间,获取在当前的所述单位时间内的总拉取数据量;
判断所述总拉取数据量是否大于预设基准量;
若判断出所述总拉取数据量大于预设基准量,则计算当前的所述单位时间内的通过所述KAD网络分享的数据量与所述总拉取数据量,得到最新的所述目标客户端的分享率,以及计算当前的所述单位时间内从所述KAD网络拉取的数据量与所述总拉取数据量,得到最新的所述目标客户端的节省率;
根据最新的目标客户端的分享率和节省率调整所述目标客户端的缓冲策略。
本申请第二方面提供了一种客户端,所述客户端为目标客户端,所述目标客户端为任意一个所述客户端,所述客户端,包括:
数据确定单元,用于当需要预取视频数据时,根据当前所述目标客户端的缓冲策略指示的缓存数据范围,确定当前待预取的目标视频数据;其中,当前所述目标客户端的缓存策略根据当前所述目标客户端的分享率和节省率确定;所述分享率为客户端在单位时间内通过KAD网络分享数据的占比;所述节省率为客户端在单位时间内从所述KAD网络拉取数据的占比;所述KAD网络由各个所述客户端组成;
划分单元,用于按照所述目标客户端的缓存策略中的网络请求占比,将所述目标视频数据的各个视频分片数据中相对靠近播放点的各个所述视频分片数据确定为临界视频数据,并将所述目标数据的其余各个所述视频分片数据确定为当前缓冲视频数据;
第一拉取单元,用于从内容分发网络CDN中拉取各个所述临界视频数据;
第二拉取单元,用于从所述KAD网络中拉取各个所述当前缓冲视频数据。
可选地,在上述的客户端中,还包括:
提交单元,用于在上线或者切换网络时,将所述目标客户端的节点标识、IP以及端口信息提交至节点查询服务器,并通过所述节点查询服务器查询所述目标客户端的临近客户端信息列表;
第一连接单元,用于基于所述目标客户端的临近客户端信息列表,将所述目标客户端与所述目标客户端的临近客户端建立连接;
加入单元,用于通过对所述临近客户端存储的索引哈希值表DHT进行拆分,以使所述目标客户端加入所述KAD网络中;
初始化单元,用于对所述目标客户端的分享率和节省率进行初始化。
可选地,在上述的客户端中,所述第二拉取单元,包括:
第一更新单元,用于将所述各个所述当前缓冲视频数据的信息更新至的所述目标客户端的请求列表中;
第一广播单元,用于将所述目标客户端的请求列表以及最新的所述目标客户端的账单广播给当前连接的各个客户端;其中,所述账单中至少包括所述分享率以及所述节省率;
寻址单元,用于分别针对每个所述当前缓冲视频数据,基于所述缓存视频数据的哈希值在所述KAD网络中进行寻址,查找到存储有所述缓存视频数据的客户端;
第二连接单元,用于连接存储有所述缓存视频数据的客户端,并将所述目标客户端的请求列表以及最新的所述目标客户端的账单发送给所述客户端;
第一接收单元,用于实时接收各个当前交互客户端反馈的所述当前缓冲视频数据;其中,所述当前交互客户端指代当前与所述目标客户端连接的各个客户端;所述当前交互客户端基于所述目标客户端的账单对本地存储的属于所述目标客户端的请求列表的所述当前缓冲视频数据进行反馈。
可选地,在上述的客户端中,还包括:
第二接收单元,用于实时接收各个所述当前交互客户端发送的各个所述当前交互客户端的请求列表以及账单;
第一排序单元,用于依据各个所述当前交互客户端的账单中的所述分享率和所述节省率,对各个所述当前交互客户端的请求列表进行排序;
反馈单元,用于当轮询到任意一个所述当前交互客户端的请求列表时,将本地存储的各个所述视频分片数据中,属于所述当前交互客户端的请求列表的所述视频分片数据反馈给所述当前交互客户端。
可选地,在上述的客户端中,还包括:
第一计算单元,用于每间隔预设时间段,基于当前所述目标客户端的分享率和节省率,以及当前的所述预设时间段内各个所述当前交互客户端与所述目标客户端的数据交互量,计算各个所述当前交互客户端的维持比重;
第二排序单元,用于将各个所述当前交互客户端按照所述维持比重进行降序排序,得到当前排序结果;
断开单元,用于断开与所述当前排序结果中排序在N位后的各个所述当前交互客户端的连接。
可选地,在上述的客户端中,还包括:
发送单元,用于当所述目标客户端新增或者删除任意一个所述视频分片数据时,基于所述视频分片数据的哈希值,将所述视频分片数据的信息发送给所述KAD网络中的当前最近客户端,以触发所述当前最近客户端利用所述视频分片数据的信息对本地存储的索引哈希值表DHT进行更新;其中,所述当前最近客户端指代对应的哈希值与所述视频分片数据的哈希值最接近的客户端。
可选地,在上述的客户端中,还包括:
获取单元,用于每间隔预设的所述单位时间,获取在当前的所述单位时间内的总拉取数据量;
判断单元,用于判断所述总拉取数据量是否大于预设基准量;
第二计算单元,用于在判断出所述总拉取数据量大于预设基准量时,计算当前的所述单位时间内的通过所述KAD网络分享的数据量与所述总拉取数据量,得到最新的所述目标客户端的分享率,以及计算当前的所述单位时间内从所述KAD网络拉取的数据量与所述总拉取数据量,得到最新的所述目标客户端的节省率;
调整单元,用于根据最新的目标客户端的分享率和节省率调整所述目标客户端的缓冲策略。
本申请第三方面提供了一种电子设备,包括:
存储器和处理器;
其中,所述存储器用于存储程序;
所述处理器用于执行所述程序,所述程序被执行时,具体用于实现如上述任意一项所述的内容分发方法。
本申请第四方面提供了一种计算机存储介质,用于存储计算机程序,所述计算机程序被执行时,用于实现如上述任意一项所述的内容分发方法。
本申请提供了一种内容分发方法,应用于目标客户端,该目标客户端为任意一个客户端,不再局限于部分客户端。该内容分发方法通过当前目标客户端的分享率和节省率确定当前目标客户端的缓存策略。其中,分享率为客户端在单位时间内通过KAD网络分享数据的占比。节省率为客户端在单位时间内从KAD网络拉取数据的占比。KAD网络由各个客户端组成。所以当需要预取视频数据时,根据当前目标客户端的缓冲策略指示的缓存数据范围,确定当前待预取的目标视频数据。然后按照目标客户端的缓存策略中的网络请求占比,将目标视频数据的各个视频分片数据中相对靠近播放点的各个视频分片数据确定为临界视频数据,并将目标数据的其余各个视频分片数据确定为当前缓冲视频数据。最后从内容分发网络CDN中拉取各个临界视频数据,以及从KAD网络中拉取各个当前缓冲视频数据。从而通过能反映出客户端通过P2P方式从KAD网络分享数据和拉取数据的分享率和节省率,确定客户端所拉取的数据的大小以及从内容分发网络CDN的比例,从而可以最大限度地利用有能力的客户端的资源进行数据预取和分享,减少CDN网络的压力,同时也不会过分消耗客户端的资源,给其带来太大的负担。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种内容分发方法的流程图;
图2为本申请实施例提供的一种目标客户端加入KAD网络的方法的流程图;
图3为本申请实施例提供的一种缓存策略的更新方法的流程图;
图4为本申请实施例提供的一种从KAD网络中拉取各个当前缓冲视频数据的方法的流程图;
图5为本申请实施例提供的一种维持连接的方法的流程图;
图6为本申请实施例提供的一种分享数据的方法的流程图;
图7为本申请实施例提供的一种客户端的架构示意图;
图8为本申请实施例提供的一种电子设备的架构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本申请实施例提供了一种内容分发方法,应用于目标客户端,该目标客户端为任意一个客户端。如图1所示,本申请实施例提供的内容分发方法,包括:
S101、当需要预取视频数据时,根据当前目标客户端的缓冲策略指示的缓存数据范围,确定当前待预取的目标视频数据。
需要说明的是,一般情况下在用户在目标客户端上播放视频或者广告,又或者其他情况时需要预取视频数据。另一种情况的就是热点预取,即在目标客户端的分享率与节省率极高时,通过目标客户端提前预取热点数据,以能便于分享给其他客户端。
其中,KAD网络由各个客户端组成。KAD是P2P重叠网络传输协议,所以本申请实施例中的KAD网络即为由各个客户端构成的一个P2P网络。所以在本申请实施例中,每个客户端都可以与其他客户端进行交互,以从其他客户端中获取到所需的数据,或者将自身的数据分享给其他的客户端。而一个客户端要与KAD网络中的其他客户端进行交互,则需要先加入到KAD网络中。
可选地,本申请实施例提供了一种目标客户端加入KAD网络的方法,如图2所示,包括:
S201、在上线或者切换网络时,将目标客户端的节点标识、IP以及端口信息提交至节点查询服务器,并通过节点查询服务器查询目标客户端的临近客户端信息列表。
需要说明的是,本申请实施例中,客户端加入KAD网络的方式与传统的方式有一定的区别,在本申请实施例中在KAD网络中还设置了一个节点查询服务器,以便于通过该服务器进行信息查询,并且该节点查询服务器可以作为穿透服务器使用,从而可以有效提高处理效率。所以在目标客户端上线或者切换网络时,将目标客户端的节点标识、IP以及端口信息提交至节点查询服务器,以便于后续利用这些信息与目标客户端进行连接。然后通过节点查询服务器查询目标客户端的临近客户端信息列表。
S202、基于目标客户端的临近客户端信息列表,将目标客户端与目标客户端的临近客户端建立连接。
S203、通过对临近客户端存储的索引哈希值表DHT进行拆分,以使目标客户端加入KAD网络中。
其中,DHT主要思想如是全网维护一个巨大的索引哈希表,这个哈希表的条目采用键值对的格式。其中,键值对中的Key通常为数据的某个哈希算法下的哈希值,当然也可以是文件名或者文件内容描述,而键值对的Value则是存储数据的IP地址。所以查询时,仅需要提供Key,就能从表中查询到存储节点的地址并返回给查询节点。而这个哈希表会被分割成小块,按照一定的算法和规则分布到全网各个节点上。每个节点仅需要维护一小块哈希表。这样,节点查询文件时,只要把查询报文路由到相应的节点即可。也就是说DHT能将内容寻址工作从中心下移到P2P节点。所以在新增一个客户端时需要对索引哈希值表DHT进行拆分。
需要说明的是,在对临近客户端存储的索引哈希值表DHT进行拆分之后,后续目标客户端加入KAD网络中的步骤与现有的方式一致,所以此处不再赘述。
S204、对目标客户端的分享率和节省率进行初始化。
由于目标客户端还未通过KAD网络进行数据交互,所以此时需要先对目标客户端的分享率和节省率进行初始化。具体可以是设置为预先设置的初始值。
对于当前目标客户端的缓存策略,其根据当前目标客户端的分享率和节省率确定。分享率为客户端在单位时间内通过KAD网络分享数据的占比,具体为单位时间内通过KAD网络分享的数据量与下载到本地的总数据量的比值。节省率为客户端在单位时间内从KAD网络拉取数据的占比,具体为在单位时间内从KAD网络拉取的数据量与下载到本地的总数据量的比值。
因此一个客户端的分享率越高说明该客户端在单位时间内向其他客户端分享的数据越多,即该客户端能够被寻址并连接到的可能性越大,其所得资源大概率为热点资源,且其愿意分享数据,因此应加大对其投入,使其能快速获取资源。而节省率越高说明该客户端所处环境下能有效利用P2P资源,应更多的是采用P2P的方式从KAD网络拉取数据,减少CDN网络负担。
可选地,本申请实施例提供的一种缓存策略的更新方法,如图3所示,包括:
S301、每间隔预设的单位时间,获取在当前的单位时间内的总拉取数据量。
S302、判断总拉取数据量是否大于预设基准量。
需要说明的是,为了避免频繁进行更新,所以在本申请实施例中同时基于时间窗口和接收数据基准来对策略进行更新。所以不仅要满足单位时间间隔的要求,还需要满足接收数据基准,因此在判断出总拉取数据量大于预设基准量,则执行步骤S303。
S303、计算当前的单位时间内的通过KAD网络分享的数据量与总拉取数据量,得到最新的目标客户端的分享率,以及计算当前的单位时间内从KAD网络拉取的数据量与总拉取数据量,得到最新的目标客户端的节省率。
S304、根据最新的目标客户端的分享率和节省率调整目标客户端的缓冲策略。
需要说明的是,根据目标客户端的分享率和节省率,确定目标客户端的缓冲策略,具体可以是根据目标客户端的分享率和节省率,确定每次需要预取的数据量以及需要从CDN网络拉取数据的比重,并且,目标客户端会不断更新自身的分享率和节省率,进而不断地更新自身的缓存策略,从而可以最大限度地利用有能力的客户端的资源进行数据预取和分享,减少CDN网络的压力,同时也不会给客户端带来太大的负担。
可选地,具体根据分享率和节省率确定缓存策略,可以是对于分享率较高的客户端可扩大其缓存范围,同时给予更多的CDN网络的请求占比,以让其能快速缓存更多的资源。对于分享率不高,但是节省率较高的客户端,则可以给予较大的缓存预取权限,更长的P2P资源响应等待时间,降低CDN网络的请求占比,以让其主要从KAD网络拉取数据。对于分享率和节省率都不高的客户端,则给予较小的缓存区以及较大的CDN网络的请求占比,以保证可以获取到的数据。例如当分享率高于阈值时,阈值通常为3,则采用激进的缓存管理策略,即缓存较大数据量的数据,且提高CDN网络的请求占比。当节省率超过阈值,一般为0.7时,同样可以采用激进的缓存管理策略,但是为了能充分利用KAD网络,所以此时降低CDN网络的请求占比。对于分享率和节省率较低的客户端使用保守缓存管理。并且,同时可以降低连接维持比重,即不需要与其他客户端长时间连接。而对于分享率极高的客户端,如分享率大于或等于6时,此时可以开启热点预取,即在用户未请求时,针对其他多个客户端都存在需求的数据进行预取,并将预取成功后分享给有需求的客户端。
因此在本申请实施例中,在当需要预取视频数据时,根据当前目标客户端的缓冲策略指示的缓存数据范围,确定当前待预取的目标视频数据。具体可以是根据缓存策略中的缓存范围等参数,确定需要缓存的数据量,在进一步根据缓存的数据量确定当前待预取的目标视频数据。例如当前视频时间为1分00秒,需要预取5分钟的数据,所以将1-6分钟的数据作为当前待预取的目标视频数据。如果本机分享率高,该缓冲策略将会激进,延长缓冲时间为10分钟,则将1-11分钟数据作为当前待预取的目标视频数据。
S102、按照目标客户端的缓存策略中的网络请求占比,将目标视频数据的各个视频分片数据中相对靠近播放点的各个视频分片数据确定为临界视频数据,并将目标数据的其余各个视频分片数据确定为当前缓冲视频数据。
其中,一个较大的目标视频数据是由多个视频分片数据组成的。
需要说明的是,网络请求占比指的是从内容分发网络CDN拉取数据的占比。由于从内容分发网络CDN拉取数据相对较快,也比较有保障。而越靠近播放点视频数据,对时间的要求越高,所以在本申请实施例中,按照目标客户端的缓存策略中的网络请求占比,将目标视频数据的各个视频分片数据中相对靠近播放点的各个视频分片数据确定为临界视频数据,以从内容分发网络CDN中靠近播放点的视频分片。剩余的视频分片数据,则确定为需要从KAD网络拉取的当前缓冲视频数据。
例如网络请求占比为10%,则根据视频的时间点,将目标视频数据的前10%的部分确定为临界视频数据,并后面的90%确定为当前缓冲视频数据。
S103、从内容分发网络CDN中拉取各个临界视频数据,以及从KAD网络中拉取各个当前缓冲视频数据。
需要说明的是,针对每个当前缓冲视频数据,若是从KAD网络中无法拉取到,则可以内容分发网络CDN拉取。同样,对于临界视频数据若是从内容分发网络CDN无法拉取到,也可以从KAD网络中拉取。
可选地,由于在拉取到数据或者删除数据时,目标客户端存储的数据就发生了变化,所以需要及时地对索引哈希值表进行更新,以便于其他客户端可以从目标客户端中获取到所需的数据,或者避免向目标客户端请求其已删除的数据,因此本申请实施例中,还进一步包括:
当目标客户端新增或者删除任意一个视频分片数据时,基于视频分片数据的哈希值,将视频分片数据的信息发送给KAD网络中的当前最近客户端,以触发当前最近客户端利用视频分片数据的信息对本地存储的索引哈希值表DHT进行更新。
其中,当前最近客户端指代对应的哈希值与视频分片数据的哈希值最接近的客户端。
可选地,在本申请另一实施例中,步骤103中从KAD网络中拉取各个当前缓冲视频数据的一种具体实施方式,如图4所示,包括以下步骤:
S401、将各个当前缓冲视频数据的信息更新至的目标客户端的请求列表中。
需要说明的是,在本申请实施例中,通过将当前所有需要从KAD网络获取的数据的信息都汇总在一个请求列表中,并发送给KAD网络中的其他客户端,以从其他KAD中获取到需要的数据。所以目标客户端在当前新增了新的需求时,需要将新的需求更新到请求列表中,即将各个当前缓冲视频数据的信息更新至的目标客户端的请求列表中。相应的,当获取到了所需要数据时,也可以相应地对请求列表进行更新。
还需要说明的是,本申请实施例的P2P交互方式,区别于现有发送仅包括当前需要寻址的视频数据的信息的请求列表进行寻址的P2P交互方式。在本申请实施例中,目标客户端仅有一个请求列表,所以请求列表中不仅仅包括当前需要进行寻址的当前缓冲视频数据的信息,还包括了之前需要从KAD网络中拉取的视频数据的信息,即包括了所有需要从KAD网络拉取的视频数据的信息。也因此在目标客户端存在从KAD网络拉取的新需求时,例如客户切换另一个视频播放,需要拉取另一个视频的视频数据,或者需要拉取当前播放的视频的更多视频数据时,则需要相应的对目标客户端的请求列表进行更新,并将更新的目标客户端的请求列表进行广播,即执行图4所示的方法,以能从KAD网络拉取到新需求的视频数据,而不是生成一个仅包括新需求的视频数据信息的新请求列表。
S402、将目标客户端的请求列表以及最新的目标客户端的账单广播给当前连接的各个客户端。
其中,账单中至少包括分享率以及节省率。当然为了便于后续维持连接,账单中还可以包括有与对方相互分享数据的记录,即从对方接收了多少字节,发送了多少字节。
需要说明的是,由于通常相邻的视频数据会存在于一个客户端中,所以在本申请实施例中,在于一个客户端连接后会根据相应的逻辑保持连接。所以目标客户端在先前获取其他数据时,可能已经与其他客户端进行连接,而这些客户端可能还存储有当前需求的数据,所以在本申请实施例中,会将更新后的目标客户端的请求列表广播给当前连接的各个客户端。由于其他客户端在向目标客户端反馈数据时,需要用到目标客户端的账单,所以需要将当前的账单也广播给连接的各个客户端。
可选地,本申请实施例提供的一种维持连接的方法,如图5所示,包括:
S501、每间隔预设时间段,基于当前目标客户端的分享率和节省率,以及当前的预设时间段内各个当前交互客户端与目标客户端的数据交互量,计算各个当前交互客户端的维持比重。
S502、将各个当前交互客户端按照维持比重进行降序排序,得到当前排序结果。
S503、断开与当前排序结果中排序在N位后的各个当前交互客户端的连接。
其中,N可以是一个变量,也可以根据目标客户端的分享率和节省率进行相应地调整。
S403、分别针对每个当前缓冲视频数据,基于缓存视频数据的哈希值在KAD网络中进行寻址,查找到存储有缓存视频数据的客户端。
需要说明的是,由于先前连接的客户端并不一定存储有当前需要的数据,并且为了能快速地获取到数据,所以在将目标客户端的请求列表广播给当前连接的各个客户端的同时,还会针对各个每个当前缓冲视频数据进行寻址。所以本申请实施例的执行顺序,仅是其中一种可选的顺序,对于寻址和广播给当前已经连接的客户端两者是独立的,所以也可以采用其他的执行顺序。
可选地,在KAD网络中进行寻址可以采用现有的方式,即计算出缓存视频数据的哈希值,然后寻找与该哈希值距离最短的节点ID,并连接该节点ID对应的客户端C,并从客户端C存储的索引哈希值表DHT中确定出存储有缓存视频数据的客户端B。或者是直接通过节点查询服务器查找到客户端C。
S404、连接存储有缓存视频数据的客户端,并将目标客户端的请求列表以及最新的目标客户端的账单发送给客户端。
S405、实时接收各个当前交互客户端反馈的当前缓冲视频数据。
其中,当前交互客户端指代当前与目标客户端连接的各个客户端。
当前交互客户端基于目标客户端的账单对本地存储的属于目标客户端的请求列表的当前缓冲视频数据进行反馈。
可选地,在本申请实施例中,目标客户端在与另一个客户端连接后,其不仅可以向该客户端请求数据,并且同时也会向该客户端分享该客户端所需的数据。可选地,本申请实施例提供的一种分享数据的方法,如图6所示,包括:
S601、实时接收各个当前交互客户端发送的各个当前交互客户端的请求列表以及账单。
S602、依据各个当前交互客户端的账单中的分享率和节省率,对各个当前交互客户端的请求列表进行排序。
由于分享率和节省率越高,则获取数据量相对较大,并且分享给其他客户端的概率也较大,所以应该优先给其反馈数据,所以分享率和节省率越高,则排序顺序越靠前。
S603、当轮询到任意一个当前交互客户端的请求列表时,将本地存储的各个视频分片数据中,属于该当前交互客户端的请求列表的视频分片数据反馈给当前交互客户端。
需要说明的是,对于目标客户端是否向该当前交互客户端反馈其所需的数据,还可以设置相应的逻辑进行处理,并一定存储有该当前交互客户端所需的数据就必须要反馈。
本申请实施例提供了一种内容分发方法,应用于目标客户端,该目标客户端为任意一个客户端,不再局限于部分客户端。该内容分发方法通过当前目标客户端的分享率和节省率确定当前目标客户端的缓存策略。其中,分享率为客户端在单位时间内通过KAD网络分享数据的占比。节省率为客户端在单位时间内从KAD网络拉取数据的占比。KAD网络由各个客户端组成。所以当需要预取视频数据时,根据当前目标客户端的缓冲策略指示的缓存数据范围,确定当前待预取的目标视频数据。然后按照目标客户端的缓存策略中的网络请求占比,将目标视频数据的各个视频分片数据中相对靠近播放点的各个视频分片数据确定为临界视频数据,并将目标数据的其余各个视频分片数据确定为当前缓冲视频数据。最后从内容分发网络CDN中拉取各个临界视频数据,以及从KAD网络中拉取各个当前缓冲视频数据。从而通过能反映出客户端通过P2P方式从KAD网络分享数据和拉取数据的分享率和节省率,确定客户端所拉取的数据的大小以及从内容分发网络CDN的比例,从而可以最大限度地利用有能力的客户端的资源进行数据预取和分享,减少CDN网络的压力,同时也不会过分消耗客户端的资源,给其带来太大的负担。
本申请另一实施例提供了一种客户端,客户端为目标客户端,该目标客户端为任意一个客户端。如图7所示,本申请实施例提供的客户端,包括:
数据确定单元701,用于当需要预取视频数据时,根据当前目标客户端的缓冲策略指示的缓存数据范围,确定当前待预取的目标视频数据。
其中,当前目标客户端的缓存策略根据当前目标客户端的分享率和节省率确定。分享率为客户端在单位时间内通过KAD网络分享数据的占比。节省率为客户端在单位时间内从KAD网络拉取数据的占比。KAD网络由各个客户端组成。
划分单元702,用于按照目标客户端的缓存策略中的网络请求占比,将目标视频数据的各个视频分片数据中相对靠近播放点的各个视频分片数据确定为临界视频数据,并将目标数据的其余各个视频分片数据确定为当前缓冲视频数据。
第一拉取单元703,用于从内容分发网络CDN中拉取各个临界视频数据。
第二拉取单元704,用于从KAD网络中拉取各个当前缓冲视频数据。
可选地,在本申请另一实施例提供的客户端中,还包括:
提交单元,用于在上线或者切换网络时,将目标客户端的节点标识、IP以及端口信息提交至节点查询服务器,并通过节点查询服务器查询目标客户端的临近客户端信息列表。
第一连接单元,用于基于目标客户端的临近客户端信息列表,将目标客户端与目标客户端的临近客户端建立连接。
加入单元,用于通过对临近客户端存储的索引哈希值表DHT进行拆分,以使目标客户端加入KAD网络中。
初始化单元,用于对目标客户端的分享率和节省率进行初始化。
可选地,在本申请另一实施例提供的客户端中,第二拉取单元,包括:
第一更新单元,用于将各个当前缓冲视频数据的信息更新至的目标客户端的请求列表中。
第一广播单元,用于将目标客户端的请求列表以及最新的目标客户端的账单广播给当前连接的各个客户端。
其中,账单中至少包括分享率以及节省率。
寻址单元,用于分别针对每个当前缓冲视频数据,基于缓存视频数据的哈希值在KAD网络中进行寻址,查找到存储有缓存视频数据的客户端。
第二连接单元,用于连接存储有缓存视频数据的客户端,并将目标客户端的请求列表以及最新的目标客户端的账单发送给客户端。
第一接收单元,用于实时接收各个当前交互客户端反馈的当前缓冲视频数据。
其中,当前交互客户端指代当前与目标客户端连接的各个客户端。当前交互客户端基于目标客户端的账单对本地存储的属于目标客户端的请求列表的当前缓冲视频数据进行反馈。
可选地,在本申请另一实施例提供的客户端中,还包括:
第二接收单元,用于实时接收各个当前交互客户端发送的各个当前交互客户端的请求列表以及账单。
第一排序单元,用于依据各个当前交互客户端的账单中的分享率和节省率,对各个当前交互客户端的请求列表进行排序。
反馈单元,用于当轮询到任意一个当前交互客户端的请求列表时,将本地存储的各个视频分片数据中,属于当前交互客户端的请求列表的视频分片数据反馈给当前交互客户端。
可选地,在本申请另一实施例提供的客户端中,还包括:
第一计算单元,用于每间隔预设时间段,基于当前目标客户端的分享率和节省率,以及当前的预设时间段内各个当前交互客户端与目标客户端的数据交互量,计算各个当前交互客户端的维持比重。
第二排序单元,用于将各个当前交互客户端按照维持比重进行降序排序,得到当前排序结果。
断开单元,用于断开与当前排序结果中排序在N位后的各个当前交互客户端的连接。
可选地,在本申请另一实施例提供的客户端中,还包括:
发送单元,用于当目标客户端新增或者删除任意一个视频分片数据时,基于视频分片数据的哈希值,将视频分片数据的信息发送给KAD网络中的当前最近客户端,以触发当前最近客户端利用视频分片数据的信息对本地存储的索引哈希值表DHT进行更新。
其中,当前最近客户端指代对应的哈希值与视频分片数据的哈希值最接近的客户端。
可选地,在本申请另一实施例提供的客户端中,还包括:
获取单元,用于每间隔预设的单位时间,获取在当前的单位时间内的总拉取数据量。
判断单元,用于判断总拉取数据量是否大于预设基准量。
第二计算单元,用于在判断出总拉取数据量大于预设基准量时,计算当前的单位时间内的通过KAD网络分享的数据量与总拉取数据量,得到最新的目标客户端的分享率,以及计算当前的单位时间内从KAD网络拉取的数据量与总拉取数据量,得到最新的目标客户端的节省率。
调整单元,用于根据最新的目标客户端的分享率和节省率调整目标客户端的缓冲策略。
需要说明的是,本申请上述实施例提供的各个单元的具体工作过程,可相应地参考上述方法实施例中的相应的步骤,此处不再赘述。
本申请另一实施例提供了一种电子设备,如图8所示,包括:
存储器801和处理器802。
其中,存储器801用于存储程序。
处理器802用于执行程序,该程序被执行时,具体用于实现如上述任意一个实施例提供的内容分发方法。
本申请另一实施例提供了一种计算机存储介质,用于存储计算机程序,该计算机程序被执行时,用于实现如上述任意一个实施例提供的内容分发方法。
计算机存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种内容分发方法,其特征在于,应用于目标客户端,所述目标客户端为任意一个客户端,所述内容分发方法,包括:
当需要预取视频数据时,根据当前所述目标客户端的缓冲策略指示的缓存数据范围,确定当前待预取的目标视频数据;其中,当前所述目标客户端的缓存策略根据当前所述目标客户端的分享率和节省率确定;所述分享率为客户端在单位时间内通过KAD网络分享数据的占比;所述节省率为客户端在单位时间内从所述KAD网络拉取数据的占比;所述KAD网络由各个所述客户端组成;
按照所述目标客户端的缓存策略中的网络请求占比,将所述目标视频数据的各个视频分片数据中相对靠近播放点的各个所述视频分片数据确定为临界视频数据,并将所述目标数据的其余各个所述视频分片数据确定为当前缓冲视频数据;
从内容分发网络CDN中拉取各个所述临界视频数据,以及从所述KAD网络中拉取各个所述当前缓冲视频数据。
2.根据权利要求1所述的方法,其特征在于,还包括:
在上线或者切换网络时,将所述目标客户端的节点标识、IP以及端口信息提交至节点查询服务器,并通过所述节点查询服务器查询所述目标客户端的临近客户端信息列表;
基于所述目标客户端的临近客户端信息列表,将所述目标客户端与所述目标客户端的临近客户端建立连接;
通过对所述临近客户端存储的索引哈希值表DHT进行拆分,以使所述目标客户端加入所述KAD网络中;
对所述目标客户端的分享率和节省率进行初始化。
3.根据权利要求1所述的方法,其特征在于,所述从所述KAD网络中拉取各个所述当前缓冲视频数据,包括:
将所述各个所述当前缓冲视频数据的信息更新至的所述目标客户端的请求列表中;
将所述目标客户端的请求列表以及最新的所述目标客户端的账单广播给当前连接的各个客户端;其中,所述账单中至少包括所述分享率以及所述节省率;
分别针对每个所述当前缓冲视频数据,基于所述缓存视频数据的哈希值在所述KAD网络中进行寻址,查找到存储有所述缓存视频数据的客户端;
连接存储有所述缓存视频数据的客户端,并将所述目标客户端的请求列表以及最新的所述目标客户端的账单发送给所述客户端;
实时接收各个当前交互客户端反馈的所述当前缓冲视频数据;其中,所述当前交互客户端指代当前与所述目标客户端连接的各个客户端;所述当前交互客户端基于所述目标客户端的账单对本地存储的属于所述目标客户端的请求列表的所述当前缓冲视频数据进行反馈。
4.根据权利要求3所述的方法,其特征在于,还包括:
实时接收各个所述当前交互客户端发送的各个所述当前交互客户端的请求列表以及账单;
依据各个所述当前交互客户端的账单中的所述分享率和所述节省率,对各个所述当前交互客户端的请求列表进行排序;
当轮询到任意一个所述当前交互客户端的请求列表时,将本地存储的各个所述视频分片数据中,属于所述当前交互客户端的请求列表的所述视频分片数据反馈给所述当前交互客户端。
5.根据权利要求3所述的方法,其特征在于,还包括:
每间隔预设时间段,基于当前所述目标客户端的分享率和节省率,以及当前的所述预设时间段内各个所述当前交互客户端与所述目标客户端的数据交互量,计算各个所述当前交互客户端的维持比重;
将各个所述当前交互客户端按照所述维持比重进行降序排序,得到当前排序结果;
断开与所述当前排序结果中排序在N位后的各个所述当前交互客户端的连接。
6.根据权利要求1所述的方法,其特征在于,还包括:
当所述目标客户端新增或者删除任意一个所述视频分片数据时,基于所述视频分片数据的哈希值,将所述视频分片数据的信息发送给所述KAD网络中的当前最近客户端,以触发所述当前最近客户端利用所述视频分片数据的信息对本地存储的索引哈希值表DHT进行更新;其中,所述当前最近客户端指代对应的哈希值与所述视频分片数据的哈希值最接近的客户端。
7.根据权利要求1所述的方法,其特征在于,还包括:
每间隔预设的所述单位时间,获取在当前的所述单位时间内的总拉取数据量;
判断所述总拉取数据量是否大于预设基准量;
若判断出所述总拉取数据量大于预设基准量,则计算当前的所述单位时间内的通过所述KAD网络分享的数据量与所述总拉取数据量,得到最新的所述目标客户端的分享率,以及计算当前的所述单位时间内从所述KAD网络拉取的数据量与所述总拉取数据量,得到最新的所述目标客户端的节省率;
根据最新的目标客户端的分享率和节省率调整所述目标客户端的缓冲策略。
8.一种客户端,其特征在于,所述客户端为目标客户端,所述目标客户端为任意一个所述客户端,所述客户端,包括:
数据确定单元,用于当需要预取视频数据时,根据当前所述目标客户端的缓冲策略指示的缓存数据范围,确定当前待预取的目标视频数据;其中,当前所述目标客户端的缓存策略根据当前所述目标客户端的分享率和节省率确定;所述分享率为客户端在单位时间内通过KAD网络分享数据的占比;所述节省率为客户端在单位时间内从所述KAD网络拉取数据的占比;所述KAD网络由各个所述客户端组成;
划分单元,用于按照所述目标客户端的缓存策略中的网络请求占比,将所述目标视频数据的各个视频分片数据中相对靠近播放点的各个所述视频分片数据确定为临界视频数据,并将所述目标数据的其余各个所述视频分片数据确定为当前缓冲视频数据;
第一拉取单元,用于从内容分发网络CDN中拉取各个所述临界视频数据;
第二拉取单元,用于从所述KAD网络中拉取各个所述当前缓冲视频数据。
9.一种电子设备,其特征在于,包括:
存储器和处理器;
其中,所述存储器用于存储程序;
所述处理器用于执行所述程序,所述程序被执行时,具体用于实现如权利要求1至7任意一项所述的内容分发方法。
10.一种计算机存储介质,其特征在于,用于存储计算机程序,所述计算机程序被执行时,用于实现如权利要求1至7任意一项所述的内容分发方法。
CN202211484131.2A 2022-11-24 2022-11-24 一种内容分发方法及客户端、电子设备、存储介质 Pending CN115834597A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211484131.2A CN115834597A (zh) 2022-11-24 2022-11-24 一种内容分发方法及客户端、电子设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211484131.2A CN115834597A (zh) 2022-11-24 2022-11-24 一种内容分发方法及客户端、电子设备、存储介质

Publications (1)

Publication Number Publication Date
CN115834597A true CN115834597A (zh) 2023-03-21

Family

ID=85531235

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211484131.2A Pending CN115834597A (zh) 2022-11-24 2022-11-24 一种内容分发方法及客户端、电子设备、存储介质

Country Status (1)

Country Link
CN (1) CN115834597A (zh)

Similar Documents

Publication Publication Date Title
EP3595268B1 (en) Streaming media resource distribution method, system, edge node and central dispatching system
US10033548B2 (en) Method, system, service selection entity, and service management entity for selecting service provision entity
EP2290912A1 (en) Content distributing method, service redirecting method and system, node device
CN111200657B (zh) 一种管理资源状态信息的方法和资源下载系统
US20090037445A1 (en) Information communication system, content catalog information distributing method, node device, and the like
US8010748B2 (en) Cache structure for peer-to-peer distribution of digital objects
US20110131278A1 (en) Systems and methods for peer-to-peer bandwidth allocation
CN101557423A (zh) 一种实现流媒体内容服务的系统和方法
US8028019B2 (en) Methods and apparatus for data transfer in networks using distributed file location indices
CN102546711B (zh) 流媒体系统中的内容存储调整方法、装置及系统
US10911560B2 (en) Partitioned serialized caching and delivery of large files
CN103139241A (zh) 网络资源文件的离线下载系统和方法
US20140025838A1 (en) System and method of streaming data over a distributed infrastructure
WO2011138359A1 (en) Content delivery over a peer-to-peer network
JP5177919B2 (ja) インデックスサーバとその方法
US20140222988A1 (en) Method for adaptive content discovery for distributed shared caching system
CN107645475B (zh) 异质网络中的文件资源分发系统与方法
CN115004665B (zh) 文件分享方法、装置及系统
JP4877107B2 (ja) 情報配信システムにおける端末装置及び情報処理プログラム、並びに端末装置の情報処理方法
CN115834597A (zh) 一种内容分发方法及客户端、电子设备、存储介质
CN111556324B (zh) 一种视频直播的方法、装置、设备及系统
US20080288447A1 (en) Methods and apparatus for improving peer efficiency
EP2282481A1 (en) Energy saving method and system
CN108810609A (zh) 一种存储管理方法、设备及系统
CN117061540A (zh) 数据获取方法、装置、计算机设备、存储介质和程序产品

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