具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
有关本发明的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实施例详细说明中将可清楚地呈现。通过具体实施方式的说明,当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。
如无特别说明,在整个说明书和权利要求书中,“包括”、“包含”,均为“包括但不限于”的含义。“连接”或其变形用语,为两个或以上元件、模组或系统之间直接或间接的连接,可以是物理的、逻辑的,或者它们的组合。“/”代表的含义为“或”,涵盖以下解释:罗列中的任意项目、罗列中的所有项目、罗列中所有项目的任意组合。使用单数或复数的词语分别也可以表示单数或复数的情况。
请参照图1,用于FogCDN场景的调度方法,包括步骤:
以不同节点之间的连接关系划分节点类型;
以客户端在不同节点类型的分布比例、服务端在不同节点类型的分布比例以及不同节点类型之间的连通率来调度服务端响应客户端的请求。
其中,本发明中除了云节点与传统CDN节点,其余的节点在未进行特别说明的情况下默认为雾节点即Fog节点,类型为NAT类型或NAT/Firewall的综合表现类型,节点类型即为Fog节点的NAT类型或节点的NAT/Firewall的综合表现类型,服务容量一般为服务节点的剩余可用服务容量。
从上述描述可知,本发明的有益效果在于:使得整个调度策略充分考虑了各不同类型节点之间的连接关系以及各不同类型节点的请求规模或服务容量,从而能尽可能的提高单次连通率、连接效率和资源利用率,即提供了一种高吞吐、低延迟、调度均匀且尽量使每个节点利用率都能在特定水平之上的调度策略。具体效果包括:
最大的带宽费用节省,使得被服务的CP取得最低的成本;
FogCDN取得最高的节点和/或带宽利用率;
FogCDN中的贡献者获得最大的激励,从而有助于节点在线量的稳定和拓展;
包含但不限于最小的单次连接失败率和/或最小的系统整体连接延迟,使得被服务的业务取得较高的服务质量。
进一步地,所述连接关系包括连通率和/或连接性和/或连接延迟;
所述划分节点类型具体包括:以节点所处的NAT类型来划分,或以节点所处的防火墙行为特征来划分,或以节点所处的NAT/防火墙的行为表现来划分,或以节点之间所述连接关系的数值或数值分布通过聚类来划分;
所述NAT类型包括全锥型NAT、限制型NAT、端口限制型NAT以及对称型NAT或者所述NAT类型包括全锥型NAT、限制型NAT、端口限制型NAT、可预测的对称型NAT以及不可预测的对称型NAT。
即本申请中除了传统划分的4种NAT类型之外,本申请还包括了将对称型NAT划分为可预测的对称型NAT以及不可预测的对称型NAT,合计共5种NAT类型,在上述划分的5种NAT里,可以认为按照上述的描述顺序其所处网络可连通质量依次变差。
其中,对于对称型NAT的划分是按照下一次NAT规则分配的外部IP:Port是否能够预测来进行的,具体如下:
1.可预测的对称型NAT
从某一时刻起,对于内部主机和外部主机之间发生的相邻两次通信(如任意内部主机向任意外部主机发出的任意一段时间所有请求的相邻两次,只要经过NAT且NAT为此相邻两次通信分配独立的映射规则),NAT为每次通信分配的外部源地址呈现出可探知的规律,如ePort呈现递增或递减的等差数列、可预测的跳变等;
2.不可预测的对称型NAT
从某一时刻起,对于内部主机和外部主机之间发生的相邻两次通信,NAT为每次通信分配的外部源地址(eAddr:ePort)(通常为ePort)完全随机。
当然,在更复杂的实施例中,节点类型也可以通过节点两两之间的连接关系的数据通过k-means等聚类方法自动划分得来。
从上述描述可知,即提供了连接关系、划分节点类型以及NAT类型的较佳技术方案,从而使得基于上述较佳技术方案能实现更加优化的调度方法。
进一步地,包括步骤:
获取服务端在不同节点类型的分布比例向量S、客户端在不同节点类型的分布比例向量C及不同节点类型的连通率矩阵L,得到调度概率矩阵P;
根据调度决策的执行端的节点类型和所述P调度服务端响应客户端的请求,所述执行端为服务端或客户端。
以执行端为客户端,即以调度决策发生在客户端为例,符号表见表1。
表1
其中,S、C以及L均是整个调度系统根据海量节点、真实世界的海量服务场景中经过大量试验、测试及统计可以得来。在一段时间内,S、C和L的变化不大,所以可以定期计算出P,以此较为固定的P在接下来的时间段内进行调度即可。
所述时间段的周期可以为天、周或月。
当然,也可以实时获取S、C和L,实时计算出P,然后按照此实时变化的P进行调度。每个客户端或服务端节点定时或实时从调度服务器获取计算更新后的P值,以便以此为参照做概率/比例调度。
从上述描述可知,客户端在发出请求时,按照调度概率矩阵P调度相对应的服务端,从而使得客户端的请求能够及时且有效地被处理,即对于客户端的请求的调度策略充分考虑了各节点类型之间的连通率以及各节点类型的规模,从而能尽可能地提高利用率和连通率。
进一步地,所述节点数据还包括不同节点类型的连接延迟矩阵D和/或不同节点类型到云节点或传统CDN节点的连接延迟矩阵T。
所述矩阵T中每一列均为向量tT,所述tT中的每个元素表示对应节点类型到云节点或传统CDN节点的连接延迟或定值,所述定值包括常数1;所述连接延迟的度量单位为ms或s,或平均RTT次数。
从上述描述可知,考虑到各个节点类型之间的连接延迟,提供以FogCDN甚至整个服务系统整体连接延迟最小为目标的调度策略。
进一步地,所述执行端为客户端,所述调度概率矩阵P为所述客户端的请求被每种节点类型的服务端响应的调度概率矩阵,所述调度具体为调度何种服务端来响应当前客户端的请求。
得到所述P的具体步骤为:
对第一模型进行求解,以得到第一被调度概率矩阵P1,所述第一模型为:
min||S-C(P·L)||1
s.t.C(P·L)≤S,
0≤pij≤1,
其中,矩阵为长方阵列排列的复数或实数集,矩阵中的元素通常用i,j来表示在长方阵列的排列位置,如模型中的元素pij即表示在P中第i行第j列的数值,对应于调度概率来说,元素pij表示i节点类型的客户端的请求被调度到j节点类型的服务端的概率。
从上述描述可知,通过第一调度概率模型,可以得到Fog节点整体利用率最高的调度策略,从而使FogCDN取得最高的节点和/或带宽利用率,以及在此情况下最低的首次连接失败率。
进一步地,还包括补充调度方法,所述补充调度方法为:
若请求的客户端与调度的服务端之间的首次连接为失败时和/或若FogCDN整体服务容量满足不了所述请求和/或FogCDN整体服务容量满足不了后继请求和/或当前Fog节点服务容量满足不了所述请求和/或当前Fog节点服务容量满足不了后继请求和/或所请求的资源暂时无法被获取时,则调度云节点或传统CDN节点的服务端来响应客户端的请求;
所述调度云节点或传统CDN节点的服务端来响应客户端的请求工程实现方法包括回源、重定向,或反向代理;
所述调度云节点或传统CDN节点的服务端来响应客户端的请求的具体步骤为:
判断整个服务系统中是否包括云节点或传统CDN节点的服务端;
若是,则云节点或传统CDN节点的服务端的调度概率为
所述
为调度概率矩阵P中第i行所有元素的和;
否则重新请求或调度尚有剩余服务容量的Fog节点服务端。
从上述描述可知,若首次连接失败,为避免再次失败给客户带来的较差体验,可使客户端的请求“回源”,即从云节点或传统CDN节点进行补充,使得客户端的每一次请求都能被及时响应和处理,从而保障或提升用户体验。
在某些场景中,相对于取得最高的整体节点/带宽利用率而言,缩短整体的连接延迟更重要。
则在所述场景中,可进一步地,对第二模型进行求解,以得到第二被调度概率矩阵P2,所述第二模型为:
s.t.||S-C(P·L)||1≤∈,
C(P·L)≤S,
0≤pij≤1,
所述
为全1矩阵;所述ε>X,所述X为在第一调度模型中求得目标最小值,即当P=P
1时,||S-C(P·L)||
1的数值,可根据经验取值,也可以先求出第一模型再取值。
进一步地,所述ε的取值范围为[1.5X,6X]。
从上述描述可知,提供一种∈的较佳技术方案。
所述D为不同类型客户端到不同类型服务端之间的连接延迟矩阵,其中每个元素可以RTT为计量单位;所述T=[tT tT tT tT tT],所述tT中的每个元素表示对应节点类型到云或传统CDN的连接延迟。
因为一般而言,调度上已经有近邻优先的限定,在同一<地域,ISP>或AS域内,调度出的节点两两之间的延迟差异一般不大;对连接延迟影响较大的因素是NAT穿越过程中的通信往返次数。所以在本发明及实施例中,一般以平均RTT次数作为延迟的基本计量单位。在其他实施例中,可以以RTT的若干整数倍作为一个时间单位来计量。
从上述描述可知,通过对上述模型的求解,可以得到整个服务系统连接延迟最小的调度策略,从而使被服务的业务取得较高的服务质量。
由于真实世界的数据性质,最优解通常在第一条约束的边界产生,且问题涉及的数据具有一定的数值特征。所以,可以将模型简化。
进一步地,所述第二模型可以简化为:
s.t.||S-C(P·L)||1≤∈,
C(P·L)≤S,
0≤pij≤1,
其可以进一步简化为:
s.t.||S-C(P·L)||1≤∈,
C(P·L)≤S,
0≤pij≤1,
其可再进一步简化为:
min||C(P·D)||1
s.t.||S-C(P·L)||1≤∈,
C(P·L)≤S,
0≤pij≤1,
在简化后的后两个模型中,假定所有类型客户端节点到云节点的连接延迟为1个单位的RTT。
进一步地,所述根据请求服务的客户端的节点类型和所述P调度服务端还包括:
判断整个调度系统中是否包括云节点或传统CDN节点的服务端,若是,则云节点或传统CDN节点的服务端的调度概率为
所述
为调度概率矩阵P中第i行所有元素的和。
从上述描述可知,加入云节点或传统CDN节点的服务端,使得客户端的每一次请求都能被服务端及时处理,从而提高用户体验。
从上述描述可知,通过对上述第二模型的求解,可以得到整个服务系统或FogCDN整体连接延迟最小的调度策略,从而使被服务的业务取得较高的服务质量。
进一步地,若执行端为服务端,即以调度决策发生在服务端为例:
所述调度概率矩阵P为服务端选择响应每种客户端请求的调度概率矩阵;
所述具体为调度何种客户端的请求被当前服务端响应;
得到所述P的具体步骤为:
对第三模型进行求解,以得到第三调度概率矩阵P3,所述第三模型为:
min||C-S(P·L)||1
s.t.S(P·L)≤C,
0≤pij≤1,
或得到所述P的具体步骤为:
对第四模型进行求解,以得到第四调度概率矩阵P4,所述第四模型为:
s.t.||C-S(P·L)||1≤∈,
S(P·L)≤C,
0≤pij≤1,
或所述第四模型为:
s.t.||C-S(P·L)||1≤∈,
S(P·L)≤C,
0≤pij≤1,
或所述第四模型为:
s.t.||C-S(P·L)||1≤∈,
S(P·L)≤C,
0≤pij≤1,
或所述第四模型为:
min||S(P·D)||1
s.t.||C-S(P·L)||1≤∈,
S(P·L)≤C,
0≤pij≤1,
所述P中的元素p
ij即为i节点类型的服务端响应j节点类型的客户端请求的概率,所述
为全1矩阵,所述∈>X,所述X为||C-S(P
3·L)||
1,所述D为不同节点类型的连接延迟矩阵,所述T为不同节点类型到云节点或传统CDN节点的连接延迟矩阵。
从上述描述可知,即公开了一种执行端为服务端的调度策略。
进一步地,所述客户端包括:
整个Fog网络服务或可能服务的所有客户端;
或被服务的内容提供商的所有客户端;
或请求所述请求的资源、数据、内容或内容片段的所有客户端或预测出将要请求所述请求的资源、数据、内容或内容片段的所有客户端;
或给定地域、ISP、AS域下,和/或根据所述请求上下文通过kNN规则筛选出的所有客户端;
或上述所有客户端情况的任意叠加或限定组合。
所述客户端在不同节点类型的分布比例包括:
客户端数量在不同节点类型的分布比例;
或客户端请求量在不同节点类型的分布比例;
或针对给定资源、数据、内容或内容分片的客户端数量或请求量在不同节点类型的分布比例.
所述服务端包括:
整个Fog网络提供服务或可能提供服务的所有服务端;
或服务的内容提供商的所有服务端;
或服务的所述请求资源、数据、内容或内容片段的所有服务端或将要被调度服务所述请求的资源、数据、内容或内容片段的所有服务端;
或给定地域、ISP、AS域下,和/或根据所述请求上下文通过kNN规则筛选出的所有服务端;
或上述所有服务端情况的任意叠加或限定组合。
所述服务端在不同节点类型的分布比例包括:
服务端数量在不同节点类型的分布比例;
或服务端服务容量在不同节点类型的分布比例;
或针对给定资源、数据、内容或内容分片的服务端数量或服务容量在不同节点类型的分布比例。
从上述描述可知,本发明的有益效果在于:使得整个调度策略充分考虑了各不同类型节点之间的连接关系以及各不同类型节点的请求规模或服务容量,从而能尽可能的提高单次连通率、连接效率和资源利用率,即提供了一种高吞吐、低延迟、调度均匀且尽量使每个节点利用率都能在特定水平之上的调度策略。具体效果包括:
最大的带宽费用节省,使得被服务的CP取得最低的成本;
FogCDN取得最高的节点和/或带宽利用率;
FogCDN中的贡献者获得最大的激励,从而有助于节点在线量的稳定和拓展;
包含但不限于最小的单次连接失败率和/或最小的系统整体连接延迟,使得被服务的业务取得较高的服务质量。
请参照图2及图3,用于FogCDN场景的调度端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一所述的方法。
从上述描述可知,本发明的有益效果在于:以不同节点之间的连接关系划分节点类型;以客户端在不同节点类型的分布比例、服务端在不同节点类型的分布比例以及不同节点类型之间的连通率、连通性或连接性来调度服务端响应客户端的请求;本发明通过上述方法,使得整个调度策略充分考虑了各不同类型节点之间的连接关系以及各不同类型节点的请求规模或服务容量,从而能尽可能的提高单次连通率、连接效率和资源利用率,即提供了一种高吞吐、低延迟、调度均匀且尽量使每个节点利用率都能在特定水平之上的调度策略。
请参照图1,本发明的实施例一为:
本实施例中的优化调度方法用于FogCDN场景,其中,客户端是指发生对特定内容/数据/资源/资源片段请求的客户端;服务端指存储有所述相应内容/数据/资源/资源片段的服务端,故而一个终端节点有可能是客户端节点,也有可能是服务端节点,也有可能既是客户端节点又是服务端节点,即本实施例提供的是一种在FogCDN场景中请求方和服务方之间的调度优化方法,同时,对于现有的业务场景来说,为了便于理解,本实施例为在客户端的概率调度,若调度决策发生在服务端上,则下述的C和S互相交换,矩阵P的相应意义也改变,其元素pij表示i类型服务节点被调度服务j类型客户端节点的概率或比例。
其中,用于FogCDN场景的调度方法,具体地,
以不同节点之间的连接关系划分节点类型;
以客户端在不同节点类型的分布比例、服务端在不同节点类型的分布比例以及不同节点类型之间的连通率来调度服务端响应客户端的请求。
在本实施例中,是在客户端的概率调度,故而是调度服务端以响应客户端的请求;若是调度决策的执行发生在服务端,则是将客户端的请求调度至当前服务端进行响应。
本实施例中,将节点类型划分为五种,详细介绍可见前述。但是,在其他实施例中,节点类型不限制于前文所述的4种或5种NAT类型,还可根据真实世界的复杂情况进一步细化,如综合NAT/Firewall的外在表现行为组合为十几到数十种。
在本实施例中,客户端为某一指定地域、ISP、AS域下的请求给定内容分片(如电视剧《来自星星的你》第8集的1080P码流的第一个分片)的所有客户端;客户端在不同节点类型的分布比例为针对所述内容分片的客户端请求量在不同节点类型的分布比例;服务端为准备服务所述内容片段的所有服务端,且分布在同一地域、ISP、AS域下,且为根据上述请求上下文通过kNN(最近邻)规则筛选出来。
在本实施例中,调度决策发生在客户端时,则包括步骤:
获取服务端在不同节点类型的分布比例向量S、客户端在不同节点类型的分布比例向量C及不同节点类型的连通率矩阵L,得到服务端的被调度概率矩阵P;
根据请求服务的客户端的节点类型和所述P调度服务端。
请参照图1,本发明的实施例二为:
用于FogCDN场景的调度方法,在上述实施例一的基础上,本实施例中以FogCDN节点整体利用率最高为优化目标,则得到P的具体步骤为:
对第一模型进行求解,以得到第一被调度概率矩P1,其中,第一模型为:
min||S-C(P·L)||1
s.t.C(P·L)≤S,
0≤pij≤1,
在本实施例中,矩阵C为梨享服务的某个著名业务的客户端请求数量在5种节点类型下的分布比例向量,矩阵S为统计自梨享服务该业务的所有Fog节点在5种节点类型下的分布比例向量,矩阵L为采用部分梨享专有技术的情况下经过大量测试及实践得出的连通率矩阵,具体如下:
S=[0.14 0 0.47 0.09 0.30]
C=[0.2865 0.0081 0.5226 0.1219 0.0610]
其中,向量或矩阵的排列顺序按照前文的五种NAT类型节点顺序,即S中的s1=0.14表示服务端在完全锥形NAT这一类型的分布比例为0.14,L中的l34=l43=0.85,表示端口限制型NAT节点到可预测的对称型NAT节点的连通率为0.85,其他依次类推。
在本实施例中,假定所有的服务端的服务能力均等,所有客户端的请求负载也均等。服务端的服务能力和客户端的请求量正好相等。若考虑不同客户端节点请求量的差异及不同服务端节点的服务能力差异,则C和S种的每个元素分别代表每种NAT类型节点的请求量及服务能力总和。
将上述S、C及L代入第一模型,以求得第一被调度概率矩阵P1的结果为:
此时,S-C(P·L)=[0 0 0 0.006195 0.013500],最优解||S-C(P·L)||1=0.0196948,即只有占Fog服务节点0.0196948比例的能力没有对外提供服务。
请参照图1,本发明的实施例三为:
用于FogCDN场景的调度方法,在上述实施例二的基础上,本实施例中以Fog节点整体连接延迟最小为优化目标,则得到P1之后还包括步骤:
对第二模型进行求解,以得到第二被调度概率矩阵P2,第二模型为:
min||C(P·D)||1
s.t.||S-C(P·L)||1≤∈,
C(P·L)≤S,
0≤pij≤1,
在本实施例中,矩阵S、矩阵C以及矩阵L的取值与实施例二中相同,D为采用较强的“双向打洞”技术情况下的连接延迟矩阵,其取值为:
同时,ε的取值范围为[1.5X,6X],X为当P=P1时目标||S-C(P·L)||1的数值,即根据实施例二可知,最优解||S-C(P·L)||1=0.0196948。本实施例中ε取0.03,即令97%的Fog服务节点能力参与服务,此时,得到第二调度概率矩阵P2具体为:
此时,S-C(P·L)=[0 0 0 0 0.03],即没有参与服务的Fog节点能力全集中在5型NAT节点上。
另外,对于上述的求解过程可作手工优化,将pij当作决策变量,然后重新标记下标,即将二维下标以确定顺序的方式转成一维下标,以转换成标准的凸优化乃至线性规划问题。为便于快速求解,基于真实世界的出现的大量数据集的共同特征,可以采用削减决策变量个数的方式以快速求解,如直接将包括p11,p55,甚至p12,p21,p45,p54强行置零或删除,以减小问题规模,加快求解速度。这个做法借鉴了“田忌赛马”的原理,另可根据排序不等式的深层次原理做出简洁实用的规则,本发明在此不具体展开。
根据具体的场景需要,交换本发明所述模型中的目标和约束,以及遵循本发明思想设计出其他的目标和/或约束,以及包括问题的简化形式及简化求解方法,亦在本发明的专利保护范围之内。
同时,对于上述实施例一至实施例三任意一个实施例的应用场景还可以扩展如下:
1.当调度系统为纯P2P的,即客户端与服务端为同一封闭的集合时,上述各实施例中的各个模型中的向量C和向量S可相互替换。
2.若考虑和近邻(如基于<地域,ISP>或AS域的kNN)调度策略结合,则向量C和向量S表示在相应地域和/或运营商下的客户端和服务端的在NAT类型下的节点数量或请求量/服务容量。
3.通常在FogCDN的服务中,一个请求被多个节点服务(每条连接可以看作一个子请求);一个节点可以在同一时间并发/并行服务多个请求。即服务模式是“多对多”的,参见https://github.com/PearInc/PearPlayer.js。所以在比较接近真实场景的后面的论述里,向量C和向量S里的每个元素表示请求/服务容量在NAT类型下的分布,而不是简化假设下的简单的“节点数”。
同时,基于上述实施例一至实施例三中任意一个实施例以及用于FogCDN场景的内容分布方法来说,场景包括服务静态资源、点播、直播、动态加速、VoIP以及VideoConferencing等等。
请参照图2和图3,本发明的实施例四为:
用于FogCDN场景的调度端1,包括存储器3、处理器2及存储在存储器3上并可在处理器2上运行的计算机程序,处理器2执行计算机程序时实现上述实施例一至实施例三中任意一个的步骤。
如图3所示,Scheduling Server即为本申请中用于FogCDN场景的调度端1,Cloud代表云节点,Traditional CDN代表传统CDN节点,Fog(P2P-CDN)为Fog节点构成的FogCDN服务资源池,Clients为客户端节点。
综上所述,本发明提供的用于FogCDN场景的调度方法及调度端,以不同节点之间的连接关系划分节点类型;以客户端在不同节点类型的分布比例、服务端在不同节点类型的分布比例以及不同节点类型之间的连接关系来调度服务端以响应客户端的请求,使得整个调度策略充分考虑了各不同类型节点之间的连接关系以及各不同类型节点的请求规模或服务容量,从而能尽可能的提高单次连通率、连接效率和资源利用率,在满足客户实际需求的情况下可以最大化Fog节点整体利用率、最大化系统整体连通率以及最小化系统整体连接延迟进行调度优化,在利用率、连通率和连接延迟最优化的情况下,FogCDN取得最高的节点和/或带宽利用率且被服务的业务取得较高的服务质量;同时,FogCDN中的贡献者由此可以获得最大的激励,从而有助于节点在线量的稳定和拓展;而节点在线量的稳定和拓展也可以使得被服务的CP取得最低的成本,即最大的带宽费用节省,即提供了一种高吞吐、低延迟、调度均匀且尽量使每个节点利用率都能在特定水平之上的调度策略。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。