发明内容
为了克服现有网络中主干网络的拥堵,资源的响应能力低的技术问题,本发明提出一种基于边缘节点的CDN-P2P网络的内容副本放置方法,据内容的域平均响应时间与全局的内容响应时间以及节点的代价因子的大小,来决定在哪个域创建内容副本,最大程度的减少了主干网络的拥堵,充分提高了资源的响应能力。
为达到上述目的,本发明采用的技术方案为:
一种基于边缘缓存的CDN-P2P网络的内容副本放置方法,其特殊之处在于,包括以下步骤:
步骤S1、将边缘缓存节点划分为多个不同的域,确定每个域的管理节点;
所述边缘缓存节点是一种放置在用户的生活场所中,具有缓存功能的CDN节点;
所述管理节点是根据节点的存储空间和节点的带宽决定,用于收集内容副本的全部信息并上传至后台系统,并执行内容副本放置;
步骤S2、当用户请求内容Ci时,此用户的边缘缓存节点中没有内容Ci时,计算内容Ci的被访问频率CFi,判断内容Ci是否为热点资源;
若内容Ci的被访问频率CFi大于频率阈值αCF,则内容Ci为热点资源;
步骤S3、计算内容Ci的单位平均响应时间SACTi,判断内容Ci是否需要创建内容副本;
若内容Ci的单位平均响应时间SACTi大于单位平均响应时间阈值αSACT,则内容Ci需要创建内容副本;
步骤S4、计算内容Ci在域R内的单位平均响应时间SACTi,R,判断在域R内是否需要创建内容Ci的副本;
若SACTi,R大于SACTi,则需要在域R内创建内容Ci副本,则该域为副本缺乏域用Rd表示,副本缺乏域Rd∈R;
步骤S5、计算每个副本缺乏域Rd需要创建内容Ci副本的数量Δamount;
步骤S6、在副本缺乏域Rd内确定Δamount个最适合放置内容Ci副本的节点;
步骤S7、在副本缺乏域Rd的管理节点创建放置内容Ci副本;
步骤S8、更新边缘缓存节点中域的管理节点和目录服务器中的内容列表;
步骤S9、更新网络系统中存储的边缘节点剩余空间信息。
进一步地,所述步骤S1具体为:
步骤S1.1、选出域中剩余存储空间S和可用平均带宽AB符合下列条件的边缘缓存节点;
1)管理节点的剩余存储空间S大于剩余存储空间阈值S0;
2)管理节点的可用平均带宽AB大于可用平均带宽阈值B0;
步骤S1.2、计算边缘缓存节点的剩余能力SY,选出剩余能力最大的作为管理节点
SY=(S-S0)×(AB-B0)。
进一步地,步骤S2中:
所述内容Ci的被访问频率CFi,
其中,Ti,j为单位时间内访问内容Ci的副本的次数,j为内容Ci的副本的索引;
n为内容Ci副本的个数。
进一步地,所述步骤S3具体为:
步骤S3.1、计算内容Ci的平均响应时间ACTi:
其中,Ti为在单位时间内第i个内容被访问的次数;
CTk为单位时间内第k次访问内容Ci副本的响应时间;
步骤S3.2、计算内容Ci的单位平均响应时间SACTi;
其中,fsi为内容Ci的尺寸大小;
步骤S3.3、判断内容Ci是否需要创建内容副本;
若内容Ci的单位平均响应时间SACTi大于单位平均响应时间阈值αSACT,则内容Ci需要创建内容副本;
反之,内容Ci不需要创建内容副本。
进一步地,所述步骤S4中:
所述内容Ci在域R内的单位平均响应时间SACTi,R,
其中,Ti,R为单位时间内在域R内所有的节点访问内容Ci的次数。
进一步地,所述步骤S5中:
所述每个副本缺乏域Rd需要创建内容Ci副本的数量Δamount,
其中,amount为副本缺乏域Rd内当前拥有的内容Ci副本的数量,αACT为内容平均响应时间阈值。
进一步地,所述步骤S6具体为:
步骤S6.1、计算节点的服务质量SQ;
所述节点的服务质量是单位时间内节点完成服务的数量与节点被请求的数量之比;
步骤S6.2、计算放置内容Ci副本的节点代价因子Costi;
所述节点代价因子Costi是衡量节点适宜放置内容副本的程度;
所述节点代价因子Costi通过下式计算:
其中,St为节点的存储空间的大小;
步骤S6.3、在副本缺乏域Rd内,选取节点代价因子Costi值大的Δamount个节点作为最适合放置内容Ci副本的节点。
与现有技术相比,本发明具有的有益技术效果如下:
1、本发明通过考虑内容的请求次数以及响应时间,来决定是否创建内容副本。然后根据内容的域平均响应时间与全局的内容响应时间以及节点的代价因子的大小,来决定在哪个域创建内容副本,充分提高了内容的命中率,降低了内容的响应时间。
2、本发明通过综合考虑每个节点的平均带宽、节点的剩余存储空间,以及节点的服务质量和内容的大小来决定将内容副本放置在那个节点,从而减小了网络的堵塞,提高了网络的服务质量。
3、本发明提出的基于边缘缓存节点的CDN-P2P网络中,边缘缓存节点之间是以P2P的形式连接的,各个节点之间可以共享资源;边缘缓存节点所辖用户端可直接从边缘缓存节点获取资源,也可从CDN服务器获取,最大程度的减少了主干网络的拥堵,充分提高了资源的响应能力。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施方式对本发明提出的一种基于边缘节点的CDN-P2P网络及其缓存方法作进一步详细说明。本领域技术人员应当理解的是,这些实施方式仅仅用来解释本发明的技术原理,目的并不是用来限制本发明的保护范围。
本发明基于的边缘缓存节点的CDN-P2P网络包括前台系统和后台系统;所述的前台系统由家庭CDN边缘缓存节点(家庭内容服务器)简称边缘缓存节点组成,它一方面用于用户信息的存储,一方面作为CDN边缘缓存设备存储流媒体资源,用户则就近从边缘服务器获取服务,这样就提高了用户获取服务的速度。
所述边缘缓存节点是一种部署在用户生活场所中的专用家庭盒子,与传统CDN相似,具有一定的缓存功能,可提前将一些文件存储在其存储空间中。若边缘缓存节点所辖用户请求的文件已被边缘缓存节点缓存,则可以直接从边缘缓存节点获取,因此可以显著降低网络开销和网络时延。
边缘缓存节点之间以逻辑上P2P方式通信用户需要的内容可以从边缘缓存节点获取,如果有的片段在边缘缓存节点中没有,用户也可以从边缘CDN甚至源服务器获取。
所述后台系统包括内容路由模块、目录服务器、内容管理模块和运营管理模块。
内容路由模块用于把访问需求调度到最优的边缘缓存节点;
目录服务器模块主要维护系统中可服务的视频信息列表,即系统内文件分片分布情况,包括资源名称、贡献资源的用户地址等,比如当前系统中有哪些视频文件,当前在线边缘节点上拥有哪些视频文件分片可向其他节点提供。
内容管理模块一方面,每隔一段时间或者系统接收到一定次数的内容请求指导在家庭CDN边缘缓存节点执行内容副本放置算法;另一方面,根据P2P用户的请求,更新内容服务器中内容列表。
运营管理模块包括节点管理功能和网络管理功能等;节点管理功能:通过接收边缘节点定时发送的心跳包获取并管理自治域内的对等节点的基本信息,包括该边缘节点的网络地址,是否在线,节点内存占用情况,自身上传下载带宽、插件更新、版本更新等信息。这些信息可以用于对系统内节点分布情况进行管理;网络管理功能:如CDN系统的网络拓扑管理、故障管理、网络设备管理和链路监控,为管理员提供集中化的管理操作界面。
如图1所示,本发明提供的基于边缘缓存的CDN-P2P网络中的内容副本放置方法包括以下步骤:
步骤S1:首先确定每个域的管理节点,管理节点是由预先根据节点的存储空间以及节点的带宽来决定,管理节点收集内容副本的全部信息并上传至后台系统。
所述管理节点是内容管理模块根据运营管理模块提供的数据确定;
步骤S2:当用户请求内容Ci时,此用户的边缘节点中没有内容Ci时,计算内容Ci,Ci∈C的被访问频率CFi,如果CFi大于先前设定的一个阈值αCF,那么我们就可以判定内容Ci是一个热点资源。
所述内容Ci,Ci∈C;其中,C为所有需要创建副本的内容合集;
所述内容副本的全部信息包括副本的位置、副本的访问次数、访问频率和副本的响应时间;
所述内容Ci的被访问频率CFi是在后台系统的内容管理模块来计算的;
所述内容Ci的响应时间包括带宽、节点性能、内容的大小。
步骤S3:如果内容Ci是热点资源,计算该资源的内容平均响应时间ACTi并判断该热点资源的平均内容响应时间是否大于之前设定的阈值αACT。如果是,接下来计算该内容的单位平均响应时间SACTi,如果大于之前设定的阈值αSACT,那么该内容Ci就需要创建内容副本。
步骤S4:计算需要创建副本的内容Ci在域R内的单位平均响应时间SACTi,R,如果在域R内的内容Ci的单位平均响应时间大于该内容的单位平均响应时间,那么这就说明域R内需要创建内容Ci,即此域为副本缺乏域Rd。
步骤S5:依次确定每个副本缺乏域Rd内需要创建多少个内容副本。根据域Rd内的单位平均响应时间和单位平均响应时间的阈值还有该域Rd内已经拥有的内容副本的数量来计算需要创建的内容副本的数量。
步骤S6:对于每一个副本缺乏域Rd∈R,需要在域Rd内确定Δamount个最适合放置内容副本的节点,首先选择域Rd内没有内容副本的节点作为待选节点,在域管理节点中根据代价因子的计算公式计算每个节点上的代价因子,然后选择其中最大的并且可以容纳的下Δamount个内容副本的节点作为内容副本的放置位置。
步骤S7:执行内容放置。
步骤S8:更新域管理节点、目录服务器中的内容列表。
步骤S9:更新运营管理模块中的边缘节点剩余空间信息。
如图2所示,本发明实施例提供的后台系统包括:
内容路由模块:主要完成调度控制,把访问需求调度到最优的边缘节点。
目录服务器:主要维护系统中可服务的视频信息列表,即系统内文件分片分布情况,包括资源名称、贡献资源的用户地址等,比如当前系统中有哪些视频文件,当前在线边缘节点上拥有哪些视频文件分片可向其他节点提供。
内容管理模块:一方面,边缘节点每隔一段时间或者系统接收到一定次数的内容请求,边缘节点执行内容副本放置算法;另一方面,边缘服务器根据P2P用户的请求,更新内容管理列表。
运营管理模块:运营管理模块包括节点管理功能和网络管理功能等。节点管理功能:通过接收边缘节点定时发送的心跳包获取并管理自治域内的对等节点的基本信息,包括该边缘节点的网络地址,是否在线,节点内存占用情况,自身上传下载带宽、插件更新、版本更新等信息,这些信息可以用于对系统内节点分布情况进行管理;网络管理功能:如CDN系统的网络拓扑管理、故障管理、网络设备管理和链路监控,为管理员提供集中化的管理操作界面。
图3是本发明的方法可应用的一个场景图。
系统中包括一个源服务器和一个边缘服务器,在边缘服务器下面连接着一定数量的边缘节点,这些边缘节点构成了一个由不同域组成的P2P网络。(如果一个P2P网络是一个小区的话,那么我们就可以让每一栋楼是一个P2P网络的域)每个边缘节点都可以连接不同数量的用户。
当某一个用户请求内容Ci时如果该内容的平均响应时间大于事先设定的阈值那该内容就会被认为是需要创建副本的内容,然后就计算P2P网络中每一个域的该内容的平均响应时间和全局的平均响应时间的相对大小,如果大于全局响应时间那么该域就会被称为副本缺乏域。然后内容副本放置算法就会给该域放置内容资源Ci的副本,来的提高内容响应时间。
由于本发明的边缘节点只涉及存储功能,所以就会大大提高P2P网络的存储能力,同时边缘节点的移动性相比用户端就会弱很多,在线时间相比用户端也大大提升。所以相比用户端组成的P2P网络,边缘节点组成的P2P网络的性能明显会更好。
本发明提供的基于边缘缓存的CDN-P2P网络中的内容副本放置方法包括以下具体步骤:
步骤S1:首先确定每个域的管理节点,管理节点是由预先根据节点的存储空间以及节点的带宽来决定,管理节点收集内容副本的全部信息并上传至后台系统。
每个域内的管理节点是内容管理模块根据运营管理模块提供的数据来确定。管理节点主要负责收集该域内所有副本的信息,比如:副本的位置,副本的访问次数和频率以及内容副本的响应时间等,同时辅助内容管理模块计算部分内容。
根据节点的剩余存储空间和节点的带宽来选择域管理节点,首先节点的剩余存储空间和可用带宽必须大于事先给定的阈值S0和B0,然后计算剩余能力SY,选出域R中剩余能力最大的作为管理节点。计算公式如下:
SY=(S-S0)×(AB-B0)
其中AB表示每个节点的可用平均带宽,可以用节点上的等候队列的长短来和计算,等待的队列越长就说明可以的平均带宽就会越少,S表示节点的剩余存储空间的大小。
图4是本发明提供的计算副本缺乏域流程图;
步骤S2:计算内容Ci,Ci∈C的被访问频率CFi,如果CFi大于先前设定的一个阈值αCF,那么我们就可以判定内容Ci是一个热点资源。
内容Ci的访问频率CFi是在后台系统的内容管理模块来计算的,这里用单位时间内内容副本被访问的次数与已经具有的副本数量之比来计算内容副本的访问频率,所以内容Ci的访问频率CFi的计算公式为:
这里用n表示内容副本的个数,Ti,j表示单位时间内访问内容Ci的副本的次数。
如果内容Ci的访问频率CFi大于先前设定的一个阈值αCF,那么我们就可以判定Ci内容是一个热点资源,热点资源可能需要创建内容副本。
步骤S3:如果内容Ci是热点资源,接下来需要计算该资源的内容平均响应时间ACTi并判断该热点资源的平均内容响应时间是否大于之前设定的阈值αACT。如果是,接下来计算该内容的单位平均响应时间SACTi,如果大于之前设定的阈值αSACT,那么该内容Ci就需要创建内容副本。
步骤S3的计算全部都在后台系统的内容管理模块来完成,首先计算内容Ci的平均响应时间。用单位时间内,访问Ci所有副本的资源响应时间CT之和与访问次数之比,称为内容平均响应时间ACTi,所以内容的平均响应时间ACTi的计算公式如下式:
其中Ti表示在单位时间内第i个内容被访问的次数。CTk表示内容Ci每次被访问的响应时间。
然后计算内容的单位平均响应时间SACTi。如果单位平均响应时间大于之前设定的阈值αSACT那么我们就判定该资源Ci是副本比较缺乏的需要创建内容副本。用集合C表示所有需要创建副本的内容。内容的单位平均响应时间SACTi可以用下面的公式表示:
其中fsi表示内容Ci的尺寸大小,ACTi表示内容平均响应时间。
对于需要创建副本的内容首先必须满足该资源是热点资源,因为热点资源创建副本可以最大程度的减少内容资源的响应时间,提高系统的整体性能。所以对于热点资源我们首先要判断他的平均响应和系统设定的阈值的相对大小才能确定是否需要创建副本。内容的响应时间取决于很多因素,包括带宽、节点性能等,也包括内容的大小.如果内容尺寸比较大,平均响应时间有可能也大,其实这并不能说明该内容副本数量稀缺,所以,还需要引入单位平均响应时间来判断内容是否需要创建副本。
步骤S4:首先计算需要创建副本的内容Ci在该域内的单位平均响应时间SACTi,R,如果在域R内的内容Ci的单位平均响应时间大于该内容的单位平均响应时间,那么这就说明域R内需要创建内容Ci(即域R为副本缺乏域,用Rd表示)。
步骤S4的计算全部在后台系统的内容管理模块完成,同时用集合R表示所有的副本缺乏域。
对于需要创建内容副本的内容Ci,首先要计算该内容Ci在该域内的单位平均响应时间SACTi,R,然后将全局的单位平均响应时间SACTi与域R内的单位平均响应时间SACTi,R进行比较,如果SACTi<SACTi,R就说明域R内需要创建内容的副本。域R内的单位平均响应时间的计算公式为:
式中Ti,R表示单位时间内,在域R内所有的节点访问内容Ci的次数。
如果SACTi<SACTi,R,就可以称域R为内容副本缺乏域,用Rd表示。域内节点请求该资源的平均响应时间(即域平均响应时间)能够综合反映该域对资源Ci的缺乏程度和访问热度。如果某个域平均响应时间大于内容Ci的平均响应时间,说明相对系统内其他区域的节点,域R内该资源的副本数量过少,需要在域R内增加内容Ci的副本。在平均响应时间大的域内创建副本,会最大程度减少内容Ci在全局范围内的平均响应时间。
图5是本发明实施例提供的副本位置放置流程图。
步骤S5:依次确定每个副本缺乏域内需要创建多少个内容副本。然后,根据域Rd内的单位平均响应时间和单位平均响应时间的阈值还有该域内已经拥有的内容副本的数量来计算需要创建的内容副本的数量。
步骤S5的计算全部由域管理节点来完成的。
在步骤S4中已经确定了副本缺乏域,在步骤S5中确定每一个副本缺乏域中需要创建多少副本,也就是确定需要创建的副本的数量。根据副本缺乏域Rd内的节点请求内容Ci的实际响应时间以及期望能够达到的响应时间来确定在域Rd内需要创建多少副本。假定该域内容副本amount个,需要新创建的内容副本Δamount个。由于平均响应时间和内容副本的个数成反比,所以平均响应时间与副本个数的比就等于平均响应时间和阈值只差与需要创建的副本的数量之比,可以用下式计算需要新建的内容副本的数量。
式中amount表示内容副本的数量,Δamount表示需要创建的内容副本的数量。αACT表示平均响应时间的阈值。
由于创建内容副本的目的是降低内容的平均响应时间ACTi,使ACTi能够接近事先给定的期望值αACT。如果期望的平均响应时间αACT与实际ACTi相差比较大,就需要创建更多的内容副本数量以降低ACTi。
步骤S6:对于每一个副本缺乏域Rd∈R,需要在域Rd内确定Δamount个最适合放置内容副本的节点。首先选择域Rd内没有内容副本的节点作为待选节点,在域管理节点中根据代价因子的计算公式计算每个节点上的代价因子,然后选择其中最大的并且可以容纳的下Δamount个内容副本的节点作为内容副本的放置位置。
步骤S6的计算在域管理节点来完成的,节点位置的路由由内容路由模块给选路的,在步骤五确定了每个副本缺乏域应该创建内容副本的数量之后,接下来步骤六就是为新创建的副本找到合适的位置。
首先需要明确节点的服务质量SQ,也就是单位时间内节点完成服务的数量与节点被请求的数量之比。这样节点服务质量就可以衡量一个节点的综合性能。
代价因子Costi是衡量节点适宜放置内容副本的程度。可以用下式来计算:
其中AB表示每个节点的可用平均带宽,可以用节点上的等候队列的长短来和计算。等待的队列越长就说明可以的平均带宽就会越少。St表示节点的存储空间的大小。fsi表示内容Ci的大小。代价因子与节点服务质量、节点可用存储空间、节点平均可用带宽以及节点上的平均等候队列长度成正比,与内容的尺寸成反比.代价因子的大小代表着该节点适宜放置该副本的程度,代价因子的值越大,表明该节点越适合放置这个副本。
步骤S7:执行内容放置。
步骤S8:更新域管理节点、目录服务器中的内容列表。
更新域管理节点、目录服务器中的内容列表。是在后台系统的内容管理模块和目录服务器模块完成的。
步骤S9:更新运营管理模块中的边缘节点剩余空间信息。
更新运营管理模块中的边缘节点剩余空间信息是在后台系统的运营管理模块完成的。