CN107347021B - SDN-based reliable transmission method - Google Patents

SDN-based reliable transmission method Download PDF

Info

Publication number
CN107347021B
CN107347021B CN201710552982.9A CN201710552982A CN107347021B CN 107347021 B CN107347021 B CN 107347021B CN 201710552982 A CN201710552982 A CN 201710552982A CN 107347021 B CN107347021 B CN 107347021B
Authority
CN
China
Prior art keywords
switch
link
time
controller
data
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
CN201710552982.9A
Other languages
Chinese (zh)
Other versions
CN107347021A (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.)
State Grid Zhejiang Electric Power Co Ltd
Xian Jiaotong University
Original Assignee
State Grid Zhejiang Electric Power Co Ltd
Xian Jiaotong 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 State Grid Zhejiang Electric Power Co Ltd, Xian Jiaotong University filed Critical State Grid Zhejiang Electric Power Co Ltd
Priority to CN201710552982.9A priority Critical patent/CN107347021B/en
Publication of CN107347021A publication Critical patent/CN107347021A/en
Application granted granted Critical
Publication of CN107347021B publication Critical patent/CN107347021B/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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • H04L41/0836Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability to enhance reliability, e.g. reduce downtime
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol

Abstract

The invention discloses a reliable transmission method based on an SDN (software defined network), which relates to the technical field of network communication, is mainly applied to computer networks, information center networks and the like, and is used for adaptively calculating according to the service condition of network resources and simultaneously sending data through a plurality of paths based on the SDN in order to improve the fault-free working time based on the SDN and improve the reliability of network transmission, and simultaneously processing redundant repeated data packets on a receiving-end software switch. Through the mode, the method and the device can effectively improve the reliability of network data transmission, reduce the possibility of network interruption or delay caused by the failure of the link, improve the failure-free working time of the network and provide better network service quality for users.

Description

SDN-based reliable transmission method
Technical Field
The invention relates to the technical field of network communication, in particular to a reliable transmission method based on an SDN network.
Background
With the rapid development of the internet, various services all put higher requirements on the timeliness and reliability of network transmission. Generally, a single path is adopted for transmission in the network transmission process, and once a physical fault or a logic fault occurs on the transmission path, the transmission of normal data is affected. In the case of a very large network size, when a network failure occurs, if the network failure is manually configured and solved by a network manager, a large amount of manpower and material resources are consumed, and the recovery time is long.
Software-Defined Networking (SDN) is an emerging dynamic, manageable, adaptable innovation architecture. The core technology OpenFlow decouples the data forwarding plane and the control plane, and flexible control of network flow is achieved.
There are two main failure recovery mechanisms in the existing SDN network environment: passive restoration mechanisms and active path protection mechanisms. The passive recovery mechanism is that when the link fails, the switch actively informs the controller, and the controller recalculates the route and sends the route to the affected switch. The active path protection mechanism is to calculate the backup path in advance. When the main path fails, the controller is not informed, and the main path is automatically switched to the backup path.
Disclosure of Invention
The invention aims to provide a reliable transmission method based on an SDN network, which aims to solve the problem that normal data transmission is influenced when a physical fault or a logic fault occurs on a transmission path.
In order to achieve the purpose, the invention adopts the following technical scheme:
a reliable transmission method based on an SDN network comprises the following steps:
the method comprises the following steps: modifying a source code of a receiving end open virtual switch standard OpenvSwitch software switch directly connected with a host to be guaranteed; the modification process is as follows:
1) identifying a duplicate data packet: adopting source IP + identification + piece deviation as identification for distinguishing data packets;
2) and (3) modifying a function: selecting a function for modification;
3) deploying a bloom filter: adding a bloom filter BloomFilter in the selected function;
4) and (3) processing strategies: when a data packet reaches a switch at a receiving end, the open virtual switching standard openvswitch software switch uses the source IP + identification + piece offset of the data packet as a key value to carry out Hash Hash to check whether the data packet is in a bloom filter;
step two: an SDN controller acquires a network topology;
the method comprises the steps that the controller uses LLDP as a link discovery protocol, in the link discovery process, the controller sends packet-out information with LLDP messages to each switch connected with the controller, the switches receive the information and organize the information of the device into type/light/value and encapsulate the type/length/value into LLDPDU (link layer discovery protocol data unit), the LLDPDU is forwarded to all direct-connected ports, after receiving the forwarded LLDP, adjacent switches report the information to the controller through the packet-in information, then the controller analyzes the packet-in information reported by the switches, namely the link information between the switches is obtained, and the link information is recorded in a link discovery table, and therefore the controller obtains the whole network topology information;
step three: the SDN controller acquires a reliable transmission process pair designated by a user and calculates a path; a user specifies a pair of processes to be reliably transmitted in advance, and the SDN controller calculates a plurality of forwarding paths after acquiring process pair information;
step four: monitoring a specified network use condition parameter by an SDN controller;
selecting three parameters of monitoring link utilization rate, packet loss rate and time delay to feed back the quality of network performance, and selecting one of the three parameters as a system monitoring parameter by a user and setting a corresponding threshold range;
step five: when the monitoring data is within the threshold range, a multi-path transmission mode is started in a self-adaptive mode, and a plurality of transmission paths meeting the requirements are found;
step six: according to the configuration condition of a plurality of transmission paths, the SDN controller issues a group table or a common flow table with the type of ALL to the SDN switch;
the SDN controller issues a group table or a common flow table according to the following strategies:
1) when data flow passes through the switch and is simultaneously forwarded from a plurality of output ports, a group table with the type of ALL is issued to the switch, and multi-path simultaneous data transmission is realized;
2) when the data flow passes through the switch and is only forwarded from one output port, a common flow table is issued to the switch according to the calculated path;
step seven: the sending end sends data, and the following two conditions exist according to different protocols used by a transmission layer:
1) when the transport layer protocol is UDP (user datagram protocol), transmitting data;
2) when the transmission layer protocol is TCP (Transmission control protocol), sending data and retransmitting a data packet when the packet is lost or has errors;
further, the function selected in the step one is as follows: void ovs _ vport _ receive structure vport, structure sk _ buf _ skb, const structure ovs _ channel _ info _ tun _ info; in the first step, the receiving end switch decides the acceptance or rejection of the received data packet according to the following strategies:
when a first copy of the data packet is received, extracting information in the data packet, writing the information into a bloom filter, and transmitting the data packet to a receiving end host; at this time, if the data packet copies transmitted through other paths are lost due to faults or still do not arrive due to time delay, the data received by the host at the receiving end is not affected because the first copy is normally received and submitted to the host;
when a plurality of copies of the data packet are received, because the information copied by the first copy of the data packet is written into the bloom filter and the first copy of the data packet is transmitted to the host, when the same data packet copy arrives subsequently, the data packet is found to be written into the bloom filter when the same data packet copy arrives, and the data packet is discarded if the data packet copy is judged to be the repeated data packet.
Further, calculating link utilization rate, packet loss rate and time delay in the fourth step:
1) link utilization calculation
The link utilization rate is the percentage of the traffic passing through the current link in the maximum traffic which can be transmitted by the link within a period of time;
the period T is the difference between two times, where the duration _ sec field and the duration _ nsec field indicate the time the flow exists in the switch and the value of the entire duration is expressed in nanoseconds, which is calculated by: duration _ sec × 109+ duration _ nsec, subscripts i +1 and i denote the data acquired i +1 and i, respectively:
Ta=(duration_seci+1+duration_nseci+1)-(duration_seci+duration_nseci)
the port uplink rate tx _ speed is the subtraction of the number of uplink bytes twice multiplied by 8 divided by the period, where tx _ bytes is the number of uplink bytes, and subscripts i +1 and i respectively represent the data acquired at the i +1 th time and the i th time:
Figure GDA0002416359070000031
the port downlink speed rx _ speed is obtained by subtracting two downlink byte numbers by multiplying by 8 and dividing by a period, wherein rx _ bytes is the downlink byte number, and subscripts i +1 and i respectively represent data acquired at the (i + 1) th time and the (i) th time:
Figure GDA0002416359070000041
the total port speed is the sum of the uplink speed tx _ speed and the downlink speed rx _ speed:
speed=tx_speed+rx_speed
the use condition of a link depends on the lower port capacity at two ends of the link, so the rate of the link is the lower rate of the ports at two ends:
speed_link=min(speeda,speedb)
the link resource utilization rate link _ bw _ use is the current rate speed divided by the maximum rate curr _ capacity that can be transmitted by the port, where curr _ capacity is a fixed parameter of the switch:
Figure GDA0002416359070000042
2) packet loss rate calculation
The packet loss rate is the percentage of the total packet transmission quantity of the lost data packets within a period of time; the packet loss amount loss _ packets is obtained by subtracting the received packet amount rx _ packets from the sent packet amount tx _ packets:
loss_packetsa-b=tx_packetsa-rx_packetsb
packet loss rate packet _ loss is the number of lost packets loss _ packets divided by the total amount of outgoing packets tx _ packets multiplied by 100%:
Figure GDA0002416359070000043
3) time delay
The time delay is the time required for a data packet to travel from a transmitting end to a receiving end; in the link discovery process, the controller first sends a packet-out message with an LLDP message to each switch connected to the controller, and instructs the switches to forward the LLDP message from all ports, and after receiving the forwarded LLDP message, the neighboring switches report the LLDP message to the controller through a packet-in message, so as to obtain a sending delay fwd _ delay of time T1 from the controller to switch a, time T2 from switch a to switch B, and time T3 from switch B to the controller:
fwd_delay=T1(controller→A)+T2(A→B)+T3(B→controller)
the return delay re _ delay is the time T3 from controller to switch B plus the time T2 from switch B to switch a plus the time T1 from switch a to controller:
re_delay=T3(controller→B)+T2(B→A)+T1(A→controller)
based on the above data, the processing delay of the switch is ignored, and the delay latency is calculated as followsA
The controller sends send _ time carrying current timeAThe switch receives the message and then replies to the controller, and when the controller receives the message replied by the switch, the controller acquires the current system time now _ timeARTT from controller A to the switch is the current time now _ timeAMinus the send timeA
RTT from controller A to the switch is the current time now _ timeAMinus the send timeA
latencyA=now_timeA-send_timeA
Namely latencyA=T1(controller→A)+T1(A→controller)
Switch B is computed in a similar manner to switch a;
assuming the round trip time is the same, the time delays of switches A and Ba-bComprises the following steps:
Figure GDA0002416359070000051
further, in the fifth step, according to the number N of paths to be transmitted, the ingress switch should have at least N +1 ports.
Further, step five is divided into three modes according to the self-adaptive situation:
1) default adaptive mode
Under the condition that a user does not make any setting, the link utilization rate is set as a monitoring parameter by default, when the link utilization rate is more than 20%, the system self-adaptively starts a multi-path fault-tolerant transmission mode, and when the link utilization rate is less than 20%, the system self-adaptively closes the multi-path fault-tolerant transmission mode;
2) user setting parameter self-adaptive mode
The user can manually set monitoring parameters, and the selectable monitoring parameters are as follows: the method comprises the steps that link utilization rate, packet loss rate and time delay are achieved, a user sets monitoring parameters and a corresponding threshold range according to requirements, and after the user sets the monitoring parameters and the corresponding threshold range, default parameters and the threshold range are invalid; the system starts and closes a multi-path transmission mode according to monitoring parameters and a threshold range set by a user;
3) manual mode
When the multi-path transmission mode is not started, the user manually starts the multi-path transmission mode, or when the multi-path transmission mode is started, the multi-path transmission mode is manually closed, at the moment, the two self-adaptive modes fail, and the self-adaptive mode can not continue to work until the user manually switches to the self-adaptive mode.
Further, for the network topology in step three, there are three cases for the path selection: nodes are not intersected; link disjoint; part of the links are disjoint.
Furthermore, nodes are not intersected into two paths, and no public node or public link exists, so that the network has the best fault tolerance, and the transmission performance is influenced by the minimum amplitude under the condition of transmission fault; links are not intersected, namely two paths have no common link but have a common node, so that when a certain section of link on one path fails, the other path cannot be influenced; if the two paths can not be found, a Suurballel algorithm proposed by Ramesh Bhandari is adopted to modify a link disjoint path algorithm into a partial link disjoint path algorithm, so that a key path which must be used can be repeatedly used, and a path with the least link intersection is found.
Compared with the prior art, the invention has the following technical effects:
when a link is interrupted in a network, a single path is used for transmission in a common transmission mode, and once the transmission link is interrupted, the communication is interrupted immediately; the invention uses multi-path to transmit data simultaneously, so that the data transmission is ensured by multi-path, and even if a link or a node on one path fails, the transmission of normal data is not influenced.
When a certain packet loss rate exists in a network, a TCP protocol is used for retransmitting a lost data packet under a common transmission mode, so that the transmission time is increased, and a UDP protocol is used for not processing the lost data packet and arbitrarily losing the lost data packet; the method of the invention uses a plurality of disjoint paths for simultaneous transmission, although a certain packet loss rate exists on one path, other paths can still normally transmit data without being influenced, and as long as a plurality of paths are lost and not the same data packet, a receiving end can normally receive data. When a certain packet loss rate exists in a path, a TCP protocol is used for transmitting data volume with the same size, the transmission time of the invention is far shorter than the transmission time under a common transmission mode, a UDP protocol is used for transmitting data with the same time, and the packet loss rate of the invention is far shorter than the packet loss rate under the common transmission mode.
When a certain time delay exists in the network, the network time delay can cause the interaction delay between the hosts in a common transmission mode, and the round-trip time delay rtt is increased; the method of the invention uses a plurality of disjoint paths for simultaneous transmission, even if one path has time delay, other paths can still transmit data without time delay, the transmission time depends on the path with the highest speed in all transmission paths, and the round-trip time rtt of the invention is far less than the rtt average value in the common transmission mode when the time delay exists in the path.
Therefore, when the conditions of interruption, packet loss, delay and the like occur in the network, the method and the device improve the reliability of data transmission, are expected to provide reliable and timely transmission service for network application in the related field, improve the fault-free working time of the network, provide guarantee for the normal operation of the related application, and generate economic benefit.
Drawings
FIG. 1 is an IP header structure
FIG. 2 is a bloomfilter structure
FIG. 3 is a Ryu controller discovery link
FIG. 4 is a structure of a group table entry
FIG. 5 is a process of Group Table
FIG. 6 is a group table forwarding scenario of type ALL
FIG. 7 is a schematic diagram of two paths failing in network data transmission process according to the present invention
FIG. 8 is a schematic diagram of a single path failure during network data transmission according to the present invention
FIG. 9 shows the packet grabbing situation of a normal transmission wireshark at s2-eth1 port
FIG. 10 shows the multi-path transmission wireshark packet grabbing situation at s2-eth1 port
FIG. 11 is a schematic diagram of the invention showing no path failure during network data transmission
FIG. 12 shows the result of capturing packets at s3-eth1 port without using the bloom filter Wireshark
FIG. 13 shows the result of packet grabbing at s3-eth1 port using a bloom filter Wireshark
Detailed Description
The invention is further described below with reference to the accompanying drawings:
1. modifying a source code of a receiving-end software switch
The switch directly connected with the host to be guaranteed is an OpenvSwitch software switch, and the process of modifying the source code is described in the following steps:
(1) identifying duplicate packets
An OSI (Open System Interconnection) model is established by ISO (International Organization for Standardization), and the work of network communication is divided into 7 layers, namely a physical layer, a data link layer, a network layer, a transport layer, a session layer, a presentation layer and an application layer. The transmission layer provides end-to-end service between host application program processes, is the core of the whole protocol hierarchy, and is only responsible for overall data transmission and control, and provides the reliability of communication service for the upper layer. The two most important protocols of the transport layer are TCP (Transmission Control Protocol) and UDP (User Data Protocol), respectively.
TCP is a connection-oriented protocol. The two parties have to establish connection through three-way handshake before formal communication, and then can transmit data, and the two parties disconnect the connection through four-way waving when the communication is finished. The TCP protocol provides reliable transmission in an IP environment, data packets must be received in sequence, each data packet is allocated by the TCP, a serial number is allocated by a receiver, the receiver can confirm the serial number of the data packet of a sender and tell the opposite party that the data packet before the specified serial number is received, and if the sender does not receive the confirmation from the receiver within the round-trip delay, the data packet is supposed to be lost, and the data packet is retransmitted. The TCP protocol is suitable for scenarios where the requirements for efficiency are relatively low, but the requirements for accuracy are relatively high.
UDP is a connectionless protocol. The two parties do not need to establish connection before formal communication, the connection can be directly transmitted no matter what state the other party is, the receiving party only calls a receiving function, the received data packets are unordered, and the data packet loss cannot be sensed. Therefore, UDP transport is unreliable. Although UDP does not provide reliable transmission, in some scenarios where the efficiency requirement is relatively high, it is desirable to transmit data using UDP.
When the transmission layer uses a TCP protocol, the receiving end discards the repeated data packets on the one hand and sends ACK (acknowledgement character) to the sending end to inform the sending end that the repeated data packets are received on the other hand, so that not only is the burden of the receiving end increased, but also unnecessary flow is increased in the network, and therefore, a switch is necessary to process the repeated data packets before the data packets reach a host to ensure that the receiving end can normally receive the data packets; in the case of using UDP protocol in the transport layer, the receiving host receives multiple data packets and does not perform any processing, which may cause a receiving error, so that the duplicate data packets must be processed before reaching the receiving host to ensure the normal reception of the data packets.
In order for the switch at the receiving end to be able to handle duplicate packets, it is first determined whether the packets are duplicate. In a computer network, two end points usually need to communicate data through intermediate nodes, which do not care about the data content, and only provide a switching device to forward data from one node to another until reaching the destination. When the data arrives at the network layer, the router forwards the data packets to a destination node located in another network. The IP software maintains a counter in memory that increments by 1 each time a datagram is generated and assigns this value to the identification field, as shown in figure 1;
this "identity" is not a sequence number because IP is a connectionless service and there is no problem with in-order reception of packets. When a datagram must be fragmented due to the length exceeding the MTU of the network, the value of this identification field is copied into the identification fields of all datagrams. The same identification field value enables each fragmented datagram piece to be finally and correctly reassembled into the original datagram. The flag field is 16 bits in length and needs to be used together with the flag and slice offset field, the flag is 3 bits in length, the first bit is not used, the second bit is the DF bit, and the DF bit is set to 1 to indicate that the router cannot segment the upper layer packet. If an upper layer packet cannot be forwarded without fragmentation, the router will discard the upper layer packet and return an error message. The third bit is an MF bit, and when the router segments an upper layer packet, the router sets the MF bit to 1 in the packet header of the IP packet except for the last segment; the fragment offset field is 13 bits in length and indicates the position of the IP packet in the sub-fragment packet, by which the receiver assembles the recovered IP packet. Based on the reassembly of the identifiers, the identifiers in the IP header structure can be used to determine whether the two packets are the same, and in the case of fragmentation, the identifiers are the same, and then it is necessary to compare whether the slice offsets are the same to determine whether the two packets are the same, so the source IP + identifier + slice offsets are used as the identifiers for distinguishing the packets.
(2) Modifying a function
By analyzing the working principle and source code of the Open vSwitch, when a network packet arrives at the network card, the kernel module openvswitch.ko of the Openvswitch registers a function netdev _ frame _ hook on the network card, calls netdev _ port _ receive to process the data packet, calls ovs _ vport _ receive to continue processing, calls a ovs _ flow _ key _ extract function in the function to extract key values from a physical layer, an MAC layer, a network layer and a transmission layer of the data packet, then calls a ovs _ dp _ process _ received _ packet function, calls a ovs _ flow _ tbl _ lookup _ states function to search a flow which conforms to the key in a flow table of the kernel, and if the flow which conforms to the key exists, the fast path can be taken, and calls the ovs _ execute _ key _ action function to execute corresponding actions; if the flow conforming to the key does not exist, ovs _ dp _ update function is called and sent to the user space, the user mode is made to look up the flow table, the queue _ userpace _ packet function is called, and then the genlmg _ uniform function is called to send the message to the user mode through the netlink. In a user mode, a thread listens for a message, once the message exists, a udp _ update _ handle function is triggered, then a recv _ updates function is called, the function sequentially calls an update _ receive function to read update, a flow _ extract function extracts a packet header, a process _ update function processes update, and finally a handle _ update is called to add a flow rule to a datapath in a kernel.
According to the source code analysis result, the basic processing flow of the network data packet through each function is known, the invention selects a void ovs _ vport _ receive (structure vport, structure sk _ buff _ skb, and structure sk _ tunnel _ info) function to modify, adds codes in the function to complete the required function, the function binds the network card to an Open vSwitch port when the network card is loaded, and calls the function after binding every time when a data packet comes, and transmits the data packet to the function for processing, instead of sending the data packet to a kernel network protocol stack before being bound, so that the kernel protocol stack is used for processing.
(3) Deploying bloom filters
A bloom filter BloomFilter is added to the function of void ovs _ vport _ receive (structure vport, structure sk _ buf _ skb, conststruct ovs _ tunnel _ info _ tun _ info).
BloomFilter was proposed by Burton homeward Bloom in 1970, and is a highly efficient and space-saving probabilistic data structure for determining whether an element is in a set. If the judgment result is yes, the element is not necessarily in the set (called false positive problem), and if the judgment result is no, the element is not necessarily in the set. That is, it is possible to mistake an element that does not belong to the set as belonging to the set, but not to mistake an element that belongs to the set as not belonging to the set. After increasing the error rate, the Bloom Filter trades very few errors for a significant saving in storage space in applications that can tolerate low error rates.
In the initial state, the Bloom Filter is a bit array including m bits, and each bit is set to 0. To express a set of n elements, S ═ { x1, x2, …, xn }, Bloom Filter uses k mutually independent hash functions that map each element in the set into a range of {1, …, m }, respectively. For any element x, the location hi (x) mapped by the ith hash function is set to 1(1 ≦ i ≦ k). If a position is set to 1 a number of times, it will only be active for the first time and the latter few times will have no effect. In determining whether y belongs to this set, we apply a hash function k times to y, and if all hi (y) positions are 1(1 ≦ i ≦ k), we consider y to be an element in the set, otherwise, we consider y not to be an element in the set. As in figure 2 y1 is not an element in the set. y2 either belongs to this set or is just a false positive.
Setting the number of bits of a bit array as m, the number of elements in a set as n, the number of hash functions as k, the allowed maximum error rate as e, e as the base number of a natural logarithm, an infinite acyclic decimal, and the error rate f obtained by derivation as:
Figure GDA0002416359070000111
when in use
Figure GDA0002416359070000112
The error rate f is minimal when
Figure GDA0002416359070000113
Let f be ≦ ε, then:
Figure GDA0002416359070000114
let the expected error rate e be 10-6And m is 819200 bits (100KB), then n is 28488. Although it is a probability problem whether false positives really occur, in practice, if 100KB is chosen as the size of the bit array, the bloom filter is emptied each time it processes 28848 pieces of dataThe Longmen filter should be a simple and effective method for dealing with false positives.
(4) Processing strategy
When the data packet reaches the switch of the receiving end, the openvswitch software switch uses the source IP + identification + Fragment off of the data packet as a key value to carry out Hash to check whether the data packet is in the bloom filter, and the switch of the receiving end determines the acceptance or rejection of the received data packet according to the following strategies:
when the first copy of the data packet is received, the information in the data packet is extracted and written into the bloom filter, and the data packet is transmitted to the receiving end host. At this time, if the data packet copies transmitted through other paths are lost due to faults or still do not arrive due to time delay, the data received by the host at the receiving end is not affected because the first copy is normally received and submitted to the host;
when a plurality of copies of the data packet are received, because the information copied by the first copy of the data packet is written into the bloom filter and the first copy of the data packet is transmitted to the host, when the same data packet copy arrives subsequently, the data packet is found to be written into the bloom filter when being written into the bloom filter, and the data packet is discarded if the data packet is judged to be the repeated data packet;
when a link or node failure occurs, data can be transmitted correctly as long as a plurality of paths can ensure that one of the paths has no failure, or when a data packet is lost in the transmission process, fault tolerance can be performed as long as the plurality of paths lose the same data packet, so that a correct result is obtained. Therefore, the connection reliability of hardware or the data integrity reliability without hardware fault is improved, and meanwhile, the strategy is combined with the existing error retransmission and overtime retransmission, so that the times of error retransmission and overtime retransmission are reduced, the network transmission efficiency is improved, and the network transmission is more reliable.
SDN controller obtaining network topology
The controller mainly uses LLDP (Link Layer Discovery Protocol) as a Link Discovery Protocol, during the Link Discovery process, the controller will first send a packet-out message with LLDP message to each switch connected to the controller, after receiving the message, the switch will organize the information of the device into TLV (type/light/value) and encapsulate it into LLDPDU (Link Layer Discovery Protocol Data Unit), forward it to all direct-connected ports, after the adjacent switches receive the forwarded LLDP message, because no corresponding flow table item can not be processed, the flow table can be reported to the controller through the packet-in message, then the controller analyzes the packet-in message reported by the switches to obtain the link information between the switches, and records the link information into a link discovery table, and the whole process is as shown in fig. 3;
therefore, the controller can obtain the topology information of the whole network and carry out unified management, and dynamically updates according to the specified period.
3, the SDN controller acquires the guarantee host pair appointed by the user and calculates the path
A user specifies a pair of processes needing reliable transmission in advance, and the SDN controller calculates a forwarding path after acquiring process pair information. In order to ensure that when one link fails, other links can still transmit data to the receiving end normally without delay, we should try to find multiple disjoint paths. If there are multiple paths with a common node or common link, then this packet will also be lost completely when the common node or common link fails. Thus, the desired effect cannot be achieved. For the network topology, there are three cases of path selection:
(1) nodes are not intersected;
(2) link disjoint;
(3) part of the links are disjoint;
node disjointness means that two paths have no public node or public link, the network has the best fault tolerance, and the transmission performance is influenced by the minimum amplitude under the condition of transmission fault; link disjointness means that two paths do not have a common link but may have a common node, so that when a certain section of link on one path fails, the other path is not affected; however, node disjoint paths or link disjoint paths may not always be found in the existing network topology, and if neither path can be found, paths with fewer intersected links are calculated, so that the effect of the multi-path fault-tolerant transmission system is maximized as much as possible.
In order to search for disjoint paths, an optimization algorithm based on a Suurballel algorithm proposed by Ramesh Bhandari is adopted, the paths are searched by temporary paths and switch node modification modes, and the optimized algorithm is simpler than the original algorithm. The suurballel algorithm is used to find two disjoint paths in a directed graph with non-negative weights, the two paths have the same start point and end point and the sum of their weights is minimal, and the algorithm was originally published by John w. However, node disjoint paths or link disjoint paths cannot always be found in the existing network topology, and if both paths cannot be found, the modified link disjoint path algorithm proposed by Ramesh Bhandari is adopted to become a partial link disjoint path algorithm, so that the key paths which must be used can be reused to find the path with the least link intersection.
SDN controller monitoring specified network usage parameters
The parameters for measuring the network performance mainly comprise bandwidth, throughput, rate, packet loss rate, time delay, Round Trip Time (RTT) and the like. The method selects three parameters of monitoring link utilization rate, packet loss rate and time delay to feed back the quality of network performance, and a user can select one of the three parameters as a system monitoring parameter according to requirements and set a corresponding threshold range. The indexes cannot be directly obtained from the switch, and the controller is required to periodically send Request messages to Request the switch messages on the basis of an active mode, return corresponding messages by the switch and analyze and calculate the messages by the controller. The controller respectively calculates the link utilization rate, the packet loss rate and the time delay according to the following modes:
(1) link utilization calculation
Link usage (link usage) is the percentage of the traffic that the current link passes over the maximum traffic that can be transmitted by the link over a period of time.
The period T is two timesThe difference between the times, where the duration _ sec field and the duration _ nsec field indicate the time that the flow exists in the switch, and the value of the entire duration is expressed in nanoseconds (nsec), is calculated by: duration _ sec × 109+ duration _ nsec, subscripts i +1 and i denote the data acquired i +1 and i, respectively:
Ta=(duration_seci+1+duration_nseci+1)-(duration_seci+duration_nseci)
the port uplink rate tx _ speed is the subtraction of the number of uplink bytes twice multiplied by 8 divided by the period, where tx _ bytes is the number of uplink bytes, and subscripts i +1 and i respectively represent the data acquired at the i +1 th time and the i th time:
Figure GDA0002416359070000141
the port downlink speed rx _ speed is obtained by subtracting two downlink byte numbers by multiplying by 8 and dividing by a period, wherein rx _ bytes is the downlink byte number, and subscripts i +1 and i respectively represent data acquired at the (i + 1) th time and the (i) th time:
Figure GDA0002416359070000142
the total port speed is the sum of the uplink speed tx _ speed and the downlink speed rx _ speed:
speed=tx_speed+rx_speed
the use condition of a link depends on the lower port capacity at two ends of the link, so the rate of the link is the lower rate of the ports at two ends:
speed_link=min(speeda,speedb)
the link resource utilization rate link _ bw _ use is the current rate speed divided by the maximum rate curr _ capacity that can be transmitted by the port, where curr _ capacity is a fixed parameter of the switch:
Figure GDA0002416359070000151
(2) packet loss rate calculation
Packet loss is the percentage of packets lost over a period of time to the total number of packets sent. Network congestion, line faults, equipment faults, virus attacks, routing errors, etc. may all cause packet loss. The smaller the packet loss rate, the better the network quality. When the packet loss rate is higher than 10%, the network condition will deteriorate rapidly.
The packet loss amount loss _ packets is obtained by subtracting the received packet amount rx _ packets from the sent packet amount tx _ packets:
loss_packetsa-b=tx_packetsa-rx_packetsb
packet loss rate packet _ loss is the number of lost packets loss _ packets divided by the total amount of outgoing packets tx _ packets multiplied by 100%:
Figure GDA0002416359070000152
(3) time delay
The time delay (delay) is the time required for a data packet to travel from the transmitting end to the receiving end. In the link discovery process, the controller first sends a packet-out message with an LLDP message to each switch connected to the controller, and instructs the switches to forward the LLDP message from all ports, and after receiving the forwarded LLDP message, an adjacent switch receives the LLDP message and reports the LLDP message to the controller through a packet-in message because no corresponding flow entry exists, so that the sending delay fwd _ delay can be obtained by adding the time T1 from the controller to the switch a, the time T2 from the switch a to the switch B, and the time T3 from the switch B to the controller:
fwd_delay=T1(controller→A)+T2(A→B)+T3(B→controller)
the return delay re _ delay is the time T3 from controller to switch B plus the time T2 from switch B to switch a plus the time T1 from switch a to controller:
re_delay=T3(controller→B)+T2(B→A)+T1(A→controller)
based on the above data, the processing delay of the switch is ignored, and the delay latency is calculated as followsA
The controller sends send _ time carrying current timeAThe switch receives the message and then replies to the controller, and when the controller receives the message replied by the switch, the controller acquires the current system time now _ timeARTT from controller A to the switch is the current time now _ timeAMinus the send timeA
RTT from controller A to the switch is the current time now _ timeAMinus the send timeA
latencyA=now_timeA-send_timeA
latencyA=T1(controller→A)+T1(A→controller)
Assuming the round trip time is the same, the time delays of switches A and Ba-bComprises the following steps:
Figure GDA0002416359070000161
5. when the monitoring data is within the threshold value range, the multipath transmission mode is started in a self-adaptive mode, and the inlet switch S1 meeting the requirement is found
Under the condition of good network performance, packet loss is not easy to occur, and multi-path transmission is not needed, so that network resource waste is avoided; when the network performance is poor, packet loss is easy to occur in the network, and at the moment, multi-path transmission is started, so that the packet loss of a receiving end can be effectively reduced through the multi-path transmission, and the reliability of network transmission is improved.
If the user does not specify the monitoring parameters and the threshold range, the system sets the link utilization rate as the monitoring parameters by default, and sets the self-adaptive starting of the multi-path transmission mode when the threshold range of the link utilization rate is greater than 20%, and self-adaptive closing of the multi-path transmission mode when the threshold range of the link utilization rate is less than 20%. And when the user sets the monitoring parameters and the corresponding threshold values, the default monitoring parameters and the corresponding threshold values are invalid.
According to the adaptive situation, three modes can be divided:
(1) default adaptive mode
And under the condition that a user does not set any setting, setting the link utilization rate as a monitoring parameter by default, when the link utilization rate is more than 20%, starting the multi-path fault-tolerant transmission mode by the system in a self-adaptive manner, and when the link utilization rate is less than 20%, closing the multi-path fault-tolerant transmission mode by the system in a self-adaptive manner.
(2) User setting parameter self-adaptive mode
The user can also manually set monitoring parameters, and the optional monitoring parameters are as follows: the link utilization rate, the packet loss rate and the time delay, a user can set monitoring parameters and a corresponding threshold range according to requirements, and after the user sets the monitoring parameters and the corresponding threshold range, the default parameters and the threshold range are invalid; the system starts and closes a multi-path transmission mode according to monitoring parameters and a threshold range set by a user;
(3) manual mode
The user can manually open the multi-path transmission mode when the multi-path transmission mode is not opened, or manually close the multi-path transmission mode when the multi-path transmission mode is opened, at the moment, the two self-adaptive modes fail, and the self-adaptive mode can not continue to work until the user manually switches to the self-adaptive mode.
The SDN controller issues a group table or a common flow table with the type of ALL to the switch
In openflow1.1 and later versions, the concept of a group table is added, and the structure is shown in fig. 4:
the identifier is a 32-bit unsigned integer number used for uniquely identifying each group, the type represents the type of the group, the count is used for recording the number of packets processed by the group, the action bucket is an ordered list of action buckets, and each action bucket comprises a series of actions to be executed and related parameters. The types of the groups are 4, namely all, select, indelect and fastfailover, the types which the OpenFlow switch must support are all and indelect, the other two types are selectable, and the following types are 4 types respectively:
(1) and all, taking the received data packet as input, copying the data packet and providing the copied data packet to each bucket in the bucket list to independently execute actions. Each bucket may have different actions so that different copies of the data may perform different operations.
(2) select, originally designed for load balancing. Each packet has a weight value distributed in advance, and the data packet can be executed by selecting one packet according to an algorithm defined by the switch. As with all types, each bucket may have a different action.
(3) indecter: this group only supports one packet through which all received packets pass.
(4) fast failover: each bucket has a watcher port and/or watcher group as a special parameter, and the watcher port/group monitors the activity status of the specified port/group. If the active state is closed, this bucket will not be used, and if the active state is open, this bucket may be used. The first active bucket is selected for execution and only one bucket can be used at a time and this bucket will not be replaced unless the current active state is changed from open to closed. When the state changes from active to inactive, a switch is made quickly to the next active bucket, and the forwarding decision can be changed without interrogating the controller.
A Group contains one or more Action buckets, each containing one or more actions. The processing action of the message may be directed to a Group, so that the message is sent to the Group to continue processing. The processing of the group table is shown in FIG. 5;
group tables of type all are issued herein to forward the same data to multiple different ports for transmission to different paths through the multiple different ports. As shown in fig. 6;
the SDN controller issues a group table or a common flow table according to the following strategies:
1) when data flow passes through the switch and needs to be simultaneously forwarded from a plurality of output ports, a group table with the type of ALL is issued to the switch, and multi-path simultaneous data transmission is realized;
2) when the data flow passes through the switch and only needs to be forwarded from one output port, a common flow table is issued to the switch according to the calculated path;
7. the transmitting end transmits data. Specifically, the whole process has the following three cases:
(1) when a plurality of paths fail, no processing is performed, as shown in fig. 7.
(2) When the link of the Path1 fails, data is normally transmitted to the host h3 by the Path2, as shown in fig. 8.
Specifically, a network fault is divided into three conditions of disconnection, packet loss and time delay:
1> open circuit
a. Ordinary transmission
The method comprises the steps that iperf 1 h3 is used, a transmission path is s1-s2-s5-s4, links are input at a mininet terminal to 2 s5down to break a link, data cannot be transmitted after the link is broken, the links are input at the mininet terminal to 2 s5 up to restore the link, the data can continue to be normally transmitted after the link is restored, and the packet capturing situation of a wireshark at a s2-eth1 port is shown in fig. 9;
in fig. 9, the horizontal axis represents time, and the vertical axis represents the number of packets. 7s-16s is the first stage, data transmission is all normal, 17s-28s is the second stage, a link between the switch s2 and the switch s5 is manually interrupted, physical failure is simulated, no data packet passes in the period, 29s-36s is the third stage, the link between the switch s2 and the switch s5 is manually connected, the simulated physical failure is repaired, and data can be normally transmitted at the moment.
b. Multi-path transmission
Setting multipath runoff between h1 and h3, using iperf h1 h3, with transmission paths of s1-s2-s5-s4 and s1-s3-s7-s8-s4, disconnecting the link at the mini terminal input links s2 s5down, finding that data can be transmitted continuously after the link is disconnected, recovering the link at the mini terminal input links s2 s5 up, and still transmitting the data normally after the link is recovered, wherein the packet capturing situation of wireshark at the s2-eth1 port is shown in fig. 10:
in fig. 10, the horizontal axis represents time, and the vertical axis represents the number of packets. 6s-9s is a first stage, all data transmission is normal, 10s-18s is a second stage, a link between the switch s2 and the switch s5 is manually interrupted, physical failure is simulated, the data can still be normally transmitted in the period of time, 19s-24s is a third stage, the link between the switch s2 and the switch s5 is manually connected, the simulated physical failure is repaired, and at the moment, the data can still be normally transmitted.
2> packet loss
The packet loss rate is an important index of network performance, a data packet may be lost in the process of being transmitted from one end to the other end, the loss rate of the data packet is too high, so that a plurality of TCP datagrams need to be retransmitted, the network load and the data transmission time are increased, UDP does not perform processing, and the network quality is rapidly degraded after the packet loss rate exceeds 10%. The experiment respectively uses common transmission and multipath fault-tolerant transmission, sets loss parameters in a user-defined topology file to simulate a certain amount of packet loss, and compares a common stream receiving end with a multipath fault-tolerant stream receiving end.
a. Transmission using TCP protocol
Because the TCP protocol is a reliable transmission protocol, when packet loss occurs, lost data is retransmitted, h3 is used as a server, h1 and h2 are used as clients, both transmitting 500M data, a multipath stream is set between h1 and h3, a common stream is set between h2 and h3, and commands are executed at an h3 terminal, an h1 terminal and an h2 terminal respectively:
server-side (h3: 10.0.0.3): iperf-s-i 1
Client (h1: 10.0.0.1): iperf-c 10.0.0.3-n 500M
Client (h 2: 10.0.0.2): iperf-c 10.0.0.3-n 500M
Setting the link packet loss rate between s2 and s5 to be 5% in the custom topology: addlink (s2, s5, loss ═ 5)
According to experiments, the data with the same size of 500M are transmitted, the transmission time of h1-h3 is 2.0s, and the transmission time of h2-h3 is 97.3 s. It is obvious that the normal transmission time is longer than the transmission time in the multipath mode.
b. Transmission using UDP protocol
The UDP protocol is not a reliable transmission protocol, so that no processing is performed when packet loss occurs, h3 is used as a server, h1 and h2 are used as clients, both the server and the client transmit for 30 seconds, multipath runoff is set between h1 and h3, normal flow is set between h2 and h3, and commands are executed at the h3 end, the h1 end and the h2 end respectively:
server-side (h3: 10.0.0.3): iperf-s-u-i 1
Client (h1: 10.0.0.1): iperf-u-c 10.0.0.3-b 10M-t 30
Client (h 2: 10.0.0.2): iperf-u-c 10.0.0.3-b 10M-t 30
Setting the link packet loss rate of s1-s2 to be 5% in the custom topology: addlink (s1, s2, loss ═ 5)
According to experiments, the same transmission time is 30s, the packet loss rate of h1-h3 is 0%, and the packet loss rate of h2-h3 is 4.9%. Obviously, the packet loss rate of the common transmission mode is greater than that of the multipath transmission mode.
3> time delay
The delay is generally the time required for the data packet to be transmitted from the local to the opposite end, and generally, the one-way delay includes transmission delay, propagation delay, processing delay, and queuing delay. If the local-to-peer delay is equal to the peer-to-peer delay, the RTT (Round-Trip Time) is equal to about twice the delay, and if the delay is too large, the user may feel that the network is slow, especially for some applications with strong interactivity. The experiment respectively uses common transmission and multipath fault-tolerant transmission, a delay parameter is set in a user-defined topology file to simulate a certain time delay, and a common stream receiving end and a multipath fault-tolerant stream receiving end are compared.
Multipath tolerant flow is set between h1 and h3, normal flow is set between h2 and h3, and commands are executed at the h1 end and the h2 end respectively:
h1(10.0.0.1):ping 10.0.0.3-c 10
h2(10.0.0.2):ping 10.0.0.3-c 10
setting the link delay between s2 and s5 to be 100ms in the custom topology:
self.addLink(s2,s5,delay=’100ms’)
the round trip delay rtt of h1 and h3 has an average value of 0.204ms, and the round trip delay rtt of h2 and h3 has an average value of 206.939 ms. Obviously, the common transmission delay is larger than the transmission delay of the multipath mode.
(3) The sending end starts sending data, and when both paths are normally transmitted, the receiving end switch S4 processes redundant duplicate packets, as shown in fig. 11:
specifically, when the protocols of the transport layer are TCP and UDP, respectively:
1>TCP
when receiving a duplicate packet, the receiving end first discards the packet and then tells the sending end that the duplicate packet has been received, thereby bringing unnecessary load to the network. In addition, the pressure of the receiving end is increased by processing the repeated data packet, and experiments show that the time for directly processing the repeated data packet by using the receiving end is longer than the processing time for using the bloom filter. The experiment sets that multipath tolerant flow exists between h1 and h3, wherein h1 serves as a client and h3 serves as a server, data with the size of 1G are transmitted respectively, and the method is executed according to the following commands:
service (h3: 10.0.0.3): iperf-s-i 1
Client (h1: 10.0.0.1): iperf-c 10.0.0.3-n 1G
a. Without using bloom filters
The Wireshark is used for grabbing the packet at the s3-eth1 port, and the packet grabbing result is shown in FIG. 12:
b. using bloom filters
The Wireshark is used for grabbing the packet at the s3-eth1 port, and the packet grabbing result is shown in FIG. 13:
as can be seen from the packet capturing results in fig. 12 and fig. 13, the number of data packets in a link is significantly greater than that of a link using a bloom filter mechanism without using the bloom filter mechanism, and at the same time, two sets of experiments transmit 1G data of the same size, the transmission time using the bloom filter mechanism is 6 seconds, while the transmission time without using the bloom filter mechanism is 10 seconds, in addition, the number of repeated reply packets is indicated by vertical lines in fig. 12, and the number of repeated reply packets in fig. 13 is zero, which indicates that the bloom filter deployed on the switch has already played a role in filtering repeated packets before the receiving end receives the repeated packets.
2>UDP
VLC is an open-source cross-platform multimedia player, and in addition, a UDP-based streaming media server can be built. The method is characterized in that an vlc.1.6 version is used for building a UDP-based streaming media server for testing, a host h1 is used as a server side, a host h3 is used as a client side, h1 and h3 are set as a multi-path fault-tolerant host pair, and commands are executed at an h1 end and an h3 end respectively:
service (h1: 10.0.0.1): vlc-vvv sample. avi- -sout udp:10.0.0.3:1234- -ttl10
Client (h3: 10.0.0.3): vlc udp:// @ 1234
a. Without using bloom filters
The sample.avi video cannot normally display images, and the client cannot normally receive data.
b. Using bloom filters
The sample.avi video can be played normally at the client, which shows that the bloom filter deployed on the switch has already played the role of filtering the duplicate packets.

Claims (7)

1. A reliable transmission method based on an SDN network is characterized by comprising the following steps:
the method comprises the following steps: modifying a source code of a receiving end open virtual switch standard OpenvSwitch software switch directly connected with a host to be guaranteed; the modification process is as follows:
1) identifying a duplicate data packet: adopting source IP + identification + piece deviation as identification for distinguishing data packets;
2) selecting a function for modification;
3) deploying a bloom filter: adding a bloom filter BloomFilter in the selected function;
4) and (3) processing strategies: when a data packet reaches a switch at a receiving end, the open virtual switching standard openvswitch software switch uses the source IP + identification + piece offset of the data packet as a key value to carry out Hash Hash to check whether the data packet is in a bloom filter;
step two: an SDN controller acquires a network topology;
the controller uses LLDP as a link discovery protocol, in the link discovery process, the controller firstly sends packet-out information with LLDP messages to each switch connected with the controller, the switches receive the information and organize the information of the device into type/light/value and encapsulate the type/light/value into LLDPDU, the LLDPDU is forwarded to all direct-connected ports, after receiving the forwarded LLDP, the adjacent switches report the LLDP to the controller through the packet-in information, then the controller analyzes the packet-in information reported by the switches to obtain link information between the switches, and records the link information into a link discovery table, so that the controller obtains the topology information of the whole network;
step three: the SDN controller acquires a reliable transmission process pair designated by a user and calculates a path; a user specifies a pair of processes to be reliably transmitted in advance, and the SDN controller calculates a plurality of forwarding paths after acquiring process pair information;
step four: monitoring a specified network use condition parameter by an SDN controller;
selecting three parameters of monitoring link utilization rate, packet loss rate and time delay to feed back the quality of network performance, and selecting one of the three parameters as a system monitoring parameter by a user and setting a corresponding threshold range;
step five: when the monitoring data is within the threshold range, a multi-path transmission mode is started in a self-adaptive mode, and a plurality of transmission paths meeting the requirements are found;
step six: according to the configuration condition of a plurality of transmission paths, the SDN controller issues a group table or a common flow table with the type of ALL to the SDN switch;
the SDN controller issues a group table or a common flow table according to the following strategies:
1) when data flow passes through the switch and is simultaneously forwarded from a plurality of output ports, a group table with the type of ALL is issued to the switch, and multi-path simultaneous data transmission is realized;
2) when the data flow passes through the switch and is only forwarded from one output port, a common flow table is issued to the switch according to the calculated path;
step seven: the sending end sends data, and the following two conditions exist according to different protocols used by a transmission layer:
1) when the transport layer protocol is UDP, sending data;
2) when the transport layer protocol is TCP, data is sent and packets are retransmitted when there is a packet loss or error.
2. The SDN network-based reliable transmission method according to claim 1, wherein the function selected in the first step is: void ovs _ vport _ receive structure vport, structure sk _ buf skb, conststruct ovs _ channel _ info _ in _ info; in the first step, the receiving end switch decides the acceptance or rejection of the received data packet according to the following strategies:
when a first copy of the data packet is received, extracting information in the data packet, writing the information into a bloom filter, and transmitting the data packet to a receiving end host; at this time, if the data packet copies transmitted through other paths are lost due to faults or still do not arrive due to time delay, the data received by the host at the receiving end is not affected because the first copy is normally received and submitted to the host;
when a plurality of copies of the data packet are received, because the information copied by the first copy of the data packet is written into the bloom filter and the first copy of the data packet is transmitted to the host, when the same data packet copy arrives subsequently, the data packet is found to be written into the bloom filter when the same data packet copy arrives, and the data packet is discarded if the data packet copy is judged to be the repeated data packet.
3. The SDN network-based reliable transmission method according to claim 1, wherein the calculation of link utilization, packet loss and delay in step four includes:
1) link utilization calculation
The link utilization rate is the percentage of the traffic passing through the current link in the maximum traffic which can be transmitted by the link within a period of time;
the period T is the difference between two times, where the duration _ sec field and the duration _ nsec field indicate the time the flow is present in the switch and the value of the total duration in nanoseconds is calculated by: duration _ sec × 109+ duration _ nsec, subscripts i +1 and i denote the data acquired i +1 and i, respectively:
T=(duration_seci+1+duration_nseci+1)-(duration_seci+duration_nseci)
the port uplink rate tx _ speed is the subtraction of the number of uplink bytes twice multiplied by 8 divided by the period, where tx _ bytes is the number of uplink bytes, and subscripts i +1 and i respectively represent the data acquired at the i +1 th time and the i th time:
Figure FDA0002416359060000031
the port downlink speed rx _ speed is obtained by subtracting two downlink byte numbers by multiplying by 8 and dividing by a period, wherein rx _ bytes is the downlink byte number, and subscripts i +1 and i respectively represent data acquired at the (i + 1) th time and the (i) th time:
Figure FDA0002416359060000032
the total port speed is the sum of the uplink speed tx _ speed and the downlink speed rx _ speed:
speed=tx_speed+rx_speed
the use condition of one link depends on the lower port capability at two ends of the link, so the speed _ link of one link is the lower speed at the ports at two ends, speedaSpeed being the total rate of port abFor port b total rate:
speed_link=min(speeda,speedb)
link resource utilization link _ bw _ usagea-bDividing the current speed _ link by the maximum speed curr _ capacity which can be transmitted by the port, wherein the curr _ capacity is a fixed parameter of the switch:
Figure FDA0002416359060000033
2) packet loss rate calculation
The packet loss rate is the percentage of the total packet transmission quantity of the lost data packets within a period of time; the number of lost packets is loss _ packets for the link with the sending port a and the receiving port ba-bTo send out the amount of packets tx packetsaSubtracting the amount of received packets rx packetsb
loss_packetsa-b=tx_packetsa-rx_packetsb
Packet loss rate packet _lossa-bLoss _ packets as the number of lost packetsa-bDivided by the total amount of outgoing packets tx packetsaMultiplication by 100%:
Figure FDA0002416359060000041
3) time delay
The time delay is the time required for a data packet to travel from a transmitting end to a receiving end; in the link discovery process, the controller first sends a packet-out message with an LLDP message to each switch connected to the controller, and instructs the switches to forward the LLDP message from all ports, and after receiving the forwarded LLDP message, the neighboring switches report the LLDP message to the controller through a packet-in message, so as to obtain a sending delay fwd _ delay of T1_ fwd from the controller to switch a, T2_ fwd from switch a to switch B, and T3_ fwd from switch B to the controller:
fwd_delay=T1_fwd+T2_fwd+T3_fwd
the return delay re _ delay is the time T3_ re from the controller to switch B plus the time T2_ re from switch B to switch a plus the time T1_ re from switch a to the controller:
re_delay=T3_re+T2_re+T1_re
based on the above data, the processing delay of the switch is ignored, and the delay latency is calculated as followsA
The controller sends send _ time carrying current timeAThe switch receives the message and then replies to the controller, and when the controller receives the message replied by the switch, the controller acquires the current system time now _ timeARTT from controller A to the switch is the current time now _ timeAMinus the send timeA
RTT from controller A to the switch is the current time now _ timeAMinus the send timeA
latencyA=now_timeA-send_timeA
Namely latencyA=T1_fwd+T1_re
Switch B is calculated in a similar manner as switch a, and the RTT from the controller to switch B is:
latencyB=now_timeB-send_timeB
namely latencyB=T3_fwd+T3_re
Assuming the round trip time is the same, the time delays of switches A and Ba-bComprises the following steps:
Figure FDA0002416359060000042
4. the SDN network-based reliable transmission method of claim 1, wherein in step five, the ingress switch should have at least N +1 ports according to the number N of paths to be transmitted.
5. The SDN network-based reliable transmission method according to claim 1, wherein in step five, according to an adaptive condition, the method is divided into three modes:
1) default adaptive mode
Under the condition that a user does not make any setting, the link utilization rate is set as a monitoring parameter by default, when the link utilization rate is more than 20%, the system self-adaptively starts a multi-path fault-tolerant transmission mode, and when the link utilization rate is less than 20%, the system self-adaptively closes the multi-path fault-tolerant transmission mode;
2) user setting parameter self-adaptive mode
The user can manually set monitoring parameters, and the selectable monitoring parameters are as follows: the method comprises the steps that link utilization rate, packet loss rate and time delay are achieved, a user sets monitoring parameters and a corresponding threshold range according to requirements, and after the user sets the monitoring parameters and the corresponding threshold range, default parameters and the threshold range are invalid; the system starts and closes a multi-path transmission mode according to monitoring parameters and a threshold range set by a user;
3) manual mode
When the multi-path transmission mode is not started, the user manually starts the multi-path transmission mode, or when the multi-path transmission mode is started, the multi-path transmission mode is manually closed, at the moment, the two self-adaptive modes fail, and the self-adaptive mode can not continue to work until the user manually switches to the self-adaptive mode.
6. The SDN network-based reliable transport method of claim 1, wherein there are three cases for the network topology in step three: nodes are not intersected; link disjoint; part of the links are disjoint.
7. The SDN network-based reliable transmission method according to claim 6, wherein nodes are disjoint, that is, two paths have neither common nodes nor common links, the network has the best fault tolerance, and in case of transmission failure, the transmission performance is affected by the least extent; links are not intersected, namely two paths have no common link but have a common node, so that when a certain section of link on one path fails, the other path cannot be influenced; if the two paths can not be found, a Suurballel algorithm proposed by Ramesh Bhandari is adopted to modify a link disjoint path algorithm into a partial link disjoint path algorithm, so that a key path which must be used can be repeatedly used, and a path with the least link intersection is found.
CN201710552982.9A 2017-07-07 2017-07-07 SDN-based reliable transmission method Active CN107347021B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710552982.9A CN107347021B (en) 2017-07-07 2017-07-07 SDN-based reliable transmission method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710552982.9A CN107347021B (en) 2017-07-07 2017-07-07 SDN-based reliable transmission method

Publications (2)

Publication Number Publication Date
CN107347021A CN107347021A (en) 2017-11-14
CN107347021B true CN107347021B (en) 2020-05-22

Family

ID=60257768

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710552982.9A Active CN107347021B (en) 2017-07-07 2017-07-07 SDN-based reliable transmission method

Country Status (1)

Country Link
CN (1) CN107347021B (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108092895B (en) * 2017-12-26 2020-07-14 重庆邮电大学 Software Defined Network (SDN) joint routing selection and network function deployment method
CN108449275B (en) * 2018-03-21 2020-07-31 常熟理工学院 Reliable software defined network implementation method
CN108549684B (en) * 2018-04-04 2020-08-18 西安交通大学 Caching method adopting multi-path search reduction rule dependence in SDN
CN108881031B (en) * 2018-06-11 2020-09-18 云南师范大学 Self-adaptive reliable data transmission method based on SDN network
CN109067758B (en) * 2018-08-23 2020-07-10 江苏大学 SDN network data transmission privacy protection system and method based on multiple paths
CN109640195A (en) * 2018-11-16 2019-04-16 中国电力科学研究院有限公司 A kind of emulation mode and system towards power communication Optical Transmission Network OTN large scale scene
CN110087335B (en) * 2019-04-30 2023-05-12 上海寰创通信科技股份有限公司 Data transmission system and method for aggregating multiple wireless links
CN111782885A (en) * 2020-06-22 2020-10-16 华青融天(北京)软件股份有限公司 Method and device for judging state of data set
CN113923138B (en) * 2020-07-07 2023-03-31 瑞昱半导体股份有限公司 Communication device and network management method
CN113300963B (en) * 2021-04-07 2022-07-15 北京邮电大学 Loop-free updating method for forwarding path of software defined network
CN113645058A (en) * 2021-06-28 2021-11-12 苏州浪潮智能科技有限公司 Network link flow monitoring method, device and system
CN113535359B (en) * 2021-07-23 2023-11-10 中国科学技术大学苏州高等研究院 Method and device for scheduling service requests in multi-tenant cloud
CN113904977A (en) * 2021-10-13 2022-01-07 中国电信股份有限公司 Multilink gateway data transmission method and device, electronic equipment and readable medium
CN114928526B (en) * 2022-02-09 2023-06-16 北京邮电大学 SDN-based network isolation and resource planning method and system
CN114567582B (en) * 2022-02-24 2022-11-22 南京航空航天大学 SDN network trusted route scheduling method based on path tracking feedback

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104734957A (en) * 2013-12-24 2015-06-24 中国移动通信集团公司 Service transmission method and device in software defined network (SDN)
CN105791175A (en) * 2014-12-26 2016-07-20 电信科学技术研究院 Method and equipment for controlling transmission resources in software defined network SDN
CN106357537A (en) * 2016-11-09 2017-01-25 北京工业大学 Link monitoring method based on SDN multipath transmission

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105100142B (en) * 2014-05-04 2018-10-09 新华三技术有限公司 The transfer control method and device of software defined network protocol massages
US10194345B2 (en) * 2014-10-15 2019-01-29 Fortinet, Inc. Self-provisioning of a wireless communication network using coordination of data plane behavior to steer stations to preferred access points
US10069722B2 (en) * 2015-09-03 2018-09-04 International Business Machines Corporation Application information based network route modification

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104734957A (en) * 2013-12-24 2015-06-24 中国移动通信集团公司 Service transmission method and device in software defined network (SDN)
CN105791175A (en) * 2014-12-26 2016-07-20 电信科学技术研究院 Method and equipment for controlling transmission resources in software defined network SDN
CN106357537A (en) * 2016-11-09 2017-01-25 北京工业大学 Link monitoring method based on SDN multipath transmission

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A Comparison of SDN and NFV for Re-designing;Aman Jain, Sadagopan N S;《2016 IEEE Conference on Network Function Virtualization and Software Defined Networks》;20170508;全文 *
基于SDN流量测量的数据中心多路径传输研究;杨洋,杨家海,温皓森,王会;《华中科技大学学报》;20161116;第44卷(第11期);全文 *
面向SDN的未来传输网络管理体系探索;王占京,陈聪,霍晓莉;《电信网技术》;20150715;全文 *

Also Published As

Publication number Publication date
CN107347021A (en) 2017-11-14

Similar Documents

Publication Publication Date Title
CN107347021B (en) SDN-based reliable transmission method
US7355975B2 (en) Method and apparatus for group communication with end-to-end reliability
Yi et al. A case for stateful forwarding plane
US7801135B2 (en) Transport protocol connection synchronization
US7430164B2 (en) Path recovery on failure in load balancing switch protocols
US6577600B1 (en) Cost calculation in load balancing switch protocols
US6865160B1 (en) Broadcast tree determination in load balancing switch protocols
US6456597B1 (en) Discovery of unknown MAC addresses using load balancing switch protocols
US7283476B2 (en) Identity negotiation switch protocols
US8306039B2 (en) Methods and systems for automatic transport path selection for multi-homed entities in stream control transmission protocol
KR101700141B1 (en) Method and apparatus for maintaining port state tables in a forwarding plane of a network element
US6473403B1 (en) Identify negotiation switch protocols
Iyengar et al. Receive buffer blocking in concurrent multipath transfer
CN108667681A (en) Routing for Multi-path route tracks
CN106576108B (en) Communication method, equipment and system in communication system
WO2022253087A1 (en) Data transmission method, node, network manager, and system
Alheid et al. An analysis of the impact of out-of-order recovery algorithms on MPTCP throughput
JP2001308900A (en) Network and protocol for group multi-casting
US7978598B1 (en) Connection replication
Wang et al. Concurrent multipath transfer protocol used in ad hoc networks
Caro Jr End-to-end fault tolerance using transport layer multihoming
Ladha et al. On making SCTP robust to spurious retransmissions
Caro et al. Transport layer multihoming for fault tolerance in FCS networks
US11374856B1 (en) System and method for performing synchronization of maximum transmission unit with router redundancy
CN107231316A (en) The transmission method and device of message

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