CN105743804B - Data flow control method and system - Google Patents

Data flow control method and system Download PDF

Info

Publication number
CN105743804B
CN105743804B CN201610079738.0A CN201610079738A CN105743804B CN 105743804 B CN105743804 B CN 105743804B CN 201610079738 A CN201610079738 A CN 201610079738A CN 105743804 B CN105743804 B CN 105743804B
Authority
CN
China
Prior art keywords
data flow
flow table
switch
data
match
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
CN201610079738.0A
Other languages
Chinese (zh)
Other versions
CN105743804A (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.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
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 Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN201610079738.0A priority Critical patent/CN105743804B/en
Publication of CN105743804A publication Critical patent/CN105743804A/en
Application granted granted Critical
Publication of CN105743804B publication Critical patent/CN105743804B/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The invention relates to the field of communication, and discloses a data flow control method and a data flow control system. The method comprises the following steps: calculating the data flow table request quantity of each switch node in the SDN; and optimizing the weight of each link in the SDN according to the aggregation cost of each switch node and the data flow table request quantity of each switch node so as to balance the data flow of each switch node. The invention realizes the load balance among the switches in the network by optimizing the routing of the network data flow, fully utilizes the limited flow table processing capacity and the flow table cache space and improves the utilization efficiency of network resources.

Description

Data flow control method and system
Technical Field
The present invention relates to the field of networks, and in particular, to a method and a system for controlling data flow.
Background
In the software defined network SDN, the switching device performs high-speed data forwarding according to the flow table on the data plane, and the controller is responsible for performing operations such as routing calculation, flow table generation and maintenance on the control plane, so that network resources can be more reasonably allocated. SDN is intended to enable the definition and open interface of network interconnection and network behavior, thereby supporting the innovation of various new network architectures and new services in the future. Different from the traditional TCP/IP waistline architecture, the SDN migrates the control function from the traditional distributed network equipment to the controllable computing equipment, and finally realizes the automatic control function of the network through an open programmable software mode.
In an SDN network, when a data flow arriving at a switch does not have a matching flow entry, a first packet of the data flow is sent to a controller. The controller calculates the forwarding path and sends the forwarding path to the corresponding switch. A certain time is required for the switch to install the forwarding rule, and when the data volume is large, a bottleneck may occur at both the switch and the controller due to the limitation of the flow table installation speed of the switch and the flow table processing capability of the controller.
In order to solve the problem, the prior art provides the following technical solutions:
by using clustering or fuzzy matching methods to classify data streams, the controller can process one class of data streams at the same time, rather than a single stream, to reduce the burden. The more relaxed the data stream matching rules are, e.g., using a mask with fewer bits, the less types are partitioned and the less burdened the controller. However, when the technical solution uses a shorter subnet mask for data flow matching, the granularity of the data flow in the network increases. The accuracy of the network administrator to control the data flow is reduced, and the operations such as accurate data filtering, access control and the like are difficult to perform. Meanwhile, the distribution granularity of resources such as links, storage space and the like in the network is increased, and the efficient utilization of the network resources cannot be realized.
Dynamic flow adjustment policies that focus on "elephant flows" through the switch. The controller estimates a data transmission request for a flow exceeding a specific rate, calculates an optimal path, and installs a forwarding flow entry based on the specific flow. The technology needs the switch to count each flow in real time, detect and analyze whether the characteristics of the elephant flow are met. If a "elephant flow" is found, the controller is notified to do targeted processing. In the case of a heavy network load, these real-time monitoring and additional computational efforts will further burden the switches and controllers, which is not beneficial to improving network performance.
Disclosure of Invention
The invention aims to provide a data flow control method and a data flow control system, which are used for balancing data flow of each switch in an SDN.
In order to achieve the above object, the present invention provides a data flow control method including: calculating the data flow table request quantity of each switch node in the SDN; optimizing the weight of each link in the SDN according to the aggregation cost of each switch node and the data flow table request quantity of each switch node so as to balance the data flow of each switch node; wherein the aggregation cost of the nth switch
Figure GDA0002226867550000021
Conv(Matchi)=Fup(Matchb)/Fup(Matchi) Load (n) is the data forwarding rate of the nth switch, Loadi(n) data flow table matching for the nth switchiData forwarding rate of (F)up(Matchb) Match for adopting reference data flow table matching modebData flow table request quantity of (F)up(Matchi) For adopting a matching mode MatchiN is an integer, i is an integer, γbForwarding the aggregation cost of 1-bit data for the preset switch.
Preferably, Load is calculated according to the following equationi(n):
Figure GDA0002226867550000031
Wherein MatchPMatch for the most accurate data flow tableKThe most loose data flow table matching mode is provided, P is an integer, K is more than or equal to P +1, Fup(n) is the upper limit of the data flow table request amount of the nth switch, Fup(i) For flow table requests within the timeout T of the data flow table, Fi(n) number of data streams forwarded by nth switch within timeout T, FsizeIs the average size of a single data stream.
Preferably, the data flow table request volume of the nth switch node
Figure GDA0002226867550000032
α thereinbFor the nth switch in unit time, adopting reference matching mode MatchbThe ratio of the data flow table request volume to the total number of data flows forwarded by the switch.
Preferably, optimizing the weight of each link in the SDN according to the aggregation cost of each switch node and the data flow table request amount of each switch node includes optimizing the weight of each link in the SDN according to the aggregation cost of each switch node and by taking the data flow table request amount of each switch node less than or equal to the data flow table request amount upper limit UB of each switch node as a boundary condition.
Preferably, optimizing the weight of each link in the SDN according to the aggregation cost of each switch node and the data flow table request amount of each switch node comprises optimizing the weight of each link in the SDN according to the following formula:
Figure GDA0002226867550000033
preferably, optimizing the weight of each link in the SDN according to the aggregation cost of each switch node and the data flow table request amount of each switch node comprises optimizing the weight of each link in the SDN by solving a shortest path through a genetic algorithm.
Accordingly, the present invention provides a data flow control system comprising switch nodes in a software defined network, SDN, and a network controller, the network controller comprising: the calculation module is used for calculating the data flow table request quantity of each switch node in the software defined network SDN; the balancing module is used for optimizing the weight of each link in the SDN according to the aggregation cost of each switch node and the data flow table request quantity of each switch node so as to balance the data flow of each switch node; wherein the aggregation cost of the nth switch
Figure GDA0002226867550000041
Φ(Matchi)=γbConv(Matchi),Conv(Matchi)=Fup(Matchb)/Fup(Matchi) Load (n) is the data forwarding rate of the nth switch, Loadi(n) data flow table matching for the nth switchiData forwarding rate of (F)up(Matchb) Match for adopting reference data flow table matching modebData flow table request quantity of (F)up(Matchi) For adopting a matching mode MatchiN is an integer, i is an integer, γbForwarding the aggregation cost of 1-bit data for the preset switch.
Preferably, the calculation module calculates Load according to the following formulai(n):
Figure GDA0002226867550000042
Wherein MatchPMatch for the most accurate data flow tableKThe most loose data flow table matching mode is provided, P is an integer, K is more than or equal to P +1, Fup(n) is the upper limit of the data flow table request amount of the nth switch, Fup(i) For flow table requests within the timeout T of the data flow table, Fi(n) number of data streams forwarded by nth switch within timeout T, FsizeIs the average size of a single data stream.
Preferably, the data flow table request volume of the nth switch node
Figure GDA0002226867550000043
α thereinbFor the nth switch in unit time, adopting reference matching mode MatchbThe ratio of the data flow table request volume to the total number of data flows forwarded by the switch.
Preferably, the balancing module is further configured to optimize a weight of each link in the SDN according to the aggregation cost of each switch node and by using a data flow table request amount of each switch node smaller than or equal to the data flow table request amount upper limit UB of each switch node as a boundary condition.
Preferably, the balancing module is further configured to optimize the weight of each link in the SDN according to the following formula:
Figure GDA0002226867550000051
preferably, the balancing module is further configured to optimize the weight of each link in the SDN by solving the shortest path through a genetic algorithm.
The method starts from the point of load balance of a switch and a controller in the SDN, takes the node performance as a main limiting factor, and carries out flow engineering through link weight adjustment. The invention realizes load balance among the switches in the network by optimizing the routing of the network data flow, fully utilizes the limited flow table processing capacity and flow table cache space, improves the utilization efficiency of network resources, avoids or reduces the overload phenomena of the switches and the controller under the heavy load scene of sudden flow and the like of the network, improves the network throughput, reduces the end-to-end time delay of the data packet, and optimizes the network performance.
Additional features and advantages of the invention will be set forth in the detailed description which follows.
Drawings
The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and together with the description serve to explain the principles of the invention and not to limit the invention. In the drawings:
figure 1 is a schematic flow engineering diagram in an SDN;
FIG. 2 is a flow chart of a genetic algorithm solving a route optimization problem;
FIG. 3 is a diagram of data flow table request quantity and average matching accuracy;
FIG. 4 is a graphical representation of cost function versus load amount;
fig. 5 is a schematic diagram of a network controller.
Description of the reference numerals
100 calculation module 200 equalization module
Detailed Description
The following detailed description of embodiments of the invention refers to the accompanying drawings. It should be understood that the detailed description and specific examples, while indicating the present invention, are given by way of illustration and explanation only, not limitation.
In the SDN network, when data arrives at a switch, the switch searches a routing table entry in a data flow table cache of the switch. If there is a matching data flow entry, then the operation is performed according to the corresponding action, for example, forwarding to a specific port. If there is no match, the first packet is sent to the controller. And the controller calculates a forwarding path according to the global view and sends the forwarding path to all the switches related to the path. For the data stream or the subsequent data packet of the same kind of data stream, each switch in the forwarding path will forward according to the installed data stream table entry. The data flow table entry in the data flow table has a certain survival time, and the overtime data flow table entry is deleted.
When processing is performed according to the data flow table, the data packet is matched and selected with the data flow table entry in the data flow table. The matching Fields (Match Fields) can be extracted from the data packet, and include 12 Fields in total, including source MAC address, destination MAC address, Vlan id, Vlan priority, source IP address, destination IP address, source port number and destination port number of TCP/UDP, and the like. Each field may be deterministic or arbitrary, or an exact match may be achieved by masking. The data flow tables of the 2-4 layers are accurately matched, so that the management of the network is simplified and flexible.
But also face greater challenges due to the limited performance of the controllers and switches. For example, as the number of switches increases, the amount of data flow table requests to the controller increases exponentially. The current capacity of a NOx controller to process packet-in messages is 30K/s. Centralized control of a single controller can cause a performance bottleneck in the system. This allows the amount of data flow table requests sent by the switch to the controller to be limited, typically to no more than 60-330 per second. Under the limitation of a certain updating quantity of the data flow table, the larger the data amount forwarded by the switch is, the more the data flow table request quantity is required. In order not to exceed the performance limits of the controller, the amount of data flow table requests needs to be reduced.
In addition, the time delay of about 10ms is needed for installing each data flow table for the switch, and the performance limit of updating the data flow table entry is 800-. The data flow table in the switch is divided into a linear table and a hash table, wherein the linear table is searched according to wildcards, the traversal mode is adopted, the time complexity is O (n), the hash table is matched according to the determined matching value, namely the 12 tuples in the data flow table, and the time complexity is O (1). Since the OpenFlow device needs to support such a data flow table forwarding manner for multi-tuple lookup, a network chip supporting the architecture is also needed. While existing TCAM technology can support this feature, large capacity TCAMs are extremely expensive, making data flow table space limited. The data flow table capacity of the linear table is generally 100, and the data flow table capacity of a single hash table is 8K, 64K or 128K. In practical applications, it is difficult to cope with flexible and large-scale network traffic.
For an SDN network, if the routing plan of a data flow is not reasonable enough, it is inevitable that some controllers may have too large load as the amount of data requests in the network increases. At this time, the data flow table cannot be requested and updated in time. Resulting in network congestion, increased data transmission latency, decreased network throughput and QoS. If the problem is solved only by reducing the matching accuracy of the data flow table, the flow control performance of the network is influenced. Therefore, a large number of switches are still in a light load state, and the waste of network resources such as forwarding capacity and cache space is caused. As shown in fig. 1, there are switches a-E, and in (a) of fig. 1, overload of switch a, switch B, and switch C is caused due to excessive data requests of a- > B- > C. In (b) of fig. 1, traffic engineering is performed to change the routing of a part of traffic to a- > D- > E- > C, so as to achieve load balancing between switches.
The data flow table matching modes with different accuracies will significantly affect the data flow table request amount and the data flow table space usage amount of the switch. The invention firstly defines the matching accuracy of the data flow table entry. The matching field of the data flow table entry may include a total of 12 fields, such as ethernet source, destination address, IP source, destination address, etc. In the present invention, mainly 3 matching entries of IP source address (src), IP destination address (dst) and destination port number (port) are considered. Different subnet masks combine different matching accuracies. As shown in the following table, the following 4 data flow table matching methods and matching accuracy thereof are defined.
Table data flow table matching mode and precision table
Figure GDA0002226867550000081
When the number of network segments or hosts connected by the switch is increased, the network flow fluctuation is large, or the network is initialized, the number and the types of data flows in the network are increasedIn addition, the probability that the data stream cannot be matched with the cache data stream table in the switch is increased, and the switch needs to send a large amount of packet-in messages and request the data stream table from the controller. The data flow table request quantity F of all connected switches is limited due to the limited processing capacity of the controller to the packet-inupThere is an upper limit, Fup≤UB。
As the amount of data forwarded by the switch increases, the more data flow table requests are required. In order to not exceed the limit of the number of data flow table requests, a matching mode with a shorter mask length must be adopted. At this point, the controller's control over the data flow in the network and flexibility in management is reduced. In order to reflect the benefits brought by the accurate matching, the convergence cost of the defined flow is in direct proportion to the convergence capability of the flow by the matching mode.
The reference matching mode can be determined according to the traffic condition in the network and the performance of the switch. For example, the reference matching mode of the access switch can be selected as/32 src +/32dst + port, and the reference matching mode of the core switch can be selected as/24 dst +/24src + port. The reference matching mode can be understood as the most accurate matching degree that all data flows can reach under the condition of the minimum flow according to the flow statistical data of the switch.
When the average speed of the forwarding data flow of the switch is set to be F data flows per second, a reference matching mode Match is adoptedbThe requested amount of the data flow table is Fup(Matchb)=αbF, defining the convergence cost of 1-bit data forwarded by the switch at the moment as gammabAnd different matching patterns MatchiThe convergence capacity of the convection is
Conv(Matchi)=Fup(Matchb)/Fup(Matchi)
By using MatchiThe cost of convergence in forwarding 1-bit data is
Φ(Matchi)=γbConv(Matchi)
Setting N switch nodes in the network, wherein the total data forwarding rate of the nth switch is load (N) (Mbps), and the Match is adoptediThe data forwarding rate of the matching mode is Loadi(n) (Mbps), then
Figure GDA0002226867550000091
Next, given Load (n), a matching scheme Load is calculatedi(n)。
Let the most loose matching mode of data stream be MatchKThe maximum data amount that the switch can forward is MaxLoadK. To achieve matching as accurately as possible, MatchKThe minimum of the following conditions should be satisfied.
Figure GDA0002226867550000092
The most accurate Match which can be achieved by the data flow forwarded by the switch is set as MatchP。Loadi(n) the data traffic of the switch n adopting the ith matching mode; MaxLoadiThe maximum flow load which can be processed by the switch is realized under the condition that the flow table request quantity does not exceed the limit by adopting the ith matching mode; i is 1,2, …, K.
(1)MaxLoadiExamples of solutions for P
Assume that the traffic monitoring data for the switch in the network is known. In the monitoring process, when the timeout time of the flow table is set to T10 s, the following analyzes the proportional relationship between the flow table request amount and the switch forwarding data amount.
As the average total load (n) of data forwarding in unit time of the switch is known to be 689.45Mbps, the total data amount forwarded in 10 seconds is
LoadT(n)=Load(n)*T=689.45Mbit/s*10s=6.8945Gbit
The average single data stream is known to be of size FsizeThe total amount of 10S forwarded data streams, i.e., F, can be found at 0.16Mbiti(n)=LoadT/Fsize6.8945Gbit/0.16Mbit 43.09K. Wherein, Fi(n) number of data streams forwarded by nth switch within timeout T, FsizeIs the average size of a single data stream.
For each matching method, the flow table request quantity F of 10S is knownup(i) Then, countQuantity of requests for flow table and F10sRatio P ofup(i)=Fup(i)/F10sAs in the following table:
type Matchi Match1 Match2 Match3 Match4
Fup(i) (Bar/second) 800 500 250 220
Pup(i) 1.86% 1.16% 0.58% 0.51%
For a switch, it is assumed that Match is adopted for alliCalculating the maximum throughput MaxLoad that can be accommodatedi(Mbps). Restriction F of update performance according to switch flow tableupIf the ratio is less than or equal to 330, then
max(Fup)=(MaxLoadi×T/Fsize)×Pup(i)=330
Obtaining by solution:
MaxLoad1=283.8Mbps
MaxLoad2=455Mbps
MaxLoad3=910Mbps
MaxLoad4=1035Mbps
for example, given that the total data forwarding rate of all ports of a certain switch is load (n) ═ 800Mbps, the data forwarding rate is determined according to the following equation
MaxLoad2<Load(n)≤MaxLoad3And resolving to obtain P-2.
Match is preferably used in the case of as exact a Match as possible2Matching (P2), and using Match in the rest part3Match (K ═ 3).
(2)Loadi(n) examples of solutions:
assuming that the total throughput is load (n) (Mbps), the matching method Match is adoptediHas a data forwarding rate of Loadi(n) then
Load(n)=Load2(n)+Load3(n)=800
The total number of data flows handled by switch 10S is
F10s(n)=Load(n)×10/0.16=50000
Wherein, Match is adoptediThe number of data streams processed is
Fi(n)=Loadi(n)×10/0.16
The total flow table update request amount is
Figure GDA0002226867550000111
According to Fup(n) is less than or equal to 330, and the following equation set is obtained
Figure GDA0002226867550000112
Obtaining by solution:
Figure GDA0002226867550000113
Figure GDA0002226867550000114
at this time, Fup(n)=330
(3) Summary Loadi(n) solution of P
The above example is abstracted, i.e. Load is calculated according to the following system of equationsi(n):
Figure GDA0002226867550000115
Wherein MatchPMatch for the most accurate data flow tableKThe most loose data flow table matching mode is provided, wherein P is an integer, and K is an integer.
When the load (n) of the switch does not exceed MaxLoadP+1When the data stream is adopted by Match, the data stream with the largest quantity is adoptedPMatching, and adopting Match for the rest partP+1And (6) matching. I.e. P is MaxLoad satisfying the equationP<Load(n)≤MaxLoadP+1Is the smallest positive integer. In the case of as exact a match as possible, K ═ min (P +1, 4); in the case of the lowest matching accuracy requirement, K is 4.
The data flow table request quantity for the switch node is estimated as:
Figure GDA0002226867550000121
at this time, the average matching accuracy of the switch N ∈ N is defined as:
Figure GDA0002226867550000122
the average match accuracy of the defined network is:
Figure GDA0002226867550000123
the invention optimizes the route by setting the weight of the link in the SDN, improves the network performance and realizes the load balance of the switch. And establishing an OSPF weight setting optimization problem model in the SDN to obtain an optimization objective function of the system.
Let G ═ N, a denote an SDN network, where N ∈ N denotes a switch in the SDN network, and a ∈ a denotes a link in the SDN network. The traffic request matrix D is an N matrix, with (s, t) e N, D for each node pairstD (s, t) represents a traffic request between the source-destination nodes. A data flow table generated by the controller determines dstHow to accomplish data transfer through switches in a network.
The traffic engineering seeks a routing rule according to a specific objective function, and maps the traffic request D to each link in the network, so that the objective function obtains an optimal value. Such as the shortest path algorithms Dijkstra and Bellman-Ford with path cost as the objective function. The algorithms are simple and convenient to operate and wide in application.
The problem of setting the link weight is to set a non-negative integer weight wa∈[1,wmax]Corresponding to each edge a ∈ A. For given link weight setting w and flow Demand matrix D, the total data forwarding quantity Load (n) and matching scheme Load of each switch can be solvedi(n)。
According to the convergence cost phi (Match)i) Defining a cost function of the switch as
Figure GDA0002226867550000124
The link weight setting problem can be expressed as: finding optimal settings
Figure GDA0002226867550000131
Wherein wi *Represents the optimal weight of the link i e 1, 2.. A,
Figure GDA0002226867550000132
so that phiOSPF(w)And minimum. Namely, the optimization objective function of the system is:
Figure GDA0002226867550000133
wherein the boundary condition is
Figure GDA0002226867550000134
(1) Access Switch (Access Switch)
The switch is located at the edge of the network and is responsible for accessing the end hosts into the network. The amount of data forwarded is typically not high enough for the link bandwidth of the connection. Because a large number of end users are connected, the types of traffic processed by the access switch are large, and the source address, the destination address, the port number and the like of the data stream are changed frequently. The situation that the switch cannot be matched with the existing flow table entry is frequent. Since the number of access switches is large, in order to reduce the load on the controller, the boundary conditions are set as follows:
Fup≤UB=330
(2) core Switch (Core Switch)
The switch is arranged in a network center and is responsible for forwarding a large amount of data, and the bandwidth of a connected link is high. Because the number of the core switches is less, the converged data flow is mainly processed, the type and the change of the flow are less, the flow table request amount is less, the boundary condition is changed into a condition of considering the time delay caused by the flow table issued by the installation controller, the time delay is installed according to the flow table items of the switches, and the boundary condition is set as follows:
Fup≤UB=1000
the data sources of the boundary conditions are performance indexes of the switch, the flow table request rate of the SDN switch is about 60-330 per second, and the flow table entry installation delay is about 10 milliseconds. When the method is applied specifically, corresponding adjustment can be carried out according to actual parameters.
In addition, the number N of switches in the access network is differentiatedAccessAnd the number of switches N in the core networkCoreAnd a corresponding cost function.
In order to optimize the above objective function, a genetic algorithm is used in the present invention, as shown in fig. 2, which is described in detail below.
In the feasible domain, each individual is encoded and represented by a different gene. For a certain generation population, the gene codes of individuals are mapped to fitness function values. Then, according to a certain selection strategy, selecting individuals with the fitness value meeting the requirements. Through inheritance, variation and selection, the optimal solution of the optimization problem is gradually approached.
Assuming that P (t) represents the t generation population, the main steps of the algorithm include:
(1) an initial population P (0) consisting of several individuals is created.
(2) In the current population, the following steps are performed in a loop until the maximum number of genetic generations is reached.
a. A fitness function value is calculated for each individual using a cost function (cost function).
b. Selecting a parent from P (t).
c. Using the selected parent individuals, a progeny population P (t +1) is formed by crossover and mutation operations.
d. And calculating the fitness function value of each individual in the offspring population, and selecting the optimal solution of the iteration process.
The following discussion is primarily directed to access switches and does not refer to core switches. The access switch is mainly responsible for accessing the user into the network. The number of access switches connected to the controller is large, for example a dozen to several tens. Let F be a single switch, taking into account the controller's capability limitations to process packet-in messagesupUB 330 per second. According to the measured data of the switch, establish Matchb=/32src+/32dst+port、γbThe convergence costs in different matching modes are given in the table below. Technicians can optimize and adjust the parameters according to the actual flow statistical data of network operation to achieve the best network performance.
Aggregation cost table for access switch matching mode
Figure GDA0002226867550000141
The access switch performance analysis is shown in figure 3.
As shown in (a) of fig. 3, when the load amount of the access switch does not exceed 283.8Mbps, the data flow table request amount increases as the load amount increases. All data streams use/32 src +/32dst + port matching with an average matching accuracy of 1. As shown in fig. 3 (b), when the load exceeds 283.8Mbps, the data flow table request amount is maintained at 330/sec by adjusting the data flow matching method. The matching accuracy gradually decreases as the matching manner gradually blurs. When the load exceeds 1035Mbps, all data flow tables adopt 24dst matching, and the average matching accuracy is 0.3.
From this, the piecewise linear function relationship between the cost function and the load capacity of the switch is further obtained as shown in fig. 4, wherein
Figure GDA0002226867550000151
Next, the optimal weight of the link is solved by using a genetic algorithm.
(1) The chromosome is encoded. To find the optimal OSPF link weight settings, the optimal solution can be represented as a discrete search field [1, wmax]AOne point of (2). By w ═<w1,w2,...,wA>Represents a weight setting scheme in which wiRepresents the weight of the link i ∈ 1, 2. One point in the search space represents one feasible solution. In order to reduce the calculation amount of the algorithm, 65535 is not used as an upper bound of the weight value, and w is usedmax=20。
(2) An initial population is created. Let initial population size NIND be 100. Wherein the first 98 individuals are search domains [1,20 ]]AThe random point in (1) is represented by a vector composed of integer elements. The link weights of the 99 th individuals are all set to 1. The 100 th individual sets the link weight in a manner inversely proportional to the link bandwidth, e.g., wi=1G/ca. When c is going toaWhen 100M, wi10; when c is going toaWhen 1000M, wi=1。
(3) And (5) evaluating individual fitness. For each feasible solution, its fitness function value is calculated. The method comprises the following specific steps:
A. and calculating the shortest path according to a Floyd algorithm, and determining the load of each switch according to the flow request in the network. The specific steps of calculating the load (N) of the switch N epsilon N are as follows
for alldst> 0do// calculating the routing Path _ st between s and t according to floyd _ Path
for all q=1,2,...,length(path_st)-1do
m1=path_st(q)m2Two end points of path _ st (q +1)// q-th path
Load(m1)=Load(m1)+dstCalculating Load of 1 st endpoint
Load(m2)=Load(m2)+dst// calculate Load of 2 nd endpoint
end
end
B. Calculating a cost function value
Figure GDA0002226867550000161
C. Calculating fitness function values
According to the phi of the individualOSPF(w)The values are linearly ordered from large to small, the position of a certain individual in the population is Pos, the population scale is Nind, and the fitness value is
Figure GDA0002226867550000162
D. And (4) parent selection. Selecting a parent from P (t). The selection should be such that individuals with a large fitness function value are more likely to participate in reproduction. Meanwhile, the selection has certain randomness so as to avoid local optimization caused by local greedy. Here, random traversal sampling is adopted, and the probability of each individual entering the next generation is equal to the proportion of the fitness value of each individual to the sum of the fitness values of the individuals in the whole population.
E. Forming a progeny population. Using the selected parent individuals, a progeny population P (t +1) is formed by crossover and mutation operations. And (3) crossing: for a pair of parents randomly selected, crossover operations are performed using discrete recombination. For each gene, the variable values that contribute to the offspring are randomly chosen by the parent with the same probability. Mutation: and for an actual value population, mutating each variable by using a given probability, and returning a new population after mutation.
F. And (C) to (E) are circularly carried out, and when the population is propagated to the maximum genetic generation number, the genetic algorithm is ended. Scheme for recording optimal link weight setting at the moment
Figure GDA0002226867550000163
After the optimal link weight is obtained, routing is preferentially carried out on data flows in the network according to the shortest path, and when the weight of each link is determined, the shortest paths between all source nodes and all destination nodes, namely the path with the minimum sum of the weight values of each link, can be calculated by using a Floyd algorithm. When the combination of the link weights is changed, the calculated shortest path is changed, the route of the data flow in the network is changed, and the traffic engineering is realized. The Floyd algorithm is briefly described below.
Setting the interface of the algorithm as floyd (d, n, s, t), wherein d is an adjacent matrix, and if a switch i is connected with a switch j (i is not equal to j), d (i, j) is the weight of a link between i and j; if not, d (i, j) ═ infinity; when i equals j, d (i, j) equals 0. n is the number of the switch nodes, and s and t are respectively the dpids of the switches at the source end and the destination end. And continuously traversing the nodes by using a floyd algorithm, updating the shortest path, and respectively storing the path cost and each hop route in a cost matrix and a route matrix, wherein the cost matrix is equal to the d matrix when being initialized.
1 for k in range(n):
2 for i in range(n):
3 for j in range(n):
4 if d[i][j]>d[i][k]+d[k][j]:
5 d[i][j]=d[i][k]+d[k][j]
6 cost[i][j]=d[i][k]+d[k][j]
7 route[i][j]=route[i][k]+">"+route[k][j][2:]
And giving the switch numbers of the source node and the destination node, and returning corresponding route and cost. Wherein route is a character string composed of a node number and a ">" symbol, for example, "1 >2> 5" indicates that a path from the source node 1 to the destination node 5 is 1-2-5. )
Accordingly, the present invention provides a data flow control system comprising switch nodes and a network controller in a software defined network, SDN. As shown in fig. 5, the network controller includes: the calculation module is used for calculating the data flow table request quantity of each switch node in the software defined network SDN; the balancing module is used for optimizing the weight of each link in the SDN according to the aggregation cost of each switch node and the data flow table request quantity of each switch node so as to balance the data flow of each switch node; wherein the cost of aggregation
Figure GDA0002226867550000181
Conv(Matchi)=Fup(Matchb)/Fup(Matchi) Load (n) is the data forwarding rate of the nth switch, Loadi(n) is data flow table matching method MatchiAmount of data forwarded, Fup(Matchb) Match for adopting reference data flow table matching modebData flow table request quantity of (F)up(Matchi) For adopting a matching mode MatchiN is an integer, i is an integer, γbForwarding the aggregation cost of 1-bit data for the preset switch. The functions of the calculation module and the equalization module substantially correspond to those of the above-described method, and are not described herein again.
The preferred embodiments of the present invention have been described in detail with reference to the accompanying drawings, however, the present invention is not limited to the specific details of the above embodiments, and various simple modifications can be made to the technical solution of the present invention within the technical idea of the present invention, and these simple modifications are within the protective scope of the present invention.
It should be noted that the various features described in the above embodiments may be combined in any suitable manner without departing from the scope of the invention. The invention is not described in detail in order to avoid unnecessary repetition.
In addition, any combination of the various embodiments of the present invention is also possible, and the same should be considered as the disclosure of the present invention as long as it does not depart from the spirit of the present invention.

Claims (10)

1. A method of data flow control, the method comprising:
calculating the data flow table request quantity of each switch node in the SDN;
optimizing the weight of each link in the SDN according to the aggregation cost of each switch node and the data flow table request quantity of each switch node so as to balance the data flow of each switch node;
wherein the aggregation cost of the nth switch
Figure FDA0002359831450000011
Φ(Matchi)=γbConv(Matchi),Conv(Matchi)=Fup(Matchb)/Fup(Matchi) Load (n) is the total data forwarding rate for the nth switch, Loadi(n) data flow table matching for the nth switchiThe rate of data forwarding of (a) is,
Figure FDA0002359831450000012
Fup(Matchb) Match for adopting reference data flow table matching modebData flow table request quantity of (F)up(Matchi) For adopting a matching mode MatchiN is an integer, i is an integer, γbForwarding the aggregation cost of 1-bit data for a preset switch;
the reference data flow table matching mode is the most accurate matching degree which can be achieved by all data flows under the condition of minimum flow according to the flow statistical data of the switch;
the nth switchData flow table request volume of node
Figure FDA0002359831450000013
In which there is a matching patternKAnd MatchKThe data flow table is the most loose data flow table matching mode, and K is an integer;
setting the weight of each link in the optimized SDN as w*=<w1 *,w2 *,...,wA *>Wherein w isi *Represents the optimal weight of the link i e 1, 2.. A,
Figure FDA0002359831450000014
so that phiOSPF(w)At a minimum, the optimization objective function is:
Figure FDA0002359831450000015
wherein the boundary condition is
Figure FDA0002359831450000016
UB is the upper limit of the data flow table request quantity of each switch node, and LoadAccess(n) represents the amount of data forwarded per unit time of the nth access to the switch node, the Loadcore(N) represents the amount of data forwarded by a switch node in the nth core network per unit time, said NAccessFor the number of switches in the access network, NCoreα is the number of switches in the core networkbAnd the ratio of the flow table request quantity to the total forwarded data flow of the switch is represented when the nth switch in unit time adopts a reference matching mode b.
2. The method of claim 1, wherein the Load is calculated according to the following equationi(n):
Figure FDA0002359831450000021
Wherein the UB is the upper limit of the data flow table request quantity of each switch node, MatchPMatch for the most accurate data flow tableKThe most loose data flow table matching mode is provided, P is an integer, K is more than or equal to P +1, Fup(n) is the upper limit of the data flow table request amount of the nth switch, Fup(i) For flow table requests within the timeout T of the data flow table, Fi(n) is the number of data streams forwarded by the nth switch within the timeout period T, Pup(i) Requesting a quantity F for the flow tableup(i) The total amount of data flow F forwarded within the timeout TTRatio of (A) to (B), FsizeIs the size of the average single data stream; loadpFor data forwarding rate in P-matched mode, Loadp+1The data forwarding rate is the data forwarding rate in the matching mode of P + 1.
3. The method of claim 2, wherein optimizing the weight of each link in the SDN according to the aggregation cost of each switch node and the data flow table request amount of each switch node comprises optimizing the weight of each link in the SDN according to the aggregation cost of each switch node and with a data flow table request amount of each switch node being less than or equal to the data flow table request amount upper limit UB of each switch node as a boundary condition.
4. The method of claim 3, wherein optimizing the weight of each link in the SDN according to the aggregation cost of each switch node and the data flow table request amount of each switch node comprises optimizing the weight of each link in the SDN according to the following formula:
Figure FDA0002359831450000031
and the UB is the upper limit of the data flow table request quantity of each switch node.
5. The method of claim 4, wherein optimizing the weight of each link in the SDN according to the aggregation cost of each switch node and the data flow table request amount of each switch node comprises optimizing the weight of each link in the SDN by solving a shortest path through a genetic algorithm.
6. A data flow control system comprising switch nodes in a software defined network, SDN, and a network controller, the network controller comprising:
the calculation module is used for calculating the data flow table request quantity of each switch node in the software defined network SDN;
the balancing module is used for optimizing the weight of each link in the SDN according to the aggregation cost of each switch node and the data flow table request quantity of each switch node so as to balance the data flow of each switch node;
wherein the aggregation cost of the nth switch
Figure FDA0002359831450000032
Φ(Matchi)=γbConv(Matchi),Conv(Matchi)=Fup(Matchb)/Fup(Matchi) Load (n) is the total data forwarding rate for the nth switch, Loadi(n) data flow table matching for the nth switchiThe rate of data forwarding of (a) is,
Figure FDA0002359831450000041
Fup(Matchb) Match for adopting reference data flow table matching modebData flow table request quantity of (F)up(Matchi) For adopting a matching mode MatchiN is an integer, i is an integer, γbForwarding the aggregation cost of 1-bit data for a preset switch;
the reference data flow table matching mode is the most accurate matching degree which can be achieved by all data flows under the condition of minimum flow according to the flow statistical data of the switch;
data flow table request volume for nth switch node
Figure FDA0002359831450000042
In which there is a matching patternKAnd MatchKThe data flow table is the most loose data flow table matching mode, and K is an integer;
setting the weight of each link in the optimized SDN as w*=<w1 *,w2 *,...,wA *>Wherein w isi *Represents the optimal weight of the link i e 1, 2.. A,
Figure FDA0002359831450000043
so that phiOSPF(w)At a minimum, the optimization objective function is:
Figure FDA0002359831450000044
wherein the boundary condition is
Figure FDA0002359831450000045
UB is the upper limit of the data flow table request quantity of each switch node, and LoadAccess(n) represents the amount of data forwarded per unit time of the nth access to the switch node, the Loadcore(N) represents the amount of data forwarded by a switch node in the nth core network per unit time, said NAccessFor the number of switches in the access network, NCoreα is the number of switches in the core networkbAnd the ratio of the flow table request quantity to the total forwarded data flow quantity of the switch is represented when the nth switch in unit time adopts a reference matching mode b.
7. The system of claim 6, wherein the calculation module calculates the Load according to the following equationi(n):
Figure FDA0002359831450000051
Wherein the UB is the upper limit of the data flow table request quantity of each switch node, MatchPMatch for the most accurate data flow tableKThe most loose data flow table matching mode is provided, P is an integer, K is more than or equal to P +1, Fup(n) is the upper limit of the data flow table request amount of the nth switch, Fup(i) For flow table requests within the timeout T of the data flow table, Fi(n) is the number of data streams forwarded by the nth switch within the timeout period T, Pup(i) Requesting a quantity F for the flow tableup(i) The total amount of data flow F forwarded within the timeout TTRatio of (A) to (B), FsizeIs the size of the average single data stream; loadpFor data forwarding rate in P-matched mode, Loadp+1The data forwarding rate is the data forwarding rate in the matching mode of P + 1.
8. The system of claim 7, wherein the balancing module is further configured to optimize the weight of each link in the SDN according to the aggregation cost of each switch node and using a data flow table request amount of each switch node being less than or equal to the data flow table request amount upper limit UB of each switch node as a boundary condition.
9. The system of claim 8, wherein the equalization module is further configured to optimize the weight of each link in the SDN according to the following equation:
Figure FDA0002359831450000052
and the UB is the upper limit of the data flow table request quantity of each switch node.
10. The system of claim 9, wherein the balancing module is further configured to optimize the weight of each link in the SDN by solving the shortest path through a genetic algorithm.
CN201610079738.0A 2016-02-04 2016-02-04 Data flow control method and system Active CN105743804B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610079738.0A CN105743804B (en) 2016-02-04 2016-02-04 Data flow control method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610079738.0A CN105743804B (en) 2016-02-04 2016-02-04 Data flow control method and system

