CN108337168A - It flows cluster and exchanges routing mechanism OpenFlow group table selection methods - Google Patents
It flows cluster and exchanges routing mechanism OpenFlow group table selection methods Download PDFInfo
- Publication number
- CN108337168A CN108337168A CN201810143048.6A CN201810143048A CN108337168A CN 108337168 A CN108337168 A CN 108337168A CN 201810143048 A CN201810143048 A CN 201810143048A CN 108337168 A CN108337168 A CN 108337168A
- Authority
- CN
- China
- Prior art keywords
- time
- port
- last
- hash
- packet
- 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.)
- Granted
Links
- 230000007246 mechanism Effects 0.000 title claims abstract description 24
- 238000010187 selection method Methods 0.000 title claims abstract description 8
- 230000008447 perception Effects 0.000 claims abstract 2
- 230000009471 action Effects 0.000 claims description 36
- 239000012141 concentrate Substances 0.000 claims 3
- 230000000875 corresponding effect Effects 0.000 description 31
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 230000006855 networking Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1507—Distribute and route fabrics, e.g. sorting-routing or Batcher-Banyan
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
技术领域technical field
本发明涉及路由交换领域,具体说是一种软件定义网络中实现流簇(flowlet)交换(switching)路由机制的OpenFlow组表选择算法。The invention relates to the field of routing switching, in particular to an OpenFlow group table selection algorithm for realizing a flow cluster (flowlet) switching (switching) routing mechanism in a software-defined network.
背景技术Background technique
术语解释:Explanation of terms:
软件定义网络是一种新型的网络架构,它将传统网络的数据平面和控制平面进行分离,从而通过集中控制器的软件平台实现底层转发硬件的可编程化控制。Software-defined networking is a new type of network architecture that separates the data plane and control plane of traditional networks, so that the programmable control of the underlying forwarding hardware can be realized through the software platform of the centralized controller.
OpenFlow协议是软件定义网络中数据平面和控制平面之间的通信协议,控制平面的控制器通过OpenFlow协议定义的规则和动作指示数据平面的交换机如何转发网络数据包。The OpenFlow protocol is a communication protocol between the data plane and the control plane in the software-defined network. The controller of the control plane instructs the switch of the data plane how to forward network data packets through the rules and actions defined by the OpenFlow protocol.
流表是OpenFlow协议中定义的类似于传统网络路由表的表结构,它由若干流表项构成。流表项由规则和动作集组成,若网络数据包符合流表项定义的规则,该数据包就会被执行相应的动作,如:从某个端口转发或者修改源目IP地址等。A flow table is a table structure defined in the OpenFlow protocol similar to a traditional network routing table, and it consists of several flow entries. A flow entry is composed of rules and action sets. If a network data packet conforms to the rules defined by the flow entry, the corresponding action will be executed on the data packet, such as forwarding from a certain port or modifying the source and destination IP addresses.
组表是OpenFlow协议定义的一种特殊的流表,它由若干组表项构成。每个组表项包括:组表项标识符、组表项类型、组表项计数器和动作桶集构成。组表项类型决定了该组表项的语义,如:all类型的组表项表示该组表项动作桶集中的动作都会被执行,而select类型的组表项表示该组表项动作桶集中的动作只有一个会被执行。动作桶集包含多个动作桶,每个动作桶代表可以对网络数据包进行的一种处理,如:从某个端口转发或者修改数据包某些字段等。The group table is a special flow table defined by the OpenFlow protocol, which consists of several group entries. Each group entry includes: a group entry identifier, a group entry type, a group entry counter and an action bucket set. The type of group entry determines the semantics of the group entry. For example, a group entry of type all means that all actions in the action bucket of the group entry will be executed, while a group entry of type select means that the actions in the bucket of the group entry will be set. Only one of the actions will be executed. The action bucket set contains multiple action buckets, and each action bucket represents a kind of processing that can be performed on network data packets, such as forwarding from a certain port or modifying certain fields of data packets.
流簇(Flowlet)是指同一个TCP流中一些有相关性的包组成的集合,这里的相关性是指:如果任意相邻的两个包到达同一交换设备之间的时间间隔小于预先定义的超时值,那么把满足这个条件的包看成一个集合,称为一个流簇。A flow cluster (Flowlet) refers to a set of related packets in the same TCP flow. The correlation here refers to: if the time interval between any two adjacent packets arriving at the same switching device is less than the predefined timeout value, then the packets that meet this condition are regarded as a collection, which is called a flow cluster.
流簇交换(Flowlet switching)是以流簇为粒度的路由交换技术,从属于同一个流簇的包都会从同一个端口转发,不同的流簇可以随机选择转发端口。通常情况下将超时值定义为多路径转发技术中多条路径之间延时差的最大值,这样不会引起TCP重排序现象。Flowlet switching is a routing switching technology with flowlet as the granularity. Packets belonging to the same flowlet will be forwarded from the same port, and different flowlets can randomly select the forwarding port. Usually, the timeout value is defined as the maximum value of the delay difference between multiple paths in the multipath forwarding technology, so that the TCP reordering phenomenon will not be caused.
流簇交换是一项重要的路由交换技术,被应用于负载均衡领域。由于区分不同流簇的超时值被设置为大于任何两条负载均衡并行路径的延时之差,所以基于流簇的负载均衡不会引起包的失序,可以提高TCP的性能,提高网络的吞吐量。同时用这种路由交换机制实现负载均衡比较简单,不需要额外的拥塞控制信息,如:当前某条链路的拥塞情况。基于流簇交换的负载均衡具有自适应的负载均衡能力,即能够根据链路的带宽将网络流量近似按比例分配到每条链路上。Flow cluster switching is an important routing switching technology, which is applied in the field of load balancing. Since the timeout value for distinguishing different flow clusters is set to be greater than the delay difference between any two load balancing parallel paths, the load balancing based on flow clusters will not cause out-of-order packets, which can improve TCP performance and network throughput . At the same time, it is relatively simple to use this routing switching mechanism to achieve load balancing, and does not require additional congestion control information, such as: the current congestion situation of a certain link. Load balancing based on flow cluster switching has adaptive load balancing capabilities, that is, it can distribute network traffic to each link approximately in proportion to the bandwidth of the link.
在硬件层面实现基于流簇交换的路由交换机制一般需要专用的交换芯片支持,如:cisco(思科)将这种交换机制实现在了自研的硬件交换机中。软件层面的实现一般基于开源的软件交换机OpenvSwitch或者可编程软件交换机P4,但这种实现方式一般都会造成交换机其他交换功能的缺失,变成只支持流簇交换路由机制的软件交换机。目前还没有可以完美对接软件定义网络的实现方案。Realizing the routing switching mechanism based on flow cluster switching at the hardware level generally requires the support of a dedicated switching chip, such as: Cisco (Cisco) implements this switching mechanism in a self-developed hardware switch. The implementation at the software level is generally based on the open source software switch OpenvSwitch or the programmable software switch P4, but this implementation generally results in the lack of other switching functions of the switch, and becomes a software switch that only supports the flow cluster switching routing mechanism. At present, there is no implementation solution that can perfectly connect with software-defined networking.
软件定义网络中OpenFlow协议定义的组表为我们提供了额外的转发能力,如:我们可以利用all类型的组表实现对多播路由的支持。组表提供的这种转发能力不会破坏OpenFlow协议支持的其他转发机制,如:基于流表项规则匹配的转发方式。通过组表拓展的路由转发机制不会影响到OpenFlow协议原有的转发机制,属于对OpenFlow协议中路由转发机制的一种补充。本发明通过组表选择算法实现流簇交换正是利用了这一优点,它是软件定义网络中实现流簇交换路由机制的完美解决方案。The group table defined by the OpenFlow protocol in the software-defined network provides us with additional forwarding capabilities. For example, we can use the all-type group table to support multicast routing. The forwarding capability provided by the group table will not destroy other forwarding mechanisms supported by the OpenFlow protocol, such as the forwarding mode based on the matching of flow entry rules. The routing and forwarding mechanism expanded through the group table will not affect the original forwarding mechanism of the OpenFlow protocol, and is a supplement to the routing and forwarding mechanism in the OpenFlow protocol. The invention utilizes this advantage to realize the flow cluster exchange through the group table selection algorithm, and it is a perfect solution for realizing the flow cluster exchange routing mechanism in the software-defined network.
发明内容Contents of the invention
为克服现有技术的不足,本发明旨在提出一种OpenFlow组表选择算法,该算法可以实现在不改变原有软件定义网络数据平面转发机制的条件下,支持基于流簇交换的路由交换机制。为此,本发明采用的技术方案是,流簇交换路由机制OpenFlow组表选择方法,步骤如下:In order to overcome the deficiencies in the prior art, the present invention aims to propose an OpenFlow group table selection algorithm, which can support the routing switching mechanism based on flow cluster switching without changing the original software-defined network data plane forwarding mechanism . For this reason, the technical solution that the present invention adopts is, flow cluster switching routing mechanism OpenFlow group table selection method, the steps are as follows:
1)软件定义网络控制平面的控制器感知底层网络拓扑,计算源网络设备到目的网络设备之间的多条可达路径;1) The controller of the software-defined network control plane perceives the underlying network topology and calculates multiple reachable paths between the source network device and the destination network device;
2)控制器将可达路径上交换机的每个可达出端口都作为组表项的动作桶,并以组表项的形式下发到每个交换机上;2) The controller uses each accessible port of the switch on the reachable path as the action bucket of the group entry, and sends it to each switch in the form of a group entry;
3)初始化上次到达时间哈希表:该哈希表记录每个流当前最后一个包到达交换机的时间;3) Initialize the last arrival time hash table: the hash table records the time when the last packet of each flow arrives at the switch;
4)初始化上次离开时间哈希表:该哈希表记录每个流当前最后一个包的出端口;4) Initialize the last departure time hash table: the hash table records the outgoing port of the current last packet of each flow;
5)初始化超时值timeout:该超时值用于区分不同的流簇,要大于负载均衡多条并行路径的最大延时差;5) Initialize the timeout value timeout: This timeout value is used to distinguish different flow clusters, and it should be greater than the maximum delay difference of multiple parallel paths in load balancing;
6)当交换机的端口接收到数据包时,根据包括入端口、源IP地址、目的IP地址、源端口、目的端口的五元组计算该包的哈希值hash_key,并记录该包到达交换机的时间arrive_time。6) When the port of the switch receives the data packet, calculate the hash value hash_key of the packet according to the five-tuple including the incoming port, source IP address, destination IP address, source port, and destination port, and record the packet arrival switch time arrive_time.
7)如果上次到达时间哈希表中不存在关键字为hash_key的记录,则将关键字hash_key对应的记录到达添加到上次到达时间哈希表中;从该包对应的组表项的动作桶集中随机选择一个动作桶指示的端口作为出端口output_port,将关键字hash_key对应的记录output_port添加到上次离开时间哈希表中,并执行下面的步骤11,否则,执行下面的步骤8;7) If there is no record whose keyword is hash_key in the hash table of the last arrival time, the arrival of the record corresponding to the keyword hash_key is added to the hash table of the last arrival time; Randomly select a port indicated by an action bucket in the bucket set as the output port output_port, add the record output_port corresponding to the keyword hash_key to the last departure time hash table, and execute the following step 11, otherwise, execute the following step 8;
8)从上次到达时间哈希表中获得关键字hash_key对应的该包所属流的上一个包到达交换机的时间记录last_time,更新上次离开时间哈希表中关键字hash_key对应的记录为到达时间,如果到达时间arrive_time–上一个包到达交换机的时间last_time≥timeout成立,则执行下面的步骤9;否则,执行下面的步骤10;8) Obtain the last_time record last_time of the arrival time of the last packet of the flow corresponding to the packet to which the packet belongs from the last arrival time hash table, and update the record corresponding to the keyword hash_key in the last departure time hash table as the arrival time , if the arrival time arrive_time-last_time≥timeout of the last packet arriving at the switch is established, then perform the following step 9; otherwise, perform the following step 10;
9)从该包对应的组表项的动作桶集中随机选择一个动作桶bucket指示的端口作为出端口output_port,将关键字hash_key对应的记录output_port添加到上一包出端口last_output_port哈希表中,并执行下面的步骤11;9) Randomly select a port indicated by an action bucket bucket from the action bucket set of the group entry corresponding to the package as the output port output_port, add the record output_port corresponding to the keyword hash_key to the last_output_port hash table of the previous package output port, and Execute step 11 below;
10)从last_output_port哈希表中获得关键字hash_key对应的该包所属流的上一包的出端口记录作为output_port,执行下面的步骤11;10) From the last_output_port hash table, obtain the output port record of the previous packet of the flow corresponding to the packet to which the keyword hash_key belongs as output_port, and perform the following step 11;
11)将该包从交换机的端口号为output_port的端口发往下一跳,执行步骤6。11) The packet is sent to the next hop from the port whose port number is output_port of the switch, and step 6 is performed.
一个实例中的具体步骤是:The specific steps in an example are:
1)底层网络拓扑中,TCP发送端为IP:10.0.0.1Port:3301,TCP接收端为IP:10.0.0.2Port:3302,收发端之间的可达路径有两条,分别为:和 1) In the underlying network topology, the TCP sending end is IP:10.0.0.1Port:3301, the TCP receiving end is IP:10.0.0.2Port:3302, and there are two reachable paths between the sending and receiving ends, which are: and
2)软件定义网络控制器将组表项下发到每个交换机上,下发到交换机S1组表项如下所示:2) The software-defined network controller sends the group entry to each switch, and the group entry sent to switch S1 is as follows:
group_id=1,type=select,selection_method=flowlet_switching,bucket=output:2,bucket=output:3group_id=1, type=select, selection_method=flowlet_switching, bucket=output:2, bucket=output:3
3)初始化last_arrive_time哈希表:该哈希表记录每个流当前最后一个包到达交换机的时间;3) Initialize the last_arrive_time hash table: the hash table records the time when the last packet of each flow arrives at the switch;
4)初始化last_outout_port哈希表:该哈希表记录每个流当前最后一个包的出端口;4) Initialize the last_outout_port hash table: the hash table records the outgoing port of the current last packet of each flow;
5)初始化超时值timeout:该超时值用于区分不同的流簇,要大于负载均衡多条并行路径的最大延时差;5) Initialize the timeout value timeout: This timeout value is used to distinguish different flow clusters, and it should be greater than the maximum delay difference of multiple parallel paths in load balancing;
6)发送端发往接受端的数据包在交换机S1上根据组表选择算法进行以下处理6) The data packets sent from the sending end to the receiving end are processed on the switch S1 according to the group table selection algorithm
6.1.1)交换机S1接收到发送端的第一个数据包,根据五元组计算该包的hash值为hash_key,五元组是:入端口=1、源IP地址=10.0.0.1、目的IP地址=10.0.0.2、源端口=3301、目的端口=3302;6.1.1) The switch S1 receives the first data packet of the sending end, calculates the hash value of the packet according to the quintuple hash_key, and the quintuple is: input port=1, source IP address=10.0.0.1, destination IP address =10.0.0.2, source port=3301, destination port=3302;
6.1.2)last_arrive_time哈希表中不存在关键字为100的记录,则将关键字100对应的记录arrive_time=867674us添加到last_arrive_time哈希表中。执行下面的步骤6.1.3;6.1.2) If there is no record with key 100 in the last_arrive_time hash table, add the record arrive_time=867674us corresponding to key 100 to the last_arrive_time hash table. Execute step 6.1.3 below;
6.1.3)从该包匹配的组表项动作桶集中随机选择一个动作桶指示的端口作为出端口output_port=2,将关键字100对应的记录output_port=2添加到last_output_port哈希表中,将该包从交换机的2号端口发出;6.1.3) Randomly select a port indicated by an action bucket from the group entry action bucket set matched by the packet as the output port output_port=2, add the record output_port=2 corresponding to the keyword 100 to the last_output_port hash table, and set the The packet is sent from port 2 of the switch;
6.2.1)交换机S1接收到发送端的第二个数据包,根据五元组计算该包的hash值,记录该包到达交换机的时间arrive_time;6.2.1) The switch S1 receives the second data packet from the sending end, calculates the hash value of the packet according to the quintuple, and records the arrival_time of the packet to the switch;
6.2.2)从last_arrive_time哈希表中获得关键字100对应第一个包到达交换机的时间记录last_time=867674us,更新last_arrive_time哈希表中关键字100对应的记录为arrive_time=868125us;因为arrive_time–last_time=451<500成立,所以执行下面的步骤6.2.3;6.2.2) Obtain keyword 100 from the last_arrive_time hash table corresponding to the time record last_time=867674us when the first packet arrives at the switch, update the record corresponding to keyword 100 in the last_arrive_time hash table as arrive_time=868125us; because arrive_time-last_time= 451<500 is established, so execute the following step 6.2.3;
6.2.3)从last_output_port哈希表中获得关键字100对应的第一个包的出端口记录output_port=2。将该包从交换机的2号端口发出。;6.2.3) Obtain the output port record output_port=2 of the first packet corresponding to the keyword 100 from the last_output_port hash table. Send the packet out of port 2 of the switch. ;
6.3.1)交换机S1接收到发送端的第三个数据包,根据五元组计算该包的hash值为,记录该包到达交换机的时间arrive_time;6.3.1) The switch S1 receives the third data packet from the sending end, calculates the hash value of the packet according to the quintuple, and records the arrival_time of the packet to the switch;
6.3.2)从last_arrive_time哈希表中获得关键字100对应第二个包到达交换机的时间记录。更新last_arrive_time哈希表中关键字100对应的记录为arrive_time;因为arrive_time–last_time=512>500成立,所以执行下面的步骤6.3.3;6.3.2) Obtain the key 100 from the last_arrive_time hash table corresponding to the time record when the second packet arrives at the switch. Update the record corresponding to keyword 100 in the last_arrive_time hash table to arrive_time; because arrive_time–last_time=512>500 is established, so execute the following step 6.3.3;
6.3.3)从该包匹配的组表项动作桶集中随机选择一个动作桶指示的端口作为出端口output_port=3,将关键字100对应的记录output_port=3添加到last_output_port哈希表中;将该包从交换机的3号端口发出。6.3.3) Randomly select a port indicated by an action bucket from the set of group table item action buckets matched by the package as the output port output_port=3, and add the record output_port=3 corresponding to the keyword 100 to the last_output_port hash table; The packet is sent from port 3 of the switch.
本发明的特点及有益效果是:Features and beneficial effects of the present invention are:
无论使用专用的硬件交换芯片或者基于现有的软件交换机解决方案实现基于流簇交换的路由机制,都使得交换机的转发方式变得单一,因此无法应用在软件定义网络中,不能很好的支持OpenFlow协议。Regardless of whether a dedicated hardware switching chip is used or an existing software switch solution is used to implement a routing mechanism based on flow cluster switching, the forwarding method of the switch becomes single, so it cannot be applied in software-defined networks and cannot support OpenFlow well. protocol.
针对以上问题,本发明通过拓展OpenFlow协议组表选择算法,在不改变OpenFlow协议正常转发机制的前提上,提供了对流簇交换路由机制的支持,是一种增量实现方法,使软件定义网络使用基于流簇交换的路由交换机制成为了可能。In view of the above problems, the present invention provides support for the flow cluster switching routing mechanism by expanding the OpenFlow protocol group table selection algorithm without changing the normal forwarding mechanism of the OpenFlow protocol. It is an incremental implementation method that enables software-defined networks to use The routing switch based on flow cluster switching is made possible.
附图说明:Description of drawings:
图1一种支持流簇交换路由交换机制的OpenFlow组表选择算法流程示意图。Fig. 1 is a schematic flow diagram of an OpenFlow group table selection algorithm that supports a flow cluster switching routing switching mechanism.
图2软件定义网络拓扑图。Figure 2 Software-defined network topology diagram.
具体实施方式Detailed ways
本发明的目的在于提供一种OpenFlow组表选择算法,该算法可以实现在软件定义网络数据平面中支持基于流簇交换的路由交换机制。The purpose of the present invention is to provide an OpenFlow group table selection algorithm, which can implement a routing switching mechanism based on flow cluster switching in a software-defined network data plane.
本发明解决其技术问题所采用的技术方案是:The technical solution adopted by the present invention to solve its technical problems is:
1)软件定义网络控制平面的控制器感知底层网络拓扑,计算源网络设备到目的网络设备之间的多条可达路径。1) The controller of the software-defined network control plane perceives the underlying network topology, and calculates multiple reachable paths between the source network device and the destination network device.
2)控制器将可达路径上交换机的每个可达出端口都作为组表项的动作桶,并以组表项的形式下发到每个交换机上。2) The controller uses each accessible port of the switch on the reachable path as an action bucket of a group entry, and sends it to each switch in the form of a group entry.
3)初始化last_arrive_time哈希表:该哈希表记录每个流当前最后一个包到达交换机的时间。3) Initialize the last_arrive_time hash table: the hash table records the time when the last packet of each flow arrives at the switch.
4)初始化last_outout_port哈希表:该哈希表记录每个流当前最后一个包的出端口。4) Initialize the last_outout_port hash table: the hash table records the outgoing port of the current last packet of each flow.
5)初始化超时值timeout:该超时值用于区分不同的flowlet,一般要大于负载均衡多条并行路径的最大延时差。5) Initialization timeout value timeout: This timeout value is used to distinguish different flowlets, and is generally greater than the maximum delay difference of load balancing multiple parallel paths.
6)当交换机的端口接收到数据包时,根据五元组(入端口、源IP地址、目的IP地址、源端口、目的端口)计算该包的hash值为hash_key,并记录该包到达交换机的时间arrive_time。6) When the port of the switch receives the data packet, calculate the hash value of the packet according to the quintuple (ingress port, source IP address, destination IP address, source port, destination port) as hash_key, and record the packet arrival switch time arrive_time.
7)如果last_arrive_time哈希表中不存在关键字为hash_key的记录,则将关键字hash_key对应的记录arrive_time添加到last_arrive_time哈希表中。从该包对应的组表项的动作桶集中随机选择一个动作桶指示的端口作为出端口output_port,将关键字hash_key对应的记录output_port添加到last_output_port哈希表中,并执行下面的步骤11。否则,执行下面的步骤8。7) If there is no record whose keyword is hash_key in the last_arrive_time hash table, add the record arrive_time corresponding to the keyword hash_key to the last_arrive_time hash table. Randomly select a port indicated by an action bucket from the action bucket set of the group entry corresponding to the packet as the output port output_port, add the record output_port corresponding to the keyword hash_key to the last_output_port hash table, and perform the following step 11. Otherwise, perform step 8 below.
8)从last_arrive_time哈希表中获得关键字hash_key对应的该包所属流的上一个包到达交换机的时间记录last_time。更新last_arrive_time哈希表中关键字hash_key对应的记录为arrive_time。如果arrive_time–last_time≥timeout成立,则执行下面的步骤9;否则,执行下面的步骤10。8) From the last_arrive_time hash table, obtain the time record last_time when the last packet of the flow to which the packet belongs corresponds to the keyword hash_key arrives at the switch. Update the record corresponding to the keyword hash_key in the last_arrive_time hash table to arrive_time. If arrive_time-last_time≥timeout is established, execute step 9 below; otherwise, execute step 10 below.
9)从该包对应的组表项的动作桶集中随机选择一个动作桶指示的端口作为出端口output_port,将关键字hash_key对应的记录output_port添加到last_output_port哈希表中,并执行下面的步骤11。9) Randomly select a port indicated by an action bucket from the action bucket set of the group entry corresponding to the package as the output port output_port, add the record output_port corresponding to the keyword hash_key to the last_output_port hash table, and perform the following step 11.
10)从last_output_port哈希表中获得关键字hash_key对应的该包所属流的上一包的出端口记录作为output_port。执行下面的步骤11。10) From the last_output_port hash table, obtain the output port record of the previous packet of the stream to which the packet belongs corresponding to the keyword hash_key as output_port. Perform step 11 below.
11)将该包从交换机的端口号为output_port的端口发往下一跳,执行步骤6。11) The packet is sent to the next hop from the port whose port number is output_port of the switch, and step 6 is performed.
下面结合具体实施方式对本发明技术方案详细描述。本发明的OpenFlow组表选择算法流程示意图如图1所示,具体操作步骤如下:The technical solutions of the present invention will be described in detail below in combination with specific embodiments. The schematic flow diagram of the OpenFlow group table selection algorithm of the present invention is as shown in Figure 1, and the specific operation steps are as follows:
1)假设底层网络拓扑如图2所示,TCP发送端(IP:10.0.0.1Port:3301)和TCP接收端(IP:10.0.0.2Port:3302)之间的可达路径有两条,分别为:和 1) Assuming that the underlying network topology is shown in Figure 2, there are two reachable paths between the TCP sender (IP:10.0.0.1Port:3301) and the TCP receiver (IP:10.0.0.2Port:3302), respectively for: and
2)软件定义网络控制器将组表项下发到每个交换机上,下发到交换机S1组表项如下所示:2) The software-defined network controller sends the group entry to each switch, and the group entry sent to switch S1 is as follows:
group_id=1,type=select,selection_method=flowlet_switching,bucket=output:2,bucket=output:3group_id=1, type=select, selection_method=flowlet_switching, bucket=output:2, bucket=output:3
3)初始化last_arrive_time哈希表:该哈希表记录每个流当前最后一个包到达交换机的时间3) Initialize the last_arrive_time hash table: the hash table records the time when the last packet of each flow arrives at the switch
4)初始化last_outout_port哈希表:该哈希表记录每个流当前最后一个包的出端口。4) Initialize the last_outout_port hash table: the hash table records the outgoing port of the current last packet of each flow.
5)初始化超时值timeout:该超时值用于区分不同的流簇,一般要大于负载均衡多条并行路径的最大延时差。本例中假设timeout值为500us。5) Initialization timeout value timeout: This timeout value is used to distinguish different flow clusters, and is generally greater than the maximum delay difference of load balancing multiple parallel paths. In this example, it is assumed that the timeout value is 500us.
6)发送端发往接受端的数据包(以前三个数据包为例)在交换机S1上根据组表选择算法进行以下处理(在其他交换机上的处理流程类似)。6) The data packets sent from the sending end to the receiving end (the first three data packets are taken as an example) are processed on the switch S1 according to the group table selection algorithm (the processing flow on other switches is similar).
6.1.1)交换机S1接收到发送端的第一个数据包,根据五元组(入端口=1、源IP地址=10.0.0.1、目的IP地址=10.0.0.2、源端口=3301、目的端口=3302)计算该包的hash值为hash_key,假设hash_key=100。记录该包到达交换机的时间arrive_time为867674us。6.1.1) The switch S1 receives the first packet of the sending end, according to the quintuple (incoming port=1, source IP address=10.0.0.1, destination IP address=10.0.0.2, source port=3301, destination port= 3302) Calculate the hash value of the package as hash_key, assuming hash_key=100. Record the arrival_time of the packet to the switch as 867674us.
6.1.2)last_arrive_time哈希表中不存在关键字为100的记录,则将关键字100对应的记录arrive_time=867674us添加到last_arrive_time哈希表中。执行下面的步骤6.1.3。6.1.2) If there is no record with key 100 in the last_arrive_time hash table, add the record arrive_time=867674us corresponding to key 100 to the last_arrive_time hash table. Perform step 6.1.3 below.
6.1.3)从该包匹配的组表项动作桶集(bucket=output:2,bucket=output:3)中随机选择一个动作桶(bucket=output:2)指示的端口作为出端口output_port=2,将关键字100对应的记录output_port=2添加到last_output_port哈希表中。将该包从交换机的2号端口发出。6.1.3) Randomly select a port indicated by an action bucket (bucket=output:2) from the group entry action bucket set (bucket=output:2, bucket=output:3) matched by the packet as the output port output_port=2 , Add the record output_port=2 corresponding to the keyword 100 to the last_output_port hash table. Send the packet out of port 2 of the switch.
6.2.1)交换机S1接收到发送端的第二个数据包,根据五元组(入端口=1、源IP地址=10.0.0.1、目的IP地址=10.0.0.2、源端口=3301、目的端口=3302)计算该包的hash值为100。记录该包到达交换机的时间arrive_time为868125us。6.2.1) The switch S1 receives the second packet of the sending end, according to the quintuple (incoming port=1, source IP address=10.0.0.1, destination IP address=10.0.0.2, source port=3301, destination port= 3302) Calculate the hash value of the bag to be 100. Record the arrival_time of the packet to the switch as 868125us.
6.2.2)从last_arrive_time哈希表中获得关键字100对应第一个包到达交换机的时间记录last_time=867674us。更新last_arrive_time哈希表中关键字100对应的记录为arrive_time=868125us。因为arrive_time–last_time=451<500成立,所以执行下面的步骤6.2.3。6.2.2) Obtain keyword 100 from the last_arrive_time hash table and record last_time=867674us corresponding to the time when the first packet arrives at the switch. Update the record corresponding to keyword 100 in the last_arrive_time hash table to arrive_time=868125us. Since arrive_time-last_time=451<500 is established, the following step 6.2.3 is performed.
6.2.3)从last_output_port哈希表中获得关键字100对应的第一个包的出端口记录output_port=2。将该包从交换机的2号端口发出。6.2.3) Obtain the output port record output_port=2 of the first packet corresponding to the keyword 100 from the last_output_port hash table. Send the packet out of port 2 of the switch.
6.3.1)交换机S1接收到发送端的第三个数据包,根据五元组(入端口=1、源IP地址=10.0.0.1、目的IP地址=10.0.0.2、源端口=3301、目的端口=3302)计算该包的hash值为100。记录该包到达交换机的时间arrive_time为868637us。6.3.1) The switch S1 receives the third packet of the sending end, according to the quintuple (incoming port=1, source IP address=10.0.0.1, destination IP address=10.0.0.2, source port=3301, destination port= 3302) Calculate the hash value of the bag to be 100. Record the arrival_time of the packet to the switch as 868637us.
6.3.2)从last_arrive_time哈希表中获得关键字100对应第二个包到达交换机的时间记录last_time=868125us。更新last_arrive_time哈希表中关键字100对应的记录为arrive_time=868637us。因为arrive_time–last_time=512>500成立,所以执行下面的步骤6.3.3。6.3.2) Obtain the key 100 from the last_arrive_time hash table and record last_time=868125us corresponding to the time when the second packet arrives at the switch. Update the record corresponding to keyword 100 in the last_arrive_time hash table to arrive_time=868637us. Since arrive_time-last_time=512>500 holds true, execute the following step 6.3.3.
6.3.3)从该包匹配的组表项动作桶集(bucket=output:2,bucket=output:3)中随机选择一个动作桶(bucket=output:3)指示的端口作为出端口output_port=3,将关键字100对应的记录output_port=3添加到last_output_port哈希表中。将该包从交换机的3号端口发出。6.3.3) Randomly select a port indicated by an action bucket (bucket=output:3) from the group entry action bucket set (bucket=output:2, bucket=output:3) matched by the packet as the output port output_port=3 , Add the record output_port=3 corresponding to the keyword 100 to the last_output_port hash table. Send the packet out of port 3 of the switch.
Claims (2)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810143048.6A CN108337168B (en) | 2018-02-11 | 2018-02-11 | OpenFlow group table selection method of flow cluster exchange routing mechanism |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810143048.6A CN108337168B (en) | 2018-02-11 | 2018-02-11 | OpenFlow group table selection method of flow cluster exchange routing mechanism |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108337168A true CN108337168A (en) | 2018-07-27 |
CN108337168B CN108337168B (en) | 2021-01-05 |
Family
ID=62929409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810143048.6A Active CN108337168B (en) | 2018-02-11 | 2018-02-11 | OpenFlow group table selection method of flow cluster exchange routing mechanism |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108337168B (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110061929A (en) * | 2019-03-10 | 2019-07-26 | 天津大学 | For data center's load-balancing method of asymmetrical network |
CN110460537A (en) * | 2019-06-28 | 2019-11-15 | 天津大学 | Traffic Scheduling Method Based on Packet Collection in Data Center Asymmetric Topology |
CN114793215A (en) * | 2021-12-14 | 2022-07-26 | 合肥哈工轩辕智能科技有限公司 | Distributed system based on load balancing mode asynchronous agent |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140241361A1 (en) * | 2013-02-28 | 2014-08-28 | Texas Instruments Incorporated | Packet processing match and action unit with configurable memory allocation |
CN104579941A (en) * | 2015-01-05 | 2015-04-29 | 北京邮电大学 | Message classification method in OpenFlow switch |
CN104702536A (en) * | 2015-03-26 | 2015-06-10 | 清华大学 | Message processing method of OpenFlow switch for wireless communication |
CN105245363A (en) * | 2015-09-23 | 2016-01-13 | 盛科网络(苏州)有限公司 | Open Flow based linear protection method |
CN105262692A (en) * | 2015-09-23 | 2016-01-20 | 盛科网络(苏州)有限公司 | Method and device for realizing flow meter information real-time synchronization of openflow switches |
CN105391636A (en) * | 2015-10-16 | 2016-03-09 | 东南大学 | Interconnection mechanism between software defined network (SDN) subnet and IP subnet in autonomous system |
WO2016039758A1 (en) * | 2014-09-11 | 2016-03-17 | Hewlett Packard Enterprise Development Lp | Non-minimum cost forwarding for packet-switched networks |
US9596172B2 (en) * | 2014-06-27 | 2017-03-14 | International Business Machines Corporation | Mechanism for exchange of routing data between controllers |
CN107222353A (en) * | 2017-07-11 | 2017-09-29 | 中国科学技术大学 | The unrelated software defined network virtual management platform of supported protocol |
CN107370676A (en) * | 2017-08-03 | 2017-11-21 | 中山大学 | Fusion QoS and load balancing demand a kind of route selection method |
-
2018
- 2018-02-11 CN CN201810143048.6A patent/CN108337168B/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140241361A1 (en) * | 2013-02-28 | 2014-08-28 | Texas Instruments Incorporated | Packet processing match and action unit with configurable memory allocation |
US9596172B2 (en) * | 2014-06-27 | 2017-03-14 | International Business Machines Corporation | Mechanism for exchange of routing data between controllers |
WO2016039758A1 (en) * | 2014-09-11 | 2016-03-17 | Hewlett Packard Enterprise Development Lp | Non-minimum cost forwarding for packet-switched networks |
CN104579941A (en) * | 2015-01-05 | 2015-04-29 | 北京邮电大学 | Message classification method in OpenFlow switch |
CN104702536A (en) * | 2015-03-26 | 2015-06-10 | 清华大学 | Message processing method of OpenFlow switch for wireless communication |
CN105245363A (en) * | 2015-09-23 | 2016-01-13 | 盛科网络(苏州)有限公司 | Open Flow based linear protection method |
CN105262692A (en) * | 2015-09-23 | 2016-01-20 | 盛科网络(苏州)有限公司 | Method and device for realizing flow meter information real-time synchronization of openflow switches |
CN105391636A (en) * | 2015-10-16 | 2016-03-09 | 东南大学 | Interconnection mechanism between software defined network (SDN) subnet and IP subnet in autonomous system |
CN107222353A (en) * | 2017-07-11 | 2017-09-29 | 中国科学技术大学 | The unrelated software defined network virtual management platform of supported protocol |
CN107370676A (en) * | 2017-08-03 | 2017-11-21 | 中山大学 | Fusion QoS and load balancing demand a kind of route selection method |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110061929A (en) * | 2019-03-10 | 2019-07-26 | 天津大学 | For data center's load-balancing method of asymmetrical network |
CN110061929B (en) * | 2019-03-10 | 2021-12-28 | 天津大学 | Data center load balancing method for asymmetric network |
CN110460537A (en) * | 2019-06-28 | 2019-11-15 | 天津大学 | Traffic Scheduling Method Based on Packet Collection in Data Center Asymmetric Topology |
CN110460537B (en) * | 2019-06-28 | 2023-01-24 | 天津大学 | Packet set-based data center asymmetric topology flow scheduling method |
CN114793215A (en) * | 2021-12-14 | 2022-07-26 | 合肥哈工轩辕智能科技有限公司 | Distributed system based on load balancing mode asynchronous agent |
Also Published As
Publication number | Publication date |
---|---|
CN108337168B (en) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10284469B2 (en) | Progressive MAC address learning | |
US7733770B2 (en) | Congestion control in a network | |
US8644328B2 (en) | Methods for intelligent NIC bonding and load-balancing | |
Carpio et al. | DiffFlow: Differentiating short and long flows for load balancing in data center networks | |
CN105391635B (en) | A kind of network virtualization method based on SDN | |
CN110061915B (en) | Method and system for virtual link aggregation across multiple fabric switches | |
US7613201B1 (en) | Stacked network switch using resilient packet ring communication protocol | |
CN103957157B (en) | Route method for network interface to define forwarding rule | |
US8902794B2 (en) | System and method for providing N-way link-state routing redundancy without peer links in a network environment | |
TWI599203B (en) | Network communication system, software defined network controller and routing method thereof | |
CN111711565B (en) | Multi-path routing method for high-speed interconnection dragonfly+ network | |
CN106656793B (en) | A data interaction method between SDN network and IP network | |
Luo et al. | Enhancing responsiveness and scalability for OpenFlow networks via control-message quenching | |
US10693814B2 (en) | Ultra-scalable, disaggregated internet protocol (IP) and ethernet switching system for a wide area network | |
WO2016058261A1 (en) | Network-based flat routing method | |
Wang et al. | Expeditus: Congestion-aware load balancing in Clos data center networks | |
CN108337168A (en) | It flows cluster and exchanges routing mechanism OpenFlow group table selection methods | |
Subedi et al. | OpenFlow-based in-network Layer-2 adaptive multipath aggregation in data centers | |
CN110460537B (en) | Packet set-based data center asymmetric topology flow scheduling method | |
WO2019201189A1 (en) | Communication device capable of multi-path data transmission, data communication network system and data communication method | |
Hussain et al. | A dynamic multipath scheduling protocol (DMSP) for full performance isolation of links in software defined networking (SDN) | |
Cui et al. | A load balancing mechanism for 5G data centers | |
Todorov et al. | Simple routing algorithm with link discovery between source and destination hosts in SDN networks | |
Maksić | Two-phase load balancing for data center networks using OpenFlow | |
Takács et al. | Generic multipath routing concept for dynamic traffic engineering |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |