[0001]
本申请涉及网络技术领域,尤其涉及流量调度转发方法、装置、电子设备及机器可读存储介质。
背景技术:[0002]
sdn(software defined network,软件定义网络)是由美国斯坦福大学clean-slate课题研究组提出的一种新型网络创新架构,是网络虚拟化的一种实现方式,其核心技术在于将网络设备的控制面与数据面进行分离,从而实现了网络流量的灵活控制。
[0003]
例如,针对某个用户应用对应的网络流量,sdn控制器可以计算出用于转发该网络流量的最优路径,并向该最优路径对应经过的sdn节点下发与该最优路径相关的sdn网络配置,基于该sdn网络配置可以实现对该网络流量的转发路径的调度转发。
[0004]
通常,在现有的技术实现中,sdn控制器仅能计算出一条最短路径进行流量调度转发或者找到具有等价路由的几条最短路径进行流量调度转发。
[0005]
然而,在一些场景中,当sdn网络负载较高或者具有等价路由的最短路径的数目较少或没有时,sdn控制器无法获取满足用户对业务流量转发的质量约束(比如:转发业务流量的网络路径必须满足时延、抖动、丢包率等硬性约束)及同时满足转发带宽约束的多条网络路径,致使现有的技术方案无法满足用户对流量进行调度转发的实际需求。
技术实现要素:[0006]
本申请提供一种流量调度转发方法,所述方法应用于sdn网络中的sdn控制器,所述方法包括:
[0007]
获取所述sdn网络的网络拓扑、用户设置的用于对所述sdn网络中的网络流量进行转发的总需求带宽和用于负载分担所述总需求带宽的网络路径的最多需求条数;
[0008]
基于所述总需求带宽和所述最多需求条数确定最小选取带宽,并以确定的最小选取带宽作为带宽约束对获取的网络拓扑执行网络路径计算得到若干条网络路径,将得到的若干条网络路径确定为候选网络路径集合;其中,所述候选网络路径集合中的每条候选网络路径的带宽不小于所述最小选取带宽;
[0009]
对所述候选网络路径集合执行最终路径选取计算,得到若干条最终路径和每条最终路径分别对应的路径权重;
[0010]
将所述sdn网络中的网络流量按所述路径权重分配至该若干条最终路径中进行流量转发。
[0011]
可选的,所述基于所述总需求带宽和所述最多需求条数确定最小选取带宽,包括:
[0012]
将所述总需求带宽和所述最多需求条数输入至预设的最小选取带宽计算公式计算,确定最小选取带宽。
[0013]
可选的,所述最小选取带宽计算公式基于以下公式表达:
[0014]
b
c
(x)=b
need
/10
m
+α(b
need
/n-b
need
/10
m
);
[0015]
在0<x<=10时,在x>10时,α=0;
[0016]
其中,x、n、m、i分别为大于0的正整数,n<10
m
;x表征调用最小选取带宽计算公式计算最小选取带宽的调用次数,b
c
(x)表征与x对应的最小选取带宽,b
c
(x)的取值范围为b
need
/10
m
<=b
c
(x)<=b
need
/n;b
need
表征所述总需求带宽,n表征所述最多需求条数;
[0017]
在0<x<=10时,表示在i的取值从1至x时,分别将i的取值代入至中执行连乘计算;在x>10时,α的取值固定为0。
[0018]
可选的,所述对所述候选网络路径集合执行最终路径选取计算,得到若干条最终路径和每条最终路径分别对应的路径权重,包括:
[0019]
以候选网络路径的路径代价作为第一优先级和候选网络路径的路径带宽作为第二优先级,对所述候选网络路径集合中的候选网络路径进行重新排序;
[0020]
基于预设的最终路径选取策略从重新排序的所述候选网络路径集合,确定出若干条最终路径和每条最终路径分别对应的路径权重。
[0021]
可选的,所述以候选网络路径的路径代价作为第一优先级和候选网络路径的路径带宽作为第二优先级,对所述候选网络路径集合中的候选网络路径进行重新排序,包括:
[0022]
基于候选网络路径的路径代价,对所述候选网络路径集合中的候选网络路径按路径代价从低到高进行排序;
[0023]
基于候选网络路径的路径带宽,将排序完成后对于路径代价相同的候选网络路径划为同一分组,对按路径代价排序后的所述候选网络路径集合在分组内按路径带宽从高到低进行排序。
[0024]
可选的,所述基于预设的最终路径选取策略从重新排序的所述候选网络路径集合,确定出若干条最终路径和每条最终路径分别对应的路径权重,包括:
[0025]
以候选网络路径的路径代价从低到高且属于同一分组的路径代价相同的候选网络路径进行优先选取的选取策略,从重新排序的所述候选网络路径集合中筛选出若干条目标候选网络路径,并计算筛选出的若干条所述目标候选网络路径的路径带宽总和;
[0026]
如果所述路径带宽总和不小于所述总需求带宽且筛选出的若干条所述目标候选网络路径的路径条数不大于所述最多需求条数,则将筛选出的若干条所述目标候选网络路径确定为若干条最终路径,并将每条目标候选网络路径的路径带宽相对所述路径带宽总和的占比,确定为每条最终路径分别对应的路径权重。
[0027]
可选的,在筛选出的若干条所述目标候选网络路径的路径条数达到所述最多需求条数且所述路径带宽总和仍小于所述总需求带宽时,还包括:
[0028]
将路径带宽最小的第一目标候选网络路径从筛选出的若干条所述目标候选网络路径中删除;
[0029]
从重新排序的所述候选网络路径集合中继续筛选出第二目标候选网络路径并替换所述第一目标候选网络路径;其中,在所述第二目标候选网络路径替换所述第一目标候选网络路径后的所述路径带宽总和不小于所述总需求带宽。
[0030]
可选的,还包括:
[0031]
在所述第二目标候选网络路径换所述第一目标候选网络路径后的所述路径带宽总和仍小于所述总需求带宽时,确定所述最小选取带宽执行最终路径筛选失败;
[0032]
重新计算更新所述最小选取带宽,并基于更新后的所述最小选取带宽,重新确定若干条最终路径和每条最终路径分别对应的路径权重,直至重新确定的若干条目标候选网络路径的路径带宽总和不小于所述总需求带宽且重新确定的目标候选网络路径的路径条数不大于所述最多需求条数。
[0033]
可选的,所述sdn网络为sdwan网络。
[0034]
本申请还提供一种流量调度转发装置,所述装置应用于sdn网络中的sdn控制器,所述装置包括:
[0035]
获取模块,获取所述sdn网络的网络拓扑、用户设置的用于对所述sdn网络中的网络流量进行转发的总需求带宽和用于负载分担所述总需求带宽的网络路径的最多需求条数;
[0036]
确定模块,基于所述总需求带宽和所述最多需求条数确定最小选取带宽,并以确定的最小选取带宽作为带宽约束对获取的网络拓扑执行网络路径计算得到若干条网络路径,将得到的若干条网络路径确定为候选网络路径集合;其中,所述候选网络路径集合中的每条候选网络路径的带宽不小于所述最小选取带宽;
[0037]
计算模块,对所述候选网络路径集合执行最终路径选取计算,得到若干条最终路径和每条最终路径分别对应的路径权重;
[0038]
转发模块,将所述sdn网络中的网络流量按所述路径权重分配至该若干条最终路径中进行流量转发。
[0039]
可选的,在基于所述总需求带宽和所述最多需求条数确定最小选取带宽的过程中,所述确定模块进一步:
[0040]
将所述总需求带宽和所述最多需求条数输入至预设的最小选取带宽计算公式计算,确定最小选取带宽。
[0041]
可选的,所述最小选取带宽计算公式基于以下公式表达:
[0042]
b
c
(x)=b
need
/10
m
+α(b
need
/n-b
need
/10
m
);
[0043]
在0<x<=10时,在x>10时,α=0;
[0044]
其中,x、n、m、i分别为大于0的正整数,n<10
m
;x表征调用最小选取带宽计算公式计算最小选取带宽的调用次数,b
c
(x)表征与x对应的最小选取带宽,b
c
(x)的取值范围为b
need
/10
m
<=b
c
(x)<=b
need
/n;b
need
表征所述总需求带宽,n表征所述最多需求条数;
[0045]
在0<x<=10时,表示在i的取值从1至x时,分别将i的取值代入至中执行连乘计算;在x>10时,α的取值固定为0。
[0046]
可选的,在对所述候选网络路径集合执行最终路径选取计算得到若干条最终路径和每条最终路径分别对应的路径权重的过程中,所述计算模块进一步:
[0047]
以候选网络路径的路径代价作为第一优先级和候选网络路径的路径带宽作为第二优先级,对所述候选网络路径集合中的候选网络路径进行重新排序;
[0048]
基于预设的最终路径选取策略从重新排序的所述候选网络路径集合,确定出若干条最终路径和每条最终路径分别对应的路径权重。
[0049]
可选的,在以候选网络路径的路径代价作为第一优先级和候选网络路径的路径带宽作为第二优先级对所述候选网络路径集合中的候选网络路径进行重新排序的过程中,所述计算模块进一步:
[0050]
基于候选网络路径的路径代价,对所述候选网络路径集合中的候选网络路径按路径代价从低到高进行排序;
[0051]
基于候选网络路径的路径带宽,将排序完成后对于路径代价相同的候选网络路径划为同一分组,对按路径代价排序后的所述候选网络路径集合在分组内按路径带宽从高到低进行排序。
[0052]
可选的,在基于预设的最终路径选取策略从重新排序的所述候选网络路径集合确定出若干条最终路径和每条最终路径分别对应的路径权重的过程中,所述计算模块进一步:
[0053]
以候选网络路径的路径代价从低到高且属于同一分组的路径代价相同的候选网络路径进行优先选取的选取策略,从重新排序的所述候选网络路径集合中筛选出若干条目标候选网络路径,并计算筛选出的若干条所述目标候选网络路径的路径带宽总和;
[0054]
如果所述路径带宽总和不小于所述总需求带宽且筛选出的若干条所述目标候选网络路径的路径条数不大于所述最多需求条数,则将筛选出的若干条所述目标候选网络路径确定为若干条最终路径,并将每条目标候选网络路径的路径带宽相对所述路径带宽总和的占比,确定为每条最终路径分别对应的路径权重。
[0055]
可选的,在筛选出的若干条所述目标候选网络路径的路径条数达到所述最多需求条数且所述路径带宽总和仍小于所述总需求带宽时,所述计算模块进一步:
[0056]
将路径带宽最小的第一目标候选网络路径从筛选出的若干条所述目标候选网络路径中删除;
[0057]
从重新排序的所述候选网络路径集合中继续筛选出第二目标候选网络路径并替换所述第一目标候选网络路径;其中,在所述第二目标候选网络路径替换所述第一目标候选网络路径后的所述路径带宽总和不小于所述总需求带宽。
[0058]
可选的,所述计算模块进一步:
[0059]
在所述第二目标候选网络路径换所述第一目标候选网络路径后的所述路径带宽总和仍小于所述总需求带宽时,确定所述最小选取带宽执行最终路径筛选失败;
[0060]
重新计算更新所述最小选取带宽,并基于更新后的所述最小选取带宽,重新确定若干条最终路径和每条最终路径分别对应的路径权重,直至重新确定的若干条目标候选网络路径的路径带宽总和不小于所述总需求带宽且重新确定的目标候选网络路径的路径条数不大于所述最多需求条数。
[0061]
可选的,所述sdn网络为sdwan网络。
[0062]
本申请还提供一种电子设备,包括通信接口、处理器、存储器和总线,所述通信接口、所述处理器和所述存储器之间通过总线相互连接;
[0063]
所述存储器中存储机器可读指令,所述处理器通过调用所述机器可读指令,执行上述的方法。
[0064]
本申请还提供一种机器可读存储介质,所述机器可读存储介质存储有机器可读指令,所述机器可读指令在被处理器调用和执行时,实现上述方法。
[0065]
通过以上实施例,一方面,通过基于灵活动态计算最小选取带宽,可以从海量的网络路径中快速确定出候选网络路径集合,从而提高了从候选网络路径集合中进一步确定最终用于流量转发的网络路径的筛选效率。另一方面,满足了用户对流量转发总带宽和网络路径负载总数的需求,同时,在满足该需求的基础上进一步实现了优先调度路径代价较小的多条网络路径按权重进行流量分配及转发,提高了网络转发效率。
附图说明
[0066]
图1是一示例性实施例提供的一种流量调度转发方法的流程图;
[0067]
图2是一示例性实施例提供的一种电子设备的硬件结构图;
[0068]
图3是一示例性实施例提供的一种流量调度转发装置的框图。
具体实施方式
[0069]
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0070]
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0071]
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
[0072]
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,下面先对本申请实施例涉及的流量调度转发的相关技术,进行简要说明。
[0073]
基于此,本申请旨在提出一种,基于灵活动态计算最小选取带宽从海量的网络路径中快速确定出候选网络路径集合,并同时满足用户对流量转发总带宽和网络路径负载总数的需求,以及在满足该需求的基础上进一步实现了优先调度路径代价较小的多条网络路径按权重进行流量分配及转发的技术方案。
[0074]
在实现时,sdn网络中的sdn控制器获取sdn网络的网络拓扑,以及获取用户设置的用于对sdn网络中的网络流量进行转发的总需求带宽和用于负载分担总需求带宽的网络路径的最多需求条数。
[0075]
进一步地,sdn控制器基于总需求带宽和最多需求条数确定最小选取带宽,并以确
定的最小选取带宽作为带宽约束对获取的网络拓扑执行网络路径计算得到若干条网络路径,将得到的若干条网络路径确定为候选网络路径集合。
[0076]
进一步地,sdn控制器对候选网络路径集合执行最终路径选取计算,得到若干条最终路径和每条最终路径分别对应的路径权重;将sdn网络中的网络流量按路径权重分配至该若干条最终路径中进行流量转发。
[0077]
在以上方案中,一方面,通过基于灵活动态计算最小选取带宽,可以从海量的网络路径中快速确定出候选网络路径集合,从而提高了从候选网络路径集合中进一步确定最终用于流量转发的网络路径的筛选效率。另一方面,满足了用户对流量转发总带宽和网络路径负载总数的需求,同时,在满足该需求的基础上进一步实现了优先调度路径代价较小的多条网络路径按权重进行流量分配及转发,提高了网络转发效率。
[0078]
下面通过具体实施例并结合具体的应用场景对本申请进行描述。
[0079]
请参考图1,图1是本申请一实施例提供的一种流量调度转发方法的流程图,该方法应用于sdn网络中的sdn控制器;上述方法执行以下步骤:
[0080]
步骤102、获取上述sdn网络的网络拓扑、用户设置的用于对上述sdn网络中的网络流量进行转发的总需求带宽和用于负载分担上述总需求带宽的网络路径的最多需求条数。
[0081]
步骤104、基于上述总需求带宽和上述最多需求条数确定最小选取带宽,并以确定的最小选取带宽作为带宽约束对获取的网络拓扑执行网络路径计算得到若干条网络路径,将得到的若干条网络路径确定为候选网络路径集合;其中,上述候选网络路径集合中的每条候选网络路径的带宽不小于上述最小选取带宽。
[0082]
步骤106、对上述候选网络路径集合执行最终路径选取计算,得到若干条最终路径和每条最终路径分别对应的路径权重。
[0083]
步骤108、将上述sdn网络中的网络流量按上述路径权重分配至该若干条最终路径中进行流量转发。
[0084]
在本说明书中,上述sdn网络至少包括sdn控制器和被sdn控制管理的若干个sdn节点;
[0085]
其中,每个sdn节点具体可以用于进行流量转发的任何形式的网络设备。例如,在实际应用中,sdn节点具体可以包括交换机、路由器、防火墙、隧道设备、物理服务器以及虚拟服务器中的任一或组合。
[0086]
在本说明书中,上述sdn网络的具体类型,在本说明书中不作具体限定。
[0087]
在示出的一种实施方式中,上述sdn网络具体可以为sdwan网络;其中,sdwan网络也可被简称为sd-wan(software defined wide area network),即软件定义广域网,是将sdn技术应用到广域网场景中所形成的一种sdn网络,基于sdwan网络可以为用于连接广阔地理范围的企业网络、数据中心、互联网应用及云服务提供基于跨广域网的sdn解决方案。
[0088]
当然,在实际应用中,上述sdn网络也可以为sdlan网络;其中,sdlan网络也可被简称为sd-lan(software defined local area network),即软件定义内网,是将sdn技术应用到局域网场景中所形成的一种sdn网络,基于sdlan网络,可以跨地域的lan(局域网)与lan(局域网)实现跨地域的内网访问。
[0089]
在本说明书中,上述sdn控制器获取用户设置的用于对上述sdn网络中的网络流量进行转发的总需求带宽、用于负载分担上述总需求带宽的网络路径的最多需求条数。
[0090]
例如,针对计划在sdn网络中进行转发某一视频应用对应的网络流量的用户需求,sdn控制器可以通过配置界面获取用户设置的转发该网络流量的总需求带宽至少为100mbps,用于负载分担该100mbps网络流量的网络路径的最多需求条数不超过5条,则上述总需求带宽为100m,上述最多需求条数为5。
[0091]
需要说明的是,为了方便描述和表格展示,在本说明书中mbps也可被简写为m。
[0092]
在本说明书中,上述sdn控制器还可以收集获取上述sdn网络中的网络拓扑。
[0093]
例如,在实际应用中,sdn控制器还可以收集sdn网络中的各类信息(比如:sdn网络中的作为sdn节点的网络设备,链路信息,隧道信息等),并用拓扑图结构来存储该各类信息。
[0094]
在本说明书中,上述sdn控制器可以基于上述总需求带宽和上述最多需求条数确定出最小选取带宽;其中,上述最小选取带宽可以作为最小的带宽约束用于对上述网络拓扑执行网络路径计算得到的若干条网络路径进行筛选。
[0095]
在本说明书中,上述最小选取带宽计算公式基于以下公式表达:
[0096]
b
c
(x)=b
need
/10
m
+α(b
need
/n-b
need
/10
m
);
[0097]
在0<x<=10时,在x>10时,α=0;
[0098]
其中,x、n、m、i分别为大于0的正整数,n<10
m
;x表征调用最小选取带宽计算公式计算最小选取带宽的调用次数,b
c
(x)表征与x对应的最小选取带宽,b
c
(x)的取值范围为b
need
/10
m
<=b
c
(x)<=b
need
/n;b
need
表征上述总需求带宽,n表征上述最多需求条数;
[0099]
在0<x<=10时,表示在i的取值从1至x时,分别将i的取值代入至中执行连乘计算;在x>10时,α的取值固定为0。
[0100]
需要说明的是,在基于上述最小选取带宽计算公式计算上述最小选取带宽的具体值的过程中,在首次调用上述最小选取带宽计算公式计算最小选取带宽时(也即,x=1),α=1,则最小选取带宽的值为b
need
/n;在第2次调用上述最小选取带宽计算公式计算最小选取带宽时(也即,x=2),α=1*0.9,则最小选取带宽的值为b
need
/10
m
+0.9*(b
need
/n-b
need
/10
m
)。在多次调用上述最小选取带宽计算公式计算最小选取带宽时,依次类推,这里不再赘述。但在x超过10次时,α的取值固定为0,则最小选取带宽的值固定为b
need
/10
m
。
[0101]
针对上述最小选取带宽计算公式计算最小选取带宽,可以在最小选取带宽的取值范围b
need
/10
m
<=b
c
(x)<=b
need
/n中计算出一个带宽估值,使用该带宽估值作为后续描述的候选网络路径的路径带宽的最低选取标准。
[0102]
在后续描述的上述最小选取带宽计算公式进行候选网络路径筛选时,初始时,最小选取带宽的取值较大(等于或接近于b
need
/n)时,可以筛选出同时满足上述总需求带宽和上述最多需求条数的候选网络路径,也有可能由于最小选取带宽的取值较大,导致筛选的候选网络路径的个数较少,无法找到足够数目的候选网络路径。
[0103]
基于此,通过上述最小选取带宽计算公式将最小选取带宽的取值从大到小(从b
need
/n向b
need
/10
m
接近)进行不断探索调整,逐步降低最小选取带宽的取值,从而筛选出更
多的候选网络路径,用于网络流量分配及转发。
[0104]
当然,在上述最小选取带宽计算公式中,通过控制最小选取带宽计算公式的调用次数(上述最小选取带宽计算公式中的x),在x超过预设阈值(比如:上述最小选取带宽计算公式中的x>10时),通过α取值为0,将最小选取带宽的取值固定为b
need
/10
m
,可以快速确定最小选取带宽的较低取值,避免逐步探索计算最小选取带宽的取值的低效率,从而影响候选网络路径的筛选效率。
[0105]
由此,通过上述最小选取带宽计算公式灵活动态计算最小选取带宽,可以从海量的网络路径中快速确定出候选网络路径集合,从而提高了从候选网络路径集合中进一步确定最终用于流量转发的网络路径的筛选效率。
[0106]
在示出的一种实施方式中,在确定上述最小选取带宽的过程中,上述sdn控制器将上述总需求带宽和上述最多需求条数输入至预设的最小选取带宽计算公式计算,确定上述最小选取带宽;
[0107]
例如,以总需求带宽至少为100mbps且用于负载分担该100mbps网络流量的网络路径的最多需求条数不超过5条为例,sdn控制器将该总需求带宽(b
nee
d=100)和该最多需求条数(n=5)输入至预设的上述最小选取带宽计算公式计算,确定最小选取带宽。
[0108]
需要说明的是,在调用上述最小选取带宽计算公式计算上述最小选取带宽时,上述最小选取带宽计算公式中的m的取值可以为一个固定的经验值,比如:m=2。在首次调用调用上述最小选取带宽计算公式计算上述最小选取带宽时,上述最小选取带宽计算公式中的x的取值为1。由此,在b
need
=100,n=5,m=2,x=1时,可以计算得到:b
c
(x=1)=20,也即,在最小选取带宽计算公式计算最小选取带宽的调用次数为1时,计算得到最小选取带宽b
c
(x=1)为20mbps。
[0109]
在本说明书中,在上述最小选取带宽计算确定后,上述sdn控制器可以对获取的上述网络拓扑执行网络路径计算得到若干条网络路径。
[0110]
例如,在对获取的网络拓扑执行网络路径计算得到若干条网络路径的过程中,sdn控制器可以首先基于最短路径算法(比如:dijkstra算法)计算出网络拓扑中网络流量的发送端至目的端的路径代价(cost)最低的最短路径。具体计算过程及原理请参见最短路径算法相关的技术文档,这里不再赘述。
[0111]
需要说明的是,基于sdn控制器可以首先基于最短路径算法计算出最短路径或具有等价路由的多条最短路径后,sdn控制器还可以对该最短路径执行偏移路径计算得到,与该最短路径对应的多条偏移路径;其中,偏移路径的技术原理为:若最短路径p有n条链路,将p的每一个链路依次进行规避,重新基于最短路径算法进行最短路径计算,则可得到与最短路径p对应的n条次优路径。类似地,可以再将该n条次优路径的链路同样进行链路规避并再次进行基于最短路径算法进行最短路径计算。以此类推可以得到路径代价(cost)接近最短路径p的路径代价的多条路径,该多条路径是最短路径p的次优解,该多条路径即为最短路径p的偏移路径。需要注意的是:路径代价的值越低表示路径代价越低。比如:最短路径p的路径代价最低为1,则最短路径p的9条偏移路径的路径代价分别为2、3、...、10(大于最短路径p的路径代价:1)。
[0112]
在本说明书中,在基于上述网络拓扑执行网络路径计算得到若干条网络路径后,上述sdn控制器以确定的上述最小选取带宽作为带宽约束对得到的若干条网络路径进行筛
选,将网络路径的带宽小于上述最小选取带宽的网络路径删除,并将最终得到的若干条网络路径确定为候选网络路径集合;其中,上述候选网络路径集合中的每条候选网络路径的带宽不小于上述最小选取带宽。
[0113]
例如,以最小选取带宽为20mbps为例,sdn控制器可以以计算确定出的最小选取带宽(带宽为20mbps)作为带宽约束对基于网络拓扑执行网络路径计算得到若干条网络路径中小于20mbps的网络路径删除,将得到剩余大于或等于20mbps的若干条网络路径确定为候选网络路径集合。比如:候选网络路径集合为如下表1所示:
[0114]
候选网络路径p1p2p3p4p5p6p7p8p9p10网络代价1125533576网络带宽100m120m200m300m100m100m200m100m100m100m
[0115]
表1
[0116]
如表1所示候选网络路径集合包括p1至p10一共10条候选网络路径;其中,p1的网络代价(cost)为1,p1的网络带宽为100mbps;类似的,其它p2至p10的网络代价和网络带宽请参见表1中所示,这里不再赘述。
[0117]
在本说明书中,在上述候选网络路径集合确定后,上述sdn控制器对上述候选网络路径集合执行最终路径选取计算,得到若干条最终路径和每条最终路径分别对应的路径权重。
[0118]
在示出的一种实施方式中,在对上述候选网络路径集合执行最终路径选取计算得到若干条最终路径和每条最终路径分别对应的路径权重的过程中,上述sdn控制器以候选网络路径的路径代价作为第一优先级和候选网络路径的路径带宽作为第二优先级,对上述候选网络路径集合中的候选网络路径进行重新排序。
[0119]
例如,以如表1所示的候选网络路径集合为例,sdn控制器以表1所示候选网络路径对应的路径代价作为第一优先级和候选网络路径对应的路径带宽作为第二优先级,对候选网络路径集合中的候选网络路径进行重新排序。
[0120]
在示出的一种实施方式中,在以候选网络路径的路径代价作为第一优先级和候选网络路径的路径带宽作为第二优先级对上述候选网络路径集合中的候选网络路径进行重新排序的过程中,上述sdn控制器基于候选网络路径的路径代价,对上述候选网络路径集合中的候选网络路径按路径代价从低到高进行排序,然后将排序完成后对于路径代价相同的候选网络路径划为同一分组。
[0121]
例如,以如表1所示的候选网络路径集合为例,sdn控制器以表1所示的候选网络路径对应的路径代价,对该候选网络路径集合中的候选网络路径按路径代价从低到高进行排序,然后将排序完成后对于路径代价相同的候选网络路径划为同一分组,再基于候选网络路径对应的路径带宽对按路径代价排序后的该候选网络路径集合按路径带宽从高到低进行排序,则重新排序后的候选网络路径集合为如下表2所示:
[0122]
[0123]
表2
[0124]
如表2所示重新排序后的候选网络路径集合包括重新排序后重新编号的p1至p10一共10条候选网络路径;其中,从p1至p10对应网络代价从低到高(p1的网络代价为1,是最低;p10的网络代价为7,是最高);在p1至p10按网络代价排序后对于路径代价相同的候选网络路径划为同一分组(如表1中所示,p1的网络代价和p2的网络代价相同,则p1和p2划为同一分组,其它无路径代价相同的候选网络路径独立为一组),在划分分组后再按路径带宽从高到低进行排序(以如表1中所示的p1和p2为例,p2的网络带宽大于p1的网络带宽,则按路径带宽从高到低进行排序后,在表2中的p1为表1中的p2,在表2中的p2为表1中的p1;对于分组三、分组四情况类似,这里不再赘述。)
[0125]
在示出的一种实施方式中,在对上述候选网络路径集合执行最终路径选取计算得到若干条最终路径和每条最终路径分别对应的路径权重的过程中,在以候选网络路径的路径代价作为第一优先级和候选网络路径的路径带宽作为第二优先级对上述候选网络路径集合中的候选网络路径进行重新排序后,上述sdn控制器基于预设的最终路径选取策略从重新排序的上述候选网络路径集合,确定出若干条最终路径和每条最终路径分别对应的路径权重。
[0126]
在示出的一种实施方式中,在基于预设的最终路径选取策略从重新排序的上述候选网络路径集合确定出若干条最终路径和每条最终路径分别对应的路径权重的过程中,上述sdn控制器以候选网络路径的路径代价从低到高且属于同一分组的路径代价相同的候选网络路径进行优先选取的选取策略,从重新排序的上述候选网络路径集合中筛选出若干条目标候选网络路径,并计算筛选出的若干条上述目标候选网络路径的路径带宽总和。
[0127]
例如,以重新排序的候选网络路径集合为如表2所示,sdn控制器以候选网络路径对应的路径代价从低到高且属于同一分组的路径代价相同的候选网络路径进行优先选取的选取策略,从重新排序的候选网络路径集合中筛选出若干条目标候选网络路径,并计算筛选出的若干条上述目标候选网络路径的路径带宽总和。比如:在以总需求带宽至少为100mbps且用于负载分担该100mbps网络流量的网络路径的最多需求条数不超过5条时,sdn控制器在如表2所示的重新排序的候选网络路径集合中筛选出路径代价最低的候选网络路径p1和p2作为目标候选网络路径,p1和p2属于网络代价最低的同一分组,并且p1和p2的路径带宽总和为220mbps。
[0128]
在本说明书中,进一步地,如果上述路径带宽总和不小于上述总需求带宽且筛选出的若干条上述目标候选网络路径的路径条数不大于上述最多需求条数,则上述sdn控制器将筛选出的若干条上述目标候选网络路径确定为若干条最终路径,并将每条目标候选网络路径的路径带宽相对上述路径带宽总和的占比,确定为每条最终路径分别对应的路径权重。
[0129]
例如,以总需求带宽至少为100mbps且用于负载分担该100mbps网络流量的网络路径的最多需求条数不超过5条,且筛选出的2条目标候选网络路径包括如表2中所示的p1和p2为例,由于该2条目标候选网络路径(p1和p2)的路径带宽总和为220mbps已大于总需求带宽(100mbp),并且目标候选网络路径总条数为2不大于最多需求条数(5条),则将p1和p2确定为2条最终路径,并将p1的路径带宽(120mbps)相对路径带宽总和(220mbps)的占比6/11(120/220)确定为p1的路径权重w1,以及将p2的路径带宽(100mbps)相对路径带宽总和
(220mbps)的占比5/11(100/220)确定为p2的路径权重w2。
[0130]
又例如,以总需求带宽至少为500mbps且用于负载分担该500mbps网络流量的网络路径的最多需求条数不超过5条,且筛选出的5条目标候选网络路径包括如表2中所示的p1、p2、p3、p4、p5为例,由于该5条目标候选网络路径(p1、p2、p3、p4、p5)的路径带宽总和为720mbps已大于总需求带宽(500mbp),并且目标候选网络路径总条数为5不大于最多需求条数(5条),则将p1、p2、p3、p4、p5确定为5条最终路径,并将p1的路径带宽(120mbps)相对路径带宽总和(720mbps)的占比12/72(120/720)确定为p1的路径权重w1,以及将p2的路径带宽(100mbps)相对路径带宽总和(720mbps)的占比10/72(100/720)确定为p2的路径权重w2。以此类推,计算出:p3(路径带宽为200mbps)对应的路径权重w3(20/72)、p4(路径带宽为200mbps)对应的路径权重w4(20/72)、p5(路径带宽为100mbps)对应的路径权重w5(10/72)。
[0131]
在示出的一种实施方式中,在确定若干条最终路径和每条最终路径分别对应的路径权重的过程中,当筛选出的若干条上述目标候选网络路径的路径条数达到上述最多需求条数且上述路径带宽总和仍小于上述总需求带宽时,上述sdn控制器可以将路径带宽最小的第一目标候选网络路径从筛选出的若干条上述目标候选网络路径中删除;从重新排序的上述候选网络路径集合中继续筛选出第二目标候选网络路径并替换上述第一目标候选网络路径;其中,在上述第二目标候选网络路径替换上述第一目标候选网络路径后的上述路径带宽总和不小于上述总需求带宽。
[0132]
例如,以总需求带宽至少为800mbps且用于负载分担该800mbps网络流量的网络路径的最多需求条数不超过5条为例,sdn控制器在筛选出的5条目标候选网络路径包括如表2中所示的p1、p2、p3、p4、p5时,由于该5条目标候选网络路径(p1、p2、p3、p4、p5)的路径带宽总和为720mbps仍然小于总需求带宽(800mbps),则sdn控制器可以将路径带宽最小的第一目标候选网络路径(p2)从筛选出的该5条目标候选网络路径中删除,从如表2所示的候选网络路径集合中继续筛选出第二目标候选网络路径(p6)并替换第一目标候选网络路径(p2),则筛选出的5条目标候选网络路径确定为5条最终网络路径,该5条最终网络路径具体包括:p1、p3、p4、p5、p6;其中,该5条最终最终网络路径的路径带宽总和为920mbps(已大于值为800mbps的总需求带宽),并且最终网络路径的路径条数为5条,未超过最多需求条数(5条)。
[0133]
在示出的一种实施方式中,在确定若干条最终路径和每条最终路径分别对应的路径权重的过程中,在上述第二目标候选网络路径换上述第一目标候选网络路径后的上述路径带宽总和仍小于上述总需求带宽时,上述sdn控制器确定上述最小选取带宽执行最终路径筛选失败;重新计算更新上述最小选取带宽,并基于更新后的上述最小选取带宽,重新确定若干条最终路径和每条最终路径分别对应的路径权重,直至重新确定的若干条目标候选网络路径的路径带宽总和不小于上述总需求带宽且重新确定的目标候选网络路径的路径条数不大于上述最多需求条数。
[0134]
例如,以总需求带宽至少为1000mbps且用于负载分担该1000mbps网络流量的网络路径的最多需求条数不超过5条、本次调用上述最小选取带宽计算公式确定的最小选取带宽为100mbps为例,sdn控制器在筛选出的5条目标候选网络路径包括如表2中所示的p1、p3、p4、p5、p6时,由于该5条目标候选网络路径(p1、p3、p4、p5、p6)的路径带宽总和为920mbps仍然小于总需求带宽(1000mbps),在该情况下,网络路径的最多需求条数已经达到5条,如果要路径带宽总和达到或超过总需求带宽(1000mbps),必须增加网络路径的条数至少达到6
条,则sdn控制器确定基于该最小选取带宽(100mbps)执行最终路径筛选失败,sdn控制器调用上述最小选取带宽计算公式重新计算更新最小选取带宽,并基于更新后的最小选取带宽(比如:80mbps),重新确定若干条最终路径和每条最终路径分别对应的路径权重,直至重新确定的若干条目标候选网络路径的路径带宽总和不小于总需求带宽(1000mbps)且重新确定的目标候选网络路径的路径条数不大于最多需求条数(5条);其中,重新计算更新最小选取带宽(调用上述最小选取带宽计算公式时,x的取值需要在原来取值基础上重新加一自增,比如:原来x=1,则在x加一自增之后x=2)以及基于更新后的最小选取带宽重新确定候选网络路径集合,并对重新确定的候选网络路径集合执行最终路径选取计算得到若干条最终路径和每条最终路径分别对应的路径权重的过程,与前面描述及示例的过程类似,这里不再赘述。
[0135]
需要说明的是,通过基于灵活动态计算最小选取带宽,可以从海量的网络路径中快速确定出候选网络路径集合,从而提高了从候选网络路径集合中进一步确定最终用于流量转发的网络路径的筛选效率。
[0136]
在本说明书中,在得到若干条最终路径和每条最终路径分别对应的路径权重后,上述sdn控制器将上述sdn网络中的网络流量按上述路径权重分配至该若干条最终路径中进行流量转发。
[0137]
例如,以总需求带宽至少为500mbps且用于负载分担该500mbps网络流量的网络路径的最多需求条数不超过5条,对应得到的5条最终网络路径具体包括:p1、p2、p3、p4、p5;其中,该5条最终最终网络路径的路径带宽总和为720mbps;p1、p2、p3、p4、p5分别一一对应路径权重为w1、w2、w3、w4、w5为例,sdn控制器将sdn网络中的网络流量(500mbps)按路径权重分配至该若干条最终路径中进行流量转发。比如:对于500mbps网络流量,可以将该500mbps网络流量中的500*w1的流量分配在p1进行流量转发;类似地,将500*w2的流量分配在p2进行流量转发,将500*w3的流量分配在p3进行流量转发,将500*w4的流量分配在p4进行流量转发,将500*w5的流量分配在p5进行流量转发。
[0138]
需要说明的是,在满足了用户对流量转发总带宽和网络路径负载总数的需求,同时,在满足该需求的基础上进一步实现了优先调度路径代价较小的多条网络路径按权重进行流量分配及转发,提高了网络转发效率。
[0139]
在以上技术方案中,基于获取用户设置的用于对sdn网络中的网络流量进行转发的总需求带宽、用于负载分担总需求带宽的网络路径的最多需求条数和sdn网络的网络拓扑;基于总需求带宽和最多需求条数确定最小选取带宽,并以确定的最小选取带宽作为带宽约束对获取的网络拓扑执行网络路径计算得到若干条网络路径,将得到的若干条网络路径确定为候选网络路径集合;对候选网络路径集合执行最终路径选取计算,得到若干条最终路径和每条最终路径分别对应的路径权重;将sdn网络中的网络流量按路径权重分配至该若干条最终路径中进行流量转发。
[0140]
一方面,通过基于灵活动态计算最小选取带宽,可以从海量的网络路径中快速确定出候选网络路径集合,从而提高了从候选网络路径集合中进一步确定最终用于流量转发的网络路径的筛选效率。另一方面,满足了用户对流量转发总带宽和网络路径负载总数的需求,同时,在满足该需求的基础上进一步实现了优先调度路径代价较小的多条网络路径按权重进行流量分配及转发,提高了网络转发效率。
[0141]
与上述方法实施例相对应,本说明书还提供了一种流量调度转发装置的实施例。本说明书的流量调度转发装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本说明书的流量调度转发装置所在电子设备的一种硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。
[0142]
图3是本说明书一实施例示出的一种流量调度转发装置的框图。
[0143]
请参考图3,所述流量调度转发装置30可以应用在前述图2所示的作为sdn控制器的电子设备中,所述装置包括:
[0144]
获取模块301,获取所述sdn网络的网络拓扑、用户设置的用于对所述sdn网络中的网络流量进行转发的总需求带宽和用于负载分担所述总需求带宽的网络路径的最多需求条数;
[0145]
确定模块302,基于所述总需求带宽和所述最多需求条数确定最小选取带宽,并以确定的最小选取带宽作为带宽约束对获取的网络拓扑执行网络路径计算得到若干条网络路径,将得到的若干条网络路径确定为候选网络路径集合;其中,所述候选网络路径集合中的每条候选网络路径的带宽不小于所述最小选取带宽;
[0146]
计算模块303,对所述候选网络路径集合执行最终路径选取计算,得到若干条最终路径和每条最终路径分别对应的路径权重;
[0147]
转发模块304,将所述sdn网络中的网络流量按所述路径权重分配至该若干条最终路径中进行流量转发。
[0148]
在本实施例中,在基于所述总需求带宽和所述最多需求条数确定最小选取带宽的过程中,所述确定模块302进一步:
[0149]
将所述总需求带宽和所述最多需求条数输入至预设的最小选取带宽计算公式计算,确定最小选取带宽。
[0150]
在本实施例中,所述最小选取带宽计算公式基于以下公式表达:
[0151]
b
c
(x)=b
need
/10
m
+α(b
need
/n-b
need
/10
m
);
[0152]
在0<x<=10时,在x>10时,α=0;
[0153]
其中,x、n、m、i分别为大于0的正整数,n<10
m
;x表征调用最小选取带宽计算公式计算最小选取带宽的调用次数,b
c
(x)表征与x对应的最小选取带宽,b
c
(x)的取值范围为b
need
/10
m
<=b
c
(x)<=b
need
/n;b
need
表征所述总需求带宽,n表征所述最多需求条数;
[0154]
在0<x<=10时,表示在i的取值从1至x时,分别将i的取值代入至中执行连乘计算;在x>10时,α的取值固定为0。
[0155]
在本实施例中,在对所述候选网络路径集合执行最终路径选取计算得到若干条最
终路径和每条最终路径分别对应的路径权重的过程中,所述计算模块303进一步:
[0156]
以候选网络路径的路径代价作为第一优先级和候选网络路径的路径带宽作为第二优先级,对所述候选网络路径集合中的候选网络路径进行重新排序;
[0157]
基于预设的最终路径选取策略从重新排序的所述候选网络路径集合,确定出若干条最终路径和每条最终路径分别对应的路径权重。
[0158]
在本实施例中,在以候选网络路径的路径代价作为第一优先级和候选网络路径的路径带宽作为第二优先级对所述候选网络路径集合中的候选网络路径进行重新排序的过程中,所述计算模块303进一步:
[0159]
基于候选网络路径的路径代价,对所述候选网络路径集合中的候选网络路径按路径代价从低到高进行排序;
[0160]
基于候选网络路径的路径带宽,将排序完成后对于路径代价相同的候选网络路径划为同一分组,对按路径代价排序后的所述候选网络路径集合在分组内按路径带宽从高到低进行排序。
[0161]
在本实施例中,在基于预设的最终路径选取策略从重新排序的所述候选网络路径集合确定出若干条最终路径和每条最终路径分别对应的路径权重的过程中,所述计算模块303进一步:
[0162]
以候选网络路径的路径代价从低到高且属于同一分组的路径代价相同的候选网络路径进行优先选取的选取策略,从重新排序的所述候选网络路径集合中筛选出若干条目标候选网络路径,并计算筛选出的若干条所述目标候选网络路径的路径带宽总和;
[0163]
如果所述路径带宽总和不小于所述总需求带宽且筛选出的若干条所述目标候选网络路径的路径条数不大于所述最多需求条数,则将筛选出的若干条所述目标候选网络路径确定为若干条最终路径,并将每条目标候选网络路径的路径带宽相对所述路径带宽总和的占比,确定为每条最终路径分别对应的路径权重。
[0164]
在本实施例中,在筛选出的若干条所述目标候选网络路径的路径条数达到所述最多需求条数且所述路径带宽总和仍小于所述总需求带宽时,所述计算模块303进一步:
[0165]
将路径带宽最小的第一目标候选网络路径从筛选出的若干条所述目标候选网络路径中删除;
[0166]
从重新排序的所述候选网络路径集合中继续筛选出第二目标候选网络路径并替换所述第一目标候选网络路径;其中,在所述第二目标候选网络路径替换所述第一目标候选网络路径后的所述路径带宽总和不小于所述总需求带宽。
[0167]
在本实施例中,所述计算模块303进一步:
[0168]
在所述第二目标候选网络路径换所述第一目标候选网络路径后的所述路径带宽总和仍小于所述总需求带宽时,确定所述最小选取带宽执行最终路径筛选失败;
[0169]
重新计算更新所述最小选取带宽,并基于更新后的所述最小选取带宽,重新确定若干条最终路径和每条最终路径分别对应的路径权重,直至重新确定的若干条目标候选网络路径的路径带宽总和不小于所述总需求带宽且重新确定的目标候选网络路径的路径条数不大于所述最多需求条数。
[0170]
在本实施例中,所述sdn网络为sdwan网络。
[0171]
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实
施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0172]
上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
[0173]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
[0174]
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
[0175]
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。