CN109922161B - 动态云内容分发网络的内容分发方法、系统、设备及介质 - Google Patents
动态云内容分发网络的内容分发方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN109922161B CN109922161B CN201910284220.4A CN201910284220A CN109922161B CN 109922161 B CN109922161 B CN 109922161B CN 201910284220 A CN201910284220 A CN 201910284220A CN 109922161 B CN109922161 B CN 109922161B
- Authority
- CN
- China
- Prior art keywords
- node
- data packet
- nodes
- value
- termination
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了动态云内容分发网络的内容分发方法、系统、设备及介质,基于已有的云代理服务器,构建云内容分发网络;将云内容分发网络中所有的云代理服务器视为节点,确定源节点、中继节点、目的节点和节点与节点之间的连接关系;为每个节点构建Q表;基于Q‑learning的自适应路由选择算法,为每一目的节点选择一条到其终止节点的路径;通过反向路由信息,建立从终止节点到目的节点的路径,构建自适应分发树;基于自适应分发树,实现对内容的分发。该算法通过网络学习包传播局部和非局部拥塞信息。选择一条拥塞成本低的路径,并能够适应动态云分发环境。
Description
技术领域
本公开涉及动态云内容分发网络的内容分发方法、系统、设备及介质。
背景技术
本部分的陈述仅仅是提到了与本公开相关的背景技术,并不必然构成现有技术。
传统内容分发网络(Content Delivery Network,CDN)通过部署大量数据中心和边缘服务器,将网络内容发布到最接近用户的网络“边缘”,使用户可以就近获得所需内容,解决了中心服务器网络拥堵的情况。然而传统CDN系统难以扩展且部署成本高。随着云计算的发展,允许租赁资源(如存储和带宽)来在云中构建内容分发网络。云CDN在全球范围内广泛分布,许多Web服务器作为一个云网络连接,大量数据中心由一个源服务器控制。云内容分发网络(Cloud based Content Delivery Network,CCDN)具有可扩展性、灵活性、弹性、可靠性、安全性等特点,并且降低了内容存储和分发价格的数量级。
内容分发是CCDN的关键技术之一。为了节省内容分发的成本,内容提供者(Content Providers,CPs)通常通过构建多播树来减少副本分发数量。然而,大多数分发树构建方法针对网络状态不变的静态网络,无法适应CCDN中云代理服务器频繁变化的动态特征。另外,网络拥塞是造成传统CCDN内容分发方法成本高的主要因素之一。传统的内容分发方法仅提供固定的分发路径,而没有考虑CCDN网络拥塞的动态变化。因此,针对CCDN的这些动态特性,如何降低内容分发的成本仍然是一个具有挑战性的问题。
然而由于云内容分发网络弹性、灵活性特点,使得CCDN具有独特的网络结构,目前为止没有一个很好的方法能够针对动态云内容分发网络的内容分发问题给出一个合理的解决方案。
发明内容
为了解决现有技术的不足,本公开提供了动态云内容分发网络的内容分发方法、系统、设备及介质,其基于Q-learning的动态CCDN内容分发模型——Q-content placementmodel(Q-CPM)。然后,在Q-CPM模型的基础上,通过自适应分发树构建算法构建一棵自适应分发树——Q-adaptive delivery tree(Q-ADT)。该算法通过学习数据包传播局部和非局部拥塞信息,选出拥塞成本低的路径分发数据,并能很好的适应动态云内容分发网络。
第一方面,本公开提供了动态云内容分发网络的内容分发方法;
动态云内容分发网络的内容分发方法,包括:
基于已有的云代理服务器,构建云内容分发网络;
将云内容分发网络中所有的云代理服务器视为节点,确定源节点、中继节点、目的节点和节点与节点之间的连接关系;为每个节点构建Q表;
基于Q-learning的自适应路由选择算法,为每一目的节点选择一条到其终止节点的路径;在选择路径的过程中,每选择一次下一跳节点,都更新Q表中的Q value值;依据更新后的Q表的Q value值最小为原则,选择下一跳节点,向下一跳节点发送数据包,直至到达终止节点;Q value值表示从当前节点到达终止节点拥塞成本估计值;
通过反向路由信息,建立从终止节点到目的节点的路径,构建自适应分发树;基于自适应分发树,实现对内容的分发。
第二方面,本公开还提供了动态云内容分发网络的内容分发系统;
动态云内容分发网络的内容分发系统,包括:
网络构建模块:基于已有的云代理服务器,构建云内容分发网络;
Q表建立模块:将云内容分发网络中所有的云代理服务器视为节点,确定源节点、中继节点、目的节点和节点与节点之间的连接关系;为每个节点构建Q表;
路径选择模块:基于Q-learning的自适应路由选择算法,为每一目的节点选择一条到其终止节点的路径;在选择路径的过程中,每选择一次下一跳节点,都更新Q表中的Qvalue值;依据更新后的Q表的Q value值最小为原则,选择下一跳节点,向下一跳节点发送数据包,直至到达终止节点;Q value值表示从当前节点到达终止节点拥塞成本估计值;
自适应分发树构建模块:通过反向路由信息,建立从终止节点到目的节点的路径,构建自适应分发树;基于自适应分发树,实现对内容的分发。
第三方面,本公开还提供了一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成第一方面中方法的步骤。
第四方面,本公开还提供了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成第一方面中方法的步骤。
与现有技术相比,本公开的有益效果是:
基于Q-learning的自适应路由选择算法,为每一目的节点选择一条到其终止节点的路径;通过反向路由信息,建立从终止节点到目的节点的路径,构建自适应分发树;基于自适应分发树,实现对内容的分发;选出拥塞成本低的路径分发数据,并能很好的适应动态云内容分发网络。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为整体流程图;
图2为一个自适应分发树结构图;
图3为Q-ADT构建过程示例图;
图4为不规则6×6网络拥塞成本对比图;
图5为LATA电话网络拥塞成本对比图;
图6为低负载下拥塞成本对比图;
图7为高负载下拥塞成本对比图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
专业术语介绍:
云代理服务器:在内容分发网络中,内容提供商可以租赁云资源动态建立云内容分发网络,租赁的云服务器就是云代理服务器。
云内容分发网络:是指通过云代理服务器构建的内容分发网络。云内容分发网络在全球范围内广泛分布,许多Web服务器作为一个云网络连接,大量数据中心由一个源服务器控制。
实施例一,本实施例提供了动态云内容分发网络的内容分发方法;
如图1所示,动态云内容分发网络的内容分发方法,包括:
基于已有的云代理服务器,构建云内容分发网络;
将云内容分发网络中所有的云代理服务器视为节点,确定源节点、中继节点、目的节点和节点与节点之间的连接关系;为每个节点构建Q表;
基于Q-learning的自适应路由选择算法,为每一目的节点选择一条到其终止节点的路径;在选择路径的过程中,每选择一次下一跳节点,都更新Q表中的Q value值;依据更新后的Q表的Q value值最小为原则,选择下一跳节点,向下一跳节点发送数据包,直至到达终止节点;Q value值表示从当前节点到达终止节点拥塞成本估计值;
通过反向路由信息,建立从终止节点到目的节点的路径,构建自适应分发树;基于自适应分发树,实现对内容的分发。
所述终止节点是源节点或是已获得数据副本且到源节点距离比发送节点到源节点距离近的其他目的节点。
所述发送节点是指发送数据包的节点。
作为一种可能的实现方式,所述基于已有的云代理服务器,构建云内容分发网络,包括:
定义有向图G=(V,E),其中,V是顶点集合,代表云内容分发网络中所有的云代理服务器;E是边集合,代表云内容分发网络中所有云代理服务器之间的连接。
作为一种可能的实现方式,所述将云内容分发网络中所有的云代理服务器视为节点,确定源节点、中继节点、目的节点和节点与节点之间的连接关系,具体包括:
将云内容分发网络中所有的云代理服务器划分为三种:源服务器、目的云代理服务器和中间云代理服务器;
源服务器只有一个,用于存储原始数据,并负责将原始数据内容分发到目的云代理服务器;源服务器被视为源节点;
中间云代理服务器作为中继服务器参与内容分发过程;中间云代理服务器被视为中继节点;
目的云代理服务器有若干个,被视为目的节点,目的节点的集合D,用D=(D1,D2,...,Dj)表示,Dj表示第j个目的节点;
源节点与每个目的节点之间通过若干个中继节点进行连接;
节点与节点之间是否存在连接关系,跟实际代理云服务器与实际代理云服务器之间是否存在连通关系有关,如果存在连通关系,则节点之间就存在连接关系;如果不存在连通关系,则节点之间就不存在连接关系;
如果某个中继节点的拥塞值小于设定的拥塞阈值,则该中继节点为可用节点,该可用的中继节点与其他节点之间的连线为实线;实线表示可用路径;
如果某个中继节点的拥塞值大于等于设定的拥塞阈值,则该中继节点为不可用节点,该不可用的中继节点与其他节点之间的连线为虚线;虚线表示隐藏路径。
所述拥塞值为学习数据包中的path delay值。
作为一种可能的实现方式,所述为每个节点构建Q表,具体包括:
为网络中的每个节点构建Q表,Q表由四个字段组成:
Next Router、Path、Q value、Termination Router;
其中,Next Router字段表示当前节点的下一跳节点;
Path表示当前节点到下一跳节点的路径;
Q value表示从当前节点到达终止节点拥塞成本估计值;
Termination Router表示终止节点。
作为一种可能的实现方式,对于网络中的数据包分为两种,分别为请求数据包request packets和学习数据包learning packets。
其中,请求数据包request packets用来记录数据包的传输过程中所经过节点的节点序列,和根据Q表选择出的下一跳节点;
学习数据包learning packets用来记录两个节点之间的传输延时和未来拥塞成本的估计值,通过传输延时和未来拥塞成本的估计值更新接收到当前学习数据包节点的Q表。
其中,请求数据包request packets的格式为:
<sender location,node sequence,next hop>
其中,sender location是发送节点的地理位置,node sequence是请求数据包经过的节点序列,next hop字段为当前节点根据Q表选出到达终止节点Q value值最小的下一跳节点。
其中,学习数据包learning packets的格式为:
<sender location,respondent location,termination node flag,pathdelay,future delay>
其中,sender location是发送节点的地理位置;respondent location为发送学习数据包的节点的位置信息;termination node flag标记当前节点是否为终止节点,若是,则该值为1,否则为0;path delay是请求数据包从上一跳节点到当前节点传输过程中花费的时间,记为时间延迟,future delay表示从当前节点到达终止节点的未来拥塞成本的估计值。
作为一种可能的实现方式,通过基于Q-learning的自适应路由选择算法,为每一目的节点选择一条到其终止节点的路径;具体步骤如下:
步骤(421):以目的节点Dj作为发送节点,根据当前节点自身的Q表,选择Q value值最小的下一跳节点i发送请求数据包;
步骤(422):下一跳节点i收到请求数据包后,将自身加入到请求数据包的所经过的节点序列中;计算从上一跳节点发送数据包到当前节点的时间延迟;判断自身是否是目的节点的终止节点;如果是,执行步骤(423),否则,执行步骤(424);
步骤(423):将即将发送的学习数据包中的termination node flag置1,根据请求数据包经过的节点序列node sequence向上一跳节点发送学习数据包;
步骤(424):计算最小未来拥塞成本估计值f,用来确定当前节点到终止节点的最佳路径,根据请求数据包经过的节点序列node sequence向上一跳节点发送学习数据包,将Q表中到达终止节点Q value最小的路径作为下一跳节点,并且继续向下一跳节点转发请求数据包,直到到达终止节点。
进一步地,计算最小未来拥塞成本估计值f:
f=mink∈N(i)Qi(k,d) (1)
其中,Qi(k,d)为节点i传输数据包到终止节点d经过节点k的拥塞成本估计值,N(i)表示节点i的邻居节点。
步骤(425):重复步骤(421)、步骤(422)和步骤(423)为所有的目的节点找到到其终止节点的路径;或者,重复步骤(421)、步骤(422)和步骤(424)为所有的目的节点找到到其终止节点的路径。
所述更新Q表中的Q value值;依据更新后的Q表的Q value值最小为原则,选择下一跳节点,向下一跳节点发送数据包,直至到达终止节点的具体步骤如下:
步骤(431):如果在设定的时间间隔T内,节点j收到了节点i发送过来的学习数据包,则节点j执行步骤(432),否则节点j执行步骤(435);
步骤(432):根据学习数据包的termination node flag判断节点i是否是终止节点;若是,则执行步骤(433),否则,执行步骤(434);
Qj(i,d)new=Qj(i,d)old+γ(f+r'(j,i)-Qj(i,d)old) (3)
其中,γ为折扣因子,f为最佳未来拥塞成本估计值,在步骤(433)中,由于当前节点为终止节点,所以f的取值为零,Qj(i,d)old为更新前的Q value值,Qj(i,d)new为更新后的Qvalue值。
步骤(434):计算请求数据包在节点i中的排队等待时间,利用学习数据包反馈回的请求数据包中的开始发送时间到当前节点收到请求数据包的时间差path delay作为在节点与节点之间传输所花费时间,计算回报函数;利用学习数据包反馈回的请求数据包中的future delay最佳未来拥塞成本估计值f,根据公式(3)更新Q值;根据Q表重新选择下一跳节点k,向下一跳节点k发送请求数据包,直至到达终止节点。
r(j,i)=δ+ti (2)
其中,ti表示数据包在节点i队列中的排队时间,δ表示在节点j和节点i之间传输所花费时间;
步骤(435):节点j更改回报函数r'(j,i)=r(j,i)+c,c为一个常数,根据公式(3)更改Q value值,根据Q表重新选择下一跳节点k,向下一跳节点k发送请求数据包,直至到达终止节点。
由于网络环境不断变化,节点间的拥塞情况不断变化,每次传输数据包都需要更新Q value值。
所述通过反向路由信息,建立从终止节点到目的节点的路径,构建自适应分发树中:当目的节点找到了一条到其终止节点的路径,那么其终止节点根据node sequence通过反向路由向目的节点发送数据。当所有目的节点均找到了到达终止节点的路径,那么就构建成一棵自适应分发树。
作为一种可能的实现方式,所述基于自适应分发树,实现对内容的分发,具体包括:根据自适应分发树的路径进行分发。
实施例二,本实施例还提供了动态云内容分发网络的内容分发系统;
动态云内容分发网络的内容分发系统,包括:
网络构建模块:基于已有的云代理服务器,构建云内容分发网络;
Q表建立模块:将云内容分发网络中所有的云代理服务器视为节点,确定源节点、中继节点、目的节点和节点与节点之间的连接关系;为每个节点构建Q表;
路径选择模块:基于Q-learning的自适应路由选择算法,为每一目的节点选择一条到其终止节点的路径;在选择路径的过程中,每选择一次下一跳节点,都更新Q表中的Qvalue值;依据更新后的Q表的Q value值最小为原则,选择下一跳节点,向下一跳节点发送数据包,直至到达终止节点;Q value值表示从当前节点到达终止节点拥塞成本估计值;
自适应分发树构建模块:通过反向路由信息,建立从终止节点到目的节点的路径,构建自适应分发树;基于自适应分发树,实现对内容的分发。
所述动态云内容分发网络的动态特性,包括:
1)云代理服务器动态变化:云内容分发网络内容提供商可以在需要时租赁云服务器,并可按需终止租赁,使得节点具有动态变化的特点。
2)网络拥塞变化:传统的内容分发方法总是在给定的源与目的之间提供固定的分发路径,而没有考虑网络拥塞状况。在真实的云内容分发网络环境中,网络节点的拥塞随着当前节点处理数据包的数量而不断变化,节点无法通过本地决策来解决全局拥塞成本最小化问题。
接下来将全局拥塞成本最小化问题映射到Q-learning中,对于状态、动作、回报函数做相应定义。
定义1:(网络状态空间)网络状态空间用S表示。一个状态s∈S通过采取一步动作a转移到下一状态s'。到达终止情况的状态被称为终止状态。在我们的问题中,每一步的决策过程均需要当前节点选择下一邻居节点,然后发送请求,因此,当前所处的网络节点(e.g.v∈V)可以看成当前的状态(e.g.s=v),下一节点(e.g.v'∈V)即下一状态(e.g.s'=v'),而到达终止节点(定义2)的状态即为终止状态。
定义2:(终止节点)若某节点是源节点或是已获得数据副本且到源节点距离比发送节点到源节点距离近的其他目的节点。将满足该条件的节点称为发送节点的终止节点。
定义3:(动作集)在Q-learning中动作集即所有状态到达其下一状态的动作组成的集合;在全局拥塞成本最小化问题中,当前节点到达下一节点的路径选择即动作选择。节点所有可选的路径组成动作集,我们用A表示。对于动作集A,我们有:A=∪s∈SAs=E。其中As表示状态s所有可选的边的集合。
定义4:(回报函数)Q-learning中用R:S×A表示回报函数。如果一组(s,a)转移到了下个状态s',那么回报函数可记为r(s'|s,a)。在全局拥塞成本最小化问题中,若当前节点j通过路径选择到达下一节点i,则该过程的回报函数用r(j,i)表示。
基于Q-learning,本发明通过Q值来学习网络状态,然后使用Q值作出路由决策。网络中的每个节点j通过自身的Q表表示自身的网络状态视图。节点j处的动作是找到预期拥塞成本最小的邻居节点以传递数据包,从而使请求到达其终止节点的拥塞成本最低。为了保证每一步的路径选择过程具有拥塞意识,定义拥塞公式。
定义5:(拥塞成本估计值)一旦节点j将发往终止节点d的数据包发送到它的一个相邻节点i,节点i就将其到达d的最小拥塞成本估计值f发送回节点j。
最小拥塞成本估计值f用于估计数据包剩余行程中将花费的拥塞成本:
f=mink∈N(i)Qi(k,d) (1)
其中,Qi(k,d)为节点i传输数据包到终止节点d经过节点k的拥塞成本估计值,N(i)表示节点i的邻居节点。
定义6:(回报函数公式)对于回报函数,针对网络拥塞做相应修改:
r(j,i)=δ+ti (2)
其中,ti表示数据包在节点i队列中的排队时间,δ表示在节点j和i的传输中花费的时间。
定义7:(Q值更新公式)Q值更新公式:
Qj(i,d)new=Qj(i,d)old+γ(f+r(j,i)-Qj(i,d)old) (3)
其中γ为折扣因子。
所述步骤(4),构建自适应分发树Q-ADT包括以下步骤。
步骤(41)构建Q-table,将网络中的数据包划分为两种。
步骤(42)通过基于Q-learning的自适应路由选择算法,为每一目的节点选择一条到其终止节点的路径。
步骤(43)通过基于学习的Q值更新算法更新Q值。
步骤(44)通过反向路由信息,建立从终止节点到目的节点的路径,构建Q-ADT。
表1 Q-Table
所述步骤(44)中:当目的节点找到了一条到其终止节点的路径,那么其终止节点根据node sequence通过反向路由向目的节点发送数据。当所有目的节点均找到了到达终止节点的路径,那么就构建了一棵自适应分发树Q-ADT。
如图1所示,本发明的实施例首先输入一个云内容分发网络,确定目的节点集合,然后构建基于Q-learning的自适应分发树,最后利用分发树进行内容分发。
图2为自适应分发树结构图。图中黑色圆圈代表源节点,矩形表示目的节点,小圆圈表示网络中的其他节点,图中实线连接的分发树连通了源节点和所有目的节点,图中虚圆圈表示不存在或拥塞值大的节点,虚线表示隐藏的路径,即若这些节点存在或拥塞值小时可能选择的路径。自适应分发树结构可以根据节点的存在情况以及节点的拥塞状况自适应调节路径,从而保持较低的拥塞成本。
根据图3,描述构建基于Q-learning的自适应分发树Q-adaptive delivery tree(Q-ADT)的具体过程。我们以节点Dj的自适应路由过程为例:
步骤1:以节点Dj作为发送节点向其邻居节点i发送请求数据包;
步骤2:邻居节点i收到请求数据包后,根据Q表将其到达终止节点d的最佳估计f(f=mink∈Neighbor(i)Qi(k,d))以及从Dj发送数据包到节点i的延迟δ以学习数据包的形式发送回Dj;
步骤4:邻居节点i根据Q表选出下一跳节点,继续向下一跳节点发送该请求数据包,直到到达终止节点。
最后,我们将Q-ADT与最小斯坦纳树数据分发的拥塞成本作比较,具体过程如下:
1.计算拥塞成本花费
我们定义数据分发的总拥塞成本:
其中q(Dj)为从Dj到其终止节点的节点序列。
2.设置参数值
我们每次选择5个目的节点,设置参数γ为0.9,T值我们设置为0.01s,c值我们设置为10。本发明使用Boyan和Littman所采用的通信网络拓扑上测试我们的算法,包括一个不规则6×6网络和一个有116个节点的LATA电话网络。
3.拥塞成本比较
如图4为在不规则6×6网络中,本发明Q-ADT跟最小斯坦纳树的总拥塞成本对比图,图中负载对应于每个时间单位注入的平均数据包个数的泊松到达过程参数的值。图中可以看出,当网络负载较低时,本发明Q-ADT的拥塞成本与斯坦纳树基本一致,随着网络负载增加,斯坦纳树算法的拥塞成本显著增加,远远高于Q-ADT,而Q-ADT算法在负载较高的情况下也可获得较低的拥塞成本,直到负载持续增加到过高水平Q-ADT才逐渐受制于负载。除了不规则6×6网络,本发明还在116个节点的LATA电话网络中进行试验,如图5可以看出,本发明Q-ADT仍然具有较低的拥塞成本。由此可见,Q-ADT在不同的网络负载情况都能够有效降低网络的拥塞成本。
如图6和图7所示,我们在LATA网络拓扑下比较了本发明Q-ADT与斯坦纳树在高低两种不同负载情况下随着时间增加拥塞成本的变化情况,从图6可以看出当网络负载较低时,Q-ADT在时间为2000时拥塞成本收敛到一定值,而斯坦纳树算法在负载较低时拥塞成本一直保持较低值。如图7,在负载较高时,随着时间增加,Q-ADT的拥塞成本逐渐收敛为一较小值,而斯坦纳树算法的拥塞值一直处于较高的状态。由此可见,斯坦纳树算法当负载高时无法从全局上降低网络拥塞,而Q-ADT无论在高低负载情况下都可从长远考虑获得较低的拥塞成本。
由此可见,本发明的Q-ADT可以很好的适应网络负载的变化,节约了拥塞成本。
强化学习方法是在系统提供动态选择时通过自身经历进行学习,在行动-评价的环境中获得知识,不断改进行动方案以适应环境从而获得全局优化的解决方法。Q-Learning是强化学习中比较典型的方法,得到了广泛的运用,基于Q-Learning,用于分组路由的Q-Routing算法,将强化学习模块嵌入到网络的每个节点中,该方法与传统路由方法相比可以更好地解决动态变化的网络负载从而为内容分发提供更合理的解决方案。
本公开还提供了一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成方法中的各个操作,为了简洁,在此不再赘述。
所述电子设备可以是移动终端以及非移动终端,非移动终端包括台式计算机,移动终端包括智能手机(Smart Phone,如Android手机、IOS手机等)、智能眼镜、智能手表、智能手环、平板电脑、笔记本电脑、个人数字助理等可以进行无线通信的移动互联网设备。
应理解,在本公开中,该处理器可以是中央处理单元CPU,该处理器还算可以是其他通用处理器、数字信号处理器DSP、专用集成电路ASIC,现成可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本公开所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元即算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能的划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外一点,所显示或讨论的相互之间的耦合或者直接耦合或者通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.动态云内容分发网络的内容分发方法,其特征是,包括:
基于已有的云代理服务器,构建云内容分发网络;
将云内容分发网络中所有的云代理服务器视为节点,确定源节点、中继节点、目的节点和节点与节点之间的连接关系;为每个节点构建Q表;
基于Q-learning的自适应路由选择算法,为每一目的节点选择一条到其终止节点的路径;若某节点是源节点或是已获得数据副本且到源节点距离比发送节点到源节点距离近的其他目的节点,将满足该条件的节点称为发送节点的终止节点;在选择路径的过程中,每选择一次下一跳节点,都更新Q表中的Q value值;依据更新后的Q表的Q value值最小为原则,选择下一跳节点,向下一跳节点发送数据包,直至到达终止节点;Q value值表示从当前节点到达终止节点拥塞成本估计值;
通过反向路由信息,建立从终止节点到目的节点的路径,构建自适应分发树;基于自适应分发树,实现对内容的分发。
2.如权利要求1所述的方法,其特征是,
所述终止节点是源节点或是已获得数据副本且到源节点距离比发送节点到源节点距离近的其他目的节点。
3.如权利要求1所述的方法,其特征是,所述基于已有的云代理服务器,构建云内容分发网络,包括:
定义有向图G=(V,E),其中,V是顶点集合,代表云内容分发网络中所有的云代理服务器;E是边集合,代表云内容分发网络中所有云代理服务器之间的连接。
4.如权利要求1所述的方法,其特征是,所述将云内容分发网络中所有的云代理服务器视为节点,确定源节点、中继节点、目的节点和节点与节点之间的连接关系,具体包括:
将云内容分发网络中所有的云代理服务器划分为三种:源服务器、目的云代理服务器和中间云代理服务器;
源服务器只有一个,用于存储原始数据,并负责将原始数据内容分发到目的云代理服务器;源服务器被视为源节点;
中间云代理服务器作为中继服务器参与内容分发过程;中间云代理服务器被视为中继节点;
目的云代理服务器有若干个,被视为目的节点,目的节点的集合D,用D=(D1,D2,...,Dj)表示,Dj表示第j个目的节点;
源节点与每个目的节点之间通过若干个中继节点进行连接;
节点与节点之间是否存在连接关系,跟实际代理云服务器与实际代理云服务器之间是否存在连通关系有关,如果存在连通关系,则节点之间就存在连接关系;如果不存在连通关系,则节点之间就不存在连接关系;
如果某个中继节点的拥塞值小于设定的拥塞阈值,则该中继节点为可用节点,该可用的中继节点与其他节点之间的连线为实线;实线表示可用路径;
如果某个中继节点的拥塞值大于等于设定的拥塞阈值,则该中继节点为不可用节点,该不可用的中继节点与其他节点之间的连线为虚线;虚线表示隐藏路径。
5.如权利要求1所述的方法,其特征是,所述为每个节点构建Q表,具体包括:
为网络中的每个节点构建Q表,Q表由四个字段组成:
Next Router、Path、Q value、Termination Router;
其中,Next Router字段表示当前节点的下一跳节点;
Path表示当前节点到下一跳节点的路径;
Q value表示从当前节点到达终止节点拥塞成本估计值;
Termination Router表示终止节点。
6.如权利要求1所述的方法,其特征是,所述方法,还包括:
对于网络中的数据包分为两种,分别为请求数据包request packets和学习数据包learning packets;
其中,请求数据包request packets用来记录数据包的传输过程中所经过节点的节点序列,和根据Q表选择出的下一跳节点;
学习数据包learning packets用来记录两个节点之间的传输延时和未来拥塞成本的估计值,通过传输延时和未来拥塞成本的估计值更新接收到当前学习数据包节点的Q表。
7.如权利要求1所述的方法,其特征是,通过基于Q-learning的自适应路由选择算法,为每一目的节点选择一条到其终止节点的路径;具体步骤如下:
步骤(421):以目的节点Dj作为发送节点,根据当前节点自身的Q表,选择Q value值最小的下一跳节点i发送请求数据包;
步骤(422):下一跳节点i收到请求数据包后,将自身加入到请求数据包的所经过的节点序列中;计算从上一跳节点发送数据包到当前节点的时间延迟;判断自身是否是目的节点的终止节点;如果是,执行步骤(423),否则,执行步骤(424);
步骤(423):将即将发送的学习数据包中的termination node flag置1,根据请求数据包经过的节点序列node sequence向上一跳节点发送学习数据包;
步骤(424):计算最小未来拥塞成本估计值f,用来确定当前节点到终止节点的最佳路径,根据请求数据包经过的节点序列node sequence向上一跳节点发送学习数据包,将Q表中到达终止节点Q value最小的路径作为下一跳节点,并且继续向下一跳节点转发请求数据包,直到到达终止节点;
步骤(425):重复步骤(421)、步骤(422)和步骤(423)为所有的目的节点找到到其终止节点的路径;或者,重复步骤(421)、步骤(422)和步骤(424)为所有的目的节点找到到其终止节点的路径。
8.如权利要求1所述的方法,其特征是,所述更新Q表中的Q value值;依据更新后的Q表的Q value值最小为原则,选择下一跳节点,向下一跳节点发送数据包,直至到达终止节点的具体步骤如下:
步骤(431):如果在设定的时间间隔T内,节点j收到了节点i发送过来的学习数据包,则节点j执行步骤(432),否则节点j执行步骤(435);
步骤(432):根据学习数据包的termination node flag判断节点i是否是终止节点;若是,则执行步骤(433),否则,执行步骤(434);
Qj(i,d)new=Qj(i,d)old+γ(f+r'(j,i)-Qj(i,d)old) (3)
其中,γ为折扣因子,f为最佳未来拥塞成本估计值,d为终止节点,在步骤(433)中,由于当前节点为终止节点,所以f的取值为零,Qj(i,d)old为更新前的Q value值,Qj(i,d)new为更新后的Q value值;
步骤(434):计算请求数据包在节点i中的排队等待时间,利用学习数据包反馈回的请求数据包中的开始发送时间到当前节点收到请求数据包的时间差path delay作为在节点与节点之间传输所花费时间,计算回报函数;利用学习数据包反馈回的请求数据包中的future delay最佳未来拥塞成本估计值f,根据公式(3)更新Q值;根据Q表重新选择下一跳节点k,向下一跳节点k发送请求数据包,直至到达终止节点;
r(j,i)=δ+ti (2)
其中,ti表示数据包在节点i队列中的排队时间,δ表示在节点j和节点i之间传输所花费时间;
步骤(435):节点j更改回报函数r'(j,i)=r(j,i)+c,c为一个常数,根据公式(3)更改Qvalue值,根据Q表重新选择下一跳节点k,向下一跳节点k发送请求数据包,直至到达终止节点。
9.动态云内容分发网络的内容分发系统,其特征是,包括:
网络构建模块:基于已有的云代理服务器,构建云内容分发网络;
Q表建立模块:将云内容分发网络中所有的云代理服务器视为节点,确定源节点、中继节点、目的节点和节点与节点之间的连接关系;为每个节点构建Q表;
路径选择模块:基于Q-learning的自适应路由选择算法,为每一目的节点选择一条到其终止节点的路径;若某节点是源节点或是已获得数据副本且到源节点距离比发送节点到源节点距离近的其他目的节点,将满足该条件的节点称为发送节点的终止节点;在选择路径的过程中,每选择一次下一跳节点,都更新Q表中的Q value值;依据更新后的Q表的Qvalue值最小为原则,选择下一跳节点,向下一跳节点发送数据包,直至到达终止节点;Qvalue值表示从当前节点到达终止节点拥塞成本估计值;
自适应分发树构建模块:通过反向路由信息,建立从终止节点到目的节点的路径,构建自适应分发树;基于自适应分发树,实现对内容的分发。
10.一种电子设备,其特征是,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成权利要求1-8中任一项方法所述的步骤。
11.一种计算机可读存储介质,其特征是,用于存储计算机指令,所述计算机指令被处理器执行时,完成权利要求1-8中任一项方法所述的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910284220.4A CN109922161B (zh) | 2019-04-10 | 2019-04-10 | 动态云内容分发网络的内容分发方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910284220.4A CN109922161B (zh) | 2019-04-10 | 2019-04-10 | 动态云内容分发网络的内容分发方法、系统、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109922161A CN109922161A (zh) | 2019-06-21 |
CN109922161B true CN109922161B (zh) | 2021-10-19 |
Family
ID=66969395
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910284220.4A Active CN109922161B (zh) | 2019-04-10 | 2019-04-10 | 动态云内容分发网络的内容分发方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109922161B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111629037B (zh) * | 2020-05-14 | 2022-05-27 | 山东师范大学 | 基于协同强化学习的动态云内容分发网络内容放置方法 |
CN115695560A (zh) | 2021-07-23 | 2023-02-03 | 伊姆西Ip控股有限责任公司 | 内容分发方法、电子设备和计算机程序产品 |
CN116566973B (zh) * | 2023-06-20 | 2023-11-07 | 北京中宏立达科技发展有限公司 | 一种基于对等网络的文件传输系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016128984A1 (en) * | 2015-02-15 | 2016-08-18 | Moviemation Ltd. | Customized, personalized, template based online video editing |
CN105978805A (zh) * | 2016-07-12 | 2016-09-28 | 重庆邮电大学 | 一种面向任播属性业务的节能路由方法 |
CN106713143A (zh) * | 2016-12-06 | 2017-05-24 | 天津理工大学 | 一种面向车联网的自适应可靠路由方法 |
CN107395688A (zh) * | 2017-06-28 | 2017-11-24 | 茂名职业技术学院 | 一种基于流量感知的动态资源分配方法 |
CN107864092A (zh) * | 2017-10-31 | 2018-03-30 | 山东师范大学 | 一种基于多播技术的云内容分发方法、装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10693947B2 (en) * | 2016-09-09 | 2020-06-23 | Microsoft Technology Licensing, Llc | Interchangeable retrieval of sensitive content via private content distribution networks |
-
2019
- 2019-04-10 CN CN201910284220.4A patent/CN109922161B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016128984A1 (en) * | 2015-02-15 | 2016-08-18 | Moviemation Ltd. | Customized, personalized, template based online video editing |
CN105978805A (zh) * | 2016-07-12 | 2016-09-28 | 重庆邮电大学 | 一种面向任播属性业务的节能路由方法 |
CN106713143A (zh) * | 2016-12-06 | 2017-05-24 | 天津理工大学 | 一种面向车联网的自适应可靠路由方法 |
CN107395688A (zh) * | 2017-06-28 | 2017-11-24 | 茂名职业技术学院 | 一种基于流量感知的动态资源分配方法 |
CN107864092A (zh) * | 2017-10-31 | 2018-03-30 | 山东师范大学 | 一种基于多播技术的云内容分发方法、装置 |
Non-Patent Citations (2)
Title |
---|
Content Rating Technique for Cloud-Oriented Content Delivery Network Using Weighted Slope One Scheme;Bhavya Deep等;《2018 IEEE 11th International Conference on Cloud Computing (CLOUD)》;20180910;全文 * |
面向5G MEC边缘云的CDN下沉方案;吕华章等;《移动通信》;20190115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109922161A (zh) | 2019-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230283568A1 (en) | Scalable network slice based queuing using segment routing flexible algorithm | |
US8797913B2 (en) | Reduction of message and computational overhead in networks | |
CN109922161B (zh) | 动态云内容分发网络的内容分发方法、系统、设备及介质 | |
CN108401492B (zh) | 一种基于混合资源的路由选路方法、装置和服务器 | |
CN109787801B (zh) | 一种网络服务管理方法、装置和系统 | |
US20170118074A1 (en) | Private Network Driven Hosted Network Device Management | |
JP2007266890A (ja) | サービス品質管理装置及びサービス品質管理方法 | |
KR20190088052A (ko) | 데이터 스트리밍에 대한 보조의 노드 타입 기반 제어 | |
US11121963B2 (en) | Best path computation offload in a network computing environment | |
CN109257282B (zh) | 一种数据传输方法及装置 | |
WO2016186861A1 (en) | Method and apparatus for self-tuned adaptive routing | |
CN114500405A (zh) | 一种多类型业务应用的资源分配、获取方法及装置 | |
US10216593B2 (en) | Distributed processing system for use in application migration | |
US10044632B2 (en) | Systems and methods for adaptive credit-based flow | |
US9112807B2 (en) | System and method for managing network information | |
JP2006287919A (ja) | 通信ネットワーク、コンテンツ配信ノード、ツリー構築方法、コンテンツ配信制御プログラム | |
US10965585B2 (en) | Method for transmitting path load information and network node | |
CN104320346A (zh) | 一种状态信息发布方法以及装置 | |
US10778546B2 (en) | Aggregate energy consumption across a network | |
CN111629037B (zh) | 基于协同强化学习的动态云内容分发网络内容放置方法 | |
Schröter et al. | Adaptive routing in publish/subscribe systems using hybrid routing algorithms | |
JP5702232B2 (ja) | サーバ連携互助システムならびにそのサーバおよびサーバ連携互助プログラム | |
JP2019521609A (ja) | データ・パケットのパス情報を得る方法及びデバイス | |
Chai et al. | Efficient VNF-FG Scaling Algorithm for 5G Network Slices | |
WO2023158863A1 (en) | Method and apparatus for rate control of single quality media streams in selective forwarding units |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |