首页> 中国专利> 流量整形方法、控制器、网络设备和流量整形系统

流量整形方法、控制器、网络设备和流量整形系统

摘要

本发明实施例提供了一种流量整形方法、控制器和系统。该流量整形方法包括:控制器接收第一网络设备上报的流量整形消息,并根据流量整形消息确定与第一网络设备的第一出接口对应的第二网络设备的第二出接口,然后向第二出接口发送调整信息,控制第二网络设备对第二出接口的流量进行整形,其中,流量整形消息包括第一出接口的标识信息,调整消息包括第二出接口的标识信息,流量整形消息用于指示第一出接口的流量整形判断参数满足预设条件,第二网络设备位于第一网络设备的上游。本发明实施例能够对网络流量进行自动实时按需整形。

著录项

  • 公开/公告号CN107342947A

    专利类型发明专利

  • 公开/公告日2017-11-10

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN201610278998.0

  • 发明设计人 董雯霞;佟兴;林程勇;王歆平;

    申请日2016-04-28

  • 分类号H04L12/813(20130101);H04L12/815(20130101);H04L12/819(20130101);

  • 代理机构11329 北京龙双利达知识产权代理有限公司;

  • 代理人王君;肖鹂

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-06-19 03:45:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-26

    授权

    授权

  • 2017-12-05

    实质审查的生效 IPC(主分类):H04L12/813 申请日:20160428

    实质审查的生效

  • 2017-11-10

    公开

    公开

说明书

技术领域

本发明涉及通信领域,并且更具体地,涉及流量整形的方法、控制器、网络设备和流量整形系统。

背景技术

软件定义网络(Software Defined Network,SDN)是一种控制与转发相分离的网络架构,其核心思想是通过控制器和转发器将网络中的数据面和控制面解耦。在SDN中,控制器根据网络的全局视图制定控制策略,来实现对全网的数据流的集中式控制。

网络中当上游网络设备向下游网络设备传输数据时,如果传输数据过程中上游流量发生突变,突然增大或者突然减小,都会导致网络中网络设备之间的流量不平滑。现有的流量整形需要人工配置整形参数,且不能自动实时根据需要更改参数,即不能自动实时按需的根据网络流量进行流量整形。

发明内容

本发明实施例提供一种流量整形的方法、控制器、网络设备和流量整形系统,能够对网络流量进行自动实时按需整形。

第一方面,提供了一种流量整形方法,包括控制器接收第一网络设备上报的流量整形消息,所述流量整形消息用于指示所述第一网络设备的第一出接口的流量整形判断参数满足预设条件,所述流量整形消息包括所述第一出接口的标识信息;所述控制器根据所述流量整形消息确定与所述第一出接口相对应的第二网络设备的第二出接口,所述第二网络设备位于所述第一网络设备的上游;所述控制器向所述第二网络设备发送调整消息,所述调整消息用于控制所述第二网络设备对所述第二出接口的流量进行流量整形,所述调整消息包括所述第二出接口的标识信息。

本发明实施例中的控制器在下游网络设备流量告警时,找出与该下游网络设备接口对应的上游网络设备接口,并控制上游网络设备对上游网络设备接口的流量进行整形,这样能够自动实时按需对网络流量进行整形。

本发明实施例中根据第一出接口找到的第二出接口可以为一个,也可以为两个或多个。当第二出接口为两个或多个时,控制器可以选择当前流量较大的接口进行流量整形,也可以对找出所有第二出接口进行流量整形,本发明实施例对此不做限制。

本发明实施例中的第二网络设备可以是与第一网络设备直接连接的相邻网络设备。

本发明一个实施例中,调整信息可以包括第二网络设备的标识信息。这样,第二网络设备接收到调整信息可以通过该标识信息确定该调整信息是否发给自己的,以进行接收认证,提高流量整形的准确性。

结合第一方面,在第一方面的一种实现方式中,所述流量整形消息用于指示所述第一网络设备的第一出接口的流量整形判断参数满足预设条件包括:所述流量整形消息用于指示所述第一出接口的缓存区占用率大于预设门限值;或者,所述流量整形消息用于指示所述第一出接口的丢包率大于零;或者,所述流量整形消息用于指示所述第一出接口在给定时间内的流量变化量大于预设变化量。

如果第一出接口的缓存区占用率大于预设门限值或已出现丢包,在第一网络设备的第一出接口处缓存了较多的数据,可能引起第一网络设备的瞬时拥塞。此时需要对与第一出接口对应的上游的第二出接口进行流量整形。例如,如果第一网络设备的上游设备第二网络设备的第二出接口的CIR值较大(例如,CIR大于当前流量的N倍),在第二网络设备向第一网络设备高速传输数据时,容易在第一网络设备的第一出接口处出现更大的拥塞,甚至导致丢包等。适当调节第二网络设备的CIR值,对流量进行整形。例如,使得CIR值略大于当前流量,可以进一步使第二出接口的流量尽可能平缓,从而达到流量整形的目的,减小数据传输过程的丢包率。

如果第一出接口的在给定时间内的流量变化量大于预设变化量,网络流量变得不平湖,可以适当调整上游第二网络设备的CIR的数值,对流量进行整形,使得网络流量更平滑。

结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述方法还包括:所述控制器获取所述第二出接口的当前流量;其中,所述调整信息还包括要将所述第二出接口的承诺信息速率(Committed InformationRate,CIR)的数值调整成的目标值,所述目标值为所述第二出接口的当前流量的N倍,N为大于1的预设值。

进一步地,在本发明的一个实施例中,将上游网络设备的CIR值设置为略大于当前流量,使得网络设备的流量不会瞬时出现突变,而缓缓变化,从而达到流量整形的目的,进而减小数据传输过程的丢包率。

在本发明的一个实施例中,如果第二出接口的CIR的数值大于第二出接口的当前流量的N倍,控制器可以将CIR的数值调整为第二出接口的当前流量的N倍,这样可以对网络流量进行整形,同时能够减小流量数据波动大带来的数据传输过程的丢包率。

在本发明的一个实施例中,如果第二出接口的CIR的数值小于第二出接口的当前流量的N倍,控制器也可以将CIR的数值调整为第二出接口的当前流量的N倍,这样,可以在对网络流量进行整形的同时,加快第二出接口的数据传输速率。

当下游网络设备出现告警时,控制器可以向上游网络设备直接发送需要经CIR调整成的数值,上游网络设备根据接收到的数值进行流量整形,该数值可以是控制器根据计算得到的想要将CIR调整成的数值。控制器也可以向上游网络设备发送指示信息,指示上游网络设备根据当前流量进行流量整形,例如,根据当前流量和当前CIR值调整CIR的数值。

结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述第二出接口对应至少一个令牌桶,所述至少一个令牌桶包括第一令牌桶,流经所述第二出接口的需要进行流量整形的一条数据流与所述第一令牌桶对应;其中,所述方法还包括:所述控制器获取所述数据流的当前流量;所述调整信息还包括所述数据流的标识信息和要将所述数据流的CIR的数值调整成的目标值,所述目标值为所述数据流的当前流量的N倍,N为大于1的预设值。

本发明实施例中的一条数据流可以仅为一条数据流,也可以为一条聚合后的数据流。本发明实施例中数据流的标识信息可以是一条数据流的标识信息,也可以是多条数据流聚合后的数据流的标识信息,本发明实施例对数据流不做限制。

在本发明的一个实施例中,控制器还可以为每个接口分配至少一个令牌桶,使得令牌桶与流经该接口的数据流一一对应,即一个接口上的一个令牌桶对应一条数据流。控制器可以对第二出接口中数据流的当前流量的CIR值进行调节。控制器还可以选择第二出接口中某些数据流进行CIR调节,例如,对当前流量最大的数据流的CIR进行调节。

本发明实施例中的一条数据流可以为任一条数据流,或者说可以是任一条需要进行流量整形的数据流。

在本发明的一个实施例中,第二网络设备的接口带宽大于第一网络设备的接口带宽。在这种情况下,从上游第二网络设备向下游第一网络设备传输数据时,带宽会在低速链路的下游网络设备出接口处出现瓶颈,使得数据拥塞,下游网络设备的输入流量和输出流量差距很大,可能会使得更多数据聚集在下游网络设备的缓存区,进而导致数据丢失。本发明实施例通过自动实时调整CIR的值可以减少丢包率。

