一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于在软件定义网络中利用有限转发规则改进负载均衡的设备和方法与流程

2022-02-22 17:41:13 来源:中国专利 TAG:


1.本发明涉及一种用于在网络中转发数据端口的方法和设备。


背景技术:

2.软件定义网络(software-defined networking,sdn)技术是一种网络管理方法,它支持动态、编程高效的网络配置,以提高网络性能并监测。sdn旨在解决以下问题:传统网络的静态架构是分散和复杂的,而当前网络需要更多的灵活性和更容易的故障排除。sdn尝试通过将网络数据包的转发过程(数据面)与路由过程(控制面)解除关联,将网络智能集中在一个网络组件中,而控制面由一个或多个控制器组成。
3.负载均衡在提高网络利用率方面发挥着至关重要的作用。主要理念是将流量分流到多条路径上,以便更好地利用网络容量。此类网络中的流量通常以流形式组织,流可以定义为主机到主机通信路径,或由源地址和目的地址(例如ip或mac地址)和端口号的唯一组合连同传输协议(例如udp或tcp)或任何其它标识符识别的套接字到套接字通信。通常,流分为宏流(也称为流量聚合或流聚合)和微流。宏流可以通过其源和目的地定义,并可以细分为微流,这些微流由更细粒度的标识符定义,如特定的服务或服务质量和/或优先级。例如,微流可以是可能的最细粒度流(即,单一tcp流),并且不能进一步分流,因为它们会引入数据包重新排序问题。宏流是微流的组合,可以分成若干子流,这些子流可以通过不同的路径路由。通常,任何类型的流或流聚合都可以称为流。
4.如今,网络控制器,例如软件定义网络(software-defined networking,sdn)控制器或路径计算单元(path computation element,pce)集成了流量工程方法,以持续优化路由和负载均衡。这些集中式控制面实体利用网络的全局视图,根据网络负载和流量的统计信息,决定是否有必要分流以及分流的最有效方法。


技术实现要素:

5.本发明的实施例提供了用于在软件定义网络(software-defined network,sdn)等网络中有效转发数据的装置和方法。转发网络设备可以检测负载不均衡问题,并根据实际流量情况调整负载均衡。适配优先在本地进行,并在需要时由网络控制器进行。此外,调整侧重于有问题流(造成不均衡问题的流),以便使用有限数量的额外转发规则。
6.上述和其它目的是通过独立权利要求的主题来实现的。其它实现方式在从属权利要求、说明书和附图中显而易见。
7.根据第一方面,提供了一种具有多个输出端口(120-1至120-n)的用于转发流量的网络设备(100),包括:存储转发规则的存储系统(101),所述转发规则包括用于根据给定流分配将聚合流中的流的数据包转发到所述输出端口的第一规则;电路(110),用于:当第一输出端口(120-n)上的负载与所述第一端口的目标负载不匹配时,从所述聚合流中排除所述流中的至少一个流,并通过建立将所述聚合流中的所述流中的所述至少一个流与第二输
出端口(120-1)关联的第二规则来修改所述存储的转发规则,以便提高所述第一输出端口上所述目标负载与所述负载之间的匹配;根据所述存储的转发规则进行路由。根据该方面的网络设备可以在本地改变流的路由,而不需要网络的全局重新配置。例如,这可以更快地应对负载不均衡问题。
8.根据第二方面,提供了根据第一方面所述的网络设备(500),其中,所述电路(510)用于:观察输出端口(520-1至520-n)上的负载;当第一输出端口(520-n)上的负载与所述第一端口(520-n)的目标负载不匹配时,根据所述流转发规则,识别转发到所述第一输出端口(520-n)的流(550-1至550-n)中负载最重的流(550-1);将所述识别的流(550-1)与第二输出端口(520-1)关联。根据该方面的网络设备可以检测输出端口上的负载不均衡问题,并在本地解决负载不均衡问题,而不需要网络的全局重新配置。例如,这可以实现更快的负载均衡。
9.根据第三方面,提供了根据第一或第二方面所述的网络设备(500),其中,所述电路用于:预测所述输出端口(520-1至520-n)上的未来负载;当所述第一输出端口(520-n)上的所述未来负载与所述第一端口(520-n)的所述目标负载不匹配时,根据所述流转发规则,识别转发到所述第一输出端口(520-n)的所述流(550-1至550-n)中未来负载最重的流(550-1);将所述识别的流(550-1)与第二输出端口(520-1)关联。根据该方面的网络设备可以实现本地负载均衡,以预测预期的未来负载。如果预计未来流非常大,则可以转发该流,以便在对应的输出端口上不会出现负载均衡问题。
10.根据第四方面,提供了根据第一至第三方面中任一项所述的网络设备(500),其中,所述电路(510)还用于:当第一输出端口(750)上的负载或预测负载(701)与所述第一端口的目标负载(702)不匹配时,识别转发到所述第一输出端口的最大流的集合(720),其中,选择所述集合(720)中的流数量,使得如果将一个或多个流添加到所述流集合(720)中,则所述流集合中的所述流的总数据速率将大于所述负载或预测负载(701)与所述目标负载(702)之间的差值;将所述识别的流分配给除所述第一输出端口(750)以外的一个或多个输出端口。根据该方面的网络设备可以在本地有效解决负载均衡问题。由于只有最大的流才考虑转发到不同的输出端口,这使得可以使用少量新规则(这可以有效利用本地存储进行转发规则)和较少的本地计算需求在本地重新配置网络。
11.根据第五方面,提供了根据第一至第四方面中任一项所述的网络设备(100),其中,所述第一规则和所述第二规则存储在转发表(801)中,其中,所述转发表(801)存储转发规则,所述转发规则是将输入流重定向到组表(821)的规则,或将输入流与输出端口关联的规则(822);每个重定向转发规则(821)由所述转发表中所述重定向转发规则(821)的条目指向的组表定义。根据该方面的网络设备可以在本地有效解决负载均衡问题。对于不会在输出端口上导致负载均衡问题的流量,可以使用组表,从而可以提供一种只使用有限的规则转发大量数据(并且可以在输出端口上良好分配)的有效方法。对于大型和/或有问题的流,可以使用将流与输出端口关联的规则。这可以提供有效的转发,同时快速地本地解决负载不均衡问题。
12.根据第六方面,提供了根据第五方面所述的网络设备(100),其中,所述转发表(801)和所述组表存储在三态内容存取存储器(ternary content access memory,tcam)中。根据该方面的网络设备可以提供快速有效的转发,从而可能快速执行所描述的功能。
13.根据第七方面,提供了根据第五或第六方面所述的网络设备(100),其中,在所述将流分配给所述第二输出端口时,所述第二转发规则添加到所述转发表(801)中。根据该方面的网络设备可以通过使用将流与输出端口关联的定制规则有效解决负载均衡问题。
14.根据第八方面,提供了根据第一至第七方面中任一项所述的网络设备(100),包括与控制器的接口(150),其中,所述电路(110)用于通过所述接口接收为所述输出端口指定的目标分流比、所述相应的目标负载;和/或所述转发规则。根据该方面的网络设备可以根据中央控制器有效转发流量,同时可以有效地本地解决不均衡问题。
15.根据第九方面,提供了根据第八方面所述的网络设备(100),其中,所述电路(110)用于通过所述接口向所述控制器发送请求,请求所述控制器向所述网络设备提供一个或多个新的或更新的转发规则。根据该方面的网络设备使得可以在无法本地解决负载均衡问题时解决负载均衡问题。在这种情况下,控制器可以全局重新配置网络。网络设备只有在无法本地解决负载均衡问题时,才可能向网络控制器发送此类请求。本地方案可能更快、更高效,而全局方案能够解决更严重的负载不均衡问题。
16.根据第十方面,提供了根据第九方面所述的网络设备(100),其中,所述请求包括以下各项中的至少一个:所述第一输出端口上的所述负载与所述第一端口的所述目标负载不匹配的通知;关于tcam利用率和/或本地添加的规则数量的信息;关于与每个端口上的所述目标负载的偏差的信息;所述网络设备的与所述第一端口以外的另一个端口关联的流列表。根据该方面的网络设备可以有助于网络控制器更有效地找到负载不均衡问题的潜在更有效的方案。
17.根据第十一方面,提供了根据第一至第十方面中任一项所述的网络设备(100),其中,选择对所述转发规则(820)进行所述修改,使得所述输出端口上所述负载或预测负载与所述目标负载的偏差最小化。
18.根据第十二方面,提供了根据第一至第十一方面中任一项所述的网络设备,其中,在所述提高所述输出端口上所述负载或预测负载与所述目标负载之间的匹配时,在移除识别为具有最高负载的所述一个或多个流之后使用可变大小装箱问题(variable sized bin packing problem,vsbpp)算法。根据该方面的网络设备可以更有效地找到负载不均衡问题的方案。
19.根据第十三方面,提供了根据第一至第十二方面中任一项所述的网络设备(100),其中,所述每个端口(120-1至120-n)的目标负载是根据从控制节点接收的所述转发规则(820)确定的。根据该方面的网络设备可以在不需要额外通信的情况下找到输出端口的目标负载。
20.根据第十四方面,提供了根据第一至第十三方面中任一项所述的网络设备(100),其中,所述存储的转发规则(820)包括用于转发聚合流的子聚合流的数据包的规则,当第一输出端口(120-n)上的负载或预测负载与所述第一端口(120-n)的目标负载不匹配时,从所述聚合流中排除子聚合流中的至少一个子聚合流,并通过建立将所述聚合流中的所述子聚合流中的至少一个子聚合流与第二输出端口(120-1)关联的第二规则来修改所述存储的转发规则(820),以便提高所述第一输出端口(120-n)上所述目标负载与所述负载或预测负载之间的匹配。根据该方面的网络设备可以在有负载不均衡问题的情况下有效改变聚合流的分流。
21.根据第十五方面,提供了根据第五至第十四方面中任一项所述的网络设备(100),其中,所述一个或多个组表根据哈希结果或通过加权成本多径(weighted cost multi pathing,wcmp)定义转发。根据该方面的网络设备可以根据相应输出端口上的目标负载有效地将传入流量分配到其输出端口。
22.根据第十六方面,提供了根据第十五方面所述的网络设备(100),其中,所述哈希是对以下报头(900)条目中的至少一个计算得到的:ip源(911)、ip目的地(912)、协议(913)、源端口(914)、目的端口(915),和/或将输入流与输出端口关联的所述转发规则(822)通过所述报头(900)条目中的至少一个识别所述输入流。根据该方面的网络设备可以有效地将流量分配到其输出端口。只要不重新配置路由,属于同一微流的数据包就可以保证转发到同一输出端口。流的聚合可以仅通过少量报头条目识别,并作为一个整体转发,或者可以根据更多的报头条目识别属于聚合流的子聚合或微流,这可能导致初始聚合流的分流。
23.根据第十七方面,提供了一种用于在具有多个输出端口的网络设备中转发流量的方法(1200),包括:存储转发规则,所述转发规则包括用于根据给定流分配将聚合流中的流的数据包转发到所述输出端口的第一规则;当第一输出端口上的负载与所述第一端口的目标负载不匹配时,从所述聚合流中排除所述流中的至少一个流,并通过建立将所述聚合流中的所述流中的所述至少一个流与第二输出端口关联的第二规则来修改所述存储的转发规则,以便提高所述第一输出端口上所述目标负载与所述负载之间的匹配;根据所述存储的转发规则进行路由。
24.所述方法还可以包括:观察所述输出端口上的所述负载;当所述第一输出端口上的所述负载与所述第一端口的所述目标负载不匹配时,根据所述流转发规则,识别转发到所述第一输出端口的流中负载最重的流;将所述识别的流与第二输出端口关联。
25.根据一个实施例,所述方法还可以包括:预测所述输出端口上的未来负载;当所述第一输出端口上的所述未来负载与所述第一端口的所述目标负载不匹配时,根据所述流转发规则,识别转发到所述第一输出端口的所述流中未来负载最重的流;将所述识别的流与所述第二输出端口关联。
26.在一种示例性实现方式中,所述方法还可以用于:当第一输出端口(750)上的负载或预测负载(701)与所述第一端口的目标负载(702)不匹配时,识别转发到所述第一输出端口的最大流的集合(720),其中,选择所述集合(720)中的流数量,使得如果将一个或多个流添加到所述流集合(720)中,则所述流集合中的所述流的总数据速率将大于所述负载或预测负载(701)与所述目标负载(702)之间的差值;将所述识别的流分配给除所述第一输出端口(750)以外的一个或多个输出端口。
27.此外,所述方法还可以包括将所述第一规则和所述第二规则存储在转发表(801)中,其中,所述转发表(801)存储转发规则,所述转发规则是将输入流重定向到组表(821)的规则,或将输入流与输出端口关联的规则(822);每个重定向转发规则(821)由所述转发表中所述重定向转发规则(821)的条目指向的组表定义。
28.根据一个方面,转发表(801)和组表存储在三态内容存取存储器(ternary content access memory,tcam)中。
29.根据该方法的实施例,在将流分配给第二输出端口时,第二转发规则添加到转发
表(801)中。
30.在一种示例性实现方式中,所述方法还可以用于使用与控制器的接口,其中,所述方法用于通过所述接口接收为所述输出端口指定的目标分流比、所述相应的目标负载;和/或所述转发规则。
31.在一些实施例中,所述方法还可以包括通过所述接口向所述控制器发送请求,请求所述控制器向所述网络设备提供一个或多个新的或更新的转发规则。
32.此外,所述请求可以包括以下各项中的至少一个:所述第一输出端口上的所述负载与所述第一端口的所述目标负载不匹配的通知;关于tcam利用率和/或本地添加的规则数量的信息;关于与每个端口上的所述目标负载的偏差的信息;所述网络设备的与所述第一端口以外的另一个端口关联的流列表。
33.根据一个方面,提供了如上所述的方法,其中,选择对所述转发规则(820)进行所述修改,使得所述输出端口上所述负载或预测负载与所述目标负载的偏差最小化。
34.所述方法还可以包括:在所述提高所述输出端口上所述负载或预测负载与所述目标负载之间的匹配时,在移除识别为具有最高负载的所述一个或多个流之后使用可变大小装箱问题(variable sized bin packing problem,vsbpp)算法。
35.根据一个实施例,所述方法还可以根据从控制节点接收的转发规则(820)确定每个端口的目标负载(120-1至120-n)。
36.根据所述方法的一个实施例,所述存储的转发规则(820)包括用于转发聚合流的子聚合流的数据包的规则,当第一输出端口(120-n)上的负载或预测负载与所述第一端口(120-n)的目标负载不匹配时,从所述聚合流中排除子聚合流中的至少一个子聚合流,并通过建立将所述聚合流的所述子聚合流中的至少一个子聚合流与第二输出端口(120-1)关联的第二规则来修改所述存储的转发规则(820),以便提高所述第一输出端口(120-n)上所述目标负载与所述负载或预测负载之间的匹配。
37.在一种示例性实现方式中,所述一个或多个组表根据哈希结果或通过加权成本多径(weighted cost multi pathing,wcmp)定义转发。
38.根据所述方法的一个实施例,所述哈希是对以下报头(900)条目中的至少一个计算得到的:ip源(911)、ip目的地(912)、协议(913)、源端口(914)、目的端口(915),和/或将输入流与输出端口关联的所述转发规则(822)通过所述报头(900)条目中的至少一个识别所述输入流。
39.上述方法可以实现为包括代码指令的软件代码,这些代码指令实现上述方法步骤。软件可以存储在计算机可读介质中。介质可以是处理器存储器、任何存储介质等。软件可用于如上述控制设备或开关等设备中。
40.以下附图和说明书详细阐述了一个或多个实施例。其它特征、目的和优点在说明书、附图和权利要求中是显而易见的。
附图说明
41.下面参照所附附图和示意图更加详细地描述本发明实施例。
42.图1是网络和交换机架构的示例的框图,其中,转发规则存储在交换机中。
43.图2是出端口上负载的观察到的分流比和目标分流比的示例的图表。
44.图3是进一步详细示出网络和交换机架构的框图,该架构针对具有不同分流比的流量具有三条可能的路径,并且沿路径具有不同数量的转发网络设备。
45.图4a是在输出端口n上具有高负载的本发明提供的网络设备的示例的框图。
46.图4b是与图1a中相同的网络设备的框图,其中,通过为流量分配建立新规则来减少输出端口n上的负载。
47.图5a是导致在一个端口上有重负载,在另一个端口上有轻负载的流分配的框图。
48.图5b是示出一个流从具有重负载的端口重新分配到具有轻负载的端口的框图。
49.图6是转发网络设备和中央网络控制器协作实现有效负载均衡的框图。
50.图7是与一个端口上的目标负载比较的测量/预测负载的框图。
51.图8是本发明的实现方式中的转发规则的框图。
52.图9是数据包报头的重要字段的示例的框图,网络设备基于所述重要字段进行转发决策。
53.图10是本发明提供的转发网络设备中所使用的网络设置的示例的框图。
54.图11是用于集中式分流算法的算法工作流的示例的框图。
55.图12是本发明提供的转发网络设备中使用的方法的示例的流程图。
具体实施方式
56.以下描述中,参考形成本发明一部分并以说明的方式示出本发明实施例的具体方面或可以使用本发明实施例的具体方面的附图。应理解,本发明实施例可在其它方面中使用,并且可以包括附图中未描绘的结构变化或逻辑变化。因此,以下详细描述不应以限制性的意义来理解,本发明的范围由所附权利要求书界定。
57.例如,应理解,结合所描述方法的公开内容对用于执行所述方法的对应设备或系统也可以同样适用,反之亦然。例如,如果描述一个或多个具体方法步骤,则对应的设备可以包括一个或多个单元(例如,功能单元)来执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元分别执行多个步骤中的一个或多个),即使附图中未明确描述或说明该一个或多个单元。另一方面,例如,如果根据一个或多个单元(例如,功能单元)来描述具体装置,则对应的方法可以包括一个步骤来执行一个或多个单元的功能(例如,一个步骤执行一个或多个单元的功能,或多个步骤各自执行多个单元中的一个或多个单元的功能),即使该一个或多个步骤在附图中未明确描述或示出。此外,应理解,除非另有说明,否则本文中描述的各种示例性实施例和/或方面的特征可相互组合。
58.通常,负载均衡(或分流)在交换机和路由器等网络设备内部使用两种技术实现。负载均衡的示例如图1至图3所示。
59.图1示出了sdn/pce控制器,该sdn/pce控制器能够通过配置交换机使用(也可能存储)的转发表和/或组表等方式控制交换机。具体地,交换机接收具有特定目的地址的数据包,并根据转发表和数据包下一跳待转发到的组表进行解码。这里的转发表包括两列:标记为“匹配”并包括ip地址(通常是可能的目的地址)的列,以及标记为“操作”并定义转发规则/策略的列。例如,目的地址为56.78.91.2的数据包始终转发到地址为56.78.91.2的下一跳。另一方面,目的地址为56.78.91.8的数据包朝向组表中示出的不同下一跳地址(“下一跳”列)进一步分流到几个输出端口上。分流比也可以由sdn/pce控制器或其它控制实体或
单元指定。分流是基于对数据包的某些部分(报头)计算的哈希函数执行的。名称“组表”是指不同的表可以用于不同的目的地址。
60.具体地,在基于哈希的分流中,哈希是对数据包报头的重要字段(如源和/或目的地址,和/或端口和/或传输协议)计算得到的,并用于选择传出路径;在加权成本多径(weighted cost multi pathing,wcmp)中,负载均衡权重(例如对应于图1和图3中的“分流比”和图2中的“目标比”)用于确保传出路径上的流数量满足一定的比率。在这两种情况下,一旦对流做出决策,来自流的所有数据包都必须遵循相同的决策(即,它们遵循相同的路径)。但是,在实践中,无法事先获知流量的大小,且流量大小的分布也不均匀。这里,流大小可以理解为流对网络(例如对网络中转发设备的输入或输出端口)施加的负载。
61.图2示出了转发网络设备中三个输出端口上的实际负载比与目标比的示例。该示例中的网络设备是3gpp网络节点基站侧网关(cell site gateway,csg)、rnc侧网关(rnc site gateway,rsg)和两个汇聚侧网关(aggregation site gateway,asg)。由于每个端口的流数量是根据目标比分配的,例如,如果一个或多个流明显更大(比大多数其它流的负载更大(更重)),则实际负载可能会有很大差异。这两个观察结果是负载均衡器必须解决的不均衡问题的根源。
62.根据多个出端口上流量重新划分的类型,可以区分均匀或不均匀的分流。第一种类型是最流行的类型,也称为等价多径(equal cost multi-path,ecmp)。第二种类型可以更好地利用网络资源,但难以实现。也称为不等价多径(unequal cost multi-path,ucmp)。在这两种情况下,转发网络设备内部的实现都利用三态内容存取存储器(ternary content access memory,tcam)进行高效的数据包处理。交换机内部的tcam存储器进一步分为两个表:转发表和组表,如图1和图3所示。图3比图1更概括性地示出了ip地址,以及通常可以在转发表中匹配的任何需求,如d1和d2。该需求可以对应于任何形式的目的标识,如目的名称或地址,或流编号或标识等。
63.对于每个传入数据包,交换机在转发表中查找对应的匹配(例如,通过将任何或所有报头条目与转发表中的对应条目进行比较),该匹配指定数据包是否可以直接转发,或者是否必须应用特定的分流。在后一种情况下,交换机查找组表的对应条目,其中,根据对数据包的重要字段(即数据包报头的字段)计算的哈希值的输出,确定下一跳。组表中条目(也称为桶)的配置定义了用于特定流聚合的分流比,即负载均衡。给定网络的全局视图,pce控制器可以使用最佳tcam配置指示每台交换机。这在图3中示出,图3示出不仅节点0具有转发表,而且例如节点4也具有转发表,节点4在d1的源与目的地之间的路径上。在每个节点,聚合流d1或其部分可以再次分流或聚合(例如,通过将聚合流的两个子流转发到同一下一跳)。
64.随着流量随时间的演变,节点内本地观察到的流量分配可能与控制器计算的目标流量分配不同。因此,需要采取纠正措施来准确跟踪正在进行的流量分配,并调整负载均衡,以更好地处理有问题流。
65.在最先进的技术中,已经提出了两类方案来解决该问题:(1)大象流调度和(2)利用率感知负载均衡。在大象调度中,所有流都使用默认路由策略(例如ecmp)。除此之外,网络控制器还在使用经典ipfix数据包或流采样技术的监测系统的帮助下,跟踪最大流(也称为大象流、top-n流或重击者(heavy hitter))的列表。在集中式监测系统中建立最大流的
列表之后,控制器可以决定在出现不均衡问题时对其中一些流做出具体的路由决策。由于在控制器中进行重击者的识别(问题源)和路由决策(纠正措施),因此该方案对短期流量变化的应对相当缓慢。在利用率感知负载均衡中,主要理念是为每个单一流使用路由策略,并根据实际流大小调整这些路由策略。使用技术将流从一条路径迁移到另一条路径,而不会出现数据包丢失和重新排序问题。例如,conga跟踪传出路径的拥塞,并选择最大限度地减少网络内拥塞的上行端口。在flowlet级别(每个设备最大64k)进行决策,其中,每当给定流中的数据包序列中存在足够长的间隙时,流就会被分流为flowlet。localflow跟踪流的速率,并定期解决装箱问题以对这些流进行分流。由于这两种方法对每个流进行定制决策,因此设备需要管理许多转发规则。
66.本发明的实施例可以通过依靠集中计算的默认路由策略和在出现不均衡问题时本地实时适配来提供两种方法之间的合适权衡。
67.下文根据图4到图10描述了本发明提供的能够改善负载均衡的网络设备100的实施例。
68.图4a和图4b示出了网络设备100。网络设备100在存储器101中存储一个或多个转发规则。具体地,网络设备可以是网络交换机或路由器或网关。根据一个或多个转发规则,将传入数据转发到各输出端口120-1至120-n。传入数据151可以是属于流的数据包,并且流可以集合成流聚合。
69.流可以由分配单元130分配到输出端口,使得属于同一微流的数据(数据包)被转发到同一输出端口。属于同一聚合流的数据可以转发到同一输出端口,也可以分配到不同的输出端口。转发到每个输出端口的流或流聚合的数量可以由转发规则定义。图4a示例性地示出了到两个端口120-1和120-n的流分配,其中,负载152大于负载153。网络设备100还可以用于通过负载监测单元140测量每个输出端口上的负载(包括负载152和153)。在一个实施例中,这可以通过测量对应的一个或多个输出端口120-1至120-n上的带宽利用率来实现。
70.在该示例中,如果输出端口120-n上测量的负载与该输出端口上的期望负载不匹配,则网络设备可以建立新规则。如图4a所示,流152比流153更重。因此,负载监测单元140检测到这种不匹配,并确定新的转发规则,从而改善负载均衡。图4b示意性地示出了负载均衡的结果。输入数据151被分成两个更均衡的新流152n和153n。需要说明的是,在该示例中,目标均衡是将输入数据151均匀分配到端口120-1和120-n。但是,通常,所需的负载均衡比并不限于均匀分配,可以为每个流和/或每个端口配置分流比。
71.新规则可以存储在存储器101中。根据新规则,先前转发到端口120-n的一个或多个流现在重新分配到另一个输出端口(这里是120-1),或者也可以是端口120-1与120-n之间的其它端口。这可以使输出端口上的负载分配更接近对应的目标负载。所有输出端口的目标负载可以相同,或者可以不同,并为每个输出端口单独定义。
72.换句话说,具有多个输出端口120-1至120-n的用于转发流量的网络设备100通常包括存储转发规则的存储系统101,所述转发规则包括用于根据给定流分配将聚合流151中的流的数据包转发到输出端口120-1至120-n。网络设备还包括电路(包括流分配电路130和负载监测电路140),用于:当第一输出端口120-n上的负载(例如,可以根据带宽利用率测量)与所述第一输出端口的目标负载不匹配时,从聚合流中排除所述流中的至少一个流,并
通过建立将聚合流中的所述流中的至少一个流与第二输出端口关联的第二规则来修改所述存储的转发规则,以便提高第一输出端口上目标负载与负载之间的匹配;根据存储的转发规则进行路由。
73.在根据本发明的实现方式中,当测量负载与目标负载之间存在明显不均衡时,交换机100中的“桶监测”模块(负载监测)140可以决定安装探针以更详细地分析传出流量。为了识别问题最严重的流(也称为重击者或大象流),转发网络设备可以使用数据包或流采样等技术,或草图等高级技术。例如,可以通过所需负载与当前负载之间的偏差或差值或其它差异测量来确定不均衡的显著性。
74.一旦识别出潜在的大象流,交换机就会尝试针对这些大象流本地调整路由(在基于哈希的分流的情况下,可以更改桶配置),以解决不均衡问题。这可以通过将负载最大的流(例如550-m)与不同的输出端口关联来完成,该负载最大的流与测量负载明显大于目标负载的输出端口(例如520-n)关联,如图5a和图5b所示。
75.图5a和图5b与图4a和图4b的具体不同分别在于,它们将输入聚合流图示为包括多个流或流聚合550-1至550-m,这些流或流聚合550-1至550-m由网络设备分配到输出端口520-1至520-n。图5a示出了两个最重的传入流(550-1和550-2)被转发到同一输出端口520-n的示例。在该示例中,输入流从最轻流550-m到最重流550-1从上到下排序。需要说明的是,并非所有流都在该图中示出,每个传入流可以转发到任何输出端口。还需要说明的是,可以将更多的流转发到端口520-n和520-1。该示例示出了至少两个重流被转发到端口520-n。在该示例中,每个端口的目标负载可以相同,或者,不受限制,端口520-n的目标负载可以远小于由重流550-1和550-2引起的实际负载。另一方面,对于端口520-1,实际负载可能小于目标负载。当网络设备检测到输出端口(在该示例中为端口520-n)上实际负载与目标负载之间的差异时,它分析对应端口上的负载并识别最重流。通常,网络设备不仅可以识别最重流,而且可以识别最重流集合。在该示例中,网络设备识别550-1为负载最重的流,并将使流550-1转发到不同端口(该示例中为520-1)的规则添加到存储器530中。需要说明的是,在图5所示的示例中,新添加的规则使输出端口520-n和520-1上的负载相同。但是,输出端口上的目标负载可能不同。在这两种情况下,选择新规则,使得输出端口上实际负载与目标负载相同。
76.换句话说,在根据该实现方式的网络设备中,电路用于:观察输出端口520-1至520-n上的负载;当第一输出端口520-n上的负载与第一端口520-n的目标负载不匹配时,根据流转发规则,识别转发到第一输出端口的流中负载最重的流550-1;将所述识别的流550-1与第二输出端口520-1关联。
77.在根据本发明的另一种实现方式中,识别问题最严重的流可以使用预测模型来预测流的大小。相应地,网络设备可以预测流的未来大小,并将未来预测负载与目标负载进行比较。此外,网络设备可以将当前或未来负载显著偏离目标负载的输出端口上未来负载最大的流与不同的输出端口关联。
78.预测可以通过任何方式进行。例如,可以对过去(在一个或多个时间实例内)测量的负载进行外推。但是,在一些实现方式中,也可以使用在相邻路由器/交换机(网络节点)或通常网络中的任何路由器/交换机处当前和/或先前测量的负载来进行预测。
79.换句话说,根据该实现方式的网络设备可以用于:预测输出端口上的未来负载;当
第一输出端口上的未来负载与第一端口的目标负载不匹配时,根据流转发规则,识别转发到第一输出端口的流中未来负载最重的流;将所述识别的流与第二输出端口关联。
80.但是,本发明不限于改变一个流的转发。当多个重流被转发到同一输出端口,而其它端口上的负载小于目标负载时,可能需要重新分配几个重流。这些流可以与一个其它输出端口或几个其它输出端口关联。
81.图7示出了一组流710的示例,这组流710最初被转发到具有负载或预测负载701的输出端口750。在该示例中,目标负载702明显小于实际负载701。在根据本发明的实现方式中,可以识别负载701明显大于目标负载702(下文也称为目标吞吐量)的输出端口750上负载最大的一组流720。具有最大负载的这组流可以通过以下方式选择:已知传出路径p(这里是750)上的实际吞吐量(该示例中为701)和预期目标吞吐量(这里是702),确定偏差最高的路径。如果该路径上则查找top-n流(这里是720)中有问题流的子集使得
82.换句话说,选择i个最大流作为最大(有问题)流的子集720,其中,选择i,使得如果剩余的最大流(来自未添加到i个有问题流的集合的流的集合730)被添加到i个有问题流的子集,则对应输出端口上的负载将小于目标负载。然后,i个有问题流的子集可以分配到其它输出端口。
83.有问题流的子集的每个流可以转发到不同的输出端口,或者有问题流的集合的所有流可以发送到同一输出端口。
84.换句话说,所述网络设备可以用于:当第一输出端口上的测量或预测负载与第一端口的目标负载不匹配时,识别转发到第一输出端口的最大流的集合,其中,选择所述集合中的流数量,使得如果将一个或多个流添加到所述流集合中,则所述流集合中的流的总数据速率将大于测量或预测负载与目标负载之间的差值;将所述识别的流分配给除第一输出端口以外的一个或多个输出端口。
85.在另一种实现方式中,可以重新分配流,使得通过分析不只包括有问题的最重流的流集合的大小,并且例如用更多的流解决装箱问题,可以使所有输出端口上负载或预测的未来负载的偏差最小化。但是,这种方法可能需要更多的计算能力。
86.在根据本发明的一种实现方式中,转发规则存储在转发表801中。图8示出了这种表的示例。根据该实现方式,规则(例如822)可以直接将流与输出端口关联,或者为一个或多个流或流聚合定义(例如821)组表,该组表定义了对应流和/或流聚合或子聚合的转发。可以根据应用于数据包报头的重要字段的哈希函数的结果决定将哪些数据包转发到哪个输出端口(因此,哪个流)。在其它实施例中,决策可以基于将属于同一流的数据包与同一输出端口关联的任何规则。
87.转发表可以包括上述类型之一的一个或多个规则,也可以包括两种类型的规则。在图8所示的示例中,组表指向所有所示的输出端口,但是,根据本发明的组表也可以定义到可用输出端口的任何子集的转发。
88.图9示出了示例性数据包报头。例如,这里的重要字段可以包括ip源911、ip目的地912、协议913、源端口914和/或目地端口915中的任何或全部。但是,转发可以应用于具有不同数据包报头并因此具有不同字段的任何其它类型的协议。
89.在根据上述实现方式的网络设备中,第一规则和第二规则存储在转发表801中,其中,转发表801存储转发规则,所述转发规则将输入流重定向到组表,或者是将输入流与输出端口关联的规则822,每个基于哈希的规则由转发表中转发规则821的条目指向的组表定义。
90.在一个实施例中,组表可以根据哈希函数的结果定义将数据包转发到哪个端口。该哈希函数可以根据数据包报头的预定义部分计算哈希。预定义部分可以是数据包报头的任何部分或整个数据包报头。
91.在另一个实施例中,组表可以通过加权成本多径(weighted cost multi pathing,wcmp)定义将数据包转发到哪个端口。wcmp的实现可以但不必使用哈希计算。通常,组表可以根据数据包报头的预定义部分定义将哪个数据包转发到哪个输出端口。
92.根据一个实施例,转发规则存储在三态内容存取存储器中。换句话说,在根据该实施例的实现方式中,转发表和组表存储在三态内容存取存储器(ternary content access memory,tcam)中,tcam可以根据存储的转发规则快速执行转发。
93.根据本发明的网络设备可以提高tcam的使用效率。当在输出端口上准统计分配流的规则足够时,可以使用组表,并且,例如,如果有问题流的负载显著偏离所有流的平均负载,可以识别并单独转发这些有问题流。
94.例如,如果通过根据输出端口上的目标负载比率准统计地将一定数量的流分配到每个输出端口,将流分配到输出端口,这就会很重要。如果所有流的大小相同,或者如果分配给每个输出端口的流数量足够大,以抑制流大小的统计波动,则每个输出端口上的实际负载将与目标流匹配。但是,实际上,一些流的负载明显大于平均流的负载。
95.在这种情况下,根据本发明的网络设备可以提取有问题流并单独转发这些有问题流。如此一来,可以解决拥塞,而不必等待来自另一个网络实体的指示,也不必为每个流建立单独的规则。
96.在根据本发明的一种实现方式中,当本地建立新规则时,转发网络设备将单个规则添加到转发表中。该单独规则直接指定对应流所转发到的输出端口。换句话说,在将流分配给第二输出端口时,将第二转发规则添加到转发表中。另一方面,转发网络设备也可以添加或更改组表。
97.在根据本发明的一种实现方式中,网络设备包括与网络控制器的接口150。网络控制器可以是如sdn控制器或pce等中央控制器,它可以收集关于网络的信息,并与转发网络流量的所有或部分网络设备通信。
98.例如,网络设备可以通过接口150从网络控制器接收转发规则。这些规则可以是单独流的单独规则(将流直接与输出端口关联的规则),也可以是基于组表的规则,或两者兼有。此外,网络设备可以接收输出端口之间的传入流的目标分流比或对应的目标负载。此外,网络设备可以根据目标分流比计算每个输出端口上的目标负载,反之亦然。
99.例如,如果中央控制器知道负载较重的流,则该中央控制器可以在转发网络设备中为这些重流设置单独的转发规则,以避免拥塞。此外,中央控制器可以提供包括目标分流比的初始规则集合,并在网络被修改时更新规则。如果与目标分流比存在显著偏差,转发网络设备可以本地修改转发规则(例如,为流定义单独输出端口的规则)。
100.换句话说,根据上述实现方式的网络设备包括与控制器(例如sdn控制器或pce)的
接口150,该网络设备的电路用于通过所述接口接收目标分流比,该目标分流比为输出端口指定相应的目标负载,和/或所述转发规则。
101.例如,该接口还可以用于交换其它信息,如关于流大小或流的未来大小的信息,网络设备可以使用这些信息本地查找新的最佳转发规则,或用于中央控制器转发到其它网络设备。
102.根据一个实施例,网络设备可以通过接口150向控制器发送请求。例如,这有利于解决网络设备无法通过向其自身的转发表中添加规则或更改规则来解决与输出端口上目标负载的显著偏差的情况。具体地,在无法本地解决偏差的情况下,网络设备可以要求控制器进行负载均衡的全局重新配置。
103.图6示出了交换机(可以是任何转发网络设备)的架构,以及不同组件如何交互以解决准确的负载均衡问题。负载均衡在逻辑上可以分为两部分:前者在交换机内部本地实现,后者需要交换机与集中控制器之间的交互,以便对网络进行全局重新优化。
104.最初,网络设备可以从中央控制器接收一组规则。或者,网络设备可以选择目标分流比本身(例如,所有输出端口上的权重相等)。
105.首先,交换节点(转发网络设备)监测出端口上的流量,以检测某些流聚合是否偏离集中控制器分配的原始目标速率。在严重不均衡的情况下,交换机中的“桶监测”模块可以决定安装探针,以更详细地分析传出流量。为了识别问题最严重的流(也称为重击者),交换机可以使用如数据包或流采样等标准技术,或高级技术,如“重击者检测模块”中的草图。
106.需要说明的是,识别问题最严重的流可以使用预测模型来预测流的大小。一旦识别出潜在的大象流,交换机就会尝试针对这些大象流本地调整路由(例如,在基于哈希的分流的情况下,调整桶配置),以解决不均衡问题。如果交换机无法修复问题,它可以向控制器寻求帮助。一旦控制器决定了新的路由配置,交换机就会从控制器接收新的目标分流比(或新的转发规则),并本地更新负载均衡。
107.与其它现有的集中式方法相比,提出的理念可以快速应对流量变化,从而显著减少适应不同流量条件所需的时间。
108.与分布式方法相比,所提出的理念可以借助集中控制器,以弥补仅通过本地操作无法解决的明显的流量不均衡。
109.提供的主要益处是,在大多数情况下,调整可以在本地执行,同时将内存占用率(可以使用三态内容存取存储器(ternary content access memory,tcam))保持在非常低的水平:对有问题流使用少量特定的规则。
110.换句话说,根据上述实施例的转发网络设备用于通过所述接口向控制器发送请求,请求控制器向网络设备提供一个或多个新的或更新的转发规则。
111.在根据本发明的一种实现方式中,网络设备请求集中控制器支持所触发的帮助消息可以由两部分组成:第一强制部分,用于通知控制器当前的不均衡和资源状态;第二可选部分,包括关于导致交换机向控制器请求的问题的更多信息。强制部分可以包括不均衡问题和交换机中当前tcam利用率的通知。
112.可选部分可以包括以下各项中的任一种:与每个输出端口上目标负载的偏差、与每个端口上目标负载的偏差(在一些实施例中,这可以对应于每个隧道(可以是mpls隧道)上的目标负载)和有问题的重击者列表(流级信息)。
113.该信息可供中央网络控制器用于为网络设置找到更好的方案。例如,了解网络设备的tcam利用率可用于避免向对应的网络设备添加过多单独的规则。
114.在一个实施例中,选择对转发规则进行修改,使得输出端口上的测量或预测负载与目标负载的偏差最小化。
115.图11示出了通过集中式算法计算新的分流分配的示例。
116.在第一步骤(1101)中,将链路容量缩小α倍。这可以防止100%的链路利用率,并为舍入保留空间。可以并行测试不同的α值。
117.在第二步骤(1102)中,将松弛的多商品流松弛(即,使用列生成)。移除桶约束,松弛整数变量,求解线性规划(linear programming,lp)。
118.在第三步骤(1103)中,在每个源节点处(根据大小)为每个需求分配一定比例的等量桶预算。
119.在第四步骤(1104)中,随机向上舍入分数解,以找到使误差最小化的可行桶配置。
120.在第五步骤(1105)中,如果需求仍然可以分配,则迭代上述步骤。
121.换句话说,在根据上述实现方式的网络设备中,请求包括以下各项中的至少一个:第一输出端口上的测量或预测负载与第一端口的目标负载不匹配的通知;关于tcam利用率和/或本地添加的规则数量的信息;关于与每个端口上的目标负载的偏差的信息;网络设备的与第一端口以外的另一个端口关联的流列表。
122.在根据本发明的一种实现方式中,选择对转发规则进行修改,使得输出端口上的测量或预测负载与目标负载的偏差最小化。即,转发网络设备重新分配流,使得负载与目标负载的偏差最小化。在一个实施例中,在仅重新分配最大流的范围内最小化负载偏差。但是,在其它实施例中,可以重新分配更多的流。此外,中央控制器更改一个或多个网络设备中的转发规则,使得本地无法解决的负载偏差最小化。需要说明的是,中央控制器还可以修改与发生负载偏差的网络设备不同的网络设备中的转发规则。
123.在根据本发明的一个实施例中,当修改转发表以解决测量或预测负载与目标负载的显著偏差时,网络设备在删除识别为具有最高负载的一个或多个流之后使用可变大小装箱问题(variable sized bin packing problem,vsbpp)算法。
124.具体地,当网络设备获知每个出端口上剩余的容量(一旦虚拟删除有问题流)时,可以求解vsbpp,以最大限度地减少与预期目标吞吐量t
ep
的偏差。这个问题是np-hard,但有几种近似算法可用。换句话说,在根据该实施例的网络设备中,为了提高输出端口上测量或预测负载与目标负载之间的匹配,在移除识别为具有最高负载的一个或多个流之后使用可变大小装箱问题(variable sized bin packing problem,vsbpp)算法。
125.装箱算法可以尝试为识别为具有最高负载的流集合找到最佳解。或者,算法可以包括更多的流作为装箱问题的变量。这可以使负载与目标负载的偏差较小,但也可能需要更多的计算能力。
126.在根据本发明的实施例中,网络设备可以根据从网络控制节点接收的转发规则确定每个端口的期望目标负载。如果转发规则准统计地将流分配到输出端口,这些流可能具有不同的权重,则这些权重可用于确定相应输出端口上的目标负载。换句话说,例如,如果转发规则由网络控制器提供给网络设备,则网络设备可以在无需额外接收目标负载的情况下计算其输出端口上的目标负载。相反,网络设备可以仅接收其输出端口的目标负载,并根
据目标负载确定转发规则。
127.在根据本发明的实现方式中,可以将流聚合成子聚合流,并且可以将流和子聚合流进一步聚合成可以包括流和/或子聚合流的聚合流。当新规则添加到转发网络设备中的规则集合中时(规则可以由网络设备本身或中央控制器更改),这些新规则可以更改聚合流以及子聚合流和流的转发。还需要说明的是,可以对聚合流进行分流(分成流的子聚合流),并分配在几个传出路径上。同样,可以合并流和子聚合流。这可能由初始和修订的转发规则引起。当规则发生变化时,流和聚合流的分流和合并可能会因此发生变化。
128.换句话说,根据上述实现方式的网络设备存储转发规则,所述转发规则包括用于转发聚合流的子聚合流的数据包的规则,当第一输出端口上的测量或预测负载与第一端口的目标负载不匹配时,从聚合流中排除子聚合流中的至少一个子聚合流,并通过建立将聚合流中的子聚合流中的至少一个子聚合流(例如,根据哈希规则(或通常是第一规则)分配给第一端口的流)与第二输出端口关联的第二规则来修改所述存储的转发规则,以便提高第一输出端口上目标负载与负载之间的匹配。
129.在根据实施例的实现方式中,网络设备根据对报头条目ip源、ip目的地、协议、源端口、目的端口中的至少一个进行的哈希计算的结果转发数据包,和/或将输入流与输出端口关联的转发规则通过所述报头条目中的至少一个识别输入流。
130.报头条目可以是tcp/ip或udp/ip报头条目,或任何其它类型报头的条目。
131.聚合流可以仅根据一个或两个报头条目转发,子聚合流可以根据比用于聚合流的报头条目更多的报头条目转发,流可以根据比用于子聚合流的条目更多的条目转发。例如,当定义了流或聚合流的特定转发规则时,网络设备在任何类型的转发中都可以对流和聚合流使用相同的机制,其中,所述特定转发规则将所述流或聚合流直接转发到特定输出端口。
132.图10示出了可以使用根据本发明的网络设备的示例性网络。主机a和主机b是局域网的一部分。在该示例中,包括主机a和主机b的局域网是也包括路由器a的企业站点a的一部分。企业站点a通过广域网与路由器b连接,路由器b是也包括局域网的企业站点b的一部分。在该示例中,mpls隧道用于将流从站点a传输到站点b(其中,该流也可以称为聚合流)。从站点a到站点b的流或聚合流可以由任何数量的子流组成。在该示例中,作为广域网一部分的网络设备可以执行如本发明中所述的负载均衡。
133.图12示出了本发明提供的优化负载分配的方法的示例。在根据本发明的用于在具有多个输出端口的网络设备中转发流量的方法的实现方式中,存储转发规则,所述转发规则包括用于根据给定流分配将聚合流中的流的数据包转发到输出端口的第一规则;当第一输出端口上的负载与第一端口的目标负载不匹配时,从聚合流中排除所述流中的至少一个流,并通过建立将聚合流中的所述流中的至少一个流与第二输出端口关联的第二规则来修改所述存储的转发规则,以便提高第一输出端口上目标负载与负载之间的匹配;根据存储的转发规则进行路由。
134.具体地,为了检测第一输出端口上的负载是否与第一端口的目标负载不匹配,可以监测出端口利用率(图12中的s1)。这可以通过测量每个传出路径p上的实际吞吐量并将其与预期吞吐量(由控制器决定)进行比较来完成。为决定要建立的新规则,可以分析有问题的出端口内的流量(参见图12中的s2)。如果则可以在相关端口上安装
探针,以识别重击者。可以使用数据包或流采样等技术,或草图等高级技术。如图12中的s3所示,为了识别有问题的重击者(大流),分析top n或最大流,以确定必须单独进行负载均衡的流。此外,流量预测可以用于根据其预期的未来大小选择流。更一般而言,识别有问题流的子集。s4示出了有问题流的转发调整。有问题流的下一跳可以在本地计算,并且可以使用装箱算法进行此计算。如果需要,可以向控制器请求帮助(图12中的s5)。具体地,如果不均衡问题无法本地解决,则可以请求控制器全局配置网络(触发全局调整)。通常,该方法可以包括回到第一步骤s1并重复这些步骤。
135.根据本发明的设备和方法提出了一种通过使负载均衡适应实际流量条件来解决不均衡问题的方案。方案的主要属性可以是,适配(1)优先在本地进行,并在需要时由控制器进行,(2)侧重于有问题流(造成不均衡问题的流),以便在转发表中使用有限的附加规则集合。
136.在本发明中,提供了一种用于准确负载均衡的方法和装置,该方法和装置可以本地识别不均衡问题的来源(例如其分配偏离原始计划目标的大象流),通过调整分流和重新分配转发规则,本地调整有问题流的转发,并在无法满足目标分配的情况下,向集中控制器求助。
137.换句话说,本发明提供了一种因为交换机(转发网络设备)持续观察出端口上的流量以检测偏差问题而本地识别不均衡问题来源的方法。在出现偏差的情况下,可以对端口进行流量分析,以识别有问题流(通常是最大的流,称为top-n或重击者)。然后,交换机本地调整有问题流的转发。为此,可以提取有问题流并单独转发这些有问题流。然后,可以本地解决小装箱问题。当无法本地解决偏差时,交换机可以请求控制器对负载均衡进行全局(可能是全网)重新配置。
138.总而言之,本发明涉及一种用于流量转发网络设备的设备和方法,并提出了一种通过使负载均衡适配真实流量条件来解决不均衡问题的方案。所述网络设备尝试通过重新调整有问题流的流量来本地解决不均衡问题,如果所述问题无法本地解决,则通知中央网络控制器重新配置所述网络以解决所述不均衡问题。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献