CN108337168B - OpenFlow group table selection method of flow cluster exchange routing mechanism - Google Patents

OpenFlow group table selection method of flow cluster exchange routing mechanism Download PDF

Info

Publication number
CN108337168B
CN108337168B CN201810143048.6A CN201810143048A CN108337168B CN 108337168 B CN108337168 B CN 108337168B CN 201810143048 A CN201810143048 A CN 201810143048A CN 108337168 B CN108337168 B CN 108337168B
Authority
CN
China
Prior art keywords
port
time
last
packet
switch
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.)
Active
Application number
CN201810143048.6A
Other languages
Chinese (zh)
Other versions
CN108337168A (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

Images

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

本发明涉及路由交换领域,为提出实现在不改变原有软件定义网络数据平面转发机制的条件下,支持基于流簇交换的路由交换机制。为此,本发明,流簇交换路由机制OpenFlow组表选择方法,步骤如下:1)感知底层网络拓扑;2)控制器将可达路径下发到每个交换机上;3)初始化上次到达时间哈希表;4)初始化上次离开时间哈希表;5)初始化超时值;6)根据五元组计算哈希值、到达交换机的时间;7)执行下面的步骤11或执行下面的步骤8;8)执行下面的步骤9或执行下面的步骤10;9)执行下面的步骤11;10)执行下面的步骤11;11)将该包发往下一跳,执行步骤6。本发明主要应用于路由交换场合。

Figure 201810143048

The invention relates to the field of routing switching, and aims to provide a routing switching mechanism based on flow cluster switching without changing the original software-defined network data plane forwarding mechanism. Therefore, the present invention provides a method for selecting a flow cluster switching routing mechanism OpenFlow group table. The steps are as follows: 1) perceive the underlying network topology; 2) the controller sends the reachable path to each switch; 3) initializes the last arrival time Hash table; 4) Initialize the last departure time hash table; 5) Initialize the timeout value; 6) Calculate the hash value according to the quintuple, the time to arrive at the switch; 7) Perform the following step 11 or perform the following step 8 8) Perform the following step 9 or perform the following step 10; 9) Perform the following step 11; 10) Perform the following step 11; The present invention is mainly applied to the occasion of routing exchange.

Figure 201810143048

Description

OpenFlow group table selection method of flow cluster exchange routing mechanism
Technical Field
The invention relates to the field of routing switching, in particular to an OpenFlow group table selection algorithm for realizing a flow cluster (switching) routing mechanism in a software defined network.
Background
Interpretation of terms:
the software defined network is a novel network architecture, which separates the data plane and the control plane of the traditional network, thereby realizing the programmable control of the bottom layer forwarding hardware through the software platform of the integrated controller.
The OpenFlow protocol is a communication protocol between a data plane and a control plane in a software-defined network, and a controller of the control plane instructs a switch of the data plane how to forward a network packet through rules and actions defined by the OpenFlow protocol.
The flow table is a table structure similar to a conventional network routing table defined in the OpenFlow protocol, and is composed of several flow table entries. The flow table entry is composed of a rule and an action set, and if the network packet conforms to the rule defined by the flow table entry, the packet is executed with a corresponding action, such as: forwarding or modifying the source and destination IP addresses from a certain port, etc.
The group table is a special flow table defined by the OpenFlow protocol, and is composed of a plurality of group entries. Each group entry includes: a group entry identifier, a group entry type, a group entry counter, and an action bucket set. The group entry type determines the semantics of the group entry, such as: a group entry of the all type indicates that all actions in the group entry action bucket set are to be performed, while a group entry of the select type indicates that only one action in the group entry action bucket set is to be performed. The action bucket set comprises a plurality of action buckets, and each action bucket represents a processing which can be carried out on a network data packet, such as: forwarding or modifying certain fields of the packet from a certain port, etc.
Flow cluster (Flowlet) refers to a set of packets having a correlation in the same TCP flow, where the correlation is: if the time interval between any two adjacent packets arriving at the same switch is less than the predefined timeout value, the packets satisfying this condition are considered as a set, called a stream cluster.
The flow cluster switching (Flowlet switching) is a routing switching technology with flow clusters as granularity, packets belonging to the same flow cluster can be forwarded from the same port, and different flow clusters can randomly select a forwarding port. The timeout value is usually defined as the maximum value of the delay difference between multiple paths in the multi-path forwarding technique, so that the TCP reordering phenomenon is not caused.
The stream cluster switching is an important routing switching technology and is applied to the field of load balancing. Because the timeout values for distinguishing different stream clusters are set to be larger than the delay difference of any two load balancing parallel paths, the load balancing based on the stream clusters cannot cause the packet out-of-sequence, the performance of the TCP can be improved, and the throughput of the network can be improved. Meanwhile, the load balancing is realized simply by using the route switching mechanism, and extra congestion control information is not needed, such as: the congestion situation of a certain current link. The load balancing based on the stream cluster switching has self-adaptive load balancing capability, namely, the network traffic can be approximately proportionally distributed to each link according to the bandwidth of the link.
The implementation of a routing switching mechanism based on cluster switching at the hardware level generally requires a dedicated switching chip for support, such as: cisco (cisco) implemented this switch mechanism in a self-developed hardware switch. The software layer implementation is generally based on an open-source software switch OpenvSwitch or a programmable software switch P4, but such implementation generally causes the absence of other switching functions of the switch, and becomes a software switch that only supports a cluster switching routing mechanism. At present, no implementation scheme which can perfectly interface with the software defined network exists.
The OpenFlow protocol defined group table in the software defined network provides us with additional forwarding capabilities, such as: we can implement support for multicast routing using group tables of all type. This forwarding capability provided by the group table does not disrupt other forwarding mechanisms supported by the OpenFlow protocol, such as: and (4) a forwarding mode based on rule matching of the flow table entry. The routing forwarding mechanism expanded through the group table cannot influence the original forwarding mechanism of the OpenFlow protocol, and belongs to a supplement to the routing forwarding mechanism in the OpenFlow protocol. The invention realizes the stream cluster exchange by the group table selection algorithm, which is a perfect solution for realizing the stream cluster exchange routing mechanism in the software defined network.
Disclosure of Invention
In order to overcome the defects of the prior art, the invention aims to provide an OpenFlow group table selection algorithm which can support a routing switching mechanism based on cluster switching under the condition of not changing the original software-defined network data plane forwarding mechanism. Therefore, the invention adopts the technical scheme that the method for selecting the OpenFlow group table of the cluster exchange routing mechanism comprises the following steps:
1) a controller of a software defined network control plane senses the topology of an underlying network and calculates a plurality of reachable paths from source network equipment to target network equipment;
2) the controller takes each reachable port of the switch on the reachable path as an action bucket of a group table entry and issues the action bucket to each switch in the form of the group table entry;
3) initializing last arrival time hash table: the hash table records the time of the current last packet of each flow arriving at the switch;
4) initializing last departure time hash table: the hash table records the output port of the current last packet of each flow;
5) initialization timeout value timeout: the timeout value is used for distinguishing different stream clusters and is larger than the maximum delay difference of a plurality of load balancing parallel paths;
6) when a port of the switch receives a data packet, calculating the hash value hash _ key of the packet according to a quintuple comprising an ingress port, a source IP address, a destination IP address, a source port and a destination port, and recording the arrival time of the packet at the switch, namely the arrival time of the packet at the switch.
7) If the last arrival time hash table does not have a record with the keyword being the hash _ key, adding the record arrival corresponding to the keyword hash _ key into the last arrival time hash table; randomly selecting a port indicated by an action bucket from the action bucket set of the group table item corresponding to the packet as an output port output _ port, adding a record output _ port corresponding to the keyword hash _ key to a last leaving time hash table, and executing the following step 11, otherwise, executing the following step 8;
8) obtaining a last time record last _ time of the arrival at the switch of the last packet of the flow to which the packet belongs, corresponding to the key hash _ key, from the last arrival time hash table, updating the record corresponding to the key hash _ key in the last departure time hash table as the arrival time, and if the arrival time arrive _ time-the last time record last _ time of the arrival at the switch of the packet is greater than or equal to timeout, executing the following step 9; otherwise, the following step 10 is executed;
9) randomly selecting a port indicated by a bucket of the action bucket from the action bucket set of the group table item corresponding to the packet as an output port output _ port, adding a record output _ port corresponding to the keyword hash _ key to the last output port last _ output _ port hash table, and executing the following step 11;
10) obtaining an egress port record of a previous packet of the flow to which the packet belongs corresponding to the key hash _ key from the last _ output _ port hash table as an output _ port, and executing the following step 11;
11) the packet is sent from the port with port number output _ port of the switch to the next hop, and step 6 is performed.
The specific steps in one example are:
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 receiving and sending ends, which are:
Figure BDA0001578113560000031
and
Figure BDA0001578113560000032
2) the software defined network controller issues the group entries to each switch, which issues to switch S1 the group entries as follows:
group_id=1,type=select,selection_method=flowlet_switching,bucket=output:2,bucket=output:3
3) initialize last _ array _ time hash table: the hash table records the time of the current last packet of each flow arriving at the switch;
4) initializing last _ outout _ port hash table: the hash table records the output port of the current last packet of each flow;
5) initialization timeout value timeout: the timeout value is used for distinguishing different stream clusters and is larger than the maximum delay difference of a plurality of load balancing parallel paths;
6) the data packet sent from the sender to the receiver is processed as follows on the switch S1 according to the group table selection algorithm
6.1.1) the switch S1 receives the first data packet from the sender, and calculates the hash value of the packet as hash _ key according to the quintuple, where the quintuple is: the ingress port is 1, the source IP address is 10.0.0.1, the destination IP address is 10.0.0.2, the source port is 3301, and the destination port is 3302;
6.1.2) there is no record with the key of 100 in the last _ annular _ time hash table, add the record annular _ time of the key 100 to the last _ annular _ time hash table as 867674 us. The following step 6.1.3 is performed;
6.1.3) randomly selecting a port indicated by an action bucket from the action bucket set of the group table item matched with the packet as an output port output _ port equal to 2, adding a record output _ port equal to 2 corresponding to the keyword 100 into a last _ output _ port hash table, and sending the packet from port No. 2 of the switch;
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 at the switch, the arrival time of the packet at the switch;
6.2.2) obtaining a record of time that the key 100 corresponds to the first packet arriving at the switch, namely, last _ time 867674us from the last _ arrival _ time hash table, and updating the record corresponding to the key 100 in the last _ arrival _ time hash table to be equal to arrival _ time 868125 us; since this is true for the ambient _ time-last _ time of 451<500, the following step 6.2.3 is performed;
6.2.3) obtains the egress port record output _ port of the first packet corresponding to the key 100 from the last _ output _ port hash table as 2. The packet is sent out from port number 2 of the switch. (ii) a
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 arive _ time of the packet at the switch;
6.3.2) get the record of the time that the key 100 corresponds to the second packet arriving at the switch from the last _ arrival _ time hash table. Updating a record corresponding to the keyword 100 in the last _ ambient _ time hash table as ambient _ time; since the arrival _ time-last _ time of 512>500 holds, the following step 6.3.3 is performed;
6.3.3) randomly selecting a port indicated by one action bucket from the action bucket set of the group table entry matched with the packet as an output port output _ port equal to 3, and adding a record output _ port equal to 3 corresponding to the keyword 100 into a last _ output _ port hash table; the packet is sent out from port number 3 of the switch.
The invention has the characteristics and beneficial effects that:
no matter a special hardware switching chip is used or a routing mechanism based on the current software switch solution is realized based on the flow cluster switching, the forwarding mode of the switch becomes single, so that the switch cannot be applied to a software defined network and cannot well support the OpenFlow protocol.
In order to solve the above problems, the present invention provides support for a flow cluster switching routing mechanism by expanding an OpenFlow protocol group table selection algorithm on the premise of not changing a normal forwarding mechanism of an OpenFlow protocol, and is an incremental implementation method, so that a software defined network is made possible by using a routing switch based on flow cluster switching.
Description of the drawings:
fig. 1 is a schematic flow chart of an OpenFlow group table selection algorithm supporting a cluster switch routing switch mechanism.
Figure 2 is a software defined network topology.
Detailed Description
The invention aims to provide an OpenFlow group table selection algorithm, which can realize a routing switching mechanism supporting flow cluster switching in a software-defined network data plane.
The technical scheme adopted by the invention for solving the technical problems is as follows:
1) a controller of a software defined network control plane senses underlying network topology and calculates a plurality of reachable paths between source network equipment and destination network equipment.
2) The controller takes each reachable port of the switch on the reachable path as an action bucket of the group table entry, and issues the action bucket to each switch in the form of the group table entry.
3) Initialize last _ array _ time hash table: the hash table records the time at which the current last packet of each flow arrives at the switch.
4) Initializing last _ outout _ port hash table: the hash table records the egress port of the current last packet of each flow.
5) Initialization timeout value timeout: the timeout value is used to distinguish between different flowlets and is typically greater than the maximum delay difference for load balancing multiple parallel paths.
6) When a port of the switch receives a data packet, calculating the hash value of the packet as a hash _ key according to the quintuple (an ingress port, a source IP address, a destination IP address, a source port and a destination port), and recording the arrival time of the packet at the switch, namely the arrival time of the packet at the switch.
7) If the record with the key being the hash _ key does not exist in the last _ annular _ time hash table, adding the record annular _ time corresponding to the key hash _ key into the last _ annular _ time hash table. A port indicated by one action bucket is randomly selected from the action bucket set of the group table item corresponding to the packet as an output port output _ port, a record output _ port corresponding to the keyword hash _ key is added to a last _ output _ port hash table, and the following step 11 is executed. Otherwise, the following step 8 is performed.
8) And obtaining a last _ time record of the arrival time of the last packet of the flow to which the packet belongs, corresponding to the key hash _ key, at the switch from the last _ array _ time hash table. And updating the record corresponding to the key hash _ key in the last _ ambient _ time hash table to be ambient _ time. If the ambient _ time-last _ time ≧ timeout holds, execute the following step 9; otherwise, the following step 10 is performed.
9) A port indicated by one action bucket is randomly selected from the action bucket set of the group table item corresponding to the packet as an output port output _ port, a record output _ port corresponding to the keyword hash _ key is added to a last _ output _ port hash table, and the following step 11 is executed.
10) And obtaining an output port record of the last packet of the flow to which the packet belongs corresponding to the key hash _ key from the last _ output _ port hash table as an output _ port. The following step 11 is performed.
11) The packet is sent from the port with port number output _ port of the switch to the next hop, and step 6 is performed.
The technical solution of the present invention will be described in detail with reference to the following embodiments. The OpenFlow group table selection algorithm of the present invention has a flow diagram as shown in fig. 1, and has the following specific operation steps:
1) assuming that the underlying network topology is as shown in FIG. 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), which are:
Figure BDA0001578113560000051
and
Figure BDA0001578113560000052
2) the software defined network controller issues the group entries to each switch, which issues to switch S1 the group entries as follows:
group_id=1,type=select,selection_method=flowlet_switching,bucket=output:2,bucket=output:3
3) initialize last _ array _ time hash table: the hash table records the time when the current last packet of each flow arrives at the switch
4) Initializing last _ outout _ port hash table: the hash table records the egress port of the current last packet of each flow.
5) Initialization timeout value timeout: the timeout value is used to distinguish different clusters of streams and is generally greater than the maximum delay difference of the load balancing multiple parallel paths. In this example, it is assumed that the timeout value is 500 us.
6) Packets sent by the sender to the recipient (the first three packets are taken as an example) are processed as follows at switch S1 according to the group table selection algorithm (the processing flow at other switches is similar).
6.1.1) the switch S1 receives the first packet from the sender, and calculates the hash value of the packet as hash _ key according to the quintuple (ingress port is 1, source IP address is 10.0.0.1, destination IP address is 10.0.0.2, source port is 3301, destination port is 3302), and assumes that hash _ key is 100. The arrival time of the packet at the switch, arive _ time, is recorded as 867674 us.
6.1.2) there is no record with the key of 100 in the last _ annular _ time hash table, add the record annular _ time of the key 100 to the last _ annular _ time hash table as 867674 us. The following step 6.1.3 is performed.
6.1.3) randomly selecting a port indicated by one action bucket (bucket: output:2) from the group table entry action bucket set (bucket: output:2, bucket: output:3) matched by the packet as an output port output _ port: 2, and adding a record output _ port corresponding to the key 100 to a last _ output _ port hash table. The packet is sent out from port number 2 of the switch.
6.2.1) switch S1 receives the second packet from the sender, and calculates the hash value of the packet as 100 according to the quintuple (ingress port is 1, source IP address is 10.0.0.1, destination IP address is 10.0.0.2, source port is 3301, destination port is 3302). The arrival time of the packet at the switch, arive _ time, is recorded as 868125 us.
6.2.2) obtain the time record of the arrival of the first packet at the switch, corresponding to key 100, last _ time 867674us from the last _ arrival _ time hash table. The record corresponding to the key 100 in the last _ innovative _ time hash table is updated to be innovative _ time 868125 us. Since this holds true for the ambient _ time-last _ time of 451<500, the following step 6.2.3 is performed.
6.2.3) obtains the egress port record output _ port of the first packet corresponding to the key 100 from the last _ output _ port hash table as 2. The packet is sent out from port number 2 of the switch.
6.3.1) switch S1 receives the third packet from the sender, and calculates the hash value of the packet as 100 according to the quintuple (ingress port is 1, source IP address is 10.0.0.1, destination IP address is 10.0.0.2, source port is 3301, destination port is 3302). The arrival time of the packet at the switch, arive _ time, is recorded as 868637 us.
6.3.2) obtain from the last _ arrival _ time hash table the time record of the arrival of the second packet at the switch, which corresponds to key 100, 868125 us. The record corresponding to the key 100 in the last _ innovative _ time hash table is updated to be innovative _ time 868637 us. Since the arrival _ time-last _ time ═ 512>500 holds, the following step 6.3.3 is performed.
6.3.3) randomly selects a port indicated by one action bucket (bucket: output:3) from the group table entry action bucket set (bucket: output:2, bucket: output:3) matched by the packet as an output port output _ port:3, and adds the record output _ port:3 corresponding to the key 100 to the last _ output _ port hash table. The packet is sent out from port number 3 of the switch.

Claims (2)

1.一种流簇交换路由机制OpenFlow组表选择方法,其特征是,步骤如下:1. a flow cluster switching routing mechanism OpenFlow group table selection method, is characterized in that, step is 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 takes each reachable outgoing port of the switch on the reachable path as the action bucket of the group entry, and delivers 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 current 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 timeout value timeout: This timeout value is used to distinguish different flow clusters, and is greater than the maximum delay difference of multiple parallel paths for 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 ingress port, the source IP address, the destination IP address, the source port and the destination port, and record the arrival of the packet to the switch. timearrive_time; 7)如果上次到达时间哈希表中不存在关键字为hash_key的记录,则将关键字hash_key对应的记录到达添加到上次到达时间哈希表中;从该包对应的组表项的动作桶集中随机选择一个动作桶指示的端口作为出端口output_port,将关键字hash_key对应的记录output_port添加到上次离开时间哈希表中,并执行下面的步骤11,否则,执行下面的步骤8;7) If there is no record with the keyword hash_key in the last arrival time hash table, then add the record corresponding to the keyword hash_key to the last arrival time hash table; from the action of the group entry corresponding to the package Randomly select a port indicated by the 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 perform the following step 11, otherwise, perform the following step 8; 8)从上次到达时间哈希表中获得关键字hash_key对应的该包所属流的上一个包到达交换机的时间记录last_time,更新上次离开时间哈希表中关键字hash_key对应的记录为到达时间,如果到达时间arrive_time减去上一个包到达交换机的时间last_time后得到的时间值大于等于timeout成立,则执行下面的步骤9;否则,执行下面的步骤10;8) Obtain the time record last_time when the last packet of the flow to which the packet belongs, corresponding to the keyword hash_key, arrives at the switch from the hash table of the last arrival time, and update the record corresponding to the keyword hash_key in the hash table of the last departure time as the arrival time , if the time value obtained after the arrival time arrive_time minus the time last_time of the last packet arriving at the switch is greater than or equal to the timeout, then execute the following step 9; otherwise, execute the following step 10; 9)从该包对应的组表项的动作桶集中随机选择一个动作桶指示的端口作为出端口output_port,将关键字hash_key对应的记录output_port添加到上一包出端口last_output_port哈希表中,并执行下面的步骤11;9) Randomly select a port indicated by the action bucket as the output port output_port from the action bucket set of the group entry corresponding to the package, add the record output_port corresponding to the keyword hash_key to the last_output_port hash table of the output port of the previous package, and execute Step 11 below; 10)从last_output_port哈希表中获得关键字hash_key对应的该包所属流的上一包的出端口记录作为output_port,执行下面的步骤11;10) from the last_output_port hash table, obtain the outgoing port record of the previous package of the flow to which this package corresponding to the keyword hash_key belongs as output_port, and execute the following step 11; 11)将该包从交换机的端口号为output_port的端口发往下一跳,执行步骤6。11) Send the packet from the port whose port number is output_port to the next hop, and go to step 6. 2.如权利要求1所述的流簇交换路由机制OpenFlow组表选择方法,其特征是,具体步骤是:2. flow cluster switching routing mechanism OpenFlow group table selection method as claimed in claim 1, is characterized in that, concrete steps are: 1)底层网络拓扑中,TCP发送端为IP:10.0.0.1,Port:3301,TCP接收端为IP:10.0.0.2,Port:3302,收发端之间的可达路径有两条,分别为:
Figure FDA0002669210620000011
Figure FDA0002669210620000012
1) In the underlying network topology, the TCP sender is IP: 10.0.0.1, Port: 3301, the TCP receiver is IP: 10.0.0.2, Port: 3302, and there are two reachable paths between the sender and receiver, which are:
Figure FDA0002669210620000011
and
Figure FDA0002669210620000012
2)软件定义网络控制器将组表项下发到每个交换机上,下发到交换机S1组表项如下所示:2) The software-defined network controller sends the group entry to each switch, and the group entry 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 stream; 5)初始化超时值timeout:该超时值用于区分不同的流簇,要大于负载均衡多条并行路径的最大延时差;5) Initialization timeout value timeout: This timeout value is used to distinguish different flow clusters, and is greater than the maximum delay difference of multiple parallel paths for load balancing; 6)发送端发往接受端的数据包在交换机S1上根据组表选择算法进行以下处理6) The data packets sent by the sender to the receiver are processed as follows 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) Switch S1 receives the first data packet from the sender, and calculates the hash value of the packet according to the quintuple as hash_key. The quintuple is: ingress 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 the keyword 100 in the last_arrive_time hash table, then add the record arrival_time=867674us corresponding to the keyword 100 into the last_arrive_time hash table, and perform the following step 6.1.3; 6.1.3)从该包匹配的组表项动作桶集中随机选择一个动作桶指示的端口作为出端口output_port=2,将关键字100对应的记录output_port=2添加到last_output_port哈希表中,将该包从交换机的2号端口发出;6.1.3) Randomly select a port indicated by the action bucket as the output port output_port=2 from the group table entry action bucket set matched by the packet, and add the record output_port=2 corresponding to the keyword 100 to the last_output_port hash table, and this 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 sender, calculates the hash value of the packet according to the quintuple, and records the arrival_time when the packet arrives at the switch; 6.2.2)从last_arrive_time哈希表中获得关键字100对应第一个包到达交换机的时间记录last_time=867674us,更新last_arrive_time哈希表中关键字100对应的记录为arrive_time=868125us;因为arrive_time减去last_time等于451,451小于500成立,所以执行下面的步骤6.2.3;6.2.2) Obtain the time record last_time=867674us corresponding to the arrival of the first packet to the switch by keyword 100 from the last_arrive_time hash table, and update the record corresponding to keyword 100 in the last_arrive_time hash table to arrive_time=868125us; because arrive_time minus last_time Equal to 451, 451 is less than 500, so perform 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, and send the packet from port 2 of the switch; 6.3.1)交换机S1接收到发送端的第三个数据包,根据五元组计算该包的hash值为,记录该包到达交换机的时间arrive_time;6.3.1) Switch S1 receives the third data packet from the sender, calculates the hash value of the packet according to the quintuple, and records the arrival_time when the packet arrives at the switch; 6.3.2)从last_arrive_time哈希表中获得关键字100对应第二个包到达交换机的时间记录,更新last_arrive_time哈希表中关键字100对应的记录为arrive_time;因为arrive_time减去last_time等于512,512大于500成立,所以执行下面的步骤6.3.3;6.3.2) Obtain the time record of the second packet arriving at the switch corresponding to the keyword 100 from the last_arrive_time hash table, and update the record corresponding to the keyword 100 in the last_arrive_time hash table to arrive_time; because arrival_time minus last_time is equal to 512, 512 is greater than 500 is established, so perform 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 the action bucket as the output port output_port=3 from the set of group entry action buckets matched by the packet, and add the record output_port=3 corresponding to the keyword 100 into the last_output_port hash table; The packet is sent from port 3 of the switch.
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 CN108337168A (en) 2018-07-27
CN108337168B true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110061929B (en) * 2019-03-10 2021-12-28 天津大学 Data center load balancing method for asymmetric network
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

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9712439B2 (en) * 2013-02-28 2017-07-18 Texas Instruments Incorporated Packet processing match and action unit with configurable memory allocation

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Also Published As

Publication number Publication date
CN108337168A (en) 2018-07-27

Similar Documents

Publication Publication Date Title
US12106160B2 (en) First hop gateway redundancy in a network computing environment
US9270598B1 (en) Congestion control using congestion prefix information in a named data networking environment
Lan et al. Dynamic load-balanced path optimization in SDN-based data center networks
WO2020232185A1 (en) Slice-based routing
US8798072B2 (en) Multicast load balancing
Carpio et al. DiffFlow: Differentiating short and long flows for load balancing in data center networks
US9059922B2 (en) Network traffic distribution
CN104704779A (en) Method and apparatus for accelerating forwarding in software-defined networks
US10812373B2 (en) Data network
US7613201B1 (en) Stacked network switch using resilient packet ring communication protocol
CN101789949B (en) Method and router equipment for realizing load sharing
CN108337168B (en) OpenFlow group table selection method of flow cluster exchange routing mechanism
US9654382B2 (en) Use of alternate paths in forwarding of network packets
US7606230B1 (en) Link aggregation for routed ports
CN111711565A (en) Multi-path routing method for high-speed interconnection dragonfly+ network
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
Yu et al. A layer 2 multipath solution and its performance evaluation for Data Center Ethernets
Maksić Two-phase load balancing for data center networks using OpenFlow
Jia et al. A scalable source multipath routing architecture for datacenter networks
He et al. Packet-based load-balancing in fat-tree based data center networks
Khan et al. Performance Analysis of Internet Protocol version 4 (IPv4) and Internet Protocol version 6 (IPv6) over MPLS
WO2024137282A1 (en) Method and apparatus for telemetry monitoring of bgp prefixes in a network topology

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