第二方面,提供了一种流量整形方法,包括:控制器接收第一网络设备上报的所述第一网络设备的第一出接口的流量整形判断参数和所述第一出接口的标识信息;如果所述第一出接口的流量整形判断参数满足预设条件,所述控制器确定与所述第一出接口相对应的第二网络设备的第二出接口,所述第二网络设备位于所述第一网络设备的上游;所述控制器向所述第二网络设备发送调整消息,所述调整消息用于控制所述第二网络设备对所述第二出接口的流量进行流量整形,所述调整消息包括所述第二出接口的标识信息。

本发明实施例中的控制器在下游网络设备的流量整形判断参数满足预设条件时,找出与该下游网络设备接口对应的上游网络设备接口,并控制上游网络设备对上游网络设备接口的流量进行整形,这样能够自动实时按需对网络流量进行整形。

本发明实施例中根据第一出接口找到的第二出接口可以为一个,也可以为两个或多个。当第二出接口为两个或多个时,控制器可以选择当前流量较大的接口进行流量整形,也可以对找出所有第二出接口进行流量整形,本发明实施例对此不做限制。

本发明实施例中的第二网络设备可以是与第一网络设备直接连接的相邻网络设备。

本发明一个实施例中,调整信息可以包括第二网络设备的标识信息。这样,第二网络设备接收到调整信息可以通过该标识信息确定该调整信息是否发给自己的,以进行接收认证,提高流量整形的准确性。

结合第二方面,在第二方面的一种实现方式中,所述控制器接收第一网络设备上报的所述第一网络设备的第一出接口的流量整形判断参数和所述第一出接口的标识信息包括:所述控制器接收所述第一网络设备上报的所述第一出接口的缓存区占用率和所述第一出接口的标识信息;其中,所述预设条件为所述第一出接口的缓存区占用率大于预设门限值。

结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,所述控制器接收第一网络设备上报的所述第一网络设备的第一出接口的流量整形判断参数和所述第一出接口的标识信息包括:所述控制器接收所述第一网络设备上报的所述第一出接口的丢包率和所述第一出接口的标识信息;其中,所述预设条件为所述第一出接口的丢包率大于零。

结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,所述控制器接收第一网络设备上报的所述第一网络设备的第一出接口的流量整形判断参数和所述第一出接口的标识信息包括:所述控制器接收所述第一网络设备上报的所述第一出接口的在给定时间内的流量变化量和所述第一出接口的标识信息;其中,所述预设条件为所述第一出接口的在给定时间内的流量变化量大于预设变化量。

如果第一出接口的缓存区占用率大于预设门限值或已出现丢包,在第一网络设备的第一出接口处缓存了较多的数据,可能引起第一网络设备的瞬时拥塞。此时需要对与第一出接口对应的上游的第二出接口进行流量整形。例如,如果第一网络设备的上游设备第二网络设备的第二出接口的CIR值较大(例如,CIR大于当前流量的N倍),在第二网络设备向第一网络设备高速传输数据时,容易在第一网络设备的第一出接口处出现更大的拥塞,甚至导致丢包等。适当调节第二网络设备的CIR值,对流量进行整形。例如,使得CIR值略大于当前流量,可以进一步使第二出接口的流量尽可能平缓,从而达到流量整形的目的,减小数据传输过程的丢包率。

如果第一出接口的在给定时间内的流量变化量大于预设变化量,网络流量变得不平湖,可以适当调整上游第二网络设备的CIR的数值,对流量进行整形,使得网络流量更平滑。

结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,所述方法还包括:所述控制器获取所述第二出接口的当前流量;其中,所述调整信息还包括要将所述第二出接口的承诺信息速率CIR的数值调整成的目标值,所述目标值为所述第二出接口的当前流量的N倍,N为大于1的预设值。

在本发明的一个实施例中,将上游网络设备的CIR值设置为略大于当前流量,例如,设置为当前流量的N倍时,使得网络设备的流量不会瞬时出现突变,而缓缓变化,从而达到流量整形的目的,进而减小数据传输过程的丢包率。

当下游网络设备出现告警时,控制器可以向上游网络设备直接发送需要经CIR调整成的数值,上游网络设备根据接收到的数值进行流量整形,该数值可以是控制器根据计算得到的想要将CIR调整成的数值。控制器也可以向上游网络设备发送指示信息,指示上游网络设备根据当前流量进行流量整形,例如,根据当前流量和当前CIR值调整CIR的数值。

结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,所述第二出接口对应至少一个令牌桶,所述至少一个令牌桶包括第一令牌桶,流经所述第二出接口的需要进行流量整形的一条数据流与所述第一令牌桶对应;其中,所述方法还包括:所述控制器获取所述数据流的当前流量;所述调整信息还包括所述数据流的标识信息和要将所述数据流的CIR的数值调整成的目标值,所述目标值为所述数据流的当前流量的N倍,N为大于1的预设值。

在本发明的一个实施例中,第二网络设备的接口带宽大于第一网络设备的接口带宽。在这种情况下,从上游第二网络设备向下游第一网络设备传输数据时,带宽会在下游网络设备出接口处出现瓶颈,使得数据拥塞,下游网络设备的输入流量和输出流量差距很大,可能会使得更多数据聚集在下游网络设备的缓存区,进而导致数据丢失。本发明实施例通过自动实时调整CIR的值可以减少丢包率。

第三方面,提供了一种流量整形方法,包括:第二网络设备接收控制器发送的调整信息,所述调整信息包括需要调整的所述第二网络设备的第二出接口的标识信息,所述调整消息用于控制所述第二网络设备对所述第二出接口的流量进行流量整形;所述第二网络设备根据所述调整信息对所述第二出接口的流量进行整形。

本发明实施例中的网络设备可以接收控制器发送的调整信息,并根据调整信息进行网络流量的调整,这样能够自动实时按需对网络流量进行整形。

结合第三方面,在第三方面的一种实现方式中,所述方法还包括:所述第二网络设备向所述控制器上报所述第二出接口的当前流量;其中,所述调整信息还包括要将所述第二出接口的承诺信息速率CIR的数值调整成的目标值,所述目标值为所述第二出接口的当前流量的N倍,N为大于1的预设值。

结合第三方面及其上述实现方式,在第三方面的另一种实现方式中,所述第二出接口对应至少一个令牌桶,所述至少一个令牌桶包括第一令牌桶,流经所述第二出接口的需要进行流量整形的一条数据流与所述第一令牌桶对应;其中,所述方法还包括:所述第二网络设备向所述控制器上报所述数据流的当前流量;所述调整信息还包括所述数据流的标识信息和要将所述数据流的CIR的数值调整成的目标值,所述目标值为所述数据流的当前流量的N倍,N为大于1的预设值。

第四方面,提供了一种流量整形方法,包括:第一网络设备获取第一出接口的流量整形消息,或者,第一网络设备获取所述第一出接口的流量整形判断参数和所述第一出接口的标识信息,其中,所述流量整形消息用于指示所述第一出接口的流量整形判断参数满足预设条件,所述流量整形消息包括所述第一出接口的标识信息;第一网络设备向控制器上报所述流量整形消息,或者,第一网络设备向控制器上报所述流量整形判断参数和所述第一出接口的标识信息。

本发明实施例中的第一网络设备通过获取并向控制器上报流量整形消息或流量整形判断参数,可以使得第一网络设备在收到流量整形消息或流量整形判断参数满足一定条件时触发网络的流量整形流程,从而能够自动实时按需的根据网络流量进行流量整形。

第五方面,提供了一种控制器,包括:接收单元,用于接收第一网络设备上报的流量整形消息,所述流量整形消息用于指示所述第一网络设备的第一出接口的流量整形判断参数满足预设条件,所述流量整形消息包括所述第一出接口的标识信息;确定单元,用于根据所述接收单元接收的所述流量整形消息确定与所述第一出接口相对应的第二网络设备的第二出接口,所述第二网络设备位于所述第一网络设备的上游;调整单元,用于向所述第二网络设备发送调整消息,所述调整消息用于控制所述第二网络设备对所述第二出接口的流量进行流量整形,所述调整消息包括所述第二出接口的标识信息。

结合第五方面,在第五方面的一种实现方式中,所述流量整形消息用于指示所述第一网络设备的第一出接口的流量整形判断参数满足预设条件包括:所述流量整形消息用于指示所述第一出接口的缓存区占用率大于预设门限值;或者所述流量整形消息用于指示所述第一出接口的丢包率大于零;或者所述流量整形消息用于指示所述第一出接口在给定时间内的流量变化量大于预设变化量。

结合第五方面及其上述实现方式,在第五方面的另一种实现方式中,所述控制器还包括:第一获取单元,用于获取所述第二出接口的当前流量;其中,所述调整信息还包括要将所述第二出接口的承诺信息速率CIR的数值调整成的目标值,所述目标值为所述第二出接口的当前流量的N倍,N为大于1的预设值。

结合第五方面及其上述实现方式,在第五方面的另一种实现方式中,所述第二出接口对应至少一个令牌桶,所述至少一个令牌桶包括第一令牌桶,流经所述第二出接口的需要进行流量整形的一条数据流与所述第一令牌桶对应;所述控制器还包括:第二获取单元,用于获取所述数据流的当前流量;所述调整信息还包括所述数据流的标识信息和要将所述数据流的CIR的数值调整成的目标值,所述目标值为所述数据流的当前流量的N倍,N为大于1的预设值。

上述第五方面提供的控制器的相应单元和/或器件的各个操作可以参照第一方面中的方法的各个步骤,在此不再重复。所述第五方面的各个技术方案带来的有益技术效果,可以参照第一方面方法中的技术效果,在不再重复。

第六方面,提供了一种控制器,包括:接收单元,用于接收第一网络设备上报的所述第一网络设备的第一出接口的流量整形判断参数和所述第一出接口的标识信息;确定单元,用于如果所述接收单元接收的所述第一出接口的流量整形判断参数满足预设条件,确定与所述第一出接口相对应的第二网络设备的第二出接口,所述第二网络设备位于所述第一网络设备的上游;调整单元,用于向所述第二网络设备发送调整消息,所述调整消息用于控制所述第二网络设备对所述第二出接口的流量进行流量整形,所述调整消息包括所述第二出接口的标识信息。

结合第六方面,在第六方面的一种实现方式中,所述接收单元具体用于接收所述第一网络设备上报的所述第一出接口的缓存区占用率和所述第一出接口的标识信息,其中,所述预设条件为所述第一出接口的缓存区占用率大于预设门限值。

结合第六方面及其上述实现方式,在第六方面的另一种实现方式中,所述接收单元具体用于接收所述第一网络设备上报的所述第一出接口的丢包率和所述第一出接口的标识信息,其中,所述预设条件为所述第一出接口的丢包率大于零。

结合第六方面及其上述实现方式,在第六方面的另一种实现方式中,所述接收单元具体用于接收所述第一网络设备上报的所述第一出接口的在给定时间内的流量变化量和所述第一出接口的标识信息,其中,所述预设条件为所述第一出接口的在给定时间内的流量变化量大于预设变化量。

结合第六方面及其上述实现方式,在第六方面的另一种实现方式中,所述装置还包括:第一获取单元,用于获取所述第二出接口的当前流量;其中,所述调整信息还包括要将所述第二出接口的承诺信息速率CIR的数值调整成的目标值,所述目标值为所述第二出接口的当前流量的N倍,N为大于1的预设值。

结合第六方面及其上述实现方式,在第六方面的另一种实现方式中,第二出接口对应至少一个令牌桶,所述至少一个令牌桶包括第一令牌桶,流经所述第二出接口的需要进行流量整形的一条数据流与所述第一令牌桶对应;所述装置还包括:第二获取单元,用于获取所述数据流的当前流量;所述调整信息还包括所述数据流的标识信息和要将所述数据流的CIR的数值调整成的目标值,所述目标值为所述数据流的当前流量的N倍,N为大于1的预设值。

上述第六方面提供的控制器的相应单元和/或器件的各个操作可以参照第二方面中的方法的各个步骤,在此不再重复。

第七方面,提供了一种网络设备,包括:接收单元,用于接收控制器发送的调整信息,所述调整信息包括需要调整的所述网络设备的第二出接口的标识信息,所述调整消息用于控制所述第二网络设备对所述第二出接口的流量进行流量整形;调整单元,用于根据所述接收单元接收的所述调整信息对所述第二出接口的流量进行整形。

结合第七方面,在第七方面的一种实现方式中,所述网络设备还包括:第一上报单元,用于向所述控制器上报所述第二出接口的当前流量;其中,所述调整信息还包括要将所述第二出接口的承诺信息速率CIR的数值调整成的目标值,所述目标值为所述第二出接口的当前流量的N倍,N为大于1的预设值。

结合第七方面及其上述实现方式,在第七方面的另一种实现方式中,所述第二出接口对应至少一个令牌桶,所述至少一个令牌桶包括第一令牌桶,流经所述第二出接口的需要进行流量整形的一条数据流与所述第一令牌桶对应;所述网络设备还包括:第二上报单元,用于向所述控制器上报所述数据流的当前流量;所述调整信息还包括所述数据流的标识信息和要将所述数据流的CIR的数值调整成的目标值,所述目标值为所述数据流的当前流量的N倍,N为大于1的预设值。

上述第七方面提供的网络设备的相应单元和/或器件的各个操作可以参照第三方面中的方法的各个步骤,在此不再重复。

第八方面,提供了一种网络设备,包括:获取单元,用于获取第一出接口的流量整形消息,或者,用于获取所述第一出接口的流量整形判断参数和所述第一出接口的标识信息,其中,所述流量整形消息用于指示所述第一出接口的流量整形判断参数满足预设条件,所述流量整形消息包括所述第一出接口的标识信息;上报单元,用于向控制器上报所述流量整形消息,或者,用于向控制器上报所述流量整形判断参数和所述第一出接口的标识信息。

上述第八方面提供的网络设备的相应单元和/或器件的各个操作可以参照第四方面中的方法的各个步骤,在此不再重复。

第九方面,提供了一种流量整形系统,所述流量整形系统包括如第五方面任一实现方式所述的控制器、第一网络设备和如第七方面任一实现方式所述的第二网络设备。

本发明实施例中,控制器通过接收第一网络设备上报的流量整形消息后,根据流量整形消息向第二网络设备发送调整信息,以控制第二网络设备进行流量整形,这样能够自动实时按需对网络流量进行整形。

第十方面,提供了一种流量整形系统,所述流量整形系统包括如第六方面任一实现方式所述的控制器、第一网络设备和如第七方面任一实现方式所述的第二网络设备。

本发明实施例中,控制器在收到第一网络设备上报的第一出接口的流量整形判断参数并判断满足一定预设条件时,向第二网络设备发送调整信息,以控制第二网络设备对进行流量整形,这样能够自动实时按需对网络流量进行整形。

本发明实施例中的流量整形方法可以用于SDN网络架构。本发明实施例的流量整形系统可以为位于SDN网络架构下的流量整形系统。

本发明实施例中,可以对openflow协议进行扩展,使得本发明实施例中的流量告警消息和/或调整消息可以包括在该协议的消息中。例如,本发明实施例中的流量整形消息可以包括在openflow协议的Experimenter消息中,调整消息也可以包括在openflow协议的Experimenter消息中。本发明实施例可以通过在Experimenter消息中扩展exp_type字段,新增不同种类的type值以实现控制器和网络设备之间的不同消息的交互。

本发明实施例可以通过在Experimenter消息中扩展exp_type字段,新增不同种类的type值以实现控制器和网络设备之间的不同消息的交互。

在Experimenter消息中,可以通过exp_type字段区分消息类型和数据的具体内容。在本发明的一个实施例中,可以为流量整形消息或调整消息定义不同的类型。

本发明实施例中的exp_type字段可以按照下列方式定义。

enum exp_type{

exp_warning;/*网络设备向控制器发送的出接口的流量出现告警的消息*/

exp_buffer_ratio;/*网络设备向控制器发送的流量整形判断参数的大小*/

exp_shaping;/*控制器向网络设备发送的CIR的目标值的大小*/

exp_shaping_adjustment;/*控制器向网络设备发送的调整CIR数值的指令*/

}

当网络设备向控制器发送的流量整形消息中exp_type字段定义为exp_warning时,表明该网络设备的出接口的流量出现告警。exp_type字段中可以包括需要进行流量整形的接口的标识信息。

当网络设备向控制器发送的exp_type字段定义为流量整形判断参数,这里以缓存区占用率exp_buffer_ratio为例进行说明,exp_type字段中可以包括接口的缓存区占用率和对应接口的标识信息。

本发明实施例中,可以对流量整形判断参数进行合理的选择,如果选用丢包率或流量的变化量时,可以将exp_type字段中的缓存区的占用率修改为丢包率或流量的变化量。

当控制器向网络设备发送的exp_type字段定义为CIR的目标值(这里以exp_shapping值为例进行说明)时,exp_type字段可以包括需要进行CIR值调整的接口的标识信息和对应接口的CIR的目标值。

当控制器向网络设备发送的exp_type字段定义为exp_shaping_adjustment时,表明控制器需要对接口或接口中的数据流的CIR值进行调整。exp_shaping_adjustment字段中可以包括需要调整CIR值的接口的标识信息,以实现对接口的CIR值的调整。进一步可选地,exp_shaping_adjustment字段中还可以包括需要调整CIR值的接口中具体数据流的标识信息,以实现对接口中数据流的CIR值的调整。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是可应用本发明实施例的通信系统的场景的示意图。

图2是本发明一个实施例的流量整形方法的示意性流程图。

图3是本发明一个实施例的流量整形方法的示意性流程图。

图4是本发明一个实施例的流量整形方法的示意性流程图。

图5是本发明一个实施例的流量整形方法的系统架构图。

图6是本发明另一实施例的流量整形方法的系统架构图。

图7是本发明一个实施例的控制器的框图。

图8是本发明一个实施例的控制器的框图。

图9是本发明一个实施例的网络设备的框图。

图10是本发明一个实施例的流量整形系统的框图。

图11是本发明一个实施例的控制器的框图。

图12是本发明一个实施例的控制器的框图。

图13是本发明一个实施例的网络设备的框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。

本发明实施例用于SDN,SDN是一种控制与转发相分离的网络架构,其核心思想是通过控制器和转发器将网络中的数据面和控制面解耦。在SDN中,控制器根据网络的全局视图制定控制策略,决策交换机上报文的转发路径,来实现对全网的数据流传输路径的集中式控制。其它节点(例如交换机)接收控制器下发的控制策略(例如流表),并根据控制策略对主机或虚拟机发送的数据流进行处理,比如对数据流的转发、修改、丢弃等操作。

本发明实施例主要涉及SDN网络的流量整形(traffic shaping)技术。流量整形是一种主动调整流量输出速率的措施,其典型作用是限制流出某一网络的某一连接的流量与突发,使这类报文以比较均匀的速度向外发送。流量整形通常使用缓冲区和令牌桶来完成,当报文的发送速度过快时,首先在缓冲区进行缓存,在令牌桶的控制下再均匀地发送这些被缓冲的报文。

要实现流量的控制,必须有一种机制可以对通过设备的流量进行度量。令牌桶是目前最常采用的一种流量测量方法,用来评估流量速率是否超过了规定值。令牌桶可以看作是一个存放令牌的容器,预先设定一定的容量。系统按给定的速度向桶中放置令牌,当桶中令牌满时,多余的令牌溢出。CIR表示向令牌桶中投放令牌的速率。当数据流到达设备时首先会根据数据的大小从令牌桶中取出与数据大小相当的令牌数量用来传输数据。也就是说要使数据被传输必须保证令牌桶里有足够多的令牌,如果令牌数量不够,则数据会被丢弃或缓存。

图1是可应用本发明实施例的通信系统的场景的示意图。图1的通信系统至少包括控制器101、第一网络设备102和第二网络设备103。第二网络设备向第一网络设备传输数据,即第二网络设备为第一网络设备的上游设备,第一网络设备和第二网络设备相连接。第二网络设备向第一网络设备传输数据,如果发生流量瞬时增大,第一网络设备能力不足以进行数据传输时,可能会使得第一网络设备的缓存区数据拥塞,导致流量不平整,甚至导致数据丢失。第二网络设备向第一网络设备传输数据,如果发生流量瞬时减小,可能导致流量不平整,而且第一网络设备能力远大于数据传输所需的流量时,可能造成第一网络设备的数据传输能力浪费。

流量瞬时增大或减小等时的瞬时突变,会导致整体流量不平整,此时需要对流量进行整形。

本发明实施例中,第二网络设备的接口带宽可以大于第一网络设备的接口带宽。这样,当由第二网络设备向第一网络设备传输数据时,可能导致数据丢失严重,丢包率高,影响网络的整体性能。

本发明具体实施例中主要是以基于SDN架构的网络场景为例进行示例性说明。该网络中的路由器可以分为三类:用户边缘(Customer Edge,CE)路由器、运营商边缘(Provider Edge,PE)路由器和提供商(Provider,P)路由器。

本发明实施例中,与第一网络设备对应的第二网络设备可以为至少一个。图1中的第一网络设备可以是P路由器,第二网络设备可以是该P路由器上游的PE路由器或P路由器。后面的具体实施例图5中以第一网络设备为P1路由器,第二网络设备为PE1、PE2为例进行示例性说明。后面的具体实施例图6中以第一网络设备为P1路由器,第二网络设备为P3为例进行示例性说明。

下面对本发明实施例中涉及到的路由器设备进行简要说明。

P路由器是核心层设备,是运营商网络主干路由器,P路由器是不连接任何CE路由器的骨干网路由设备。

PE路由器是服务提供商骨干网的边缘路由器。PE路由器连接CE路由器和P路由器,是最重要的网络设备。

CE路由器的是服务提供商所连接的用户端路由器,为用户提供PE路由器的连接。CE路由器通过连接一个或多个PE路由器,为用户提供服务接入。CE路由器通常与连接的PE路由器建立邻接关系。

本发明的实施例可以用于SDN,下面结合具体例子更加详细地描述本发明的实施例。应注意,这些例子只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。

图2是本发明一个实施例的流量整形方法的示意性流程图。图2的流量整形方法可以用于SDN架构下的流量整形系统,该流量整形系统可以包括控制器、第一网络设备和位于第一网络设备上游的第二网络设备,该流量整形系统还可以包括网络管理员。图2的流量整形方法可以由控制器执行,例如由图1中的控制器101执行。

201,控制器接收第一网络设备上报的流量整形消息。流量整形消息包括第一网络设备的第一出接口的标识信息。流量整形消息用于指示第一出接口的流量整形判断参数满足预设条件。

本发明实施例中的流量整形消息可以是用于指示第一出接口的流量出现报警的消息,当出接口的流量整形判断参数满足预设条件时可以认为该出接口的流量出现告警。

本发明实施例中第一网络设备自己根据流量整形判断参数判断是否出现流量告警,在流量整形判断参数满足预设条件时表示出现流量告警,可以向控制器直接进行报警上报指示流量告警的流量整形消息,而不需要发送相关参数。控制器收到流量报警后,可以执行步骤202,可以找出与第一网络设备的第一出接口对应的上游的第二网络设备的第二出接口。

本发明实施例中对流量整形判断参数不做限制,可以表明系统中出现流量预警的参数都可以作为流量整形判断参数。例如,流量整形参数可以是缓存区占用率,可以是丢包率,还可以是当前流量在给定时间段内的变化量。如果流量整形参数为缓存区占用率,预设条件可以为接口的缓存区占用率大于预设门限值。如果流量整形参数为丢包率,预设条件可以为接口的丢包率大于零,即接口出现丢包。如果流量整形参数为当前流量,预设条件可以为当前流量大于预设阈值。

图5中以第一网络设备为P1路由器,第二网络设备为PE1、PE2为例进行示例性说明。以图5为例,控制器可以为P1路由器的接口(interface,IF)配置缓存区占用率的预设门限值,并向P1路由器发送该预设门限值。网络设备可以自行判断流量整形判断参数是否满足预设条件,并向控制器上报结果。可选地,控制器可以为P1的每个网络设备配置不同的缓存区占用率的门限值,也可以为P1的所有网络设备配置相同的缓存区占用率的门限值。图5中,P1路由器包括五个接口:IF 1、IF 2、IF 3、IF 4和IF 5。

接口的缓存区占用率的预设条件可以为缓存区占用率大于预设门限值,该门限值可以预先配置的指定参数。

接口的缓存区占用率的预设条件可以为缓存区占用率大于预设门限值,该门限值可以根据接口的丢包率进行调整。例如,IF 4的缓存区占用率的预设门限值开始设置为80%,即,如果控制器判断得到IF 4的缓存区占用率大于80%时,IF 4已经开始出现丢包,此时可以适当调节预设门限值,例如,将IF 4预设门限值调节为78%,这样设置比较合适的缓存区占用率的门限值,也可以进一步减小丢包率。当缓存区占用率的预设门限值设置的合适时,可以达到丢包预警的目的,而不出现丢包。

本发明实施例中的预设条件可以为网络设备出现丢包,网络设备只要出现丢包时就向控制器上报,以启动网络的流量整形。

本发明实施例中流量整形判断参数可以为流量的变化量,此时预设条件可以为流量变化量的预设阈值,网络设备向控制器上报出接口的当前流量的流量变化量大于预设阈值时,启动网络的流量整形。

以图5为例,控制器还可以为PE(例如PE1、PE2、PE3)路由器的每个接口(例如,PE1的IF6)配置CIR值,并向PE路由器发送对应的CIR值。接口的CIR的初始值可以为接口值。

步骤201中,SDN网络下,系统中的网络设备(例如,本发明实施例中的第一网络设备)可以对该网络设备的每个接口进行监测,得到每个接口对应的缓存区占用率、丢包率或流量变化量,并判断这些流量整形判断参数(例如,缓存区占用率、丢包率或流量变化量)是否满足预设条件。当满足预设条件时,网络设备可以向控制器上报流量整形消息,以表示流量出现告警。

以图5为例,P1路由器可以监测接口IF 1、IF 2、IF 3、IF 4和IF 5的缓存区占用率、丢包率或流量变化量,并向控制器上报各个接口对应的缓存区占用率、丢包率或流量变化量是否满足预设条件。

图6中以第一网络设备为P1路由器,第二网络设备为P3为例进行示例性说明。以图6为例,控制器可以接收网络设备上报的该网络设备出接口上每个令牌桶的流量整形消息。例如,P1路由器可以向控制器上报接口IF4上桶1、桶2、桶3的流量整形消息,P1路由器还可以向控制器上报其它接口(IF1、IF2、IF3)上每个令牌桶的流量整形消息。

202,控制器根据流量整形消息确定与第一出接口相对应的第二网络设备的第二出接口,第二网络设备位于第一网络设备的上游。

控制器接收到第一网络设备发送的用于指示流量整形判断参数满足预设条件的流量整形消息时,可以根据第一出接口的流量矩阵找到与第一出接口对应的第一入接口,并进一步地,根据网络拓扑找到与第一入接口连接的第二网络设备的第二出接口。本发明实施例中的第二网络设备可以为至少一个。流量矩阵可以给出系统中流量的流入接口和流出接口以及两个接口之间的流量的对应关系。

以图5为例,如果P1路由器的IF4的缓存区占用率大于门限值,或者IF4出现丢包,或者当前流量大于预设阈值,控制器可以查找流量矩阵找出P1路由器中哪些接口的流量流向IF4。假设由IF1和IF2两个入接口的流量都流向IF4,那么进一步地,根据网络拓扑结构可以找出分别与IF1和IF2相连接的上游网络设备及其对应的出接口。例如,IF1对应的是PE1路由器的IF6,IF2对应的是PE2路由器的IF7。其中,PE1路由器和P1路由器通过IF1和IF6连接,PE2路由器和P1路由器通过IF2和IF7连接。在本发明的一个实施例中,第二出接口可以对应图5中的IF6和IF7。

以图6为例,如果出接口的一个令牌桶(例如IF4的桶1)的流量整形参数满足预设条件,控制器可以根据流量矩阵找出与桶1对应的聚合流流向接口IF4的入接口。假设查找流量矩阵时,只有接口IF3的流量流向IF4,根据网络拓扑结构可以进一步确定第二出接口为与IF3直接连接的IF6。即,需要对接口IF6的与桶1对应的聚合流的CIR值进行调整。

203,控制器向第二网络设备发送调整消息。调整消息包括第二出接口的标识信息。调整消息用于控制第二网络设备对第二出接口的流量进行流量整形。

在控制器找到需要调节的上游第二网络设备后,控制器可以向第二网络设备发送调整信息,以控制第二网络设备对第二出接口的流量进行流量整形。该调整信息可以为指示信息,指示第二网络设备对第二出接口的流量进行整形,在第二网络设备收到调整信息后,可以根据指示信息对流量进行整形。该调整信息还可以是包括要将第二出接口的CIR的数值调整成的目标值的信息,在第二网络设备收到该调整信息后,根据目标值调整CIR的数值。优选地,这里的目标值可以为对应第二出接口的当前流量的N倍,N为大于1的预设值。

在步骤202控制器找到第二出接口之后,控制器可以获取第二出接口的当前流量。本发明实施例中对控制器获取第二出接口的当前流量的方式不做限制,例如,控制器可以通过下列方式获取第二出接口的当前流量:系统中的每个网络设备可以适时向控制器上报网络设备中每个接口对应的当前流量。

以图5为例,如果步骤202得到第二出接口为IF6和IF7,控制器可以查看接口IF6和IF7的当前流量。

以图6为例,如果步骤202得到第二出接口为IF6,控制器可以查看接口IF6中与桶1对应的流的当前流量。

以图5为例,控制器在步骤203查看IF6和IF7的出接口当前流量后,可以通过比较第二出接口的当前流量和对应接口的CIR值来进行流量整形。例如,如果IF6的CIR值与IF6的当前流量的N倍不相等时,那么可以将IF6的CIR值重新设置为IF6的当前流量的N倍。这里,N可以为预设的经验值,例如N可以取1.2,1.15,1.25,2,3,4等。同理,如果IF7的CIR值与IF6的当前流量的N倍不相等时,也可以将IF7的CIR值重新设置为IF7的当前流量的N倍。

以图6为例,如果接口IF6中与桶1对应的流的CIR值与该流当前流量的N倍不相等,可以将CIR值调整为该流的当前流量的N倍。具体调节方式和图5的类似。这里的流可以为一条数据流,也可以为多条数据流组成的一条聚合数据流。

本发明实施例中的控制器在下游网络设备流量告警时,找出与该下游网络设备接口对应的上游网络设备接口,并控制上游网络设备对上游网络设备接口的流量进行整形,这样能够自动实时按需对网络流量进行整形。

在本发明的一个实施例中,如果第二出接口的CIR的数值大于第二出接口的当前流量的N倍,控制器可以将CIR的数值调整为第二出接口的当前流量的N倍,这样可以对网络流量进行整形,减少数据传输过程中的丢包率。

在本发明的一个实施例中,如果第二出接口的CIR的数值小于第二出接口的当前流量的N倍,控制器可以将CIR的数值调整为第二出接口的当前流量的N倍,这样,可以在对网络流量进行整形的同时,加快第二出接口的数据传输速率。

本发明实施例中的控制器可以循环迭代执行上述步骤201至步骤203,多次调整网络中网络设备的接口的CIR值,如果经多次调整仍然整体丢包率效果不佳,控制器可以提示管理员进行网络扩容。

本发明实施例中,控制器可以适时感知系统中任意接口的流量整形消息,并根据接口的流量整形消息对网络中的流量的整形,使得网络流量尽可能保持平滑,从而实现自动实时按需的进行流量整形。

本发明实施例中,可以对openflow协议进行扩展,使得本发明实施例中的流量告警消息和/或调整消息可以包括在该协议的消息中。例如,本发明实施例中的流量整形消息可以包括在openflow协议的Experimenter消息中,调整消息也可以包括在openflow协议的Experimenter消息中。本发明实施例可以通过在Experimenter消息中扩展exp_type字段,新增不同种类的type值以实现控制器和网络设备之间的不同消息的交互。

openflow协议中Experimenter消息格式如下:

struct ofp_experimenter_msg{

struct ofp_header header;/*Type OFPT_EXPERIMENTER.*/

uint32_t experimenter;/*Experimenter ID:

*-MSB 0:low-order bytes are IEEE OUI.

*-MSB!=0:defined by ONF.*/

uint32_t exp_type;/*Experimenter defined.*/

/*Experimenter-defined arbitrary additional data.*/

uint8_t experimenter_data[0];

};

在Experimenter消息中,可以通过exp_type字段区分消息类型和数据的具体内容。在本发明的一个实施例中,可以为流量整形消息或调整消息定义不同的类型。

本发明实施例中的流量整形消息包括有两种情况,一为流量整形消息用于指示第一网络设备的第一出接口的流量出现告警,二为流量整形消息用于携带第一出接口的流量整形判断参数,这两种流量整形消息中都包括第一出接口的标识信息。

本发明实施例中的调整消息也可以包括两种情况。调整消息可以是指示信息,用于指示第二网络设备对第二出接口的流量进行整形或对第二出接口中需要进行流量调整的流的流量进行整形。另外,调整消息也可以是第二出接口的CIR的目标值或第二出接口中需要进行流量整形的流的CIR的目标值。这里的两种调整消息都需要包括需要进行流量调整的接口或流的标识信息。

enum exp_type{

exp_warning;/*网络设备向控制器发送的出接口的流量出现告警的消息*/

exp_buffer_ratio;/*网络设备向控制器发送的流量整形判断参数的大小*/

exp_shaping;/*控制器向网络设备发送的CIR的目标值的大小*/

exp_shaping_adjustment;/*控制器向网络设备发送的调整CIR数值的指令*/

}

下面结合具体实施例给出上述每个消息体的具体定义。

对于网络设备向控制器发送的出接口的流量出现告警的消息,网络设备需要告知控制器网络设备上的哪个接口出现告警,具体格式如下:

struct ofp_exp_warning_info{

uint32_t port_no;/*port numbering.*/

uint8_t pad[4];/*Align to 64bit*/

};

对于网络设备向控制器发送的流量整形判断参数的大小,网络设备需要把接口的标识信息和流量整形判断参数的大小(这里以缓存区的占用率为例进行说明)发送给控制器,具体格式如下:

struct ofp_exp_buffer_ratio_info{

uint32_t port_no;/*port numbering.*/

uint8_t CPU_uti_ratio;/*buffer utilization ratio*/

uint8_t pad[3];/*Align to 64bit*/

};

本发明实施例中,可以对流量整形判断参数进行合理的选择,如果选用丢包率或流量的变化量时,可以将格式中的缓存区的占用率修改为丢包率或流量的变化量。

控制器向网络设备发送CIR的目标值大小,控制器需要把需要进行流量整形的接口的标识信息和CIR的目标值的大小(这里以shapping值的大小为例进行说明)发送给网络设备,具体格式如下:

struct ofp_exp_shaping_info{

uint32_t port_no;/*port numbering.*/

uint8_t shaping_value;/*shaping value*/

uint8_t pad[3];/*Align to 64bit*/

};

控制器向网络设备发送调整CIR数值(这里以调整shaping数值为例进行说明)的指令,控制器需要将需要调整的接口的标识信息或者流的标识信息(这里以需要调整的为接口为例进行说明)发送给网络设备,具体格式如下:

struct ofp_exp_shaping_adjustment_info{

uint32_t port_no;/*port numbering.*/

uint32_t flow_no;/*flow numbering.*/

};

如果本发明实施例中需要调整的是某条流的流量,可以将格式中的接口标识信息修改为流的标识信息。

图3是本发明一个实施例的流量整形方法的示意性流程图。图3的流量整形方法可以用于SDN架构下的流量整形系统,该流量整形系统可以包括控制器、第一网络设备和位于第一网络设备上游的第二网络设备,该流量整形系统还可以包括网络管理员。图3的流量整形方法可以由控制器执行,例如由图1中的控制器101执行。

301,控制器接收第一网络设备上报的第一网络设备的第一出接口的流量整形判断参数和第一出接口的标识信息。

本发明实施例中的控制器可以接收第一出接口的流量整形判断参数,并判断该参数是否满足一定的预设条件。当控制器判断流量整形判断参数满足一定预设条件时,表明流量出现告警,可以执行步骤302,即控制器可以在流量出现告警时找出与第一网络设备的第一出接口对应的上游的第二网络设备的第二出接口。

在步骤201之前,网络管理员还可以在控制器上为每个网络设备的每个接口配置流量整形判断参数对应的预设条件。例如,网络管理员可以在控制器上配置第一网络设备的接口(例如第一出接口)的流量整形参数对应的预设条件,以在收到流量整形判断参数后,判断该参数是否满足对应的预设条件。

步骤201中,SDN网络下,系统中的网络设备(例如,本发明实施例中的第一网络设备)可以对该网络设备的每个接口进行监测,得到每个接口对应的流量整形判断参数(例如,接口的缓存区占用率、丢包率或流量变化量),并向控制器上报流量整形判断参数。

以图5为例,P1路由器可以监测接口IF 1、IF 2、IF 3、IF 4和IF 5的缓存区占用率、丢包率或流量变化量,并向路由器上报各个接口对应的缓存区占用率、丢包率或流量变化量。

图5中以第一网络设备为P1路由器,第二网络设备为PE1、PE2为例进行示例性说明。以图5为例,控制器可以为P1路由器的接口(interface,IF)配置缓存区占用率的预设门限值,并向P1路由器发送该预设门限值。可选地,控制器可以为P1的每个网络设备配置不同的缓存区占用率的门限值,也可以为P1的所有网络设备配置相同的缓存区占用率的门限值。图5中,P1路由器包括五个接口:IF 1、IF 2、IF 3、IF 4和IF 5。

接口的缓存区占用率的预设条件可以为缓存区占用率大于预设门限值,该门限值可以根据接口的丢包率进行调整。

本发明实施例中的预设条件可以为网络设备出现丢包,网络设备只要出现丢包时就向控制器上报,控制器只要收到网络设备上报的丢包率大于0,便向第二网络设备发送进行流量整形的流量整形消息。

本发明实施例中的预设条件可以为出接口的当前流量在给定时间内的流量变化量大于预设阈值,网络设备可以向控制器上报出接口的当前流量的流量变化量,控制器只要检测到出接口的当前流量的流量变化量大于预设阈值,便可以向第二网络设备发送流量整形消息。

以图5为例,控制器还可以为PE(例如PE1、PE2、PE3)路由器的每个接口(例如,PE1的IF6)配置CIR值,并向PE路由器发送对应的CIR值。接口的CIR的初始值可以为接口值。

步骤301中,SDN网络下,系统中的网络设备(例如,本发明实施例中的第一网络设备)可以对该网络设备的每个接口进行监测,得到每个接口对应的缓存区占用率、丢包率或流量变化量,并向控制器上报检测结果。当控制器判断上报结果满足预设条件时,启动流量整形。

以图5为例,P1路由器可以监测接口IF 1、IF 2、IF 3、IF 4和IF 5的流量整形判断参数(例如,缓存区占用率、丢包率、流量变化量等),并向控制器上报各个接口对应的缓存区占用率、丢包率或流量变化量。

图6中以第一网络设备为P1路由器,第二网络设备为P3为例进行示例性说明。以图6为例,控制器可以接收网络设备上报的该网络设备出接口上每个令牌桶的流量整形判断参数。例如,P1路由器可以向控制器上报接口IF4上桶1、桶2、桶3的流量整形判断参数,P1路由器还可以向控制器上报其它接口(IF1、IF2、IF3)上每个令牌桶的流量整形判断参数。

302,如果第一出接口的流量整形判断参数满足预设条件,控制器确定与第一出接口相对应的第二网络设备的第二出接口。第二网络设备位于第一网络设备的上游。

控制器在判断得到第一出接口的流量整形参数满足预设条件时,可以根据第一出接口的流量矩阵找到与第一出接口对应的第一入接口,并进一步地,根据网络拓扑找到与第一入接口连接的第二网络设备的第二出接口。本发明实施例中的第二网络设备可以为至少一个。流量矩阵可以给出系统中流量的流入接口和流出接口以及两个接口之间的流量的对应关系。

以图5为例,如果控制器判断得到P1路由器的IF4的缓存区占用率大于门限值,或者IF4出现丢包,或者当前流量大于预设阈值,控制器可以查找流量矩阵找出P1路由器中哪些接口的流量流向IF4。

以图6为例,如果控制器判断得到某个出接口的一个令牌桶(例如IF4的桶1)的流量整形参数满足预设条件,控制器可以根据流量矩阵找出与桶1对应的聚合流流向接口IF4的入接口。假设查找流量矩阵时,只有接口IF3的流量流向IF4,根据网络拓扑结构可以进一步确定第二出接口为与IF3直接连接的IF6。即,需要对接口IF6的与桶1对应的聚合流的CIR值进行调整。

303,控制器向第二网络设备发送调整消息。调整消息包括第二出接口的标识信息。调整消息用于控制第二网络设备对第二出接口的流量进行流量整形。

在控制器找到需要调节的上游第二网络设备后,控制器可以向第二网络设备发送调整信息,以控制第二网络设备对第二出接口的流量进行流量整形。该调整信息可以为指示信息,指示第二网络设备对第二出接口的流量进行整形,在第二网络设备收到调整信息后,可以根据指示信息对流量进行整形。该调整信息还可以是包括要将第二出接口的CIR的数值调整成的目标值的信息,在第二网络设备收到该调整信息后,根据目标值调整CIR的数值。

在步骤302控制器找到第二出接口之后,控制器可以获取第二出接口的当前流量。本发明实施例中对控制器获取第二出接口的当前流量的方式不做限制,例如,控制器可以通过下列方式获取第二出接口的当前流量:系统中的每个网络设备可以适时向控制器上报网络设备中每个接口对应的当前流量。

以图5为例,如果步骤202得到第二出接口为IF6和IF7,控制器可以查看接口IF6和IF7的当前流量。

以图6为例,如果步骤202得到第二出接口为IF6,控制器可以查看接口IF6中与桶1对应的流的当前流量。

以图5为例,控制器在步骤203查看IF6和IF7的出接口当前流量后,可以通过比较第二出接口的当前流量和对应接口的CIR值来进行流量整形。例如,如果IF6的CIR值与IF6的当前流量的N倍不相等时,那么可以将IF6的CIR值重新设置为IF6的当前流量的N倍。这里,N可以为预设的经验值,例如N可以取1.2,1.15,1.25,2,3,4等。同理,如果IF7的CIR值与IF6的当前流量的N倍不相等时,也可以将IF7的CIR值重新设置为IF7的当前流量的N倍。

以图6为例,如果接口IF6中与桶1对应的流的CIR值与该流当前流量的N倍不相等,可以将CIR值调整为该流的当前流量的N倍。具体调节方式和图5的类似。这里的流可以为一条数据流,也可以为多条数据流组成的一条聚合流。

本发明实施例中的控制器在下游网络设备的流量整形判断参数满足一定条件时,找出与该下游网络设备接口对应的上游网络设备接口,并控制上游网络设备对上游网络设备接口的流量进行整形,这样能够自动实时按需对网络流量进行整形。

在本发明的一个实施例中,如果第二出接口的CIR的数值大于第二出接口的当前流量的N倍,控制器可以将CIR的数值调整为第二出接口的当前流量的N倍,这样可以对网络流量进行整形,减少数据传输过程中的丢包率。

在本发明的一个实施例中,如果第二出接口的CIR的数值小于第二出接口的当前流量的N倍,控制器可以将CIR的数值调整为第二出接口的当前流量的N倍,这样,可以在对网络流量进行整形的同时,加快第二出接口的数据传输速率。

本发明实施例中的控制器可以循环迭代执行上述步骤301至步骤303,多次调整网络中网络设备的接口的CIR值,如果经多次调整仍然整体丢包率效果不佳,控制器可以提示管理员进行网络扩容。

本发明实施例中,控制器可以适时感知系统中任意接口的流量整形消息,并根据接口的流量整形消息对网络中的流量的整形,使得网络流量尽可能保持平滑,从而实现自动实时按需的进行流量整形。

本发明实施例中的流量整形判断参数可以携带在流量整形消息中。本发明实施例中的流量整形消息和调整消息的格式可以参照图2中openflow协议下对Experimenter消息中扩展exp_type字段的扩展。为避免重复在此不再详细一一列出。

图4是本发明一个实施例的流量整形方法的示意性流程图。图4的流量整形方法可以由网络设备执行,例如,由图1中的第一网络设备的上游的第二网络设备执行。

401,第二网络设备接收控制器发送的调整信息。调整信息包括需要调整的网络设备的第二出接口的标识信息。调整消息用于控制第二网络设备对第二出接口的流量进行流量整形。

402,第二网络设备根据调整信息对第二出接口的流量进行整形。

本发明实施例中的网络设备可以接收控制器发送的调整信息,并根据调整信息进行网络流量的调整,这样能够自动实时按需对网络流量进行整形。

在本发明的一个实施例中,第二网络设备可以向控制器上报第二出接口的当前流量。控制器在收到当前流量时,可以使第二网络设备根据当前流量进行流量整形控制。例如,控制器可以直接设置一个与当前流量有关的目标值,当向第二网络设备发送调整信息时,调整信息中携带该目标值,以使得第二网络设备将第二出接口的CIR值调整为该阈值。

在本发明的另一个实施例中,调整信息可以为一个指示信息。控制器可以向第二网络设备发送用于指示第二网络设备进行流量整形的指示信息。第二网络设备收到该调整信息后,可以查看当前第二出接口的流量和当前CIR值,并对第二出接口的流量进行整形。例如,将第二出接口的CIR数值调整为当前第二出接口的流量的N倍。

在本发明的一个实施例中,第二出接口包括至少一个令牌桶,第二出接口的令牌桶与流经该接口的流一一对应。调整信息还包括第二出接口中该条流对应的标识信息,调整信息具体用于控制第二网络设备将第二出接口中该条流的流量进行整形。

本发明实施例中的调整消息可以对openflow协议中的exp_type字段进行扩展来实现。具体的格式在图2的相应说明中已有说明,为避免重复,在此不再详细赘述。

图4中网络设备执行的相应流程可以参照对图2和图3中第二网络设备的相应流程,为避免重复,在此不再赘述。

本发明实施例中调整消息的格式可以参照图2中openflow协议下对Experimenter消息中扩展exp_type字段的扩展。为避免重复在此不再详细一一列出。

图5是本发明一个实施例的流量整形方法的系统架构图。图5的系统至少包括控制器11、第一提供商P1路由器12和第一运营商边缘PE1路由器13,流量整形系统还可以包括第二运营商边缘PE2路由器14、第三运营商边缘PE3路由器15、第二提供商P1路由器16、第三提供商P1路由器17和用户边缘CE路由器18。IF 1、IF 2、IF 3、IF 4和IF 5为P1路由器的接口。IF6为PE1路由器的接口,IF7为PE2路由器的接口。

本发明实施例中以P1路由器向控制器上报流量预警为例进行示例性说明,其它路由器(例如图5中的P2或P3路由器)出现流量报警可以参照本发明中P1路由器流量预警后的执行步骤进行流量整形。

图6是本发明另一实施例的流量整形方法的系统架构图。图6的系统可以至少包括控制器21、第一提供商P1路由器22和第二提供商P2路由器23,流量整形系统还可以包括第三提供商P3路由器24、第一运营商边缘PE1路由器25、第二运营商边缘PE2路由器27和用户边缘CE路由器28。IF1、IF2、IF3和IF4为P1路由器的接口。IF5为P2路由器的接口,IF6为P3路由器的接口。

本发明实施例中,P路由器或PE路由器可以将一个端口按照不同的流划分为多个令牌桶,每个令牌桶与一条流相对应。例如,图6中IF4可以划分为三个令牌桶:桶1、桶2和桶3。该条流可以为一条数据流,也可以为多条数据流组成的一条聚合流。

本发明实施例可以根据系统中任意网络设备的流量预警调节对对应的上游网络设备接口的流的流量进行整形,例如,修改该条流的CIR值,这样对流量整形划分粒度更精细,能够在流量整形的同时减少对无关数据流的影响。

本发明实施例中仅以系统中一个网络设备的接口或一条流出现流量预警为例进行示例性说明,并不对接口或聚合流的位置进行限制。其它接口或聚合流出现流量预警时,可以参照本发明实施例的步骤进行流量整形。

上文中结合图2到图6,详细描述了根据本发明实施例的流量整形方法,下面将结合图7到图13描述根据本发明实施例的控制器、网络设备和流量整形系统的框图。

图7是本发明一个实施例的控制器的框图。图7的控制器可执行图2中的具体流程。图7的控制器可以位于软件定义网路SDN架构下的流量整形系统中,该流量整形系统可以包括该控制器、第一网络设备和位于第一网络设备上游的第二网络设备。图7的控制器30包括接收单元31、确定单元32和调整单元33。

接收单元31用于接收第一网络设备上报的流量整形消息。流量整形消息包括第一网络设备的第一出接口的标识信息。流量整形消息用于指示第一网络设备的第一出接口的流量整形判断参数满足预设条件。

确定单元32用于根据接收单元接收的流量整形消息确定与第一出接口相对应的第二网络设备的第二出接口。第二网络设备位于第一网络设备的上游。

调整单元33用于向第二网络设备发送调整消息。调整消息包括所述第二出接口的标识信息。调整消息用于控制第二网络设备对第二出接口的流量进行流量整形。

本发明实施例中的控制器在下游网络设备流量告警时,找出与该下游网络设备接口对应的上游网络设备接口,并控制上游网络设备对上游网络设备接口的流量进行整形,这样能够自动实时按需对网络流量进行整形。

根据本发明实施例的控制器可对应于本发明实施例的方法中的控制器,并且,该控制器中的各个单元/模块和上述其他操作和/或功能分别为了实现图2、图5和图6所示方法中控制器所执行的相应流程,为了简洁,在此不再赘述。

图8是本发明一个实施例的控制器的框图。图8的控制器可执行图3中的具体流程。图8的控制器可以位于软件定义网路SDN架构下的流量整形系统中,该流量整形系统可以包括该控制器、第一网络设备和位于第一网络设备上游的第二网络设备。图8的控制器40包括接收单元41、确定单元42和调整单元43。

接收单元41用于接收第一网络设备上报的第一网络设备的第一出接口的流量整形判断参数和第一出接口的标识信息。

确定单元42用于在接收单元接收的流量整形判断参数满足预设条件时,确定与第一出接口相对应的第二网络设备的第二出接口。第二网络设备位于第一网络设备的上游。

调整单元43用于向第二网络设备发送调整消息。调整消息包括所述第二出接口的标识信息。调整消息用于控制第二网络设备对第二出接口的流量进行流量整形。

本发明实施例中的控制器在下游网络设备流量告警时,找出与该下游网络设备接口对应的上游网络设备接口,并控制上游网络设备对上游网络设备接口的流量进行整形,这样能够自动实时按需对网络流量进行整形。

根据本发明实施例的控制器可对应于本发明实施例的方法中的控制器,并且,该控制器中的各个单元/模块和上述其他操作和/或功能分别为了实现图3、图5和图6所示方法中控制器所执行的相应流程,为了简洁,在此不再赘述。

图9是本发明一个实施例的网络设备的框图。图9的网络设备50可以位于SDN架构下,图9的网络设备50可以执行图4中的相应流程。图9的网络设备50包括接收单元51和调整单元52。

接收单元51用于接收控制器发送的调整信息。调整信息包括需要调整的第二网络设备的第二出接口的标识信息。调整消息用于控制第二网络设备对第二出接口的流量进行流量整形。

调整单元52用于根据接收单元接收的调整信息对第二出接口的流量进行整形。

本发明实施例中的网络设备可以接收控制器发送的调整信息,并根据调整信息进行网络流量的调整,这样能够自动实时按需对网络流量进行整形。

根据本发明实施例的网络设备可对应于本发明实施例的方法中的第二网络设备,并且,该网络设备中的各个单元/模块和上述其他操作和/或功能分别为了实现图4至图6所示方法中第二网络设备执行的相应流程,为了简洁,在此不再赘述。

图10是本发明一个实施例的流量整形系统的框图。图10的流量整形系统60可以位于SDN架构下。流量整形系统60包括控制器61、第一网络设备62和位于所述第一网络设备上游的第二网络设备63。

控制器60可以为图7中的控制器,也可以是图8中的控制器,还可以为图11或图12中的控制器。控制器60各个单元/模块和上述其他操作和/或功能分别为了实现图2、图4和图5或实现图3、图4和图5所示方法中控制器执行的相应流程,为了简洁,在此不再赘述。

第二网络设备63可以为图9中的网络设备,也可以为图13中的网络设备,第二网络设备60可以包括图9或图13中各个单元/模块,并且的各个单元/模块和上述其他操作和/或功能分别为了实现图4至图6所示方法中第二网络设备执行的相应流程,为了简洁,在此不再赘述。

数据流可以由上游设备向下游设备传输。图6中的第一网络设备62可以为第二网络设备的上游设备。

本发明实施例的流量整形系统还可以包括网络架构下的网络拓扑结构中的其它网络设备,这里仅以第一网络设备、第二网络设备和控制器进行说明,所以其它网络设备并没有画出。

本发明实施例中,流量整形系统中的控制器通过在检测到下游网络设备告警时,向上游网络设备发送调整信息,上游网络设备可以根据调整信息对其出接口的流量进行调整,这样能够自动实时按需对网络流量进行整形。

流量整形系统中控制器和网络设备的相应单元和/或器件的各个操作可以分别参照图2至图6中对应方法的各个步骤,为避免重复,在此不再重复。

图11是本发明一个实施例的控制器的框图。图11的控制器70包括接收机71、处理器72和存储器73。处理器72控制控制器70的操作,并可用于处理信号。存储器73可以包括只读存储器和随机存取存储器,并向处理器72提供指令和数据。控制器70的各个组件通过总线系统74耦合在一起,其中总线系统74除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都标为总线系统74。

具体地,控制器70位于SDN架构下的流量整形系统中,该系统包括控制器70,该系统还包括第一网络设备和位于第一网络设备上游的第二网络设备。

接收机71用于接收第一网络设备上报的流量整形消息。流量整形消息包括第一网络设备的第一出接口的标识信息。流量整形消息用于指示第一出接口的流量整形判断参数满足预设条件。

处理器72用于根据流量整形消息确定与第一出接口相对应的第二网络设备的第二出接口,并向第二网络设备发送调整消息。其中,第二网络设备位于第一网络设备的上游。调整消息包括第二出接口的标识信息。调整消息用于控制第二网络设备对第二出接口的流量进行流量整形。

本发明实施例中的控制器在下游网络设备流量告警时,找出与该下游网络设备接口对应的上游网络设备接口,并控制上游网络设备对上游网络设备接口的流量进行整形,这样能够自动实时按需对网络流量进行整形。

本发明实施例中上游的第二网络设备的带宽可以大于下游的第一网络设备的带宽。

根据本发明实施例的控制器可对应于本发明实施例的方法中的控制器,并且,该控制器中的各个单元/模块和上述其他操作和/或功能分别为了实现图2、图5和图6所示方法中控制器执行的相应流程,为了简洁,在此不再赘述。

图12是本发明一个实施例的控制器的框图。图12的控制器80包括接收机81、处理器82和存储器83。处理器82控制控制器80的操作,并可用于处理信号。存储器83可以包括只读存储器和随机存取存储器,并向处理器82提供指令和数据。控制器80的各个组件通过总线系统84耦合在一起,其中总线系统84除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都标为总线系统84。

具体地,接收机81用于接收第一网络设备上报的第一网络设备的第一出接口的流量整形判断参数和第一出接口的标识信息。

处理器82用于如果第一出接口的流量整形判断参数满足预设条件,确定与第一出接口相对应的第二网络设备的第二出接口,并向第二网络设备发送调整消息。第二网络设备位于第一网络设备的上游。调整消息包括第二出接口的标识信息。调整消息用于控制第二网络设备对第二出接口的流量进行流量整形。

本发明实施例中的控制器在下游网络设备的流量整形判断参数满足预设条件时,找出与该下游网络设备接口对应的上游网络设备接口,并控制上游网络设备对上游网络设备接口的流量进行整形,这样能够自动实时按需对网络流量进行整形。

根据本发明实施例的控制器可对应于本发明实施例的方法中的控制器,并且,该控制器中的各个单元/模块和上述其他操作和/或功能分别为了实现图3、图5和图6所示方法中控制器执行的相应流程,为了简洁,在此不再赘述。

图13是本发明一个实施例的网络设备的框图。图13的网络设备90包括接收机91、处理器92和存储器93。处理器92控制网络设备90的操作,并可用于处理信号。存储器93可以包括只读存储器和随机存取存储器,并向处理器92提供指令和数据。网络设备90的各个组件通过总线系统94耦合在一起,其中总线系统94除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都标为总线系统94。

网络设备90可以为图1中的第二网络设备。

具体地,接收机91用于接收控制器发送的调整信息。调整信息包括需要调整的网络设备的第二出接口的标识信息。调整消息用于控制第二网络设备对第二出接口的流量进行流量整形。

处理器92用于根据接收的调整信息对第二出接口的流量进行整形。

本发明实施例中的网络设备可以接收控制器发送的调整信息,并根据调整信息进行网络流量的调整,这样能够自动实时按需对网络流量进行整形。

根据本发明实施例的网络设备可对应于本发明实施例的方法中的第二网络设备,并且,该网络设备中的各个单元/模块和上述其他操作和/或功能分别为了实现图4至图6所示方法中第二网络设备执行的相应流程,为了简洁,在此不再赘述。

上述本发明实施例揭示的方法可以应用于图11至图13中的处理器中,或者由处理器实现。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。

本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或步骤可以用硬件、处理器执行的软件程序,或者二者的结合来实施。软件程序可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号