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);
步骤(433):更改节点j的回报函数: 其中,r'(j,i)为更改后的回报函数,r(j,i)为更改前的回报函数;dis为上一跳节点到当前节点的距离,根据公式(3)更新Q value值;
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)更改Q value值,根据Q表重新选择下一跳节点k,向下一跳节点k发送请求数据包,直至到达终止节点。
9.动态云内容分发网络的内容分发系统,其特征是,包括:网络构建模块:基于已有的云代理服务器,构建云内容分发网络;
Q表建立模块:将云内容分发网络中所有的云代理服务器视为节点,确定源节点、中继节点、目的节点和节点与节点之间的连接关系;为每个节点构建Q表;
路径选择模块:基于Q‑learning的自适应路由选择算法,为每一目的节点选择一条到其终止节点的路径;若某节点是源节点或是已获得数据副本且到源节点距离比发送节点到源节点距离近的其他目的节点,将满足该条件的节点称为发送节点的终止节点;在选择路径的过程中,每选择一次下一跳节点,都更新Q表中的Q value值;依据更新后的Q表的Q value值最小为原则,选择下一跳节点,向下一跳节点发送数据包,直至到达终止节点;Q value值表示从当前节点到达终止节点拥塞成本估计值;
自适应分发树构建模块:通过反向路由信息,建立从终止节点到目的节点的路径,构建自适应分发树;基于自适应分发树,实现对内容的分发。
10.一种电子设备,其特征是,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成权利要求1‑8中任一项方法所述的步骤。
11.一种计算机可读存储介质,其特征是,用于存储计算机指令,所述计算机指令被处理器执行时,完成权利要求1‑8中任一项方法所述的步骤。