CN104601487A - 一种实现多级负载分担的方法及sdn控制器 - Google Patents
一种实现多级负载分担的方法及sdn控制器 Download PDFInfo
- Publication number
- CN104601487A CN104601487A CN201410853487.8A CN201410853487A CN104601487A CN 104601487 A CN104601487 A CN 104601487A CN 201410853487 A CN201410853487 A CN 201410853487A CN 104601487 A CN104601487 A CN 104601487A
- Authority
- CN
- China
- Prior art keywords
- forwarding unit
- sdn
- load sharing
- sdn forwarding
- sharing algorithm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种实现多级负载分担的方法和SDN控制器,所述方法包括:SDN控制器获取多个SDN转发设备的网络拓扑;基于所述网络拓扑,为所述多个SDN转发设备中每一个SDN转发设备分配负载分担算法,其中为所述每一个SDN转发设备中的相邻的SDN转发设备分配的负载分担算法不同;将为所述每一个SDN转发设备分配的负载分担算法,下发至所述每一个SDN转发设备。可见本发明中具体由SDN控制器获取多个SDN转发设备的网络拓扑,所述SDN控制器就能够基于所述网络拓扑,为每一个SDN转发设备都分配对应的负载分担算法,并且SDN控制器为相邻的SDN转发设备分配的负载分担算法不同,从而解决了流量在经过相邻的SDN转发设备时,后一级SDN转发设备不能实现负载分担的问题。
Description
技术领域
本发明实施例涉及通信领域,尤其是涉及一种实现多级负载分担的方法及SDN控制器。
背景技术
在某一转发设备上,如果存在两条以上的等价链路,为了保证每条链路的流量均匀,通常会通过负载分担算法将流量均匀地分布在每条链路上。其中负载分担算法一般是基于数据流、数据包等数据单元的属性,将不同属性的数据单元分布到不同的链路上。
而从源设备转发到目的设备的转发过程中,通常需要进行多级负载分担。以图1为例,流量在经过第一级转发设备和第二级转发设备时,每一级转发设备均通过负载分担算法实现负载分担。
然而,在多级负载分担过程中,相邻的转发设备如果采用相同的负载分担算法,流量在经过后一级转发设备时很有可能分担不开,即所述后一级转发设备并没有实现负载分担的效果。例如图1中,数据流01和数据流02在经过第一级转发设备后,选择了箭头1所示的链路,如果第二级转发设备和第一级转发设备采用相同的负载分担算法,那么数据流01和02可能会同时选择箭头2所示的链路,即所述第二级转发设备并没有实现对数据流01和数据流02的负载分担。
发明内容
本发明实施例解决的技术问题在于提供一种实现多级负载分担的方法及SDN控制器,以解决相邻的转发设备中后一级转发设备不能实现负载分担的问题。
为此,本发明实施例解决技术问题的技术方案是:
第一方面,本发明实施例提供了一种实现多级负载分担的方法,包括:
SDN控制器获取多个SDN转发设备的网络拓扑;
所述SDN控制器基于所述网络拓扑,为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法,其中为所述每一个SDN转发设备中的相邻的SDN转发设备分配的负载分担算法不同;
所述SDN控制器将为所述每一个SDN转发设备分配的负载分担算法,下发至所述每一个SDN转发设备。
在第一方面的第一种可能的实现方式中,所述SDN控制器为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法包括:
所述SDN控制器利用图着色算法,为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述SDN控制器预设有五种负载分担算法;
所述SDN控制器利用图着色算法,为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法:
所述SDN控制器利用图着色算法,为所述每一个SDN转发设备从所述五种负载分担算法中选择一种负载分担算法,以作为该SDN转发设备对应的负载分担算法。
结合第一方面、第一方面的第一种或者第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述SDN控制器将为所述每一个转发设备分配的负载分担算法,下发至所述每一个SDN转发设备包括:
所述SDN控制器向所述每一个SDN转发设备下发该SDN转发设备对应的OpenFlow协议报文,所述OpenFlow协议报文指示出为所述该SDN转发设备分配的负载分担算法。
结合第一方面、第一方面的第一种或者第二种可能的实现方式,在第一方面的第四种可能的实现方式中,还包括:
所述SDN控制器向所述每一个SDN转发设备下发携带LLDP数据包的Packet-out消息;
所述SDN控制器接收所述每一个SDN转发设备上报的Packet-in消息;
所述SDN控制器获取多个SDN转发设备的网络拓扑,包括:所述SDN控制器基于上报的所述Packet-in消息,获取所述多个SDN转发设备的网络拓扑。
第二方面,本发明实施例提供了一种SDN控制器,包括:
处理单元,用于获取多个SDN转发设备的网络拓扑,基于所述网络拓扑,为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法,其中为所述每一个SDN转发设备中的相邻的SDN转发设备分配的负载分担算法不同;
发送单元,用于将为所述每一个SDN转发设备分配的负载分担算法,下发至所述每一个SDN转发设备。
在第二方面的第一种可能的实现方式中,当为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法时,所述处理单元具体用于利用图着色算法,为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述处理单元还用于预设有五种负载分担算法;
当利用图着色算法,为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法时,所述处理单元具体用于利用图着色算法,为所述每一个SDN转发设备从所述五种负载分担算法中选择一种负载分担算法,以作为该SDN转发设备对应的负载分担算法。
结合第二方面、第二方面的第一种或者第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述发送单元具体用于,向所述每一个SDN转发设备下发该SDN转发设备对应的OpenFlow协议报文,所述OpenFlow协议报文指示出为所述该SDN转发设备分配的负载分担算法。
结合第二方面、第二方面的第一种或者第二种可能的实现方式,在第二方面的第四种可能的实现方式中,还包括:接收单元;
所述发送单元还用于向所述每一个SDN转发设备下发携带LLDP数据包的Packet-out消息;
所述接收单元用于接收所述每一个SDN转发设备上报的Packet-in消息;
当获取多个SDN转发设备的网络拓扑时,所述处理单元具体用于基于所述接收单元接收的所述Packet-in消息,获取所述多个SDN转发设备的网络拓扑。
通过上述技术方案可知,本发明中,通过SDN控制器和多个SDN转发设备实现了多级负载分担。具体由SDN控制器获取多个SDN转发设备的网络拓扑,当获取到所述网络拓扑后,所述SDN控制器就能够基于所述网络拓扑,为每一个SDN转发设备都分配对应的负载分担算法,并且SDN控制器为相邻的SDN转发设备分配的负载分担算法不同,从而解决了流量在经过相邻的SDN转发设备时,后一级SDN转发设备不能实现负载分担的问题。
附图说明
图1为采用目前的多级负载分担算法时一种可能的数据流向图;
图2为本发明实施例提供的一种方法实施例的流程示意图;
图3为采用图2所示的实施例时的一种可能的数据流向图;
图4为本发明实施例提供的一种装置实施例的结构示意图;
图5为本发明实施例提供的另一种装置实施例的结构示意图。
具体实施方式
在某一转发设备上,如果存在两条以上的等价链路,为了保证每条链路的流量均匀,通常会通过负载分担算法将流量均匀地分布在每条链路上。其中负载分担算法一般是基于数据流、数据包等数据单元的属性,将不同属性的数据单元分布到不同的链路上。例如哈希算法就是一种常用的负载分担算法,根据数据流的属性,例如IPv4报文的IP地址、二层以太报文的MAC地址,将不同的数据流分担到不同的链路上。
而从源设备转发到目的设备的转发过程中,通常需要进行多级负载分担。以图1为例,流量在经过第一级转发设备和第二级转发设备时,每一级转发设备均通过负载分担算法实现负载分担。
然而,在多级负载分担过程中,由于数据单元的属性不变,相邻的转发设备如果采用相同的负载分担算法,流量在经过后一级转发设备时很有可能分担不开,即所述后一级转发设备并没有实现负载分担的效果,使得多级负载分担不均匀。例如图1中,数据流01和数据流02在经过第一级转发设备后,通过箭头1所示的链路转发,如果第二级转发设备和第一级转发设备采用相同的负载分担算法,那么数据流01和02可能会同时通过箭头2所示的链路转发,可见所述第二级转发设备并没有实现对数据流01和数据流02的负载分担。
为了解决上述问题,在哈希算法中,每一个转发设备可以使用该转发设备的标识或者生成一个随机数,作为该转发设备的计算参数,将该计算参数放入哈希算法中的Key中,以期望相邻的转发设备能够得到不同的负载分担结果。
但是,哈希算法中的Key虽然较长,例如五元组是104比特,但是哈希算法的计算结果通常很短,例如仅有8比特,因此即使相邻的转发设备具有不同的计算参数,但是很有可能会得到相同的计算结果,从而仍然会出现流量在经过后一级转发设备时分担不开的现象,使得多级负载分担不均匀。即使用户通过手动操作调整计算参数,使得计算结果相区分,也会由于用户手动操作而导致工作量较大。
为了解决上述问题,还有一种方式是每一个转发设备上预设多个哈希算法,从所述多个哈希算法中随机选择一个哈希算法,但是由于目前支持的哈希算法种类比较少,因此很容易在相邻的转发设备上选择相同的哈希算法。而如果在转发过程中的每一跳上配置好本跳使用什么算法,这一步在复杂的现网上应用非常困难,不仅要了解每一跳的接口位置,板子类型,如果发生网络切换还要重新规划。
而在本发明实施例中,提供一种实现多级负载分担的方法及SDN控制器,以解决相邻的转发设备中后一级转发设备不能实现负载分担的问题。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参阅图2,本发明实施例提供了实现多级负载分担的一种方法实施例。本实施例用于软件定义网络(英文:Software Defined Network,简称:SDN)控制器。
本实施例的所述方法包括:
步骤201:所述SDN控制器获取多个SDN转发设备的网络拓扑。
在本发明实施例中,所述SDN控制器为了能够为相邻的SDN转发设备分配不同的负载分担算法,必须获取所述多个SDN转发设备的网络拓扑,即所述多个SDN转发设备的具体连接关系。实际上,本发明实施例正是利用了SDN组网中,SDN控制器能够获取SDN转发设备的网络拓扑这一特性,从而能够实现为相邻的SDN设备分配不同的负载分担算法。
其中,所述SDN控制器具体可以通过链路层发现协议(英文:Link LayerDiscovery Protocol,简称:LLDP),获得所述网络拓扑。在具体实现时,本实施例还可以包括:所述SDN控制器向所述多个SDN转发设备中的每一个SDN转发设备下发携带LLDP数据包的Packet-out消息,所述每一个SDN转发设备在接收到所述Packet-out消息后,会将所述LLDP数据包通过该SDN转发设备的每一个端口,发送至该SDN转发设备的各个相邻设备,该SDN转发设备的各个相邻设备接收到所述LLDP数据包后,基于流表项上送到所述SDN控制器,因此所述SDN控制器接收所述每一个SDN转发设备上报的Packet-in消息,并基于上报的所述Packet-in消息,获取所述多个SDN转发设备的网络拓扑。其中所述SDN控制器可以通过OpenFlow协议下发所述Packet-out消息。并且所述SDN控制器可以通过定时下发所述Packet-out消息,从而使得所述SDN控制器能够实时更新所述网络拓扑,以在所述网络拓扑发生变化时及时发现。
在本发明实施例中,SDN转发设备指的是支持SDN的转发设备,例如支持SDN的交换机或者路由器等。
步骤202:所述SDN控制器基于所述网络拓扑,为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法,其中为所述每一个SDN转发设备中的相邻的SDN转发设备分配的负载分担算法不同。
所述SDN控制器获取到所述网络拓扑后,就可以基于所述网络拓扑,为所述每一个SDN转发分配负载分担算法,并且在具体分配时,为相邻的SDN转发设备分配不同的负载分担算法,以解决流量在经过所述相邻的SDN转发设备时,后一级SDN转发设备不能实现负载分担的问题。例如图3所示,所述SDN控制器为SDN转发设备01分配了负载分担算法A,为SDN转发设备02分配了负载分担算法B,数据流01和数据流02在经过SDN转发设备01后,全部流向所述SDN转发设备02,由于所述SDN控制器为所述SDN转发设备01和所述SDN转发设备02分配了不同的负载分担算法,因此所述SDN转发设备02一般能够将所述数据流01和所述数据流02分担开,例如所述数据流01流向SDN转发设备04,所述数据流02流向SDN转发设备05。
在本步骤中,所述SDN控制器在为所述每一个SDN转发设备分配对应的负载分担算法时,可以利用图着色算法以保证为相邻的SDN转发设备分配不同的负载分担算法。具体地,所述SDN控制器为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法可以包括:所述SDN控制器利用图着色算法,为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法。
由于在图着色算法中,已证明出用五种颜色即能对任一地图着色,因此本实施例中,可以预设有五种负载分担算法,利用图着色算法和五种负载分担算法,能够实现为所有相邻的SDN设备分配不同的负载分担算法。具体地,所述SDN控制器预设有五种负载分担算法;所述SDN控制器利用图着色算法,为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法可以包括:所述SDN控制器利用图着色算法,为所述每一个SDN转发设备从所述五种负载分担算法中选择一种负载分担算法,以作为该SDN转发设备对应的负载分担算法。
在本发明实施例中,所述负载分担算法可以为哈希算法等。
步骤203:所述SDN控制器将为所述每一个SDN转发设备分配的负载分担算法,下发至所述每一个SDN转发设备。
所述SDN控制器通过将所述每一个SDN转发设备分配的负载分担算法,下发至所述每一个SDN转发设备,使得每一个SDN转发设备都根据所述SDN控制器为该SDN转发设备分配的负载分担算法,配置该SDN转发设备。
其中,所述SDN控制器在下发负载分担算法时,实际上可以是下发为所述每一个SDN转发设备分配的负载分担算法的标识,而在所述每一个SDN转发设备上保存了多种负载分担算法分别对应的标识,因此所述每一个SDN转发设备在接收到所述SDN控制器下发的负载分担算法的标识后,即可以根据该标识获取到对应的负载分担算法。例如所述SDN控制器和一个SDN转发设备均保存有负载分担算法A对应的标识为001,因此若所述SDN控制器为该SDN转发设备分配该负载分担算法A,那么所述SDN控制器只需将001发送至该SDN转发设备,该SDN转发设备根据接收到的001即可获知所述SDN控制器为该SDN转发设备分配了负载分担算法A。
通过上述技术方案可知,本发明实施例实际上是利用了SDN组网中,SDN控制器能够获取SDN转发设备的网络拓扑这一特性,通过SDN控制器和多个SDN转发设备提供了一种较好的实现多级负载分担的方式。其中具体由SDN控制器获取多个SDN转发设备的网络拓扑,当获取到所述网络拓扑后,所述SDN控制器就能够基于所述网络拓扑,为每一个SDN转发设备都分配对应的负载分担算法,并且SDN控制器为相邻的SDN转发设备分配的负载分担算法不同,从而解决了流量在经过相邻的SDN转发设备时,后一级SDN转发设备不能实现负载分担的问题。
此外,本发明实施例中由于SDN控制器能够基于所述多个SDN转发设备的网络拓扑,为相邻的SDN转发设备分配不同的负载分担算法,相比于为每个SDN转发设备设置计算参数以放入哈希算法中的Key的方式,以及在每一个转发设备上预设多个哈希算法,从所述多个哈希算法中随机选择一个哈希算法的方式,能够更好的实现多级负载分担。而且,本发明实施例也无需用户手工操作,减少了工作量,同时也无需了解每一跳的接口位置,板子类型,实现起来简便有效。
可选的,本发明实施例中所述SDN控制器可以通过定时下发所述Packet-out消息等方式,实时更新所述网络拓扑,并且每次更新所述网络拓扑后,都执行步骤202和步骤203,从而实现实时根据最新的网络拓扑分配负载分担算法。
可选的,在本发明实施例的步骤203中,所述SDN控制器通过OpenFlow协议下发负载分担算法。具体实现时,步骤203包括:所述SDN控制器向所述每一个SDN转发设备下发该SDN转发设备对应的OpenFlow协议报文,所述OpenFlow协议报文指示出为所述该SDN转发设备分配的负载分担算法。
其中,本发明实施例可以通过在所述OpenFlow协议报文中,新增一种消息类型设置负载分担算法。下面通过一个具体例子加以说明。
所述OpenFlow协议报文中,包括报文类型msg_type、扩展类型exp_type和扩展数据data。其中报文类型msg_type可以为OpenFlow协议中的OFPT_EXPERIMENTER=4,扩展类型exp_type可以是表示下发负载分担算法的标志位,例如扩展类型exp_type=00xAA,表示所述OpenFlow协议报文下发的是负载分担算法,扩展数据data可以表示负载分担算法的标识,例如扩展数据data为0x00至0x0A中的任一位时,均对应一种负载分担算法。所述OpenFlow协议报文还可以包括私有扩展者标记位experimenter,如果高字节为0,后面三个字节表示私有扩展者的IEEE OUI。如果高字节不为0,表示这个值是由开放网络基金会(Open Networking Foundation)分配的。
上面对本发明实施例中的实现多级负载分担的方法实施例进行了描述,下面将从模块化功能实体的角度对本发明实施例中的SDN控制器进行描述。
请参阅图4,本发明实施例提供了SDN控制器400的一种装置实施例。
本实施例的所述SDN控制器400包括处理单元401和发送单元402。.
所述处理单元401用于获取多个SDN转发设备的网络拓扑。
在本发明实施例中,所述处理单元401为了能够为相邻的SDN转发设备分配不同的负载分担算法,必须获取所述多个SDN转发设备的网络拓扑,即所述多个SDN转发设备的具体连接关系。实际上,本发明实施例正是利用了SDN组网中,SDN控制器400能够获取SDN转发设备的网络拓扑这一特性,从而能够实现为相邻的SDN设备分配不同的负载分担算法。
其中,所述处理单元401具体可以通过LLDP获得所述网络拓扑。在具体实现时,本实施例的所述SDN控制器400还包括接收单元,所述处理单元401可以通过所述发送单元402向所述多个SDN转发设备中的每一个SDN转发设备下发携带LLDP数据包的Packet-out消息,所述每一个SDN转发设备在接收到所述Packet-out消息后,会将所述LLDP数据包通过该SDN转发设备的每一个端口,发送至该SDN转发设备的各个相邻设备,该SDN转发设备的各个相邻设备接收到所述LLDP数据包后,基于流表项上送到所述SDN控制器400的所述接收单元,因此所述接收单元接收所述每一个SDN转发设备上报的Packet-in消息,并且所述处理单元401基于所述接收单元接收的所述Packet-in消息,获取所述多个SDN转发设备的网络拓扑。其中所述发送单元402可以通过OpenFlow协议下发所述Packet-out消息。并且所述发送单元402可以通过定时下发所述Packet-out消息,从而使得所述处理单元401能够实时更新所述网络拓扑,以在所述网络拓扑发生变化时及时发现。
在本发明实施例中,SDN转发设备指的是支持SDN的转发设备,例如支持SDN的交换机或者路由器等。
所述处理单元401,还用于基于所述网络拓扑,为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法,其中为所述每一个SDN转发设备中的相邻的SDN转发设备分配的负载分担算法不同。
所述处理单元401获取到所述网络拓扑后,就可以基于所述网络拓扑,为所述每一个SDN转发分配负载分担算法,并且在具体分配时,为相邻的SDN转发设备分配不同的负载分担算法,以解决流量在经过所述相邻的SDN转发设备时,后一级SDN转发设备不能实现负载分担的问题。例如图3所示,所述处理单元401为SDN转发设备01分配了负载分担算法A,为SDN转发设备02分配了负载分担算法B,数据流01和数据流02在经过SDN转发设备01后,全部流向所述SDN转发设备02,由于所述处理单元401为所述SDN转发设备01和所述SDN转发设备02分配了不同的负载分担算法,因此所述SDN转发设备02一般能够将所述数据流01和所述数据流02分担开,例如所述数据流01流向SDN转发设备04,所述数据流02流向SDN转发设备05。
所述处理单元401在为所述每一个SDN转发设备分配对应的负载分担算法时,可以利用图着色算法以保证为相邻的SDN转发设备分配不同的负载分担算法。具体地,当为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法时,所述处理单元401具体用于利用图着色算法,为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法。
由于在图着色算法中,已证明出用五种颜色即能对任一地图着色,因此本实施例中,可以预设有五种负载分担算法,利用图着色算法和五种负载分担算法,能够实现为所有相邻的SDN设备分配不同的负载分担算法。具体地,所述处理单元401还用于预设有五种负载分担算法;当利用图着色算法,为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法时,所述处理单元401具体用于利用图着色算法,为所述每一个SDN转发设备从所述五种预设的负载分担算法中选择一种负载分担算法,以作为该SDN转发设备对应的负载分担算法。
在本发明实施例中,所述负载分担算法可以为哈希算法等。
发送单元402,用于将为所述每一个SDN转发设备分配的负载分担算法,下发至所述每一个SDN转发设备。
所述发送单元402通过将所述每一个SDN转发设备分配的负载分担算法,下发至所述每一个SDN转发设备,使得每一个SDN转发设备都根据所述处理单元401为该SDN转发设备分配的负载分担算法,配置该SDN转发设备。
其中,所述发送单元402在下发负载分担算法时,实际上可以是下发为所述每一个SDN转发设备分配的负载分担算法的标识,而在所述每一个SDN转发设备上保存了多种负载分担算法分别对应的标识,因此所述每一个SDN转发设备在接收到所述发送单元402下发的负载分担算法的标识后,即可以根据该标识获取到对应的负载分担算法。例如所述SDN控制器400和一个SDN转发设备均保存有负载分担算法A对应的标识为001,因此若所述处理单元401为该SDN转发设备分配该负载分担算法A,那么所述发送单元402只需将001发送至该SDN转发设备,该SDN转发设备根据接收到的001即可获知所述处理单元401为该SDN转发设备分配了负载分担算法A。
通过上述技术方案可知,本发明实施例实际上是利用了SDN组网中,SDN控制器400能够获取SDN转发设备的网络拓扑这一特性,通过SDN控制器400和多个SDN转发设备提供了一种较好的实现多级负载分担的方式。其中具体由所述处理单元401获取多个SDN转发设备的网络拓扑,当获取到所述网络拓扑后,所述处理单元40就能够基于所述网络拓扑,为每一个SDN转发设备都分配对应的负载分担算法,并且所述处理单元40为相邻的SDN转发设备分配的负载分担算法不同,从而解决了流量在经过相邻的SDN转发设备时,后一级SDN转发设备不能实现负载分担的问题。
此外,本发明实施例中由于所述处理单元40能够基于所述多个SDN转发设备的网络拓扑,为相邻的SDN转发设备分配不同的负载分担算法,相比于为每个SDN转发设备设置计算参数以放入哈希算法中的Key的方式,以及在每一个转发设备上预设多个哈希算法,从所述多个哈希算法中随机选择一个哈希算法的方式,能够更好的实现多级负载分担。而且,本发明实施例也无需用户手工操作,减少了工作量,同时也无需了解每一跳的接口位置,板子类型,实现起来简便有效。
可选的,本实施例的所述发送单元402可以通过OpenFlow协议下发负载分担算法。具体实现时,所述发送单元402具体用于,向所述每一个SDN转发设备下发该SDN转发设备对应的OpenFlow协议报文,所述OpenFlow协议报文指示出为所述该SDN转发设备分配的负载分担算法。
其中,本发明实施例可以通过在所述OpenFlow协议报文中,新增一种消息类型设置负载分担算法。下面通过一个具体例子加以说明。
所述OpenFlow协议报文中,包括报文类型msg_type、扩展类型exp_type和扩展数据data。其中报文类型msg_type可以为OpenFlow协议中的OFPT_EXPERIMENTER=4,扩展类型exp_type可以是表示下发负载分担算法的标志位,例如扩展类型exp_type=00xAA,表示所述OpenFlow协议报文下发的是负载分担算法,扩展数据data可以表示负载分担算法的标识,例如扩展数据data为0x00至0x0A中的任一位时,均对应一种负载分担算法。所述OpenFlow协议报文还可以包括私有扩展者标记位experimenter,如果高字节为0,后面三个字节表示私有扩展者的IEEE OUI。如果高字节不为0,表示这个值是由Open Networking Foundation分配的。
上面从模块化功能实体的角度对本发明实施例中的SDN控制器的实施例进行描述。下面将从硬件处理的角度对本发明实施例中的SDN控制器的实施例进行描述。
实施例七
请参阅图5,本发明实施例提供了SDN控制器500的另一种装置实施例,本实施例具体包括:处理器(processor)501、通信接口(CommunicationsInterface)502、存储器(memory)503和通信总线504。
处理器501,通信接口502,存储器503通过总线504完成相互间的通信。
处理器501,用于执行程序505。
具体地,程序505可以包括程序代码,所述程序代码包括计算机操作指令。
处理器501可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。
存储器503,用于存放程序505。存储器503可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。程序505用于执行以下步骤:
获取多个SDN转发设备的网络拓扑;
基于所述网络拓扑,为所述多个SDN转发设备中每一个SDN转发设备分配负载分担算法,其中为所述每一个SDN转发设备中的相邻的SDN转发设备分配的负载分担算法不同;
将为所述每一个SDN转发设备分配的负载分担算法,下发至所述每一个SDN转发设备。
程序505中各步骤的具体实现参见图4所示实施例中的相应单元的实现方式,在此不赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种实现多级负载分担的方法,其特征在于,包括:
SDN控制器获取多个SDN转发设备的网络拓扑;
所述SDN控制器基于所述网络拓扑,为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法,其中为所述每一个SDN转发设备中的相邻的SDN转发设备分配的负载分担算法不同;
所述SDN控制器将为所述每一个SDN转发设备分配的负载分担算法,下发至所述每一个SDN转发设备。
2.根据权利要求1所述的方法,其特征在于,所述SDN控制器为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法包括:
所述SDN控制器利用图着色算法,为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法。
3.根据权利要求2所述的方法,其特征在于,所述SDN控制器预设有五种负载分担算法;
所述SDN控制器利用图着色算法,为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法:
所述SDN控制器利用图着色算法,为所述每一个SDN转发设备从所述五种负载分担算法中选择一种负载分担算法,以作为该SDN转发设备对应的负载分担算法。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述SDN控制器将为所述每一个转发设备分配的负载分担算法,下发至所述每一个SDN转发设备包括:
所述SDN控制器向所述每一个SDN转发设备下发该SDN转发设备对应的OpenFlow协议报文,所述OpenFlow协议报文指示出为所述该SDN转发设备分配的负载分担算法。
5.根据权利要求1至3任一项所述的方法,其特征在于,还包括:
所述SDN控制器向所述每一个SDN转发设备下发携带LLDP数据包的Packet-out消息;
所述SDN控制器接收所述每一个SDN转发设备上报的Packet-in消息;
所述SDN控制器获取多个SDN转发设备的网络拓扑,包括:所述SDN控制器基于上报的所述Packet-in消息,获取所述多个SDN转发设备的网络拓扑。
6.一种SDN控制器,其特征在于,包括:
处理单元,用于获取多个SDN转发设备的网络拓扑,基于所述网络拓扑,为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法,其中为所述每一个SDN转发设备中的相邻的SDN转发设备分配的负载分担算法不同;
发送单元,用于将为所述每一个SDN转发设备分配的负载分担算法,下发至所述每一个SDN转发设备。
7.根据权利要求6所述的SDN控制器,其特征在于,
当为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法时,所述处理单元具体用于利用图着色算法,为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法。
8.根据权利要求7所述的SDN控制器,其特征在于,
所述处理单元还用于预设有五种负载分担算法;
当利用图着色算法,为所述多个SDN转发设备中每一个SDN转发设备分配对应的负载分担算法时,所述处理单元具体用于利用图着色算法,为所述每一个SDN转发设备从所述五种负载分担算法中选择一种负载分担算法,以作为该SDN转发设备对应的负载分担算法。
9.根据权利要求6至8任一项所述的SDN控制器,其特征在于,所述发送单元具体用于,向所述每一个SDN转发设备下发该SDN转发设备对应的OpenFlow协议报文,所述OpenFlow协议报文指示出为所述该SDN转发设备分配的负载分担算法。
10.根据权利要求6至8任一项所述的SDN控制器,其特征在于,还包括:接收单元;
所述发送单元还用于向所述每一个SDN转发设备下发携带LLDP数据包的Packet-out消息;
所述接收单元用于接收所述每一个SDN转发设备上报的Packet-in消息;
当获取多个SDN转发设备的网络拓扑时,所述处理单元具体用于基于所述接收单元接收的所述Packet-in消息,获取所述多个SDN转发设备的网络拓扑。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410853487.8A CN104601487A (zh) | 2014-12-31 | 2014-12-31 | 一种实现多级负载分担的方法及sdn控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410853487.8A CN104601487A (zh) | 2014-12-31 | 2014-12-31 | 一种实现多级负载分担的方法及sdn控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104601487A true CN104601487A (zh) | 2015-05-06 |
Family
ID=53127004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410853487.8A Pending CN104601487A (zh) | 2014-12-31 | 2014-12-31 | 一种实现多级负载分担的方法及sdn控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104601487A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017088762A1 (zh) * | 2015-11-26 | 2017-06-01 | 华为技术有限公司 | 一种用于实现负载分担的方法和装置 |
CN108540399A (zh) * | 2018-04-26 | 2018-09-14 | 新华三技术有限公司 | 一种负载分担实现方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1984071A (zh) * | 2006-06-05 | 2007-06-20 | 华为技术有限公司 | 通讯网络中对数据流的分流方法和装置 |
CN102301638A (zh) * | 2009-02-03 | 2011-12-28 | 高通股份有限公司 | 用于在无线通信***中管理子带优先顺序的方法 |
CN103763146A (zh) * | 2014-01-29 | 2014-04-30 | 杭州华三通信技术有限公司 | 一种软件定义网络控制器及其生成转发信息的方法 |
CN103986651A (zh) * | 2014-05-30 | 2014-08-13 | 杭州华三通信技术有限公司 | 一种软件定义网络控制器及其控制方法 |
US20140241349A1 (en) * | 2013-02-26 | 2014-08-28 | Electronics And Telecommunications Research Institute | Openflow switch and packet processing method thereof |
CN104158753A (zh) * | 2014-06-12 | 2014-11-19 | 南京工程学院 | 基于软件定义网络的动态流调度方法及*** |
-
2014
- 2014-12-31 CN CN201410853487.8A patent/CN104601487A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1984071A (zh) * | 2006-06-05 | 2007-06-20 | 华为技术有限公司 | 通讯网络中对数据流的分流方法和装置 |
CN102301638A (zh) * | 2009-02-03 | 2011-12-28 | 高通股份有限公司 | 用于在无线通信***中管理子带优先顺序的方法 |
US20140241349A1 (en) * | 2013-02-26 | 2014-08-28 | Electronics And Telecommunications Research Institute | Openflow switch and packet processing method thereof |
CN103763146A (zh) * | 2014-01-29 | 2014-04-30 | 杭州华三通信技术有限公司 | 一种软件定义网络控制器及其生成转发信息的方法 |
CN103986651A (zh) * | 2014-05-30 | 2014-08-13 | 杭州华三通信技术有限公司 | 一种软件定义网络控制器及其控制方法 |
CN104158753A (zh) * | 2014-06-12 | 2014-11-19 | 南京工程学院 | 基于软件定义网络的动态流调度方法及*** |
Non-Patent Citations (1)
Title |
---|
林幸等: "一种OpenFlow网络的流量负载均衡策略", 《第十届中国通信学会学术年会论文集》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017088762A1 (zh) * | 2015-11-26 | 2017-06-01 | 华为技术有限公司 | 一种用于实现负载分担的方法和装置 |
CN106803812A (zh) * | 2015-11-26 | 2017-06-06 | 华为技术有限公司 | 一种用于实现负载分担的方法和装置 |
US10749804B2 (en) | 2015-11-26 | 2020-08-18 | Huawei Technologies Co., Ltd. | Method and apparatus for implementing load sharing |
CN106803812B (zh) * | 2015-11-26 | 2020-12-01 | 华为技术有限公司 | 一种用于实现负载分担的方法和装置 |
US11336577B2 (en) | 2015-11-26 | 2022-05-17 | Huawei Technologies Co., Ltd. | Method and apparatus for implementing load sharing |
CN108540399A (zh) * | 2018-04-26 | 2018-09-14 | 新华三技术有限公司 | 一种负载分担实现方法及装置 |
CN108540399B (zh) * | 2018-04-26 | 2022-03-01 | 新华三技术有限公司 | 一种负载分担实现方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104246701B (zh) | 用于基于源路由在不同无限带宽子网间路由流量的***和方法 | |
CN104202266B (zh) | 一种通信方法、交换机、控制器及通信*** | |
EP3063903B1 (en) | Method and system for load balancing at a data network | |
CN105162704B (zh) | Overlay网络中组播复制的方法及装置 | |
Fu et al. | Orion: A hybrid hierarchical control plane of software-defined networking for large-scale networks | |
US8171539B2 (en) | Methods and apparatus for implementing a search tree | |
CN105721303B (zh) | 一种路由控制方法、网络设备及控制器 | |
CN106375231A (zh) | 一种流量切换方法、设备及*** | |
US20140337497A1 (en) | System and method of subnetting a virtual network identifier | |
WO2015120539A8 (en) | Method to route packets in a distributed direct interconnect network | |
CN110324159B (zh) | 链路配置方法、控制器和存储介质 | |
CN104092604A (zh) | 报文传输控制方法及装置 | |
CN106357542B (zh) | 提供组播业务的方法和软件定义网络控制器 | |
CN105577502A (zh) | 业务传送方法及装置 | |
CN104852869B (zh) | 一种端口聚合方法及装置 | |
FI3782334T3 (fi) | Järjestelmä ja menetelmä ryhmäverkkojen luomiseksi verkkolaitteiden välille | |
CN104980368A (zh) | 软件定义网络中的带宽保障方法及装置 | |
CN111049721A (zh) | 一种OpenVPN集群及其构建方法、通信方法、*** | |
CN104836738A (zh) | 路由硬件表项资源管理方法、装置及网络设备 | |
CN106850803B (zh) | 一种基于sdn的加权轮询***及算法 | |
CN104601487A (zh) | 一种实现多级负载分担的方法及sdn控制器 | |
CN103095579B (zh) | Trill网络互联方法、装置及*** | |
CN103493439B (zh) | 接收信息的方法、发送信息的方法及装置 | |
US10666580B1 (en) | Network switches using centralized improvement of routing based on link capacity | |
CN104994019B (zh) | 一种用于sdn控制器的水平方向接口*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150506 |