流量调度方法和系统与流程

文档序号:16977837发布日期:2019-02-26 19:11阅读:735来源:国知局
流量调度方法和系统与流程

本申请涉及sdn(softwaredefinednetwork,软件定义网络)技术领域,特别是一种流量调度方法和系统。



背景技术:

在sdn架构下,一般都需要sdn控制中的pce(pathcomputeelement,路径计算单元)来采集全局的网络拓扑和链路利用率信息,基于这些信息来对流量进行全局的优化和调度,以实现网络资源的均衡利用。

现有技术中,基于约束的最短路径算法主要用来实现针对关键业务的端到端路径计算,难以直接用于全网的流量均衡调度;基于约束的全局最优算法(拉格朗日对偶算法)则在涉及到变量较多时难以求解;针对拥塞流量的多次迭代优化算法存在一些业务流量被反复调度的现象,难以给出最优的调度方案。



技术实现要素:

本申请的一个目的在于提出一种网络流量调度方案,提高网络拥塞解决的效率。

根据本申请的一个方面,提出一种流量调度方法,包括:根据拥塞链路上承载的业务流确定第一业务流,以便当拥塞链路不再承载第一业务流时,拥塞链路的利用率低于预定阈值;在保证网络中不产生拥塞的情况下,将各个链路之间的第一业务流注入网络。

可选地,根据拥塞链路上承载的业务流确定第一业务流包括:分析拥塞链路上的各个业务流的占比;按照占比确定提取出后能使拥塞链路的利用率低于预定阈值的业务流。

可选地,第一业务流为业务端口间成对的业务流。

可选地,在保证网络中不产生拥塞的情况下,将各个链路之间的第一业务流注入网络包括:根据各个拥塞链路之间的第一业务流生成业务流矩阵;根据业务流矩阵和cspf(constrainedshorestpathtree,约束最短路径优先算法)将业务流矩阵中的各个第一业务流注入网络,且确保网络中不产生新拥塞。

可选地,在保证网络中不产生拥塞的情况下,将各个链路之间的第一业务流注入网络还包括:当存在第一业务流无法在保证网络中不产生拥塞的情况下整体注入网络时,拆分该第一业务流并分别注入网络。

可选地,拆分第一业务流并分别注入网络包括:根据各条具有剩余带宽的可用链路的剩余带宽,选择最小剩余带宽作为基准带宽;在可用链路上根据基准带宽和可用链路的剩余带宽确定在每条可用链路上生成隧道的数量,并生成隧道;按照隧道拆分第一业务流。

通过这样的方法,能够获取网络中解决拥堵的关键业务流,进而对该业务流进行重新调度分配,减少了需要调整的业务流的数量,提高了拥塞问题解决的效率,也降低了对运算设备性能的要求。

根据本申请的另一个方面,提出一种流量调度系统,包括:业务流确定单元,用于根据拥塞链路上承载的业务流确定第一业务流,以便当拥塞链路不再承载第一业务流时,拥塞链路的利用率低于预定阈值;业务流注入单元,用于在保证网络中不产生拥塞的情况下,将各个链路之间的第一业务流注入网络。

可选地,业务流确定单元包括:占比分析子单元,用于分析拥塞链路上的各个业务流的占比;业务流确定子单元,用于按照占比确定提取出后能使拥塞链路的利用率低于预定阈值的业务流。

可选地,第一业务流为业务端口间成对的业务流。

可选地,业务流注入单元包括:业务流矩阵确定子单元,用于根据各个拥塞链路之间的第一业务流生成业务流矩阵;流量注入子单元,用于根据业务流矩阵和cspf将业务流矩阵中的各个第一业务流注入网络,且确保网络中不产生拥塞。

可选地,业务流注入单元还用于:当第一业务流无法在保证网络中不产生拥塞的情况下整体注入网络时,拆分第一业务流并分别注入网络。

可选地,业务流注入单元还包括:基准带宽确定子单元,用于根据各条具有剩余带宽的可用链路的剩余带宽,选择最小剩余带宽作为基准带宽;隧道生成子单元,用于在可用链路上根据基准带宽和可用链路的剩余带宽确定在每条可用链路上生成隧道的数量,并生成隧道;业务流分流子单元,用于按照隧道拆分第一业务流;流量注入子单元还用于将拆分后的第一业务流注入隧道。

根据本申请的又一个方面,提出一种流量调度系统,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器的指令执行上文中提到的任意一种流量调度方法。

这样的流量调度系统能够获取网络中解决拥堵的关键业务流,进而对该业务流进行重新调度分配,减少了需要调整的业务流的数量,提高了拥塞问题解决的效率,也降低了对运算设备性能的要求。

根据本申请的再一个方面,提出一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上文中提到的任意一种流量调度方法的步骤。

这样的计算机可读存储介质通过执行其上的程序,能够获取网络中解决拥堵的关键业务流,进而对该业务流进行重新调度分配,减少了需要调整的业务流的数量,提高了拥塞问题解决的效率,也降低了对运算设备性能的要求。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请的流量调度方法的一个实施例的流程图。

图2为本申请的流量调度方法的另一个实施例的流程图。

图3a为本申请的流量调度方法的又一个实施例的网络示意图。

图3b为本申请的流量调度方法的又一个实施例的业务流提取示意图。

图3c为本申请的流量调度方法中业务流拆分的一个实施例的示意图。

图4为本申请的流量调度系统的一个实施例的示意图。

图5为本申请的流量调度系统中业务流注入单元的一个实施例的示意图。

图6为本申请的流量调度系统的另一个实施例的示意图。

图7为本申请的流量调度系统的又一个实施例的示意图。

具体实施方式

下面通过附图和实施例,对本申请的技术方案做进一步的详细描述。

本申请的流量调度方法的一个实施例的流程图如图1所示。

在步骤101中,根据拥塞链路上承载的业务流确定第一业务流,所谓第一业务流指的是当从拥塞链路上去除该业务流时,拥塞链路的利用率低于预定阈值,如80%,不再发生拥塞。在一个实施例中,可以先分析拥塞链路上的各个业务流的占比,再按照占比确定第一业务流,提取第一业务流,使该拥塞链路不再承载该第一业务流,从而该拥塞链路的利用于低于预定阈值。在一个实施例中,第一业务流可以为业务端口间成对的业务流,从而便于保证两端口间的双向业务流采用相同的传输路径。

在步骤102中,在保证网络中不重新产生拥塞的情况下,将各个链路之间的第一业务流注入网络。在一个实施例中,可以采用最短路径算法cspf将从各个拥塞链路提取出来的各个第一业务流重新注入网络。

通过这样的方法,能够获取网络中解决拥堵的关键业务流,进而对该业务流进行重新调度分配,减少了需要调整的业务流的数量,提高了拥塞问题解决的效率,也降低了对运算设备性能的要求。

在一个实施例中,在确定第一业务流时,在使链路利用率降到预定阈值以内的目标下,可以依照调动最少的业务流的原则,或依照使调整后的链路利用率与预定阈值最接近的原则,从而尽量减少对网络流量的影响,有利于保持网络的稳定性。

在一个实施例中,可以在提取出第一业务流后,将各个拥塞链路之间的第一业务流生成业务流矩阵,再根据业务流矩阵将业务流矩阵中的各个第一业务流注入网络,从而便于对业务流进行统筹计算,避免反复调度。

在一个实施例中,当将第一业务流重新注入网络时,若由于业务流流量过大或网络中剩余带宽过于分散等原因,存在第一业务流无法整体注入网络,则可以拆分不能够完整注入的第一业务流,采用不同的路径传输该第一业务流。通过这样的方法,能够解决单业务流需求带宽过大造成拥塞和难以调整的问题,提高了网络的利用率,也降低了无法解决的拥塞问题出现的概率。

本申请的流量调度方法的另一个实施例的流程图如图2所示。

在步骤201中,分析拥塞链路上的各个业务流的占比,如a端口与b端口之间的业务对流占用链路带宽的30%,a端口与c端口之间的业务对流占用链路带宽的20%,d端口与f端口之间的业务对流占用链路带宽的10%,g端口与e端口之间的业务对流占用链路带宽的40%,其中,a、b、c、d、e、f、g均为网络中的端口。

在步骤202中,按照占比确定第一业务流,提取第一业务流,使该拥塞链路不再承载该第一业务流,从而使得该拥塞链路的利用于低于预定阈值。例如,预定阈值为80%,则确定第一业务流为a端口与c端口之间的业务对流。

在步骤203中,根据各个拥塞链路之间的第一业务流生成业务流矩阵。

在步骤204中,判断是否能够将所有的第一业务流在保证网络中不产生拥塞的情况下注入网络。若能够注入,则执行步骤208;若不能够注入,则确定需要拆分业务流,执行步骤209。

在步骤205中,根据各条具有剩余带宽的可用链路的剩余带宽,选择最小剩余带宽作为基准带宽。

在步骤206中,在可用链路上根据基准带宽和可用链路的剩余带宽确定在每条可用链路上生成隧道的数量,并生成隧道。

在步骤207中,按照隧道拆分第一业务流。

在步骤208中,根据cspf将业务流矩阵中的各个第一业务流注入网络,且确保网络中不产生新拥塞。

通过这样的方法,能够对网络中各个链路的剩余带宽能否满足要求进行判断,并在存在过大流量的业务的情况下,采用基准带宽确定、生成隧道、基于隧道来拆分业务流的方法,便于采用统一的算法进行业务流调度,有利于保持系统逻辑的统一,提高了系统的稳定性,且提高了调度效率。

在一个实施例中,如图3a所示,底层网络以r1、r2、r3、r4为基础组成,r1~r4均为网元,sdn控制器对该网络进行实时的监控。假设r1/r2与r3/r4间的链路出现拥塞,则sdn控制器在采集底层网络的流量流向时,需要计算出流经r1/r2、r3/r4链路的、且刚好使得链路利用率降低到阈值内的业务端对流。将他们提取出来,形成附图3b中所示的溢出流量矩阵。

对该溢出流量矩阵中的业务流进行排序,之后依次将这些业务流重新注入底层网络。注入过程的算法可以采用基于约束条件的最短路径算法。

针对无法整体放入单条链路的业务流,采用3c所示的自动拆分方案。即假设r1/r5间有16g的流量需要疏导,但r1的三条出口链路可用带宽分别为2g、6g、8g,则首先计算出“基带隧道”的带宽,此处为2g,之后分别在三条出口链路上创建1、3、4条隧道,在r1处基于8条隧道来进行流量的均衡分担,从而实现面向链路可用带宽的不均衡承载。

本申请的流量调度系统的一个实施例的示意图如图4所示。业务流确定单元41能够根据拥塞链路上承载的业务流确定第一业务流,所谓第一业务流指的是当从拥塞链路上去除该业务流时,拥塞链路的利用率低于预定阈值,不再发生拥塞。在一个实施例中,第一业务流可以为业务端口间成对的业务流,从而便于保证两端口间的双向业务流采用相同的传输路径。在一个实施例中,在确定第一业务流时,在使链路利用率降到预定阈值以内的目标下,可以依照调动最少的业务流的原则,或依照使调整后的链路利用率与预定阈值最接近的原则,从而尽量减少对网络流量的影响,有利于保持网络的稳定性。业务流注入单元42能够在保证网络中不产生拥塞的情况下,将各个链路之间的第一业务流注入网络。在一个实施例中,可以采用最短路径算法cspf将从各个拥塞链路提取出来的各个第一业务流重新注入网络。

这样的流量调度系统能够获取网络中解决拥堵的关键业务流,进而对该业务流进行重新调度分配,减少了需要调整的业务流的数量,提高了拥塞问题解决的效率,也降低了对运算设备性能的要求。

在一个实施例中,业务流确定单元41可以包括占比分析子单元和业务流确定子单元。占比分析子单元能够分析拥塞链路上的各个业务流的占比;业务流确定子单元能够按照占比确定第一业务流,提取第一业务流,使该拥塞链路不再承载该第一业务流,从而该拥塞链路的利用于低于预定阈值。

这样的流量调度系统实现对链路中各个业务流对链路影响的分析,准确度的找出能够解决网络拥塞,同时提取出后对网络影响最小的第一业务流,减少了需要调整的业务流的数量,也提高了网络的稳定性。

本申请的流量调度系统中业务流注入单元的一个实施例的示意图如图5所示。流量调度系统可以包括业务流矩阵确定子单元501和流量注入子单元502。业务流矩阵确定子单元501能够根据各个拥塞链路之间的第一业务流生成业务流矩阵;流量注入子单元502能够根据业务流矩阵将业务流矩阵中的各个第一业务流注入网络。这样的流量调度系统能够便于对业务流进行统筹计算,避免反复调度。

在一个实施例中,当将第一业务流重新注入网络时,若由于业务流流量过大或网络中剩余带宽过于分散等原因,存在第一业务流无法整体注入网络。在这样的情况下,业务流注入单元42能够拆分不能够完整注入的业务流,采用不同的路径传输该第一业务流。这样的流量调度系统能够解决单业务流需求带宽过大造成拥塞和难以调整的问题,提高了网络的利用率,也降低了无法解决的拥塞问题出现的概率。

在一个实施例中,如图5所示,流量调度系统还可以包括基准带宽确定子单元503、隧道生成子单元504和业务流分流子单元505。基准带宽确定子单元503能够根据各条具有剩余带宽的可用链路的剩余带宽,选择最小剩余带宽作为基准带宽。隧道生成子单元504能够在可用链路上根据基准带宽和可用链路的剩余带宽确定在每条可用链路上生成隧道的数量,并生成隧道。业务流分流子单元505能够按照隧道拆分第一业务流。

这样的流量调度系统能够在存在过大流量的业务的情况下,采用基准带宽确定、生成隧道、基于隧道来拆分业务流的方法,便于采用统一的算法进行业务流调度,有利于保持系统逻辑的统一,提高了系统的稳定性,且提高了调度效率。

本申请流量调度系统的一个实施例的结构示意图如图6所示。流量调度系统包括存储器610和处理器620。其中:存储器610可以是磁盘、闪存或其它任何非易失性存储介质。存储器用于存储下文中流量调度方法的对应实施例中的指令。处理器620耦接至存储器610,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器620用于执行存储器中存储的指令,能够实现提高解决网络拥塞的效率。

在一个实施例中,还可以如图7所示,流量调度系统700包括存储器710和处理器720。处理器720通过bus总线730耦合至存储器710。该流量调度系统700还可以通过存储接口740连接至外部存储装置750以便调用外部数据,还可以通过网络接口760连接至网络或者另外一台计算机系统(未标出)。此处不再进行详细介绍。

在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,能够实现提高解决网络拥塞的效率。

在另一个实施例中,一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现流量调度方法对应实施例中的方法的步骤。本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

至此,已经详细描述了本申请。为了避免遮蔽本申请的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。

可能以许多方式来实现本申请的方法以及装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本申请的方法以及装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本申请的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本申请实施为记录在记录介质中的程序,这些程序包括用于实现根据本申请的方法的机器可读指令。因而,本申请还覆盖存储用于执行根据本申请的方法的程序的记录介质。

最后应当说明的是:以上实施例仅用以说明本申请的技术方案而非对其限制;尽管参照较佳实施例对本申请进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本申请的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本申请技术方案的精神,其均应涵盖在本申请请求保护的技术方案范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1