一种流量调度方法及装置转让专利

申请号 : CN202110347791.5

文献号 : CN113194037B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蒋文栋

申请人 : 新华三大数据技术有限公司

摘要 :

本说明书提供一种流量调度方法及装置,所述方法包括:在将待部署的路径的配置下发至网络设备之后,如果控制器接收到新的业务流数据或者链路数据,则根据网络设备新上报的业务流数据和链路数据获取链路的实时带宽,并对链路的实时带宽进行预测,与只采用链路数据对链路的实时带宽进行预测相比,本说明书根据业务流数据对预测的链路的实时带宽进行更新,从而使得对链路实时带宽的预测更加精准,在对链路实时带宽预测更精准的前提下,从而可以确定对于业务流后续是否需要继续调整,从而可以避免一些错误调度或者过度调度的问题。

权利要求 :

1.一种流量调度方法,其特征在于,包括:

接收网络设备业务流数据和链路数据;

根据当前接收的业务流数据和链路数据对链路的实时带宽进行预测并计算新的部署路径;

将新的待部署路径的配置下发至网络设备;

若接收到新的业务流数据或链路数据,则根据新接收的业务流数据和链路数据更新预测的链路实时带宽;

根据预测的链路实时带宽确定是否需要对业务流进行调度。

2.根据权利要求1所述的方法,其特征在于,根据当前接收的业务流数据和链路数据对链路的实时带宽进行预测,包括:若业务流在当前部署的链路的调整类型为调出类型,则根据如下公式进行链路实时带宽的预测:链路的实时带宽预测LCBWF=链路的实时带宽LCBW‑业务流的实时带宽FBW;

若业务流在当前部署的链路的调整类型为调入类型,则根据如下公式进行链路实时带宽的预测:链路的实时带宽预测LCBWF=链路的实时带宽LCBW+业务流的实时带宽FBW。

3.根据权利要求2所述的方法,其特征在于,若接收到新的业务流数据或链路数据,则根据新接收的业务流数据和链路数据更新预测的链路实时带宽,包括:若业务流在当前部署的链路的调整类型为调出类型,则利用预测的链路实时带宽减去业务流变化的带宽去更新预测的链路实时带宽;

若业务流在当前部署的链路的调整类型为调入类型,则利用预测的链路实时带宽加上业务流变化的带宽去更新预测的链路实时带宽。

4.根据权利要求3所述的方法,其特征在于,若接收到新的业务流数据或链路数据,则根据新接收的业务流数据和链路数据更新预测的链路实时带宽,包括:若业务流在当前部署的链路的调整类型为调出类型,则根据如下公式进行链路实时带宽的预测:链路的实时带宽预测=上一次链路的实时带宽预测‑业务流的实时带宽;

若业务流在当前部署的链路的调整类型为调入类型,则根据如下公式进行链路实时带宽的预测:链路的实时带宽预测=上一次链路的实时带宽预测+业务流的实时带宽。

5.根据权利要求1~4任一项所述的方法,其特征在于,若接收到新的链路数据,则根据新接收的业务流数据和链路数据更新预测的链路实时带宽,包括:确定业务流在当前部署链路上停留的总时长以及最近一次记录的该业务流在当前部署链路上的调整类型;

若最近一次业务流的调整类型为调入类型,则根据所述停留的总时长以及当前业务流的带宽计算该业务流在当前部署链路上未停留时对应的业务流的大小,将未停留时对应的业务流大小补偿增加至最近一次预测的链路的实时带宽中;

若最近一次业务流的调整类型为调出类型,则根据所述停留的总时长以及当前业务流的带宽计算该业务流在当前部署链路上停留时对应的业务流的大小,并在最近一次预测的链路的实时带宽中将停留时对应的业务流的大小排除。

6.根据权利要求1所述的方法,其特征在于,根据预测的链路实时带宽确定是否需要对业务流进行调度,包括:若根据当前的链路数据确定链路的实时带宽大于链路的可分配带宽,而预测的链路实时带宽小于链路的可分配带宽,则在等待预设时长之后,再利用新上送的链路数据和业务流数据针对业务流当前部署的路径进行调整。

7.根据权利要求6所述的方法,其特征在于,所述在等待预设时长之后,再利用新上送的链路数据和业务流数据针对业务流当前部署的路径进行调整,包括:在等待下一个周期的链路数据和业务流数据均到达之后,再利用新上送的链路数据和业务流数据针对业务流当前部署的路径进行调整。

8.一种流量调度装置,其特征在于,所述装置包括:

接收模块,用于接收网络设备业务流数据和链路数据;

预测模块,用于根据当前接收的业务流数据和链路数据对链路的实时带宽进行预测并计算新的部署路径;

下发模块,用于将新的待部署路径的配置下发至网络设备;

若接收模块接收到新的业务流数据或链路数据,则预测模块根据新接收的业务流数据和链路数据更新预测的链路实时带宽;

所述预测模块还用于根据预测的链路实时带宽确定是否需要对业务流进行调度。

9.根据权利要求8所述的装置,其特征在于,所述预测模块具体用于若业务流在当前部署的链路的调整类型为调出类型,则根据如下公式进行链路实时带宽的预测:链路的实时带宽预测LCBWF=链路的实时带宽LCBW‑业务流的实时带宽FBW;

若业务流在当前部署的链路的调整类型为调入类型,则根据如下公式进行链路实时带宽的预测:链路的实时带宽预测LCBWF=链路的实时带宽LCBW+业务流的实时带宽FBW。

10.根据权利要求9所述的装置,其特征在于,所述预测模块具体用于若业务流在当前部署的链路的调整类型为调出类型,则利用预测的链路实时带宽减去业务流变化的带宽去更新预测的链路实时带宽;

若业务流在当前部署的链路的调整类型为调入类型,则利用预测的链路实时带宽加上业务流变化的带宽去更新预测的链路实时带宽。

11.根据权利要求10所述的装置,其特征在于,所述预测模块具体用于若业务流在当前部署的链路的调整类型为调出类型,则根据如下公式进行链路实时带宽的预测:链路的实时带宽预测=上一次链路的实时带宽预测‑业务流的实时带宽;

若业务流在当前部署的链路的调整类型为调入类型,则根据如下公式进行链路实时带宽的预测:链路的实时带宽预测=上一次链路的实时带宽预测+业务流的实时带宽。

12.根据权利要求8~11任一项所述的装置,其特征在于,所述预测模块具体用于确定业务流在当前部署链路上停留的总时长以及最近一次记录的该业务流在当前部署链路上的调整类型;

若最近一次业务流的调整类型为调入类型,则根据所述停留的总时长以及当前业务流的带宽计算该业务流在当前部署链路上未停留时对应的业务流的大小,将未停留时对应的业务流大小补偿增加至最近一次预测的链路的实时带宽中;

若最近一次业务流的调整类型为调出类型,则根据所述停留的总时长以及当前业务流的带宽计算该业务流在当前部署链路上停留时对应的业务流的大小,并在最近一次预测的链路的实时带宽中将停留时对应的业务流的大小排除。

13.根据权利要求8所述的装置,其特征在于,所述预测模块具体用于若根据当前的链路数据确定链路的实时带宽大于链路的可分配带宽,而预测的链路实时带宽小于链路的可分配带宽,则在等待预设时长之后,再触发利用新上送的链路数据和业务流数据针对业务流当前部署的路径进行调整。

14.根据权利要求13所述的装置,其特征在于,所述预测模块具体用于在等待下一个周期的链路数据和业务流数据均到达之后,再利用新上送的链路数据和业务流数据针对业务流当前部署的路径进行调整。

说明书 :

一种流量调度方法及装置

技术领域

[0001] 本说明书涉及通信技术领域,尤其涉及一种流量调度方法及装置。

背景技术

[0002] 近年来,SDN(Software Defined Network,软件定义网络)技术被广泛应用于各个领域和各种用户实际网络中。在不同的领域和用户网络中,SDN控制器需要使用的具体技术和解决的问题各有不同。
[0003] SDN控制器关心的几个元素有:
[0004] (1)节点属性:包括网络设备的基本信息、接口列表信息;
[0005] (2)链路属性:包括链路的基本属性、静态属性和业务属性。
[0006] 其中,链路的基本属性包括:链路对应的源设备和接口、链路对应的目的设备和接口;
[0007] 链路的静态属性包括:可分配带宽、花销Cost、属性标志;
[0008] 链路的动态属性包括:延时、抖动、丢包率;
[0009] 业务属性包括:业务流量的特征、业务流量流经的起点、终点、实时带宽、选路约束(例如,路径质量、路径带宽、亲和属性、COST等)、当前路径)。
[0010] 随着业务的发展,调度技术的不断提高,例如:控制器支持批量计算路径和按网元批量异步下发路径等技术,流量调度的执行性能不断提高。在实际生产环境中,由于设备性能的限制,用户的网管系统往往设置的采集调度数据的频率比较低。由于网管系统采集网络设备上调度数据的周期与下发流量调整策略的时机、以及流量实际调整的时机之间存在时间差,因此可能会导致过度调度或错误调度的问题。

发明内容

[0011] 为克服相关技术中存在的问题,本说明书提供了一种流量调度方法及装置。
[0012] 根据本说明书实施例的第一方面,提供一种流量调度方法,所述方法包括:
[0013] 接收网络设备业务流数据和链路数据;
[0014] 根据当前接收的业务流数据和链路数据对链路的实时带宽进行预测并计算新的部署路径;
[0015] 将新的待部署路径的配置下发至网络设备;
[0016] 若接收到新的业务流数据或链路数据,则根据新接收的业务流数据和链路数据更新预测的链路实时带宽;
[0017] 根据预测的链路实时带宽确定是否需要对业务流进行调度。
[0018] 可选的,根据当前接收的业务流数据和链路数据对链路的实时带宽进行预测,包括:
[0019] 若业务流在当前部署的链路的调整类型为调出类型,则可以根据如下公式进行链路实时带宽的预测:
[0020] 链路的实时带宽预测LCBWF=链路的实时带宽LCBW‑业务流的实时带宽FBW;
[0021] 若业务流在当前部署的链路的调整类型为调入类型,则可以根据如下公式进行链路实时带宽的预测:
[0022] 链路的实时带宽预测LCBWF=链路的实时带宽LCBW+业务流的实时带宽FBW。
[0023] 可选的,若接收到新的业务流数据或链路数据,则根据新接收的业务流数据和链路数据更新预测的链路实时带宽,包括:
[0024] 若业务流在当前部署的链路的调整类型为调出类型,则利用预测的链路实时带宽减去业务流变化的带宽去更新预测的链路实时带宽;
[0025] 若业务流在当前部署的链路的调整类型为调入类型,则利用预测的链路实时带宽加上业务流变化的带宽去更新预测的链路实时带宽。
[0026] 可选的,若接收到新的业务流数据或链路数据,则根据新接收的业务流数据和链路数据更新预测的链路实时带宽,包括:
[0027] 若业务流在当前部署的链路的调整类型为调出类型,则可以根据如下公式进行链路实时带宽的预测:
[0028] 链路的实时带宽预测=上一次链路的实时带宽预测‑业务流的实时带宽;
[0029] 若业务流在当前部署的链路的调整类型为调入类型,则可以根据如下公式进行链路实时带宽的预测:
[0030] 链路的实时带宽预测=上一次链路的实时带宽预测+业务流的实时带宽。
[0031] 可选的,若接收到新的链路数据,则根据新接收的业务流数据和链路数据更新预测的链路实时带宽,包括:
[0032] 确定业务流在当前部署链路上停留的总时长以及最近一次记录的该业务流在当前部署链路上的调整类型;
[0033] 若最近一次业务流的调整类型为调入类型,则根据所述停留的总时长以及当前业务流的带宽计算该业务流在当前部署链路上未停留时对应的业务流的大小,将未停留时对应的业务流大小补偿增加至最近一次预测的链路的实时带宽中;
[0034] 若最近一次业务流的调整类型为调出类型,则根据所述停留的总时长以及当前业务流的带宽计算该业务流在当前部署链路上停留时对应的业务流的大小,并在最近一次预测的链路的实时带宽中将停留时对应的业务流的大小排除。
[0035] 可选的,根据预测的链路实时带宽确定是否需要对业务流进行调度,包括:
[0036] 若根据当前的链路数据确定链路的实时带宽大于链路的可分配带宽,而预测的链路实时带宽小于链路的可分配带宽,则在等待预设时长之后,再利用新上送的链路数据和业务流数据针对业务流当前部署的路径进行调整。
[0037] 可选的,所述在等待预设时长之后,再利用新上送的链路数据和业务流数据针对业务流当前部署的路径进行调整,包括:
[0038] 在等待下一个周期的链路数据和业务流数据均到达之后,再利用新上送的链路数据和业务流数据针对业务流当前部署的路径进行调整。
[0039] 根据本说明书实施例的第二方面,提供一种流量调度装置,所述装置包括:
[0040] 接收模块,用于接收网络设备业务流数据和链路数据;
[0041] 预测模块,用于根据当前接收的业务流数据和链路数据对链路的实时带宽进行预测并计算新的部署路径;
[0042] 下发模块,用于将新的待部署路径的配置下发至网络设备;
[0043] 若接收模块接收到新的业务流数据或链路数据,则预测模块根据新接收的业务流数据和链路数据更新预测的链路实时带宽;
[0044] 所述预测模块还用于根据预测的链路实时带宽确定是否需要对业务流进行调度。
[0045] 可选的,所述预测模块具体用于若业务流在当前部署的链路的调整类型为调出类型,则可以根据如下公式进行链路实时带宽的预测:
[0046] 链路的实时带宽预测LCBWF=链路的实时带宽LCBW‑业务流的实时带宽FBW;
[0047] 若业务流在当前部署的链路的调整类型为调入类型,则可以根据如下公式进行链路实时带宽的预测:
[0048] 链路的实时带宽预测LCBWF=链路的实时带宽LCBW+业务流的实时带宽FBW。
[0049] 可选的,所述预测模块具体用于若业务流在当前部署的链路的调整类型为调出类型,则利用预测的链路实时带宽减去业务流变化的带宽去更新预测的链路实时带宽;
[0050] 若业务流在当前部署的链路的调整类型为调入类型,则利用预测的链路实时带宽加上业务流变化的带宽去更新预测的链路实时带宽。
[0051] 可选的,所述预测模块具体用于若业务流在当前部署的链路的调整类型为调出类型,则可以根据如下公式进行链路实时带宽的预测:
[0052] 链路的实时带宽预测=上一次链路的实时带宽预测‑业务流的实时带宽;
[0053] 若业务流在当前部署的链路的调整类型为调入类型,则可以根据如下公式进行链路实时带宽的预测:
[0054] 链路的实时带宽预测=上一次链路的实时带宽预测+业务流的实时带宽。
[0055] 可选的,所述预测模块具体用于确定业务流在当前部署链路上停留的总时长以及最近一次记录的该业务流在当前部署链路上的调整类型;
[0056] 若最近一次业务流的调整类型为调入类型,则根据所述停留的总时长以及当前业务流的带宽计算该业务流在当前部署链路上未停留时对应的业务流的大小,将未停留时对应的业务流大小补偿增加至最近一次预测的链路的实时带宽中;
[0057] 若最近一次业务流的调整类型为调出类型,则根据所述停留的总时长以及当前业务流的带宽计算该业务流在当前部署链路上停留时对应的业务流的大小,并在最近一次预测的链路的实时带宽中将停留时对应的业务流的大小排除。
[0058] 可选的,所述预测模块具体用于若根据当前的链路数据确定链路的实时带宽大于链路的可分配带宽,而预测的链路实时带宽小于链路的可分配带宽,则在等待预设时长之后,再触发利用新上送的链路数据和业务流数据针对业务流当前部署的路径进行调整。
[0059] 可选的,所述预测模块具体用于在等待下一个周期的链路数据和业务流数据均到达之后,再利用新上送的链路数据和业务流数据针对业务流当前部署的路径进行调整。
[0060] 本说明书的实施例提供的技术方案可以包括以下有益效果:在本说明书的方法中,在将待部署的路径的配置下发至网络设备之后,如果控制器接收到新的业务流数据或者链路数据,则根据网络设备新上报的业务流数据和链路数据获取链路的实时带宽,并对链路的实时带宽进行预测,与只采用链路数据对链路的实时带宽进行预测相比,本说明书根据业务流数据对预测的链路的实时带宽进行更新,从而使得对链路实时带宽的预测更加精准,在对链路实时带宽预测更精准的前提下,从而可以确定对于业务流后续是否需要继续调整,从而可以避免一些错误调度或者过度调度的问题。
[0061] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。

附图说明

[0062] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
[0063] 图1‑1是本说明书提供的相关技术中的一种流量调度的示意图;
[0064] 图1‑2是本说明书提供的相关技术中另一流量调度的示意图;
[0065] 图2是本说明书实施例提供的网络架构的示意图;
[0066] 图3是本说明书实施例提供的流量调度方法的流程示意图;
[0067] 图4是本说明书实施例提供的业务流数据和链路数据的采集周期的示意图;
[0068] 图5是本说明书实施例提供的流量调度的示意图;
[0069] 图6是本说明书另一实施例提供的流量调度方法的流程示意图;
[0070] 图7是本说明书另一实施例提供的流量调度装置的示意图;
[0071] 图8是本说明书一实施例提供的控制器的结构示意图。

具体实施方式

[0072] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
[0073] 在相关技术中,图1‑1示出了一种网络架构示意图,如图1‑1所示,若存在100条用户业务流Flow1~100,每一条用户业务流量的初始带宽为5M,这些流量均在最短路径A‑>B‑>D‑>F上转发,如果此时Flow1~Flow100的流量突增到20M,由于此时用户业务流的总带宽超过了链路B‑>D和链路D‑>F的可分配带宽,因此,链路B‑>D和链路D‑>F会触发丢包率以及转发路径的调整。控制器采集调度参数的周期若为1分钟,一次调度10条流,每次调整需要耗时0.1秒,由于控制器无法判断引起路径丢包的原因(例如无法判断究竟是当前业务流的带宽超过路径的可分配带宽导致的丢包还是链路质量本身变差),因此控制器会将所有用户业务流量调度到其他路径才会终止调度,由此产生了过度调度的问题。
[0074] 在另一种可能的情况中,在图1‑2的示例的基础上,如图1‑2所示,若路径B‑>C‑>F的背景流量为500M,背景流量就是不被控制器管理的流量,在生产环境中该流量的大小无规律变化。若控制器在将原来在路径B‑>D‑>F转发的Flow1~flow100调整到其他路径进行转发,那么控制器需要对其他候选路径对应的链路实时带宽进行估计,进而判断在将用户业务流量调整至该候选路径之后,该候选路径是否满足带宽约束条件。举例来说,若当前的候选路径为A‑>B‑>C‑>F,那么控制器会对组成该候选路径的路径进行链路实时带宽预测。
[0075] 但是由于控制器无法判断链路当前流量采集值的组成,网络设备统计链路数据存在统计周期,而控制器采集到的是上个统计周期的流量情况,控制器利用此前采集的链路数据对链路的实时带宽进行估计,此时由于调整到B‑>C,C‑>F上的流量还没有被统计到,则B‑>C,C‑>F的链路实时带宽被错误的刷新为背景流量的带宽,即500M。
[0076] 控制器持续往B‑>C,C‑>F上调整超过500M流量,将会导致业务丢包。
[0077] 由于控制器采集到的链路数据滞后,控制器再次检测到路径丢包率数据后,再次触发业务流的路径调整,部分流量最终被调整到了B‑>E‑>F。
[0078] 由此可能会产生路径的错误调度。
[0079] 本说明书提供的流量调度方法中,通过网络设备的业务流数据对链路实时带宽进行预测,并在接收到新一个周期上送的业务流数据或者链路数据对预测的链路实时带宽进行估计,与相关技术中只采用链路数据对链路的实时带宽进行预测相比,本实施例在接收到业务流数据,也根据业务流数据对链路的实时带宽进行预测,从而使得对链路实时带宽的预测更加精准。
[0080] 在介绍本说明书所提供的流量调度方法之前,先对本发明中涉及到的一些基本概念加以介绍。
[0081] FBW(Flow Bandwidth)为用户的业务流量的带宽,控制器主动采集或由设备周期上报控制器获得。
[0082] LMRBW(Link Max Reserve BandWidth)为链路的最大可分配带宽,组网基础配置,用户根据实际网络情况配置,通过边界网关协议‑链路状态BGP‑LS(Border Gateway Protocol Link‑State)技术上报控制器。
[0083] LCBW(LinkCurrentBandWidth)为链路的实时带宽,控制器主动采集或由设备周期上报控制器获得。
[0084] LRBW(LinkReservedBandWidth)为链路的剩余可分配带宽,链路的剩余可分配带宽的计算方式可以由很多中,本实施例中链路的剩余可分配带宽根据链路的可分配带宽减去链路的实时带宽来确定的,具体的,LRBW=LMRBW‑LCBW,其中,LRBW由控制器计算维护。
[0085] 此外,衡量业务流流经的路径的质量,可以包括多个方面,一方面每一条是业务流本身有其自身的约束条件,例如一些重要的业务是丢包率要小于一定阈值、并且流经的路径不能超过一定的跳数等,另一方面是链路本身的质量,例如可分配带宽是否足够等。因此,本说明书中网络设备向控制器上报(或控制器主动采集)的数据涉及到两个类型的数据,一种是与业务流量(flow)相关的数据,一种是与链路(link)相关的数据。
[0086] (一)与业务流量flow相关的数据
[0087] 与业务流量相关的数据又包括网络设备上报的数据和控制器维护的数据。
[0088] 其中,网络设备上报的业务流的数据包括:
[0089] FINFO(Flow Info)用户的业务流量的基本信息,包括隧道类型,隧道编号等。其中,隧道类型可以为SR TE(Segment Routing Traffic Engineering,段路由流量工程),SR Policy(Segment Routing Policy,段路由),SRV6 Policy(基于IPv6的SR‑TE Policy)。
[0090] FBWCT(Flow Bandwidth Collection Time)用户业务流量带宽的采集时间。这个采集时间不是指控制器获取的时间,也不是指设备批量推送的时间,网络设备会周期性的统计网络设备的带宽值,FBWCT即每次统计结束后网络设备记录的时间。
[0091] FBWCI(Flow Bandwidth Collection Interval)用户业务流量的带宽采集间隔。
[0092] FBW(Flow Bandwidth)用户的业务流量的带宽值,控制器主动采集或由设备周期上报控制器获得。
[0093] 控制器维护的业务流的数据除了包括上述网络设备上报的业务流量的数据之外,还包括以下数据:
[0094] FPP(Flow Pre Path)表示用户业务待部署的路径。
[0095] FAT(Flow Adjust Time):控制器会对流量的路径进行调整,控制器在计算出新的路径之后,会记录下该时刻,即为FAT路径的调整时间。此时控制器刚给计算完路径,新计算的待部署的路径还没有部署到网络设备,待部署的路径在批量部署队列中。控制器会记录流量的调整时间FAT与用户业务待部署的路径FPP的对应关系。其中,图4中示出了控制器在计算完流量的路径之后,记录FAT的示意。控制器在计算完路径之后,会将新计算的待部署的路径下发到网络设备。
[0096] FCP(Flow Current Path)表示用户业务流量的已下发部署的当前路径。
[0097] FDT(Flow Deploy Time)控制器向网络设备下发待部署的路径之后,网络设备会向控制器发送路径已经部署的响应,控制器会记录接收到该响应的时间,即路径的部署时间FDT,图4中示出了控制器记录FDT的示意。控制器将待部署的路径下发之后,则该待部署的路径FPP就被更新为已经部署的路径FCP,控制器中会记录FDT与FCP的对应关系,即会记录已经部署的路径与部署完该路径的时间。
[0098] (二)与链路相关的数据
[0099] 网络设备上报的链路数据包括:
[0100] LDIC(Link Dynamic Info Collection)链路上报或采集的数据,可以包括:LINFO,LDICT,LDICI,LDI中的任意一个或多个。
[0101] 其中,LINFO(Link Info)为链路基本信息,包括:链路两端的源IP地址和目的IP地址。
[0102] LDICT(Link Dynamic Info Collection Time)链路数据的采集时间。这个采集时间不是指控制器获取的时间,也不是指设备批量推送的时间,网络设备会周期性的采集链路数据,例如采集链路的动态属性,LDICT指的是网络设备在每次采集完链路数据之后记录的时间。图4中示出了网络设备采集完链路数据记录LDICT的示意。
[0103] LDICI(Link Dynamic Info Collection Interval)链路数据的采集间隔(周期)。
[0104] LDI(Link Dynamic Info)链路动态属性,包括:LCBW、LPL、LD;
[0105] 其中,LCBW(Link Current BandWidth)为设备上报的链路的实时带宽,控制器主动采集或由设备周期上报控制器获得;
[0106] LPL(Link Packet Lost)为链路丢包率;
[0107] LD(Link Delay)为链路延时。
[0108] 控制器维护的链路数据包括:
[0109] LDINFO(Link Detail Info)链路的详细信息,包括:链路对应的源IP地址和目的IP地址,以及链路的其他可以备注的信息。
[0110] LMRBW(Link Max Reserve BandWidth)为链路的最大可分配带宽,组网基础配置,用户根据实际网络情况配置,通过BGP‑LS技术上报控制器。
[0111] LC(Link Cost)为链路花销。
[0112] LLDICT(Link Last Dynamic Info Collection Time)链路前一次链路数据的采集的时间。
[0113] LCBWF(Link Current Bandwidth Forcast)链路实时带宽预测值,控制器根据链路实时带宽值和待部署的路径业务和已部署路径业务进行链路实时带宽的预测,该值做为流量调度的链路带宽的预测值。
[0114] LPLF(Link Packet Lost Forcast)链路丢包率预测值,该值根据链路最大可分配带宽LMRBW和LCBWF之间的关系进行预测。具体的如何预测将在后面的实施例中详细描述。
[0115] LFDH(Link Flow Deploy History)记录本业务流采集周期内(LLDICT之后)的所有业务调出本链路,或调入本链路的历史记录。每条历史记录信息包括:业务流量的基本信息FINFO,调整类型(调出或调入),路径的调整时间FAT。
[0116] LFPD(Link Flow Pre Deploy)记录所有调离或调入本链路的已经部署的业务流flow。
[0117] 实施例一
[0118] 在介绍完基本概念之后,对本说明书中所提供的流量调度方法进行详细介绍。图2为本实施例提供的一种网络架构示意图,本实施例以业务流在图2所示的组网架构中进行调度为例对本实施例所提供的方法进行说明。图3为本实施例提供的流量调度方法的流程示意图。该方法可以应用于控制器、网络管理软件等,对于执行该方法的硬件设备、软件类型等并不加以限定。本实施例以控制器执行图3所示的方法为例进行说明。
[0119] 如图3所示,该方法包括:
[0120] 步骤301,接收网络设备业务流数据和链路数据。
[0121] 其中,业务流数据和链路数据在上述基本概念介绍中已经介绍过,在此不再赘述。
[0122] 步骤303,根据当前接收的业务流数据和链路数据对链路的实时带宽进行预测并计算新的部署路径。
[0123] 本实施例以100条业务流flow1~flow100在图2所示的网络设备A和网络设备F之间转发为例,若flow1~flow100初始的带宽均为5M,其中,各个链路的最大可分配带宽、各个链路的cost等可以参照图2所示,在此不进行赘述。业务流flow1~flow100都在最短路径A‑>B‑>D‑>F上转发,即针对业务流flow1~flow100的当前部署的路径为A‑>B‑>D‑>F。
[0124] 如前文中所述,控制器会持续接收网络设备上送两个类型的数据:链路的相关数据数据以及与业务流相关的数据。根据图4的两种类型的虚线,可以看出网络设备采集这两种类型的数据的周期可能会不同,对于控制器而言,接收到网络设备上送的这两种类型的数据的周期也是不同的。
[0125] 控制器针对网络设备上送的业务流相关的数据,控制器会查看各业务流flow的带宽FBW以及丢包率是否符合要求;控制器针对网络设备上送的链路相关的数据,会检查各个链路上的链路的实时带宽是否超过可分配带宽的预设比例,如果超过预设比例,则需要将该链路上的业务流调整到其他链路上。举例来说,若link2上链路实时带宽带宽为900M,若预设比例为80%,则实时带宽900M已经超过了link2的可分配带宽1000M的80%,因此需要将100M的流量调出link2。
[0126] 控制器计算的新的待部署的路径可以根据路径的cost最小的原则,或者根据剩余可分配带宽最大等原则确定新的待部署路径。具体的,在初始时确定新的待部署路径的方式可以采用任意一种方式确定。
[0127] 对链路的实时带宽的预测可以根据业务流在链路上的调整类型,例如,若flow1~flow15被调出link2,则针对link2的链路实时带宽的预测可以根据当前采集到的链路实时带宽减去调整出该链路link2的业务流的总带宽进行预测;若flow11~flow15被调入link4,则针对link4的链路实时带宽的预测可以根据当前采集到的链路实时带宽加上调入link4的业务流的总带宽进行预测。
[0128] 当然,对于链路实时带宽的预测可以有不同的方式。在后面的实施例中也会对链路实时带宽的预测的其他方式做进一步的说明。
[0129] 步骤305,将新的待部署路径的配置下发至网络设备。
[0130] 步骤307,若接收到新的业务流数据或链路数据,则根据新接收的业务流数据和链路数据更新预测的链路实时带宽。
[0131] 如前文中所述,控制器会持续接收网络设备上送两个类型的数据:链路的相关数据数据以及与业务流相关的数据。根据图4的两种类型的虚线,可以看出网络设备采集这两种类型的数据的周期可能会不同,对于控制器而言,接收到网络设备上送的这两种类型的数据的周期也是不同的。
[0132] 因此控制器对于预测的链路的实时带宽可以根据新一个周期上报的链路数据和业务流数据进行更新。
[0133] 步骤309,根据预测的链路实时带宽确定是否需要对业务流进行调度。
[0134] 在相关技术中,可能产生的问题是,控制器已经将待部署的路径下发至网络设备,网络设备实际已经对业务流实际转发的链路进行了调整,但是网络设备还未将新采集的链路数据也业务流的数据进行上报,使得控制器一直采用旧的链路数据和业务流数据进行计算,实际上,100条业务流只需要将20条业务流调整至其他链路就行,但是由于控制器在进行路径计算时,采用链路数据和业务流数据是老旧的数据,而导致控制器不断的进行触发调整,将业务流来回的在不同的路径上调整,而产生错误调度的问题。
[0135] 在本说明书的方法中,在将待部署的路径的配置下发至网络设备之后,如果控制器接收到新的业务流数据或者链路数据,则根据网络设备新上报的业务流数据和链路数据获取链路的实时带宽,并对链路的实时带宽进行预测,与只采用链路数据对链路的实时带宽进行预测相比,本实施例在接收到业务流数据,也根据业务流数据对链路的实时带宽进行预测,从而使得对链路实时带宽的预测更加精准。
[0136] 针对步骤309,根据预测的链路实时带宽确定是否需要对业务流进行调度的一种可能的实现方式为:
[0137] 若根据链路数据确定链路的实时带宽大于链路的可分配带宽,而预测的链路实时带宽小于链路的可分配带宽,则等待下一周期的链路数据和业务流数据均到达之后,再利用新上送的链路数据和业务流数据针对业务流当前部署的路径进行调整。
[0138] 如果控制器在当前周期采集到的链路实时带宽大于链路的可分配带宽,但是预测的链路实时带宽小于链路的可分配带宽,说明此时可能无需再向新计算出的待部署路径上调整业务流了,因此控制器可以进行静默,即等待下一个周期的链路数据和业务流数据均到达之后,再针对业务流当前部署的路径进行调整。
[0139] 这里以图4为例,若此时的时刻为图4中的FBWCT2,与当前时刻对应的链路数据的采集周期为LDICT2,此时对于业务流数据的采集的下一个周期为FBWCT3,但是对于链路数据的采集周期而言,其下一个周期为LDICT3,因此,步骤309指的下一个周期链路数据和业务流数据均到达后,指的是控制器要在LDICT3时刻到达之后,再针对业务流进行调整。
[0140] 控制器静默等待的时长为MAX(FBWCT当前周期,LDICT当前周期)‑当前时刻+MAX(LDICI,FBWCI)。其中,FBWCT当前周期指的是当前时刻之后的首个业务流数据的采集时刻,LDICT当前周期指的是当前时刻之后首个链路数据的采集时刻。
[0141] 若当前时刻为FBWCT2和FBWCT3之间的任一时刻T,那么FBWCT当前周期为该时刻T之后的首个业务流数据采集时刻,即为FBWCT3;LDICT当前周期为该时刻T之后的首个链路数据采集时刻,即为LDICT2。以图4的示例,那么控制器的静默等待时长即为LDICT2‑T+LDICI。
[0142] 若控制器根据当前的链路数据(可能是新接收的也可能是上一个周期接收的链路数据)确定链路的实时带宽大于链路的可分配带宽,但是果预测的链路的实时带宽小于链路的可分配带宽,说明此时可能无需再向新计算出的待部署路径上调整业务流了,控制器通过等待的方式,等到下一个周期的链路数据和业务流数据均到达之后,再利用网络设备新上送的链路数据和业务流数据进行路径的调整,从而可以避免业务流的带宽激增的情况下,由于控制器未采集到最终的业务流带宽。
[0143] 实施例二
[0144] 为了更好的理解上述实施例一所提供的方法,本实施例以具体示例的方式,对实施例一的方法做进一步的说明。
[0145] 具体的,如图6所示,本实施例提供的方法具体包括:
[0146] 步骤401,接收网络设备发送的业务流数据和链路数据判断是否需要调整针对业务流当前部署的路径。
[0147] 一个示例:
[0148] 针对链路数据以及业务流数据均为第一个采集周期为例,在初始状态,控制器上维护的链路信息可以如表1‑1所示:
[0149] 其中,结合表1‑1和图2,Link1代表网络设备A和网络设备B之间的链路、Link2代表网络设备B和D之间的链路、Link3代表网络设备D和F之间的链路、Link4代表网络设备B和C之间的链路、Link5代表网络设备C和F之间的链路、Link6代表网络设备B和E之间的链路、Link7代表网络设备E和F之间的链路;
[0150] 其中,各个链路的最大可分配带宽、以及cost如表1‑1所示,其中,LLDICT为控制器记录的上一个链路数据的采集时间,如图4所示,若当前的采集时间为LDICT3,那么,当前时间的上一个链路数据的采集时间即为LDICT2;若当前的采集时间为LDICT2,那么当前时间的上一个链路数据的采集时间即为LDICT1。
[0151] 对于各个链路的实时带宽预测LCBWF是根据控制器的计算,确定是否存在调离本链路的业务流进行确定的,由于本实施例中是以初始状态即各个链路的数据、业务流的数据的首个LDICT为例,因此,各个链路的实时带宽预测LCBWF与链路当前的实时带宽LCBW相等;并且,由于各链路当前的链路的实时带宽LCBW小于链路的可分配带宽LMRBW,且当前采集到的链路丢包率0,因此对于丢包率的预测也是LPLF=0;并且,LLDICT之后也不存在调出或调入各链路的业务流,因此对于LFDH以及LFDH的记录均为null(空),null表征不存在调出或者调入该链路的业务流;链路的剩余可分配带宽LRBW即通过LMRBW‑LCBW确定。
[0152] 表1‑1
[0153] 链路标识 LMRBW LC LLDICT LDIC LCBWF LPLF LFDH LFPD LRBWLink1 3000M 1 T0‑L1 LCBW:500M,LPL:0%,LDICT:T1‑L1 500M 0% Null Null 2500MLink2 1000M 1 T0‑L2 LCBW:500M,LPL:0%,LDICT:T1‑L2 500M 0% Null Null 500MLink3 1000M 1 T0‑L3 LCBW:500M,LPL:0%,LDICT:T1‑L3 500M 0% Null Null 500MLink4 1000M 2 T0‑L4 LCBW:500M,LPL:0%,LDICT:T1‑L4 500M 0% Null Null 500MLink5 1000M 2 T0‑L5 LCBW:500M,LPL:0%,LDICT:T1‑L5 500M 0% Null Null 500MLink6 1000M 3 T0‑L6 LCBW:0M,LPL:0%,LDICT:T1‑L6 0M 0% Null Null 1000MLink7 1000M 3 T0‑L7 LCBW:0M,LPL:0%,LDICT:T1‑L7 0M 0% Null Null 1000M[0154] 同时,控制器还维护有业务流相关的数据,其中包括业务流的带宽FBW、采集该业务流带宽的采集时间FBWCT、路径的调整时间FAT、业务流待部署的路径FPP、路径的部署时间FDT、当前部署的路径FCP,具体的,表1‑2中示例性的给出了一示例:
[0155] 其中,由于各业务流的带宽均为5M,并未超过路径A‑>B‑>C‑>F所包括的各个链路的带宽的承载能力,因此,不需要更改业务流的路径,因此不存在重新计算的路径,也即不存在待部署的路径FPP、也不存在待部署路径的部署时间。同时,由于是初始状态,各业务流不存在上一次采集的业务带宽信息,因此OFBW、FAT、FPP均为null。
[0156] 表1‑2
[0157]业务流标识 OBFW FBW FBWCT FAT FPP FDT FCP
Flow1 Null 5M T1‑F1 Null Null T0‑F1 A‑>B‑>D‑>F
Flow2 Null 5M T1‑F2 Null Null T0‑F2 A‑>B‑>D‑>F
…… …… …… …… …… …… …… ……
Flow100 Null 5M T1‑F100 Null Null T0‑F100 A‑>B‑>D‑>F
[0158] 此时,若业务流flow1‑flow100在T4时刻突增到20M,控制器再次接收到网络设备上报的新的链路相关的数据,并更新链路数据的内容如表2‑1所示:
[0159] 具体的,若业务流flow1‑flow100在T4时刻突增到20M,控制器在T4‑Li时刻分别采集到各个链路的数据,由于此前不存在路径调整,所以暂是没有链路丢包率预测和链路业务流的部署历史的,即链路丢包率预测LPLF为null,以及调离或者调入本链路的业务流的历史记录也为null。其中,i为链路标识,T4‑Li为第i个链路在T4对应的链路采集周期内采集的时间。不同链路的在同一个采集周期内可以是相同的,也可能略有少量差异。
[0160] 此外,由于业务流的带宽激增,控制器采集的业务流相关的数据以及链路的相关数据是一个采集周期内的平均值,所以采集到的链路的丢包率以及业务流量的带宽都不是最终值20M。以控制器采集到的link1、link2、link3的实时带宽LCBW均为1500M、link4、link5的实时带宽为500M、link6和link7的实时带宽为0M、link2和link3的丢包率为20%为例。控制器根据各个链路的LMRBW以及LCBW可以计算出LRBW,各链路的LRBW可以图表2‑1所示。
[0161] 表2‑1
[0162] 链路标识 LMRBW LC LLDICT LDIC LCBWF LPLF LFDH LFPD LRBWLink1 3000M 1 T3‑L1 LCBW:1500M,LPL:0%,LDICT:T4‑L1 1500M 0% Null Null 1500MLink2 1000M 1 T3‑L2 LCBW:1500M,LPL:0%,LDICT:T4‑L2 1500M 20% Null Null 0MLink3 1000M 1 T3‑L3 LCBW:1500M,LPL:0%,LDICT:T4‑L3 1500M 20% Null Null 0MLink4 1000M 2 T3‑L4 LCBW:500M,LPL:0%,LDICT:T4‑L4 500M 0% Null Null 500MLink5 1000M 2 T3‑L5 LCBW:500M,LPL:0%,LDICT:T4‑L5 500M 0% Null Null 500MLink6 1000M 3 T3‑L6 LCBW:0M,LPL:0%,LDICT:T4‑L6 0M 0% Null Null 1000MLink7 1000M 3 T3‑L7 LCBW:0M,LPL:0%,LDICT:T4‑L7 0M 0% Null Null 1000M[0163] 同时,控制器会采集到业务流flow数据数据,由此,表1‑2更新为表2‑2所示:
[0164] 由于上一次控制器向网络设备部署路径A‑>B‑>D‑>F的时间未发生变化,因此各个业务流flow1‑flow100对应的FDT仍然是T0‑F1……T0‑F100。
[0165] 表2‑2
[0166]业务流标识 OBFW FBW FBWCT FAT FPP FDT FCP
Flow1 5M 15M T4‑F1 Null Null T0‑F1 A‑>B‑>D‑>F
Flow2 5M 15M T4‑F2 Null Null T0‑F2 A‑>B‑>D‑>F
…… …… …… …… …… …… …… ……
Flow100 5M 15M T4‑F100 Null Null T0‑F100 A‑>B‑>D‑>F
[0167] 步骤403,若需要调整,则根据业务流数据和链路数据针对各个业务流确定并记录新的待部署路径和业务流的调整类型;
[0168] 若控制器根据表2‑1可以确定link2和link3的链路实时带宽LCBW超过了链路的可分配带宽LMRBW,或者根据链路的丢包率确定存在链路link2和link3需要调整,则控制器重新针对各个业务流确定新的待部署路径。
[0169] 控制器进一步的可以确定当前部署链路需要调整出的流量带宽。一种可以实施的方式中,控制器可以将链路的实时带宽超过链路可分配带宽预设比例的流量带宽调整出当前部署链路。举例来说,若预设比例为80%,针对link2,需要调整出的带宽为LCBW‑LMRBW×预设比例=1500M‑1000M×0.8=700M。link3确定调整出的带宽的方式与link2类似,在此不再赘述。
[0170] 控制器计算的新的待部署的路径可以根据路径的cost最小的原则,或者根据剩余可分配带宽最大等原则确定新的待部署路径。具体的确定新的待部署路径的方式不在本说明书的讨论范畴内,可以采用现有的任意一种确定路径的方式。
[0171] 以控制器按照路径的cost最小的原则为例,那么控制器重新确定的路径为A‑>B‑>C‑>F。
[0172] 接续上面的示例,可以针对各个业务流确定业务流的调整类型。具体的,针对每一个业务流计算在当前部署链路以及调整后的链路上是否存在该业务流的调离或者调入的记录。若不存在(则说明当前业务流在当前的LDICT周期内未被调度),因此可以针对当前部署链路记录当前业务流的调离记录,并通过步骤405对当前部署链路以及新的待部署链路的实时带宽进行预测,得到各个链路对应的LCBWF。
[0173] 一个示例:
[0174] 以当前业务流为flow1为例,控制器查询表2‑1确定当前针对flow1的当前部署链路link2、link3和计算出的待部署链路link4、link5的调离或者调入本链路的记录LFPD,根据表2‑1可知link2和link3上均不存在关于flow1的调出或调入记录(LFPD为null)。因此可以将flow1的调出out事件记录至link2和link3对应的LFPD。
[0175] 并将flow1的调入in事件记录至link4和link5对应的LFPD中。
[0176] 步骤405,根据业务流的调整类型针对当前部署链路和新的待部署路径对应的待部署链路做链路实时带宽预测。
[0177] 需要说明的是,因为控制器在计算出待部署路径之后,可能很快将待部署路径下发至网络设备,但是在将待部署路径下发至网络设备之后,对于网络设备一侧可能并没有立刻到达网络设备采集链路数据和业务流数据的周期,也没有新的链路数据和业务流数据上报至控制器,但是,对于控制器一侧,依然要在网络设备的链路数据以及业务流数据的下一个采集周期到达之前对各个链路的情况进行预测。因此,对于步骤405和步骤407的执行顺序是随机发生的,或者说是不限定先后顺序的。
[0178] 需要说明的是,对于业务流的调整类型,包括业务流在当前部署路径上的调整类型以及业务流在新计算的待部署路径上的调整类型两方面。
[0179] 例如,flow1当前的部署路径对应的链路link2和link3,控制器计算的结果是要将flow1调出link2和link3,因此flow1在当前部署路径对应的链路link2和link3上,flow1的调整类型为调出;相应的,flow1被调出之后,控制器计算出可以将flow1调整至待部署路径对应的link4和link5,那么在待部署路径对应的link4和link5,flow1的调整类型即为调入。
[0180] 接续上述示例,根据步骤403中可知,flow1在当前部署链路link2和link3上的调出类型为调出。控制器根据flow1的调整类型对当前部署链路link2和link3进行链路实时带宽的预测,实时带宽预测LCBWF可以采用如下公式进行预测:
[0181] 链路的实时带宽预测LCBWF=链路的实时带宽LCBW‑业务流的实时带宽FBW;
[0182] 对于flow1,此时在link2和link3上的实时带宽预测LCBWF=1500M‑15M=1485M;
[0183] 对于flow2,在link2和link3上的实时带宽预测LCBWF=1485M‑15M=1470M;
[0184] ……直至flow20,在link2和link3上的实时带宽预测LCBWF=1200M;
[0185] ……直至flow47,在link2和link3上的实时带宽预测LCBWF=795M;此时的实时带宽预测LCBWF
[0186] 相应的,将flow1‑flow20调整至link4和link5。对于link4和link5上实时链路的预测为:LCBWF=LCBW+业务流的实时带宽FBW;
[0187] 当flow1若调整至link4,则LCBWF=500M+15M=515;
[0188] ……flow2调整至link4,则LCBWF=800M;
[0189] Link5对应的LCBWF的计算与link4类似。此时link4和link5的预测的链路的实时带宽已经达到链路可分配带宽LMRBW的预设比例80%,因此,此时不能再将业务流调整至link4和link5。
[0190] 根据链路的cost,此时考虑将flow21~flow47调整至link6和link7上。
[0191] 针对flow21~flow47逐条流根据LCBWF=LCBW+业务流的实时带宽FBW进行LCBWF的计算,最终LCBWF=405M;此时link6和link7对应的LCBWF<链路可分配带宽LMRBW的预设比例80%,因此可以将flow21~flow47调整至link6和link7。
[0192] 此时控制器上维护的链路信息更新为表2‑3所示:
[0193] 表2‑3
[0194]
[0195] 步骤407,将新的待部署路径的配置下发至网络设备。
[0196] 控制器将计算好的待部署路径的相关配置下发至网络设备。
[0197] 此时控制器上保存的业务流的信息更新为表2‑4所示:
[0198] 表2‑4
[0199]
[0200]
[0201] 步骤409,在控制器将新的待部署的路径下发至网络设备之后,若接收到新的业务流数据或链路数据,并根据新接收的业务流数据和链路数据更新预测的链路实时带宽。
[0202] 控制器在将新计算的待部署链路下发至网络设备之后,当到达网络设备的针对链路数据或者业务流数据的采集周期时,网络设备会向控制器上送新一个周期采集的链路数据或者业务流数据。
[0203] 结合图4可以看出,网络设备采集链路数据和业务流数据的周期不同,因此对于控制器接收新的业务流数据和链路数据的执行顺序并不确定。
[0204] 但是对于控制器而言,无论接收到业务流数据还是链路数据都要对此前步骤407预测的链路实时带宽进行修正更新。
[0205] 具体的,步骤409可以通过如下方式进行链路实时带宽的更新:
[0206] 以控制器先接收到业务流数据为例,此时控制器感知到各个业务流的FBW均为20M。
[0207] 针对一条业务流增加的带宽为FBW‑OFBW=20M‑15M=5M。
[0208] 具体的,在一种可能的情况中采用步骤4091对LCBWF进行更新:
[0209] 步骤4091,若业务流在当前部署的链路的调整类型为调出类型,则根据业务流变化的带宽更新此前预测的链路的实时带宽LCBWF。
[0210] 实际上,这是对此次预测的链路的实时带宽LCBWF的补偿机制。具体的,可以利用如下公式进行更新:
[0211] 更新后的LCBWF=之前计算的LCBWF‑(FBW‑OFBW);
[0212] 因此,针对link2和link3的LCBWF由795M被更新为695M。
[0213] 在另一种可能的情况中,采用步骤4092对LCBWF进行更新:
[0214] 步骤4092,若业务流在当前部署的链路的调整类型为调入类型,则利用预测的链路实时带宽加上业务流变化的带宽去更新预测的链路实时带宽。
[0215] 更新后的LCBWF=之前计算的LCBWF+(FBW‑OFBW);
[0216] 而link4和link5的LCBWF由800M被更新为900M;
[0217] Link6和link7的LCBWF由405M被更新为605M。
[0218] 由于link4和link5在根据网络设备上报的业务流数据对预测的链路实时带宽进行更新后,link4和link5的LCBWF大于LMRBW的80%,因此需要将100M流量调出。
[0219] 在根据上述步骤4091或者4092进行LCBWF的更新之后,可以重复执行步骤401~步骤405,或者执行步骤303中的重新计算新的部署路径的流程。
[0220] 步骤4011,根据预测的链路实时带宽确定是否需要对业务流进行调度。
[0221] 根据上述步骤4091或者4092可以看出,在对LCBWF进行重新更新之后,可能会触发业务流重新进行调入或调出。而在对LCBWF更新之前和更新之后,对于同一业务流的调整类型可能是完全不同的,因此,此时可以对更新的LCBWF做进一步的补偿更新。具体的,对LCBWF的更新可以包括:
[0222] 步骤5093,根据本周期接收的业务流数据和最近一次接收的链路数据确定各个业务流本周期的调整类型。
[0223] 步骤5094,若业务流在当前部署的链路的调整类型为调出类型,则可以根据如下公式进行链路实时带宽的预测:
[0224] 链路的实时带宽预测=上一次链路的实时带宽预测‑业务流的实时带宽;
[0225] 若业务流在当前部署的链路的调整类型为调入类型,则可以根据如下公式进行链路实时带宽的预测:
[0226] 链路的实时带宽预测=上一次链路的实时带宽预测+业务流的实时带宽。宽。
[0227] 接续上述实施例中,根据本周期接收到的业务流数据(各业务流带宽增加至20M)以及最近一次接收的链路数据(表2‑3)可以确定出link4和link5的LCBWF由800M被更新为900M,则需要将100M的流量调离link4和link5,由此可以确定各个业务流的调整类型。
[0228] 再一次的以link1为例,若重新计算之后link1被确定需要调离link4和link5,那么控制器查询本地存储的各个链路上调入或调离的业务流的记录LFPD,若LFPD中存在业务流flow1的调入或调出记录,如果LFPD记录的业务流flow1的调整类型与本周期确定的业务流flow1的调整类型相同,则无需多余操作。如果LFPD记录的业务流flow1的调整类型与本周期确定的业务流flow1的调离类型相反,则根据本周期确定的业务流的跳出类型更新LCBWF。
[0229] 具体的,flow1根据表2‑3可知是需要被调入link4,而本次确定需要将flow1调离link4,那么针对link4的预测的链路实时带宽LCBWF可以根据如下公式进行更新:
[0230] 更新后的LCBWF=之前计算的LCBWF‑FBW;
[0231] 或者,在另一种实施方式中,如果此时控制器接收到网络设备上送的链路数据,则也可以根据链路的实时带宽对预测的链路实时带宽进行更新,若本次确定的业务流的调整类型为调出类型,那么,可以采用如下公式进行更新:
[0232] LCBWF=LCBW‑FBW。
[0233] 假设,flow1此前计算出的调整类型为调出,而根据本周期接收到的业务流数据,确定本周期的调出类型为调入,那么可以根据如下公式对预测的链路实时带宽LCBWF进行更新:
[0234] LCBWF=LCBWF+FBW;
[0235] 或者,在另一种实施方式中,如果此时控制器接收到网络设备上送的链路数据,则根据链路数据中包括的链路实时带宽对预测的链路实时带宽进行更新,若确定本周期的业务流的调整类型为调入类型,那么可以采用如下公式进行更新:
[0236] LCBWF=LCBW+FBW。
[0237] 以上即对控制器如何根据业务流数据对LCBWF进行更新做了详细的说明。
[0238] 下面将对控制器接收到网络设备上送的链路数据,控制器如何对LCBWF进行更新做进一步的说明。具体的,控制器根据链路数据对LCBWF进行更新包括:
[0239] 步骤6091,确定业务流在当前部署链路上停留的总时长以及最近一次记录的该业务流在当前部署链路上的调整类型。
[0240] 图5示出了在某一链路数据采集周期内,业务流被调入以及调出的示意图。根据图5可以看出,在一个链路数据采集周期内,某一业务流可能会被反复的调入和调出,其中加粗的横线示出了该业务流实际在某一链路上被转发的时长。
[0241] 其中,其中Ti‑in表示业务流对应在当前部署的链路上被调入的时刻,Ti‑out表示业务流对应在当前部署的链路上被调出的时刻。其中,i的取值为1~n。tn‑in表示业务流最后一次被调入该链路的时刻,tn‑out表示业务流最后一次被调出该链路的时刻。
[0242] 那么,控制器可以确定业务流在当前部署路径上停留的总时长T_Sum_In为:
[0243] T_Sum_In=(LDICT–tn‑in)+SUM(ti‑in–ti‑out)+(t1‑out‑LLDICT);
[0244] 步骤6092,若最近一次业务流的调整类型为调入类型,则根据所述停留的总时长以及当前业务流的带宽计算该业务流在当前部署链路上未停留时对应的业务流的大小,将未停留时对应的业务流大小补偿增加至最近一次预测的链路的实时带宽中。
[0245] 最近一次业务流的调整类型也就是在本周期内最后一次业务流的调整类型。
[0246] 以图5为例,最近一次业务流的调整类型为调入类型,那么可以根据业务流在当前部署路径上停留的总时长T_Sum_In以及链路数据的采集周期LDICI确定出业务流在当前部署的链路上未停留时长,并确定未停留时长占整个LDICI的比例,例如,若flow1针对某一链路link4最后一次的调整类型为调入类型,而根据未停留时长占整个LDICI的比例,可以估算出网络设备有多少流量未统计至link4的带宽内,而由于最终flow1在本周期是被调入了link4,因此预估在下一个周期内,未停留在link4上的流量带宽会增加至link4上,由此可以实现对link4上实时流量带宽的预测。
[0247] 具体的,最近一次业务流的调整类型为调入类型,那么可以根据如下公式更新LCBWF:
[0248] LCBWF=LCBWF+((LDICI‑T_Sum_In)/LDICI)×FBW;
[0249] 步骤6093,若最近一次业务流的调整类型为调出类型,则根据所述停留的总时长以及当前业务流的带宽计算该业务流在当前部署链路上停留时对应的业务流的大小,并在最近一次预测的链路的实时带宽中将停留时对应的业务流的大小排除。
[0250] 与步骤6092类似的,如果最近一次业务流的调整类型为调出类型,可以根据如下公式更新LCBWF:
[0251] LCBWF=LCBWF‑(T_Sum_In/LDICI)×FBW。
[0252] 针对每一条业务流执行上述步骤6092或步骤6093,最终实现所有业务流的所在链路的LCBWF的更新。在一种可选的实施方式中,若某一业务流对应的LFDH为null,则无需计算。
[0253] 以上即为根据链路数据对LCBWF进行更新的实施方式。
[0254] 此外,控制器在接收到链路数据之后,还需要控制器维护的链路数据进行更新。
[0255] 根据控制器上送的链路数据,可以获取到链路的实时带宽LCBW并计算出链路的可分配带宽、链路的丢包率LPL;同时,根据该链路数据可以实现对链路实时带宽的预测得到LCBWF与链路可分配带宽LMRBW的关系。
[0256] 在一种可能的方式中,如果LCBW链路的实时带宽>LMRBW链路的可分配带宽且LPL链路的丢包率>0,链路实时带宽预测值LCBWF<链路的可分配带宽LMRBW,则可以预测下一个周期的链路丢包率LPLF=0。
[0257] 在该种情况中说明,此时LCBW链路的实时带宽>LMRBW链路的可分配带宽,但是在后面的时间里,链路的实时带宽很可能小于链路的可分配带宽了,因此不用再向其他链路再调度业务流。可以静默一段时间,等待业务流的真实数据被网络设备完全采集到之后,再进行路径的调整。
[0258] 在一种可选的实施方式在实施一中给出了,本实施例中不再详细赘述。
[0259] 需要说明的是,上述实施例中所提供的更新LCBWF的方式,可以采用其中任意的一种或多种方式进行更新。多种更新方式也可以串行执行,例如,先执行步骤4091或4092,然后执行步骤5093或5094,然后执行步骤6091或6092,然而网络设备上报业务流数据的周期和链路数据的周期不同,实际上,也可能先执行步骤6091或6092,然后执行步骤4091或4092。
[0260] 对于上述实施方式的如何组合以及执行的先后顺序,本说明书并不加以限定,同时本说明书中所有实施例中各个步骤的执行顺序,在不冲突的情况下也可能不同。对于控制器下发待部署路径的时机,本说明书也并不加以限定。
[0261] 实施例三
[0262] 在上述方法实施例的基础上,本说明书提供一种流量调度装置,该流量调度装置可以执行上述实施例一或者实施例二中提供的任一流量调度方法,具体的,图7为本实施例提供的流量调度装置的结构示意图,如图7所示,该装置包括:
[0263] 接收模块701,用于接收网络设备业务流数据和链路数据;
[0264] 预测模块702,用于根据当前接收的业务流数据和链路数据对链路的实时带宽进行预测并计算新的部署路径;
[0265] 下发模块703,用于将新的待部署路径的配置下发至网络设备;
[0266] 若接收模块701接收到新的业务流数据或链路数据,则预测模块702根据新接收的业务流数据和链路数据更新预测的链路实时带宽;
[0267] 所述预测模块702还用于根据预测的链路实时带宽确定是否需要对业务流进行调度。
[0268] 可选的,所述预测模块702具体用于若业务流在当前部署的链路的调整类型为调出类型,则可以根据如下公式进行链路实时带宽的预测:
[0269] 链路的实时带宽预测LCBWF=链路的实时带宽LCBW‑业务流的实时带宽FBW;
[0270] 若业务流在当前部署的链路的调整类型为调入类型,则可以根据如下公式进行链路实时带宽的预测:
[0271] 链路的实时带宽预测LCBWF=链路的实时带宽LCBW+业务流的实时带宽FBW。
[0272] 可选的,所述预测模块702具体用于若业务流在当前部署的链路的调整类型为调出类型,则利用预测的链路实时带宽减去业务流变化的带宽去更新预测的链路实时带宽;
[0273] 若业务流在当前部署的链路的调整类型为调入类型,则利用预测的链路实时带宽加上业务流变化的带宽去更新预测的链路实时带宽。
[0274] 可选的,所述预测模块具体用于若业务流在当前部署的链路的调整类型为调出类型,则可以根据如下公式进行链路实时带宽的预测:
[0275] 链路的实时带宽预测=上一次链路的实时带宽预测‑业务流的实时带宽;
[0276] 若业务流在当前部署的链路的调整类型为调入类型,则可以根据如下公式进行链路实时带宽的预测:
[0277] 链路的实时带宽预测=上一次链路的实时带宽预测+业务流的实时带宽。
[0278] 可选的,所述预测模块702具体用于确定业务流在当前部署链路上停留的总时长以及最近一次记录的该业务流在当前部署链路上的调整类型;
[0279] 若最近一次业务流的调整类型为调入类型,则根据所述停留的总时长以及当前业务流的带宽计算该业务流在当前部署链路上未停留时对应的业务流的大小,将未停留时对应的业务流大小补偿增加至最近一次预测的链路的实时带宽中;
[0280] 若最近一次业务流的调整类型为调出类型,则根据所述停留的总时长以及当前业务流的带宽计算该业务流在当前部署链路上停留时对应的业务流的大小,并在最近一次预测的链路的实时带宽中将停留时对应的业务流的大小排除。
[0281] 可选的,所述预测模块702具体用于若根据当前的链路数据确定链路的实时带宽大于链路的可分配带宽,而预测的链路实时带宽小于链路的可分配带宽,则在等待预设时长之后,再触发利用新上送的链路数据和业务流数据针对业务流当前部署的路径进行调整。
[0282] 可选的,所述预测模块702具体用于在等待下一个周期的链路数据和业务流数据均到达之后,再利用新上送的链路数据和业务流数据针对业务流当前部署的路径进行调整。
[0283] 本实施例所提供的流量调度装置,各个模块具体的执行过程以及所达到的技术效果可以参照方法实施例,本实施例中不再详细赘述。
[0284] 本说明书还提供一种控制器80,图8为本说明书另一实施例提供的控制器的结构示意图,如图8所示,该控制器80包括处理器801和存储器802,
[0285] 所述存储器802用于存储程序指令,所述处理器801用于调用所述存储器中的存储的程序指令,当所述处理器801执行所述存储器802存储的程序指令时,用于执行上述实施例中的流量调度方法。另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
[0286] 在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0287] 另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0288] 所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的可读存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0289] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。