Publications (2)

Publication Number Publication Date
CN105743804A CN105743804A (en) 2016-07-06
CN105743804B true CN105743804B (en) 2020-04-21

Family

ID=56244912

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610079738.0A Active CN105743804B (en) 2016-02-04 2016-02-04 Data flow control method and system

Country Status (1)

Country Link
CN (1) CN105743804B (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105959167B (en) * 2016-07-18 2019-04-23 东北大学 A kind of global optimization SDN measurement method based on greedy algorithm
CN106230722B (en) * 2016-08-05 2019-07-09 山东省计算中心(国家超级计算济南中心) SDN network congestion link method of adjustment based on transfer value
CN108632158A (en) * 2017-03-16 2018-10-09 哈尔滨英赛克信息技术有限公司 A kind of multi-controller load-equalizing switch moving method of SDN network
CN107395426B (en) * 2017-08-04 2020-06-26 中山大学 Communication network structure optimization method based on node use probability
CN109787913B (en) * 2019-03-15 2022-07-01 北京工业大学 SDN-based data center network dynamic load balancing method
CN113938955B (en) * 2021-09-09 2023-06-06 中国联合网络通信集团有限公司 Data transmission method, device, equipment and system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104168203A (en) * 2014-09-03 2014-11-26 上海斐讯数据通信技术有限公司 Processing method and system based on flow table
CN105071947A (en) * 2015-07-06 2015-11-18 山东超越数控电子有限公司 Link optimization method for SDN network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104168203A (en) * 2014-09-03 2014-11-26 上海斐讯数据通信技术有限公司 Processing method and system based on flow table
CN105071947A (en) * 2015-07-06 2015-11-18 山东超越数控电子有限公司 Link optimization method for SDN network

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
An Effective Path Load Balancing Mechanism Based on SDN;Jun Li.etc;《IEEE》;20150119;全文 *
Traffic Engineering in Software Defined Networks;Sugam Agarwal.etc;《IEEE》;20130725;全文 *
基于SDN的负载均衡节能技术研究;姚晨;《中国优秀硕士论文电子期刊网》;20150815;全文 *

Also Published As

Publication number Publication date
CN105743804A (en) 2016-07-06

Similar Documents

Publication Publication Date Title
CN105743804B (en) Data flow control method and system
CN109818865B (en) SDN enhanced path boxing device and method
CN108521375B (en) SDN-based network multi-service flow QoS transmission and scheduling method
CN106533960B (en) A kind of data center network method for routing based on Fat-Tree structure
CN111770019B (en) Q-learning optical network-on-chip self-adaptive route planning method based on Dijkstra algorithm
JP5975083B2 (en) COMMUNICATION SYSTEM, CONTROL DEVICE, PACKET TRANSFER ROUTE CONTROL METHOD, AND PROGRAM
CN102714628A (en) Communication system, control apparatus, processing rule setting method, packet transmitting method and program
CN112350949B (en) Rerouting congestion control method and system based on flow scheduling in software defined network
CN113794638B (en) SDN data center network elephant flow scheduling method based on differential evolution algorithm
CN110417652A (en) It is a kind of based on the software defined network routing algorithm of Segment routing strategy and application
Kassabalidis et al. Adaptive-SDR: Adaptive swarm-based distributed routing
CN102025621A (en) Routing selection method of cognitive network based on mapping mechanism
Li et al. Research on QoS routing method based on NSGAII in SDN
Sheu et al. Efficient unicast routing algorithms in Software-Defined Networking
CN109067646A (en) It is a kind of flow table capacity by limited time SDN network flow optimization scheme
Garg et al. Adaptive optimized open shortest path first algorithm using enhanced moth flame algorithm
Lin et al. Proactive multipath routing with a predictive mechanism in software‐defined networks
Chen et al. Dynamic load balancing strategy based on link preference in sdn
Mon et al. Flow based traffic scheduling in software defined network
CN107483354A (en) Network congestion based on SDN solves method and system
Arnous et al. Improving the load balancing within the data network via modified AntNet algorithm
Kudou et al. Effects of routing granularity on communication performance in OpenFlow networks
Liu et al. Performance evaluation of K shortest path algorithms in MPLS traffic engineering
Ben Hadj Said et al. Energy-efficient routing in sdn-based access networks
Ruelas et al. Implementation of neural switch using OpenFlow as load balancing method in data center

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant