Nothing Special   »   [go: up one dir, main page]

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 PDF

Info

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
Application number
CN201810143048.6A
Other languages
Chinese (zh)
Other versions
CN108337168B (en
Inventor
郭志强
董晓东
陈�胜
周晓波
李克秋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin University
Original Assignee
Tianjin University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin University filed Critical Tianjin University
Priority to CN201810143048.6A priority Critical patent/CN108337168B/en
Publication of CN108337168A publication Critical patent/CN108337168A/en
Application granted granted Critical
Publication of CN108337168B publication Critical patent/CN108337168B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1507Distribute 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

The present invention relates to route switching fields to support the route switching mechanism exchanged based on stream cluster to propose to realize under conditions of not changing original software defined network data plane forwarding mechanism.For this purpose, of the invention, stream cluster exchanges routing mechanism OpenFlow group table selection methods, and steps are as follows:1) perception bottom-layer network topology;2) reachable path is issued on each interchanger by controller;3) arrival time last time Hash table is initialized;4) last time time departure Hash table is initialized;5) timeout value is initialized;6) time for cryptographic Hash being calculated according to five-tuple, reaching interchanger;7) it executes following step 11 or executes following step 8;8) it executes following step 9 or executes following step 10;9) following step 11 is executed;10) following step 11 is executed;11) packet is sent to next-hop, executes step 6.Present invention is mainly applied to route switching occasions.

Description

流簇交换路由机制OpenFlow组表选择方法Flow cluster switching routing mechanism OpenFlow group table selection method

技术领域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)

1. a kind of stream cluster exchanges routing mechanism OpenFlow group table selection methods, characterized in that steps are as follows:
1) the controller perception bottom-layer network topology of software defined network control plane, calculates source network device and is set to purpose network A plurality of reachable path between standby;
2) controller using each of interchanger on reachable path up to exit port as the action bucket for organizing list item, and with a group list item Form be issued on each interchanger;
3) arrival time last time Hash table is initialized:The last one current packet of each stream of Hash table record reach interchanger when Between;
4) last time time departure Hash table is initialized:The exit port of the last one current packet of each stream of Hash table record;
5) initialization timeout value timeout:The timeout value is greater than that load balancing is a plurality of and walking along the street for distinguishing different stream clusters The maximum delay of diameter is poor;
6) when the port of interchanger receives data packet, according to including inbound port, source IP address, purpose IP address, source port, The five-tuple of destination interface calculates the cryptographic Hash hash_key of the packet, and records the time arrive_ that the packet reaches interchanger time;
7) if there is no the records that keyword is hash_key in arrival time last time Hash table, by keyword hash_key Corresponding record arrival is added in arrival time last time Hash table;Random choosing is concentrated from the action bucket of corresponding group of list item of the packet The port of action bucket instruction is selected as exit port output_port, by the corresponding record output_ of keyword hash_key Port is added in last time time departure Hash table, and executes following step 11, otherwise, executes following step 8;
8) the upper packet flowed belonging to the corresponding packets of keyword hash_key is obtained from arrival time last time Hash table to reach Time of interchanger records last_time, updates in last time time departure Hash table that keyword hash_key is corresponding to be recorded as Arrival time, if arrival time arrive_time-it is upper one packet reach interchanger time last_time >=timeout at It is vertical, then execute following step 9;Otherwise, following step 10 is executed;
9) concentrate the port that one action bucket of random selection indicates as exit port from the action bucket of corresponding group of list item of the packet The corresponding record output_port of keyword hash_key are added to upper packet exit port last_ by output_port In output_port Hash tables, and execute following step 11;
10) the upper packet flowed belonging to the corresponding packets of keyword hash_key is obtained from last_output_port Hash tables Exit port record is used as output_port, executes following step 11;
11) packet is sent to next-hop from the port that the port numbers of interchanger are output_port, executes step 6.
2. stream cluster exchanges routing mechanism OpenFlow group table selection methods as described in claim 1, characterized in that an example In comprise the concrete steps that:
1) in bottom-layer network topology, TCP transmitting terminals are IP:10.0.0.1Port:3301, TCP receiving terminals are IP: 10.0.0.2Port:3302, the reachable path between sending and receiving end has two, respectively:With
2) a group list item is issued on each interchanger by software defined network controller, is issued to the following institute of interchanger S1 group list items Show:
Group_id=1, type=select, selection_method=flowlet_switching, bucket= output:2, bucket=output:3
3) last_arrive_time Hash tables are initialized:The last one current packet of each stream of Hash table record reaches interchanger Time;
4) last_outout_port Hash tables are initialized:The exit port of the last one current packet of each stream of Hash table record;
5) initialization timeout value timeout:The timeout value is greater than that load balancing is a plurality of and walking along the street for distinguishing different stream clusters The maximum delay of diameter is poor;
6) transmitting terminal is sent to the data packet of receiving terminal and carries out following processing according to group table selection algorithm on interchanger S1
6.1.1) interchanger S1 receives first data packet of transmitting terminal, and the hash values that the packet is calculated according to five-tuple are Hash_key, five-tuple are:Inbound port=1, source IP address=10.0.0.1, purpose IP address=10.0.0.2, source port= 3301, destination interface=3302;
6.1.2) there is no the record that keyword is 100 in last_arrive_time Hash tables, then keyword 100 is corresponding Record arrive_time=867674us is added in last_arrive_time Hash tables, executes following step 6.1.3;
6.1.3) concentrate the port that one action bucket of random selection indicates as exit port from matched group of list item action bucket of the packet 100 corresponding record output_port=2 of keyword is added to last_output_port Hash by output_port=2 In table, which is sent out from No. 2 ports of interchanger;
6.2.1) interchanger S1 receives second data packet of transmitting terminal, and the hash values of the packet are calculated according to five-tuple, record The packet reaches the time arrive_time of interchanger;
6.2.2 keyword 100) is obtained from last_arrive_time Hash tables corresponds to the time that first packet reaches interchanger Last_time=867674us is recorded, updates in last_arrive_time Hash tables that keyword 100 is corresponding is recorded as Arrive_time=868125us;Because of arrive_time-last_time=451<500 set up, so executing following step Rapid 6.2.3;
6.2.3 the exit port record of 100 corresponding first packets of keyword) is obtained from last_output_port Hash tables Output_port=2 sends out the packet from No. 2 ports of interchanger;
6.3.1) interchanger S1 receives the third data packet of transmitting terminal, and the hash values that the packet is calculated according to five-tuple are to remember Record the time arrive_time that the packet reaches interchanger;
6.3.2 keyword 100) is obtained from last_arrive_time Hash tables corresponds to the time that second packet reaches interchanger It records, keyword 100 is corresponding in update last_arrive_time Hash tables is recorded as arrive_time;Because of arrive_ Time-last_time=512>500 set up, so executing following step 6.3.3;
6.3.3) concentrate the port that one action bucket of random selection indicates as exit port from matched group of list item action bucket of the packet 100 corresponding record output_port=3 of keyword is added to last_output_port Hash by output_port=3 In table;The packet is sent out from No. 3 ports of interchanger.
CN201810143048.6A 2018-02-11 2018-02-11 OpenFlow group table selection method of flow cluster exchange routing mechanism Active CN108337168B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (10)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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