CN107347021A - One kind is based on SDN method for reliable transmission - Google Patents

One kind is based on SDN method for reliable transmission Download PDF

Info

Publication number
CN107347021A
CN107347021A CN201710552982.9A CN201710552982A CN107347021A CN 107347021 A CN107347021 A CN 107347021A CN 201710552982 A CN201710552982 A CN 201710552982A CN 107347021 A CN107347021 A CN 107347021A
Authority
CN
China
Prior art keywords
packet
time
mrow
link
interchanger
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710552982.9A
Other languages
Chinese (zh)
Other versions
CN107347021B (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
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

Landscapes

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

Abstract

The invention discloses one kind to be based on SDN method for reliable transmission, it is related to network communication technology field, it is mainly used in computer network, information centre's network etc., in order to lift the time between failures based on SDN, improve the reliability of network transmission, the present invention is adaptively calculated according to Internet usage situation based on SDN and by mulitpath while sends data, while unnecessary repetitive data packet is handled on receiving terminal software switch.By the above-mentioned means, the present invention can effectively improve the reliability of network data transmission, network interruption caused by link breaks down or the possibility of delay are reduced, the time between failures of network is lifted, provides the user more preferable network service quality.

Description

One kind is based on SDN method for reliable transmission
Technical field
It is more particularly to a kind of to be based on SDN method for reliable transmission the present invention relates to network communication technology field.
Background technology
With the fast development of internet, promptness, reliability of all kinds of business all to network transmission propose higher It is required that.Typically be transmitted in network transmission process using individual paths, once in transmission path occur physical fault or During logic fault, the transmission of normal data is just influenced whether.In the case where network size is very big, when network breaks down, If solution is manually configured, it is necessary to expend substantial amounts of man power and material by network management personnel, and recovery time is longer.
Software defined network (Software-Defined Networking, SDN) be a kind of emerging dynamic, manageability, Adaptable innovation framework.Its core technology OpenFlow is decoupling by data forwarding plane and control plane, realizes net The flexible control of network flow.
Mainly there are two kinds of recovery mechanisms under existing SDN environment:Passive type Restoration Mechanism and active path Protection mechanism.Passive type Restoration Mechanism actively notices controller when link breaks down by interchanger, and controller recalculates It route and is handed down to impacted interchanger.And active path protection mechanism is to calculate backup path in advance.Work as main path Controller is not noticed during failure, is voluntarily switched on backup path.
The content of the invention
It is an object of the invention to provide one kind to be based on SDN method for reliable transmission, to solve to occur in transmission path When physical fault or logic fault, the problem of having influence on the transmission of normal data.
To achieve the above object, the present invention uses following technical scheme:
One kind is based on SDN method for reliable transmission, comprises the following steps:
Step 1:Change and receiving terminal that main frame to be ensured is joined directly together opens virtual switch standard OpenvSwitch Software switch source code;Modification process is as follows:
1) repetitive data packet is identified:It is used as the mark for distinguishing packet using source IP+mark+piece skew;
2) Modification growth function:Selection of Function is modified;
3) Bloom filter is disposed:Bloom filter BloomFilter is added in the function of above-mentioned selection;
4) processing strategy:When packet reaches the interchanger of receiving terminal, open virtual switch standard openvSwtich is soft Whether source IP+mark+piece skew of part interchanger using packet carries out hash Hash as key values and checks the packet in cloth In grand filter;
Step 2:SDN controllers obtain network topology;
Controller uses LLDP, and as link discovery protocols, controller first can be connected to it during link discovery Each interchanger send packet-out message with LLDP messages, interchanger, which receives, by the letter of this equipment after message Breath is organized into type/lenght/value (type/length/value) and is packaged into LLDPDU (Link Layer Discovery Protocol data sheets Member), all direct-connected ports are forwarded to, can be by packet-in message after adjacent interchanger receives the LLDP messages of forwarding Controller is offered, the packet-in message that then controller analysis interchanger reports obtains the link information between interchanger, And recorded in link discovery table, so as to which controller obtains full mesh topology information;
Step 3:SDN controllers obtain the transmitting process pair that user specifies and calculate path;User specifies treat in advance A pair of processes of transmitting, after SDN controllers obtain process to information, calculate a plurality of forward-path;
Step 4:SDN monitoring control devices specify Internet Use parameter;
Selection monitoring three link utilization, packet loss and time delay parameters carry out the quality of feedback network performance, user from this One is selected in three parameters as system monitoring parameter and corresponding threshold range is set;
Step 5:When Monitoring Data is in threshold range, self-adapting start multi-path transmission mode, finds and meet the requirements More transmission paths;
Step 6:According to the composition situation of more transmission paths, it is ALL that SDN controllers issue type to SDN switch Group table or common flow table;
SDN controllers press following policy distribution group table or common flow table:
1) when data flow passes through interchanger, when being forwarded from multiple exit ports simultaneously, it is ALL to issue type to the interchanger Group table, realize multipath while send data;
2) when data flow passes through interchanger, when only being forwarded from an exit port, to the interchanger according to the path calculated Issue common flow table;
Step 7:Transmitting terminal sends data, has following two situations using the difference of agreement according to transport layer:
1) when transport layer protocol is UDP (UDP), data are sent;
2) when transport layer protocol is TCP (transmission control protocol), data is sent and retransmit data in packet loss or error Bag;
Further, the function chosen in step 1 is:void ovs_vport_receive struct vport* vport,struct sk_buff*skb,const struct ovs_tunnel_info*tun_info;In step 1, receive The choice for the packet that end switch is received by following strategy decision:
When receiving the copy of packet, the information write-in Bloom filter in packet is extracted, and by data Bag sends reception end main frame to;If now through other path transmissions packet copy for some reason barrier lose or because of time delay not yet Reach, then because copy has normally received and is submitted to main frame, receiving terminal host receiving data is unaffected;
When receiving more parts of packet copies, because the information of first part of packet copy has been written into Bloom filter, And first part of packet has been transmitted to main frame, when it is follow-up have identical data packet copy to up to when, when writing Bloom filter It was found that the packet has been written into, it is judged as repetitive data packet, then abandons.
Further, the calculating of step 4 link utilization rate, packet loss and time delay:
1) link utilization calculates
Link utilization is in a period of time, and the flow that current ink passes through accounts for the hundred of the maximum stream flow that the link can transmit Divide ratio;
Cycle T is the difference of time twice, wherein duration_sec (duration-second) field and duration_nsec The existing time in a switch is flowed in the expression of (duration-nanosecond) field, and the value of whole duration is represented with nanosecond, its Computational methods are:duration_sec×109+ duration_nsec, subscript i+1 and i represent that i+1 time and ith obtain respectively The data taken:
Ta=(duration_seci+1+duration_nseci+1)-(duration_seci+duration_nseci)
Port upstream rate tx_speed subtracts each other for up byte number twice is multiplied by 8 divided by cycle, and wherein tx_bytes is Up byte number, subscript i+1 and i represent the data that i+1 time and ith obtain respectively:
Port downstream rate rx_speed subtracts each other for descending byte number twice is multiplied by 8 divided by cycle, and wherein rx_bytes is Descending byte number, subscript i+1 and i represent the data that i+1 time and ith obtain respectively:
The total speed speed in port is upstream rate tx_speed and downstream rate rx_speed sums:
speeda=tx_speeda+rx_speeda
The service condition of one link depends on the port capabilities junior of the both link ends, so the speed of a link For both ends port medium-rate smaller:
Speed=min (speeda,speedb)
The maximum rate that link circuit resource utilization rate link_bw_usage is present rate speed divided by port can transmit Curr_capacity, wherein curr_capacity are the preset parameter of interchanger:
2) packet loss calculates
Packet loss is in a period of time, and lost data packets account for the percentage for quantity of always giving out a contract for a project;Packet loss quantity loss_ Packets subtracts received data packet amount rx_packets to send packet amount tx_packets:
loss_packetsa-b=tx_packetsa-rx_packetsb
Packet loss packet_loss is the quantity loss_packets of lost package divided by always sends packet amount tx_ Packets is multiplied by 100%:
3) time delay
Time delay is time of the packet needed for from transmitting terminal to receiving terminal;During link discovery controller can first to Each interchanger that it is connected sends the packet-out message with LLDP messages, and indicates that interchanger reports LLDP Text forwards from all of the port, can be by packet-in information reportings to control after adjacent interchanger receives the LLDP messages of forwarding Device processed, thus obtain transmission delay fwd_delay be controller to switch A time T1 add switch A to switch b when Between T2 add switch b to the time T3 of controller:
Fwd_delay=T1 (controller → A)+T2 (A → B)+T3 (B → controller)
Return time delay re_delay is that the time T3 of controller to switch b adds switch b to the time T2 of switch A Add switch A to the time T1 of controller:
Re_delay=T3 (controller → B)+T2 (B → A)+T1 (A → controller)
According to data above, ignore the processing delay of interchanger, as follows calculation delay latencyA
Controller, which is sent, carries current time send_timeARequest message to interchanger, interchanger returns after receiving message Again to controller, when controller receives the message of interchanger reply, present system time now_time is obtainedA, controller The RTT of A to interchanger is current time now_timeASubtract and send time send_timeA
The RTT of controller A to interchanger is current time now_timeASubtract and send time send_timeA
latencyA=now_timeA-send_timeA
That is latencyA=T1 (controller → A)+T1 (A → controller)
Switch b is similar with switch A calculation;
Assuming that two-way time is identical, then switch A and B time delay delay are:
Further, should at least N+1 port according to number of passes N waiting for transmission, access switch in step 5.
Further, Three models are divided into according to adaptive situation in step 5:
1) adaptive model is given tacit consent to
In the case where user does not do any setting, default setting link utilization is monitoring parameters, works as link utilization During more than 20%, system self-adaption starts the fault-tolerant transmission means of multipath, and when link utilization is less than 20%, system is adaptive The fault-tolerant transmission means of multipath should be closed;
2) user's arrange parameter adaptive model
User can set monitoring parameters manually, and optional monitoring parameters are:Link utilization, packet loss and time delay, use Family sets monitoring parameters and corresponding threshold range according to demand, and monitoring parameters and corresponding threshold range are set in user Afterwards, default parameters and threshold range failure;The monitoring parameters and threshold range that system is set according to user start and closed multichannel Footpath transmission means;
3) manual mode
User is when multi-path transmission mode is not turned on, manually opened multi-path transmission mode, or is passed in multipath When defeated mode is opened, manual-lock multi-path transmission mode, now first two adaptive model failure, until user's manual switching To adaptive model, adaptive model can just work on.
Further, in step 3 for network topology, the selection in path shares three kinds of situations:Node is non-intersect; Link-disjoint paths;Part of links is non-intersect.
Further, it is that two paths had not both had common node or do not had common link that node is non-intersect, and network has most Good fault-tolerant ability, in the case where transmission fault occurs, the impacted amplitude of transmission performance is minimum;Link-disjoint paths are two Path does not have common link but common node be present, therefore during certain section of link failure on one path, in addition a paths It is unaffected;If both paths all can not find, using the Suurballe algorithms of Ramesh Bhandari propositions Modification Link-disjoint paths routing algorithm turns into part of links nonintersecting paths algorithm so that the critical path that must be used can It is reused, finds link and intersect minimum path.
Compared with prior art, the present invention has following technique effect:
When occurring link down in network, under normal transmission pattern, it is transmitted using individual paths, once chain Road is interrupted, and communication is interrupted at once;And the present invention uses multipath transfer data so that data transfer obtains multichannel Footpath ensures, even if the link or node wherein on a paths break down, does not also interfere with the transmission of normal data.
When certain packet loss in network be present, under normal transmission pattern, the data of loss can be retransmitted using Transmission Control Protocol Bag, causes transmission time to increase, can be without any processing to lost data packets using udp protocol, leaves to lose;And present invention side Method is due to using a plurality of disjoint path simultaneous transmission, although certain packet loss on a paths be present, other paths Still can be with normal transmission data, unaffected, as long as mulitpath loss is not same packet, receiving terminal can is just Often receive data.When certain packet loss in path be present, an equal amount of data volume is transmitted using Transmission Control Protocol, it is of the invention Transmission time is much smaller than the transmission time under normal transmission pattern, and the data of same time are transmitted using udp protocol, of the invention Packet loss is much smaller than the packet loss under normal transmission pattern.
It is delayed when having certain in network, under normal transmission pattern, network delay can cause the interaction between main frame Delay, round-trip delay rtt increases;And the inventive method due to use a plurality of disjoint path simultaneous transmission, even if wherein one There is time delay in paths, but other paths still can transmit data without time delay, and transmission time depends on all transmission path middling speeds Most fast that paths of degree, in the paths in the presence of be delayed, round-trip delay rtt of the invention is much smaller than under normal transmission pattern Rtt average values.
As can be seen here, when interruption, packet loss, delay occurs in network, the present invention improves data transfer Reliability, it is expected to reliable timely transmission service is provided for the network application of association area, when lifting the no-failure operation of network Between, guarantee is provided for the normal operation of related application, produces economic benefit.
Brief description of the drawings
Fig. 1 is IP header structures
Fig. 2 is bloomfilter structures
Fig. 3 is that Ryu controllers find link
Fig. 4 is the structure of group list item
Fig. 5 is Group Table processing procedure
Fig. 6 is that the group table that type is ALL forwards situation
Fig. 7 is the present invention schematic diagram that two paths break down during network data transmission
Fig. 8 is the present invention schematic diagram that individual paths break down during network data transmission
Fig. 9 is normal transmission wireshark in s2-eth1 ports packet capturing situation
Figure 10 is multi-path transmission wireshark in s2-eth1 ports packet capturing situation
Figure 11 is the present invention schematic diagram that path is not broken down during network data transmission
Figure 12 is in s3-eth1 ports packet capturing result without using Bloom filter Wireshark
Figure 13 is in s3-eth1 ports packet capturing result using Bloom filter Wireshark
Embodiment
Below in conjunction with accompanying drawing, the present invention is further described:
1. change receiving terminal software switch source code
The interchanger that main frame with needing to ensure is joined directly together should be OpenvSwitch software switch, divide several steps below Introduce the process of modification source code:
(1) repetitive data packet is identified
ISO (International Organization for Standardization, International Organization for standardization) makes OSI (Open System Interconnection, open system interconnection) model is determined, the work of network service is divided into 7 Layer, is physical layer, data link layer, Internet, transport layer, session layer, expression layer and application layer respectively.Wherein transport layer provides Service end to end between host application program process, is the core of whole protocol hierarchies, only responsible overall number According to transmission and control, the reliability of communication service is provided for upper strata.The most important two kinds of agreements of transport layer are respectively TCP (Transmission Control Protocol, transmission control protocol) and UDP (User Data Protocol, user data Datagram protocol).
TCP is Connection-oriented Protocol.Both sides must be established by three-way handshake before formal communication and be connected, Zhi Houcai Data can be transmitted, both sides wave to disconnect when terminating to communicate by four times.Transmission Control Protocol provides the reliable biography under IP world Defeated, the necessary received in-order of packet, TCP distributes a sequence number to each packet, and recipient can be to the packet of sender Sequence number is confirmed, tells other side oneself to receive the data before appointed sequence number, if transmitting terminal in round-trip delay not The confirmation from recipient is received, packet is assumed by and has lost, it will retransmits packet.Transmission Control Protocol is applied to efficiency It is required that relatively low but relatively high to accuracy requirement scene.
UDP is connectionless agreement.Both sides need not establish connection before formal communication, no matter what state of other side all may be used To directly transmit, recipient only calls receiver function, and the packet received is unordered, and data-bag lost can not be felt Know.Therefore, UDP transmission is insecure.Although UDP can not provide reliable transmission, some relatively high to efficiency requirements Scene under, it is necessary to transmit data using UDP modes.
Identical data is sent simultaneously on mulitpath, in the case where transport layer uses Transmission Control Protocol, receiving terminal can be When receiving repetitive data packet, the packet of repetition is on the one hand discarded, on the other hand can send ACK to transmitting terminal tells transmission This repetitive data packet is held to receive, which not only adds the burden of receiving terminal, while also to added in network need not The flow wanted, it is therefore necessary to which the packet for being responsible for disposing repetition by interchanger before packet reaches main frame is connect with ensureing Receiving end can normally receive packet;In the case where transport layer uses udp protocol, more parts of data can be received simultaneously by receiving end main frame And any processing will not be carried out, it can so cause to receive mistake, it is therefore necessary to handle before packet reaches and receives end main frame Fall the packet of repetition to ensure normally receiving for packet.
In order to which the packet of repetition can be handled in reception end switch, first have to judge whether these packets are to repeat 's.In a computer network, usually require to realize that data communicate by intermediate node between two end points, these intermediate nodes are simultaneously It is indifferent to data content, a switching equipment is only provided, data are forwarded to another node from a node, until reaches mesh End.After data have arrived Internet, purpose node that router just forwards a packet to these data in another network. IP softwares maintain a counter in memory, often produce a datagram, counter just adds 1, and this value is assigned to identify (identification) field, as shown in Figure 1;
This " mark " is not sequence number, because IP is Connectionless transport service, the problem of received in-order is not present in packet.When Datagram due to length exceed network MTU and must burst when, the value of this identification field is copied to all data In the identification field of report.The value of identical identification field makes each data report tablet after burst finally can correctly reset as original Datagram.For identification field length for 16 bits, it is necessary to be used together with indicating with piece offset field, label length is 3 bits, First without using second is DF positions, and DF positions are set to show that router can not be segmented the upper layer data bag when 1.If one Individual upper layer data bag can not be forwarded in the case where not being segmented, then router can abandon the upper layer data bag and return one Error message.3rd is MF positions, and when router is segmented to a upper layer data bag, then router can be except last point MF positions are set to 1 in the packet header of the IP bags of section;Piece offset field length is 13 bits, represents the IP bags in the component sheets bag middle position Put, receiving terminal assembles reduction IP bags by this.Recombination based on mark, it can be determined using the mark in IP header structures Whether two packets identical, and in the case where there is burst, mark is identical, at this moment need to compare piece skew it is whether identical come it is true Whether fixed two packets are identical, therefore are used as the mark for distinguishing packet using source IP+mark+piece skew.
(2) Modification growth function
Understood by the operation principle and source code of analyzing Open vSwitch when thering is network bag to reach network interface card, Openvswitch kernel module openvswitch.ko can register a function netdev_frame_hook on network interface card, connect Calling netdev_port_receive and carry out processing data bag, call ovs_vport_receive to continue with, in this letter Ovs_flow_key_extract functions are called to be extracted from the physical layer of packet, MAC layer, Internet, transport layer in number Key values, then call ovs_dp_process_received_packet functions, this function call ovs_flow_tbl_ Lookup_stats functions search the flow for meeting key in the flow table of kernel, if there is the flow for meeting key, it is possible to Fast path is walked, ovs_execute_actions functions is directly invoked and performs this key and act accordingly;If there is no symbol Key flow is closed, just calls ovs_dp_upcall functions to be sent to user's space, allows User space to search flow table, can call Queue_userspace_packet functions, then genlmsg_unicast functions are called to send message by netlink To User space.In User space, there is thread monitoring information, udpif_upcall_handler functions are triggered once having message, are connect Calling recv_upcalls functions, this function have invoked upcall_receive functions and reads upcall, flow_ successively Extract functions extract packet header, and process_upcall functions handle upcall, finally call handle_upcalls will Flow rule are added to the datapath in kernel.
Basic handling flow of the network packet by each function, the present invention are understood according to above source code analysis result Choose void ovs_vport_receive (struct vport*vport, struct sk_buff*skb, const Struct ovs_tunnel_info * tun_info) function modification, code is added wherein completes required function, this function When loading network interface card on network card binding to Open vSwitch ports, after binding whenever thering is packet to come, can all call The function, packet is sent to this function and goes to handle, rather than as it is unbound it is preceding packet toward kernel network protocol stack Middle transmission, kernel protocol stack is allowed to go to handle.
(3) Bloom filter is disposed
In void ovs_vport_receive (struct vport*vport, struct sk_buff*skb, const Struct ovs_tunnel_info*tun_info) Bloom filter BloomFilter is added in function.
BloomFilter is to be proposed by Burton Howard Bloom in 1970, and it is that a kind of high efficiency saves space Probabilistic type data structure, for judging an element whether in set.If it is judged that it is yes, this element also differs It is scheduled in set (be referred to as false positive issue), if it is judged that being no, then this element is not necessarily in set.Namely Say, it is possible to the element for being not belonging to this set is mistakenly considered to belong to this set, but not the element for belonging to this set It is mistakenly considered to be not belonging to this set.After error rate this factor is added, in the case where the application scenario of low error rate can be tolerated, Bloom Filter have exchanged being greatly saved for memory space for by few mistake.
During original state, Bloom Filter are a bit arrays for including m positions, and each is all set to 0.In order to express S The set of such a n element of={ x1, x2 ..., xn }, Bloom Filter use k separate hash functions, In the scope that each element in set is mapped to by they respectively { 1 ..., m }.To any one element x, i-th of Hash letter The position hi (x) of number mapping will be set to 1 (1≤i≤k).If a position is repeatedly set to 1, then only for the first time Can work, behind several times will be without any effect.When judging whether y belongs to this set, we are to k Hash of y applications Function, if the position of all hi (y) is all 1 (1≤i≤k), then it is the element in set that we, which are considered as y, is otherwise just recognized It is not the element in set for y.If y1 in Fig. 2 be not set in element.Y2 either belongs to this set or is just One erroneous judgement.
If the digit of bit array is m, the element number in set is n, and the number of hash function is k, it is allowed to most serious mistake Rate is ∈ by mistake, and e is the truth of a matter of natural logrithm, is a nonterminating and non-recurring decimal, and can obtain error rate f according to derivation is:
WhenWhen error rate f it is minimum, at this momentF≤ε is made, then can be released:
If it is expected error rate ∈=10-6, m=819200 bits (100KB), then can be calculated n=28488.Although whether It is a probability problem really false positive occur, in practical operation, if choosing sizes of the 100KB as bit array, whenever After Bloom filter has handled 28848 datas, Bloom filter is just emptied, it should which a simple and effective processing of can yet be regarded as is false Positive method.
(4) processing strategy
When packet reach receiving terminal interchanger when, openvSwtich software switch using packet source IP+ Whether identification+Fragment Offest carry out Hash as key values and check the packet in Bloom filter In, receive the choice for the packet that end switch is received by following strategy decision:
When receiving the copy of packet, the information write-in Bloom filter in packet is extracted, and by data Bag sends reception end main frame to.If now through other path transmissions packet copy for some reason barrier lose or because of time delay not yet Reach, then because copy has normally received and is submitted to main frame, receiving terminal host receiving data is unaffected;
When receiving more parts of packet copies, because the information of first part of packet copy has been written into Bloom filter, And first part of packet has been transmitted to main frame, when it is follow-up have identical data packet copy to up to when, when writing Bloom filter It was found that the packet has been written into, it is judged as repetitive data packet, then abandons;
When link or node failure occurs, as long as mulitpath can ensure that wherein one does not have failure, it is possible to correct Data are transmitted, or when packet is lost in transmitting procedure, as long as what is lost on mulitpath is not same packet, Can be carried out it is fault-tolerant, so as to obtain correct result.Therefore, either connected sets of hardware or during without hardware fault The complete reliability of data be obtained for raising, meanwhile, this is tactful to be used in combination with existing error retransmission and Retransmission timeout, Reduce the number of error retransmission and Retransmission timeout, improve network transmission efficiency, make network transmission relatively reliable.
2.SDN controllers obtain network topology
Controller mainly uses LLDP (Link Layer Discovery Protocol, Link Layer Discovery Protocol) conduct Link discovery protocols, controller first can send a band to each interchanger being connected with it during link discovery The information of this equipment can be organized into TLV (type/ by the packet-out message of LLDP messages, interchanger after receiving message Lenght/value) and be packaged into LLDPDU (Link Layer Discovery Protocol Data Unit, link layer hair Existing protocol Data Unit), all direct-connected ports are forwarded to, after adjacent interchanger receives the LLDP messages of forwarding, due to itself There is no corresponding flow table item not handle, can be by packet-in information reportings to controller, then on controller analysis interchanger The packet-in message of report is that can obtain the link information between interchanger, and be recorded in link discovery table, and whole process is such as Shown in Fig. 3;
So as to which controller can obtain full mesh topology information and is managed collectively, updated by dynamic of specified cycle.
3.SDN controllers obtain the guarantee main frame pair that user specifies and calculate path
After user specifies a pair of processes for needing transmitting, SDN controllers to obtain process to information in advance, forwarding is calculated Path.In order to ensure that other links still normally can without time delay be transferred data to and connect when a link breaks down Receiving end, we should find a plurality of disjoint path as far as possible.If there is common node or common link in mulitpath, then When common node or common link fail, then this packet can also be lost completely.Thus it is unable to reach expected effect Fruit.For network topology, the selection in path shares three kinds of situations:
(1) node is non-intersect;
(2) Link-disjoint paths;
(3) part of links is non-intersect;
Node is non-intersect to refer to that two paths both without common node had not had common link yet, and network has best fault-tolerant Ability, in the case where transmission fault occurs, the impacted amplitude of transmission performance is minimum;Link-disjoint paths refer to that two paths do not have There is common link but there may be common node, therefore during certain section of link failure on one path, a paths are not in addition It can be affected;But node-disjoint paths or Link-disjoint paths path can be not necessarily found in existing network topology, such as Both paths of fruit all can not find, then calculates intersecting link and try one's best few path, make the effect of the fault-tolerant Transmission system of multipath as far as possible Fruit maximizes.
In order to find nonintersecting paths, we are using Ramesh Bhandari propositions based on the excellent of Suurballe algorithms Change algorithm, he finds path by temporary path and modification telephone net node mode, and the algorithm after optimization is than original algorithm more To be simple.Suurballe algorithms are used to find two nonintersecting paths in the digraph of a nonnegative weights, this two paths Possess identical beginning and end, and their weights sum is minimum, and this algorithm is initially sent out by John W.Suurballe Table was in 1974, for calculating two node-disjoint paths, later in 1984 by Suurballe and Tarjan co-extensives To calculate both links nonintersecting paths algorithm.But can not necessarily be found in existing network topology node-disjoint paths or Link-disjoint paths path, if both paths all can not find, the modification link not phase that is proposed using Ramesh Bhandari Routing algorithm is handed over to turn into part of links nonintersecting paths algorithm so that the critical path that must be used can be reused, Find link and intersect minimum path.
4.SDN monitoring control devices specify Internet Use parameter
The parameter for weighing network performance is mainly bandwidth, handling capacity, speed, packet loss, time delay, round RTT etc..This selected works Select the quality that monitoring three link utilization, packet loss and time delay parameters carry out feedback network performance, user can according to demand from One is selected in these three parameters as system monitoring parameter and corresponding threshold range is set.These indexs can not be directly from friendship Acquisition change planes, it is necessary to which controller periodically issues Request message request interchanger message based on active mode, by interchanger Return to corresponding message and parsed by controller and calculated.Controller as follows respectively calculate link utilization, Packet loss and time delay:
(1) link utilization calculates
Link utilization (link usage) is that the flow that current ink passes through accounts for what the link can transmit in a period of time The percentage of maximum stream flow.
Cycle T is the difference of time twice, and wherein duration_sec fields and duration_nsec fields represent that stream is being handed over Time present in changing planes, the value of whole duration is represented with nanosecond (nanoseconds), its computational methods is: duration_sec×109+ duration_nsec, subscript i+1 and i represent the data that i+1 time and ith obtain respectively:
Ta=(duration_seci+1+duration_nseci+1)-(duration_seci+duration_nseci)
Port upstream rate tx_speed subtracts each other for up byte number twice is multiplied by 8 divided by cycle, and wherein tx_bytes is Up byte number, subscript i+1 and i represent the data that i+1 time and ith obtain respectively:
Port downstream rate rx_speed subtracts each other for descending byte number twice is multiplied by 8 divided by cycle, and wherein rx_bytes is Descending byte number, subscript i+1 and i represent the data that i+1 time and ith obtain respectively:
The total speed speed in port is upstream rate tx_speed and downstream rate rx_speed sums:
speeda=tx_speeda+rx_speeda
The service condition of one link depends on the port capabilities junior of the both link ends, so the speed of a link For both ends port medium-rate smaller:
Speed=min (speeda,speedb)
The maximum rate that link circuit resource utilization rate link_bw_usage is present rate speed divided by port can transmit Curr_capacity, wherein curr_capacity are the preset parameter of interchanger:
(2) packet loss calculates
Packet loss (packet loss) is in a period of time, and lost data packets account for the percentage for quantity of always giving out a contract for a project.Network is gathered around Plug, line fault, equipment fault, virus attack, routing error etc. are all likely to result in packet loss.Packet loss is smaller, illustrates network Quality is better.After packet loss is higher than 10%, network condition can deteriorate rapidly.
Packet loss quantity loss_packets subtracts received data packet amount rx_ to send packet amount tx_packets packets:
loss_packetsa-b=tx_packetsa-rx_packetsb
Packet loss packet_loss is the quantity loss_packets of lost package divided by always sends packet amount tx_ Packets is multiplied by 100%:
(3) time delay
Time delay (delay) is time of the packet needed for from transmitting terminal to receiving terminal.The controller during link discovery The packet-out message with LLDP messages first can be sent to each interchanger being connected with it, and indicate interchanger LLDP messages are forwarded from all of the port, after adjacent interchanger receives the LLDP messages of forwarding, because itself does not have respective streams List item can not be handled, can be by packet-in information reportings to controller, it is hereby achieved that transmission delay fwd_delay is The time T1 of controller to switch A adds the time T3 that the time T2 of switch A to switch b adds switch b to controller:
Fwd_delay=T1 (controller → A)+T2 (A → B)+T3 (B → controller)
Return time delay re_delay is that the time T3 of controller to switch b adds switch b to the time T2 of switch A Add switch A to the time T1 of controller:
Re_delay=T3 (controller → B)+T2 (B → A)+T1 (A → controller)
According to data above, ignore the processing delay of interchanger, as follows calculation delay latencyA
Controller, which is sent, carries current time send_timeARequest message to interchanger, interchanger returns after receiving message Again to controller, when controller receives the message of interchanger reply, present system time now_time is obtainedA, controller The RTT of A to interchanger is current time now_timeASubtract and send time send_timeA
The RTT of controller A to interchanger is current time now_timeASubtract and send time send_timeA
latencyA=now_timeA-send_timeA
That is latencyA=T1 (controller → A)+T1 (A → controller)
Switch b is similar with switch A calculation;
Assuming that two-way time is identical, then switch A and B time delay delay are:
5. when Monitoring Data is in threshold range, self-adapting start multi-path transmission mode, find it is satisfactory enter Mouth switch S1
In the case of network performance is good, it is not easy to packet loss occurs, need not now be transmitted, kept away using multithreading Exempt from network resources waste;And packet drop easily occurs in network when network performance is poor, now enable multipath side Formula is transmitted, and multithreading transmits the packet drop that can effectively reduce receiving terminal, improves the reliability of network transmission.
If user does not specify monitoring parameters and threshold range, system can be given tacit consent to is arranged to monitoring ginseng by link utilization Number, and set when link utilization threshold range is when more than 20%, self-adapting start multi-path transmission mode, work as link utilization It is adaptive to close multi-path transmission mode when rate threshold range is less than 20%.After user sets monitoring parameters and respective threshold, Give tacit consent to monitoring parameters and respective threshold failure.
According to adaptive situation, Three models can be divided into:
(1) adaptive model is given tacit consent to
In the case where user does not do any setting, default setting link utilization is monitoring parameters, works as link utilization During more than 20%, system self-adaption starts the fault-tolerant transmission means of multipath, and when link utilization is less than 20%, system is adaptive The fault-tolerant transmission means of multipath should be closed.
(2) user's arrange parameter adaptive model
User can also set monitoring parameters manually, and optional monitoring parameters are:Link utilization, packet loss and time delay, User can set monitoring parameters and corresponding threshold range according to demand, and monitoring parameters and corresponding threshold are set in user After being worth scope, default parameters and threshold range failure;The monitoring parameters and threshold range that system is set according to user start and closed Close multi-path transmission mode;
(3) manual mode
User can be when multi-path transmission mode be not turned on, manually opened multi-path transmission mode, or in multichannel When footpath transmission means is opened, manual-lock multi-path transmission mode, now first two adaptive model failure, until user is manual Adaptive model is switched to, adaptive model can just work on.
6.SDN controllers issue the group table or common flow table that type is ALL to interchanger
In openflow1.1 and later version, the concept of group table has been increased newly, structure is as shown in Figure 4:
32 are wherein identified as without symbol shaping number, for each group of unique mark, the type of type expression group, counts and uses In the quantity of the bag of record group processing, the order list that action bucket is action buckets, each action bucket are included A series of actions is pending and relevant parameter.The type of group shares 4 kinds, respectively all, select, indirect and fast The type that failover, OpenFlow interchanger must be supported is all and indirect, and remaining two types is optional, divides below It is not 4 kinds of set types:
(1)all:It can be supplied to using the packet received as input after duplication each in bucket lists Bucket independently performs action.Each bucket can have different actions, and the different copy can of such data is entered The different operation of row.
(2)select:It is initially for Load Balance Design.Each bucket has the weights distributed in advance, packet meeting One bucket of algorithms selection defined according to interchanger is performed.Identical with all types, each bucket can have different move Make.
(3)indirect:This group only supports a bucket, and all packets received are all by this bucket。
(4)fast failover:Each bucket has an observation port and/or observation group as a special parameter, The port that observation port/group can monitor is specified/group active state.If active state is to close, this bucket is not It can be used, if active state is to open, this bucket can be used.First active bucket of selection is held OK, and can only once there is a bucket to be used, and unless current active state by be opened to close, otherwise this Bucket will not be replaced.When state is from being actively changed into inactive, next active bucket can be rapidly switched to, not Forwarding decision can be changed in the case of interrogation control.
One Group contains one or more Action Bucket, each Action Bucket contain one or Multiple Action.The processing action of message can be directed to some Group, and such message, which is just admitted in Group, to be continued to locate Reason.The processing procedure of group table is as shown in Figure 5;
The group table that type is all is issued herein same part data are forwarded to multiple different ports, pass through multiple differences Port transmission is on different paths.As shown in Figure 6;
SDN controllers press following policy distribution group table or common flow table:
1) when data flow passes through interchanger, it is necessary to from multiple exit ports simultaneously forward when, issuing type to the interchanger is ALL group table, realize multipath while send data;
2) when data flow passes through interchanger, it is only necessary to when being forwarded from exit port, to the interchanger according to calculating Path issues common flow table;
7. transmitting terminal sends data.Specifically, whole process has following three kinds of situations:
(1) it is without any processing when mulitpath breaks down, as shown in Figure 7.
(2) when the link in Path1 paths breaks down, by Path2 by data normal transmission to main frame h3, such as Fig. 8 institutes Show.
Specifically, network failure is divided into three kinds of open circuit, packet loss and delay situations:
1>Open circuit
A. normal transmission
Using iperf h1 h3, transmission path s1-s2-s5-s4, in mininet terminals input link s2 s5 Down disconnecting links, find that data can not be transmitted after disconnecting link, recover chain in mininet terminals input link s2 s5 up Road, data can continue normal transmission again after recovering link, and wireshark is as shown in Figure 9 in s2-eth1 ports packet capturing situation;
In Fig. 9, transverse axis is the time, and the longitudinal axis is the number of packet.7s-16s is the first stage, data transfer all just Often, 17s-28s is second stage, the link between manual interruption interchanger s2 and interchanger s5, simulates and physical fault occurs, There is no packet in this period by the way that 29s-36s is the phase III, connects the chain between interchanger s2 and interchanger s5 manually Road, analog physical failure have been repaired, and now data again can be with normal transmission.
B. multi-path transmission
It is multichannel runoff between setting h1 and h3, using iperf h1 h3, transmission path is s1-s2-s5-s4 and s1- S3-s7-s8-s4, link s2 s5 down disconnecting links are inputted in mininet terminals, find that data continuation can after disconnecting link With transmission, recover link in mininet terminals input link s2 s5 up, recover after link data still can with normal transmission, Wireshark is as shown in Figure 10 in s2-eth1 ports packet capturing situation:
In Figure 10, transverse axis is the time, and the longitudinal axis is the number of packet.6s-9s is the first stage, data transfer all just Often, 10s-18s is second stage, the link between manual interruption interchanger s2 and interchanger s5, simulates and physical fault occurs, This period still can be with normal transmission data, and 19s-24s is the phase III, manually between connection interchanger s2 and interchanger s5 Link, analog physical failure have been repaired, and now data still can be with normal transmission.
2>Packet loss
Packet loss is an important indicator of network performance, may in the way that packet transmits from one end to other end Loss can be produced, the Loss Rate of packet is too high to cause many TCP data reports to need to retransmit, and increase network load and data pass The defeated time, and UDP is not processed then, after packet loss is more than 10%, network quality can rapid degradation.Experiment is respectively using common Transmission and the transmission of multipath fault-tolerant way, set a number of packet loss of loss parameter simulations in self-defined topological file, right Than normal stream reception end and the fault-tolerant stream receiving terminal of multipath.
A. transmitted using Transmission Control Protocol
Because Transmission Control Protocol is reliable host-host protocol, therefore the data of loss can be retransmitted when packet loss occurs, using h3 as Server, h1 and h2 transmit 500M data, are multichannel runoff between setting h1 and h3, are between h2 and h3 as client Common stream, performs order at h3 ends, h1 ends, h2 ends respectively:
Server end (h3:10.0.0.3):iperf-s-i 1
Client (h1:10.0.0.1):iperf-c 10.0.0.3-n 500M
Client (h2:10.0.0.2):iperf-c 10.0.0.3-n 500M
It is 5% that the link packet drop rate between s2 and s5 is set in self-defined topology:self.addLink(s2,s5,loss =5)
Understood according to experiment, the data that transmission formed objects are 500M, h1-h3 transmission time is 2.0s, h2-h3 biography The defeated time is 97.3s.The obvious normal transmission time is more than multithreading transmission time.
B. transmitted using udp protocol
Udp protocol is not reliable host-host protocol, therefore will not do any processing when packet loss occurs, using h3 as service Device, h1 and h2 are transmitted 30 seconds as client, are multichannel runoff between setting h1 and h3, are commonly to flow between h2 and h3, divide Order is not performed at h3 ends, h1 ends, h2 ends:
Server end (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 (h2:10.0.0.2):iperf-u-c 10.0.0.3-b 10M-t 30
The link packet drop rate that s1-s2 is set in self-defined topology is 5%:Self.addLink (s1, s2, loss=5)
Understood according to experiment, the transmission identical time is 30s, and the packet loss that h1-h3 packet loss is 0%, h2-h3 is 4.9%.The packet loss of obvious normal transmission mode is more than the packet loss of multi-path transmission mode.
3>Delay
Time delay is the time that usually packet needs between local transmission to opposite end, it is considered that one-way delay includes Forward delay interval, propagation delay, processing delay, queuing delay.If local arrive is equal to opposite end to terminal delay time to local time delay, RTT (Round-Trip Time, round-trip delay) is approximately equal to twice of time delay, if time delay is excessive, user will think that network is slow, The particularly strong application of some interactivity.Experiment is transmitted using normal transmission and multipath fault-tolerant way respectively, is opened up self-defined Flutter in file and the certain time delay of delay parameter simulations, contrast normal stream reception end and the fault-tolerant stream receiving terminal of multipath are set.
It is the fault-tolerant stream of multipath between setting h1 and h3, is commonly to flow between h2 and h3, performs life at h1 ends, h2 ends respectively Order:
h1(10.0.0.1):ping 10.0.0.3-c 10
h2(10.0.0.2):ping 10.0.0.3-c 10
It is 100ms that the chain-circuit time delay between s2 and s5 is set in self-defined topology:
Self.addLink (s2, s5, delay=' 100ms ')
H1 and h3 round-trip delay rtt average values are that 0.204ms, h2 and h3 round-trip delay rtt average values are 206.939ms.Obvious normal transmission time delay is more than multithreading propagation delay time.
(3) transmitting terminal starts to send data, and when the equal normal transmission of two paths, it is unnecessary to be handled by reception end switch S4 Repetitive data packet, as shown in figure 11:
Specifically, when the agreement of transport layer is respectively TCP and UDP:
1>TCP
Receiving terminal can abandon this packet first, then tell transmitting terminal, this is heavy when receiving the packet of repetition Multiple packet have received, therefore can carry out unnecessary load to Netowrk tape.In addition, the processing of repetitive data packet to connect Receiving end pressure increases, according to experiment it can be seen that being directly greater than using the time of receiving terminal processing repetitive data packet grand using cloth The processing time of filter.It is the fault-tolerant stream of multipath between Setup Experiments h1 and h3, wherein, h1 is as client, and h3 is as clothes It is engaged in end, transmitting the data that size is 1G respectively, performing according to issue orders:
Service end (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 filter
It is as shown in figure 12 in the packet capturing of s3-eth1 ports, packet capturing result using wireshark:
B. Bloom filter is used
It is as shown in figure 13 in the packet capturing of s3-eth1 ports, packet capturing result using wireshark:
It is can be seen that according to Figure 12 and Figure 13 packet capturing result without using the packet in link during Bloom filter mechanism Quantity is significantly more than and uses Bloom filter mechanism, meanwhile, the 1G data of two groups of experiment transmission formed objects, use the grand filtering of cloth The transmission time of device mechanism is 6 seconds, and is 10 seconds without using the transmission time of Bloom filter mechanism, in addition, perpendicular in Figure 12 What line represented is the quantity for repeating to reply bag, and the quantity that bag is replied in the repetition in Figure 13 is zero, illustrates to receive weight in receiving terminal Before complex data bag, the Bloom filter disposed on interchanger has served the effect of filtering duplicate packages.
2>UDP
VLC is a open-source cross-platform multimedia player, it can in addition contain build the streaming media server based on UDP. The streaming media server based on UDP is built using vlc 2.1.6 versions herein to be tested, it is main using main frame h1 as service end For machine h3 as client, it is the fault-tolerant main frame pair of multipath to set h1 and h3, performs order at h1 ends and h3 ends respectively:
Service end (h1:10.0.0.1):vlc-vvv sample.avi--sout udp:10.0.0.3:1234--ttl 10
Client (h3:10.0.0.3):vlc udp://@:1234
A. without using Bloom filter
Sample.avi videos can not normal display image, client can not normally receive data.
B. Bloom filter is used
Sample.avi videos can rise in client normal play, the Bloom filter for illustrating to dispose on interchanger The effect of filtering duplicate packages is arrived.

Claims (7)

1. one kind is based on SDN method for reliable transmission, it is characterised in that comprises the following steps:
Step 1:Change and receiving terminal that main frame to be ensured is joined directly together opens virtual switch standard OpenvSwitch softwares Interchanger source code;Modification process is as follows:
1) repetitive data packet is identified:It is used as the mark for distinguishing packet using source IP+mark+piece skew;
2) Selection of Function is modified;
3) Bloom filter is disposed:Bloom filter BloomFilter is added in the function of above-mentioned selection;
4) processing strategy:When packet reaches the interchanger of receiving terminal, open virtual switch standard openvSwtich softwares are handed over Whether source IP+mark+piece skew using packet of changing planes carries out hash Hash as key values and checks the packet in the grand mistake of cloth In filter;
Step 2:SDN controllers obtain network topology;
Controller uses LLDP, and as link discovery protocols, controller can be first every to what is be connected with it during link discovery One interchanger sends the packet-out message with LLDP messages, and interchanger can be by the information group of this equipment after receiving message It is made into type/lenght/value and is packaged into LLDPDU, be forwarded to all direct-connected ports, adjacent interchanger receives forwarding , can be by packet-in information reportings to controller after LLDP messages, the packet- that then controller analysis interchanger reports In message obtains the link information between interchanger, and recorded in link discovery table, so as to which controller obtains full mesh topology Information;
Step 3:SDN controllers obtain the transmitting process pair that user specifies and calculate path;User specifies treat reliably in advance A pair of processes of transmission, after SDN controllers obtain process to information, calculate a plurality of forward-path;
Step 4:SDN monitoring control devices specify Internet Use parameter;
Selection monitoring three link utilization, packet loss and time delay parameters carry out the quality of feedback network performance, user from these three One is selected in parameter as system monitoring parameter and corresponding threshold range is set;
Step 5:When Monitoring Data is in threshold range, self-adapting start multi-path transmission mode, find satisfactory more Transmission paths;
Step 6:According to the composition situation of more transmission paths, SDN controllers issue the group table that type is ALL to SDN switch Or common flow table;
SDN controllers press following policy distribution group table or common flow table:
1) when data flow passes through interchanger, when being forwarded from multiple exit ports simultaneously, the group that type is ALL is issued to the interchanger Table, realize multipath while send data;
2) when data flow passes through interchanger, when only being forwarded from an exit port, issued to the interchanger according to the path calculated Common flow table;
Step 7:Transmitting terminal sends data, has following two situations using the difference of agreement according to transport layer:
1) when transport layer protocol is UDP, data are sent;
2) when transport layer protocol is TCP, data is sent and retransmit packet in packet loss or error.
2. one kind according to claim 1 is based on SDN method for reliable transmission, it is characterised in that is chosen in step 1 Function be:void ovs_vport_receive struct vport*vport,struct sk_buff*skb,const struct ovs_tunnel_info*tun_info;In step 1, the number that end switch is received by following strategy decision is received According to the choice of bag:
When receiving the copy of packet, the information write-in Bloom filter in packet is extracted, and packet is passed Give reception end main frame;If the packet copy now through other path transmissions for some reason lose or because time delay do not arrive yet by barrier Reach, then because copy has normally received and is submitted to main frame, receiving terminal host receiving data is unaffected;
When receiving more parts of packets copy, because the information of first part of packet copy has been written into Bloom filter, and the A packet has been transmitted to main frame, when it is follow-up have identical data packet copy to up to when, found when writing Bloom filter The packet has been written into, and is judged as repetitive data packet, then abandons.
3. one kind according to claim 1 is based on SDN method for reliable transmission, it is characterised in that step 4 link The calculating of utilization rate, packet loss and time delay:
1) link utilization calculates
Link utilization is in a period of time, and the flow that current ink passes through accounts for the percentage for the maximum stream flow that the link can transmit Than;
Cycle T is the difference of time twice, and wherein duration_sec fields and duration_nsec fields expression stream is in interchanger Present in the time, the value of whole duration is represented with nanosecond, its computational methods is:duration_sec×109+ Duration_nsec, subscript i+1 and i represent the data that i+1 time and ith obtain respectively:
Ta=(duration_seci+1+duration_nseci+1)-(duration_seci+duration_nseci)
Port upstream rate tx_speed subtracts each other for up byte number twice to be multiplied by 8 divided by cycle, and wherein tx_bytes is up Byte number, subscript i+1 and i represent the data that i+1 time and ith obtain respectively:
<mrow> <mi>t</mi> <mi>x</mi> <mo>_</mo> <msub> <mi>speed</mi> <mi>a</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mo>(</mo> <mi>t</mi> <mi>x</mi> <mo>_</mo> <msub> <mi>bytes</mi> <mrow> <mi>i</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>-</mo> <mi>t</mi> <mi>x</mi> <mo>_</mo> <msub> <mi>bytes</mi> <mi>i</mi> </msub> <mo>)</mo> <mo>*</mo> <mn>8</mn> </mrow> <mi>T</mi> </mfrac> </mrow>
Port downstream rate rx_speed subtracts each other for descending byte number twice to be multiplied by 8 divided by cycle, and wherein rx_bytes is descending Byte number, subscript i+1 and i represent the data that i+1 time and ith obtain respectively:
<mrow> <mi>r</mi> <mi>x</mi> <mo>_</mo> <msub> <mi>speed</mi> <mi>a</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mo>(</mo> <mi>r</mi> <mi>x</mi> <mo>_</mo> <msub> <mi>bytes</mi> <mrow> <mi>i</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>-</mo> <mi>r</mi> <mi>x</mi> <mo>_</mo> <msub> <mi>bytes</mi> <mi>i</mi> </msub> <mo>)</mo> <mo>*</mo> <mn>8</mn> </mrow> <mi>T</mi> </mfrac> </mrow>
The total speed speed in port is upstream rate tx_speed and downstream rate rx_speed sums:
speeda=tx_speeda+rx_speeda
The service condition of one link depends on the port capabilities junior of the both link ends, so the speed of a link is two Hold port medium-rate smaller:
Speed=min (speeda,speedb)
The maximum rate curr_ that link circuit resource utilization rate link_bw_usage is present rate speed divided by port can transmit Capacity, wherein curr_capacity are the preset parameter of interchanger:
<mrow> <mi>l</mi> <mi>i</mi> <mi>n</mi> <mi>k</mi> <mo>_</mo> <mi>b</mi> <mi>w</mi> <mo>_</mo> <msub> <mi>usage</mi> <mrow> <mi>a</mi> <mo>-</mo> <mi>b</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <mi>s</mi> <mi>p</mi> <mi>e</mi> <mi>e</mi> <mi>d</mi> </mrow> <mrow> <mi>c</mi> <mi>u</mi> <mi>r</mi> <mi>r</mi> <mo>_</mo> <mi>c</mi> <mi>a</mi> <mi>p</mi> <mi>a</mi> <mi>c</mi> <mi>i</mi> <mi>t</mi> <mi>y</mi> </mrow> </mfrac> <mo>*</mo> <mn>100</mn> <mi>%</mi> </mrow>
2) packet loss calculates
Packet loss is in a period of time, and lost data packets account for the percentage for quantity of always giving out a contract for a project;Packet loss quantity loss_packets is Send packet amount tx_packets and subtract received data packet amount rx_packets:
loss_packetsa-b=tx_packetsa-rx_packetsb
Packet loss packet_loss is the quantity loss_packets of lost package divided by always sends packet amount tx_packets and multiply With 100%:
<mrow> <mi>p</mi> <mi>a</mi> <mi>c</mi> <mi>k</mi> <mi>e</mi> <mi>t</mi> <mo>_</mo> <msub> <mi>loss</mi> <mrow> <mi>a</mi> <mo>-</mo> <mi>b</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <mi>l</mi> <mi>o</mi> <mi>s</mi> <mi>s</mi> <mo>_</mo> <msub> <mi>packets</mi> <mrow> <mi>a</mi> <mo>-</mo> <mi>b</mi> </mrow> </msub> </mrow> <mrow> <mi>t</mi> <mi>x</mi> <mo>_</mo> <msub> <mi>packets</mi> <mi>a</mi> </msub> </mrow> </mfrac> <mo>*</mo> <mn>100</mn> <mi>%</mi> </mrow>
3) time delay
Time delay is time of the packet needed for from transmitting terminal to receiving terminal;During link discovery controller can first to its phase Connection each interchanger send the packet-out message with LLDP messages, and indicate interchanger by LLDP messages from All of the port forwards, can be by packet-in information reportings to control after adjacent interchanger receives the LLDP messages of forwarding Device, thus obtain the time T1 that transmission delay fwd_delay is controller to switch A and add switch A to the time of switch b T2 adds switch b to the time T3 of controller:
Fwd_delay=T1 (controller → A)+T2 (A → B)+T3 (B → controller)
Return time delay re_delay is that the time T3 of controller to switch b adds the time T2 of switch b to switch A to add exchange Time T1s of the machine A to controller:
Re_delay=T3 (controller → B)+T2 (B → A)+T1 (A → controller)
According to data above, ignore the processing delay of interchanger, as follows calculation delay latencyA
Controller, which is sent, carries current time send_timeARequest message replied to interchanger, interchanger after receiving message Controller, when controller receives the message of interchanger reply, obtain present system time now_timeA, controller A to friendship The RTT to change planes is current time now_timeASubtract and send time send_timeA
The RTT of controller A to interchanger is current time now_timeASubtract and send time send_timeA
latencyA=now_timeA-send_timeA
That is latencyA=T1 (controller → A)+T1 (A → controller)
Switch b is similar with switch A calculation;
Assuming that two-way time is identical, then switch A and B time delay delay are:
<mrow> <msub> <mi>delay</mi> <mrow> <mi>a</mi> <mo>-</mo> <mi>b</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <mi>f</mi> <mi>w</mi> <mi>d</mi> <mo>_</mo> <mi>d</mi> <mi>e</mi> <mi>l</mi> <mi>a</mi> <mi>y</mi> <mo>+</mo> <mi>r</mi> <mi>e</mi> <mo>_</mo> <mi>d</mi> <mi>e</mi> <mi>l</mi> <mi>a</mi> <mi>y</mi> <mo>-</mo> <msub> <mi>latency</mi> <mi>A</mi> </msub> <mo>-</mo> <msub> <mi>latency</mi> <mi>B</mi> </msub> </mrow> <mn>2</mn> </mfrac> <mo>.</mo> </mrow>
4. one kind according to claim 1 is based on SDN method for reliable transmission, it is characterised in that basis in step 5 Number of passes N waiting for transmission, access switch should at least N+1 ports.
5. one kind according to claim 1 is based on SDN method for reliable transmission, it is characterised in that basis in step 5 Adaptive situation, is divided into Three models:
1) adaptive model is given tacit consent to
In the case where user does not do any setting, default setting link utilization is monitoring parameters, when link utilization is more than When 20%, system self-adaption starts the fault-tolerant transmission means of multipath, and when link utilization is less than 20%, system self-adaption is closed The fault-tolerant transmission means of multipath;
2) user's arrange parameter adaptive model
User can set monitoring parameters manually, and optional monitoring parameters are:Link utilization, packet loss and time delay, Yong Hugen According to demand, monitoring parameters and corresponding threshold range are set, after user sets monitoring parameters and corresponding threshold range, Default parameters and threshold range failure;The monitoring parameters and threshold range that system is set according to user start and closed multipath and pass Defeated mode;
3) manual mode
User is when multi-path transmission mode is not turned on, manually opened multi-path transmission mode, or in multi-path transmission side When formula is opened, manual-lock multi-path transmission mode, now first two adaptive model failure, until user is manually switched to certainly Adaptive pattern, adaptive model can just work on.
6. one kind according to claim 1 is based on SDN method for reliable transmission, it is characterised in that in step 3 for For network topology, the selection in path shares three kinds of situations:Node is non-intersect;Link-disjoint paths;Part of links is non-intersect.
7. one kind according to claim 6 is based on SDN method for reliable transmission, it is characterised in that node is non-intersect to be Two paths both without common node did not had common link yet, and network has best fault-tolerant ability, and transmission fault is occurring In the case of, the impacted amplitude of transmission performance is minimum;Link-disjoint paths are that two paths do not have common link but public section be present Point, therefore during certain section of link failure on one path, a paths are unaffected in addition;If both paths are all It can not find, then the Suurballe algorithms modification Link-disjoint paths routing algorithm proposed using Ramesh Bhandari turns into part Link-disjoint paths routing algorithm so that the critical path that must be used can be reused, and found link and intersected at least Path.
CN201710552982.9A 2017-07-07 2017-07-07 SDN-based reliable transmission method Expired - Fee Related 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 true CN107347021A (en) 2017-11-14
CN107347021B CN107347021B (en) 2020-05-22

Family

ID=60257768

Family Applications (1)

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

Country Status (1)

Country Link
CN (1) CN107347021B (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108092895A (en) * 2017-12-26 2018-05-29 重庆邮电大学 A kind of software defined network joint route selection and network function dispositions method
CN108449275A (en) * 2018-03-21 2018-08-24 常熟理工学院 A kind of reliable software defined network implementation method
CN108549684A (en) * 2018-04-04 2018-09-18 西安交通大学 A kind of caching method relied on using multi-path search reduction rule in SDN
CN108881031A (en) * 2018-06-11 2018-11-23 云南师范大学 A kind of adaptive reliable data transmission method based on SDN network
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
CN110087335A (en) * 2019-04-30 2019-08-02 上海寰创通信科技股份有限公司 A kind of data transmission system and method polymerizeing a variety of Radio Links
CN109067758B (en) * 2018-08-23 2020-07-10 江苏大学 SDN network data transmission privacy protection system and method based on multiple paths
CN111782885A (en) * 2020-06-22 2020-10-16 华青融天(北京)软件股份有限公司 Method and device for judging state of data set
CN113300963A (en) * 2021-04-07 2021-08-24 北京邮电大学 Loop-free updating method for forwarding path of software defined network
CN113535359A (en) * 2021-07-23 2021-10-22 中国科学技术大学苏州高等研究院 Service request scheduling method and device in multi-tenant cloud
CN113645058A (en) * 2021-06-28 2021-11-12 苏州浪潮智能科技有限公司 Network link flow monitoring method, device and system
CN113904977A (en) * 2021-10-13 2022-01-07 中国电信股份有限公司 Multilink gateway data transmission method and device, electronic equipment and readable medium
CN113923138A (en) * 2020-07-07 2022-01-11 瑞昱半导体股份有限公司 Communication device and network management method
CN114323067A (en) * 2021-12-02 2022-04-12 一汽奔腾轿车有限公司 Vehicle navigation data timeliness test method
CN114567582A (en) * 2022-02-24 2022-05-31 南京航空航天大学 SDN network trusted route scheduling method based on path tracking feedback
CN114928526A (en) * 2022-02-09 2022-08-19 北京邮电大学 Network isolation and resource planning method and system based on SDN

Citations (6)

* 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
US20170070407A1 (en) * 2015-09-03 2017-03-09 International Business Machines Corporation Application information based network route modification
US20170070907A1 (en) * 2014-10-15 2017-03-09 Fortinet, Inc. Self-provisioning of a wireless communication network using coordination of data plane behavior to steer stations to preferred access points
US20170078210A1 (en) * 2014-05-04 2017-03-16 Hangzhou H3C Technologies Co., Ltd. Controlling Packet Transmission In Software Defined Network

Patent Citations (6)

* 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)
US20170078210A1 (en) * 2014-05-04 2017-03-16 Hangzhou H3C Technologies Co., Ltd. Controlling Packet Transmission In Software Defined Network
US20170070907A1 (en) * 2014-10-15 2017-03-09 Fortinet, Inc. Self-provisioning of a wireless communication network using coordination of data plane behavior to steer stations to preferred access points
CN105791175A (en) * 2014-12-26 2016-07-20 电信科学技术研究院 Method and equipment for controlling transmission resources in software defined network SDN
US20170070407A1 (en) * 2015-09-03 2017-03-09 International Business Machines Corporation Application information based network route modification
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
AMAN JAIN, SADAGOPAN N S: "A Comparison of SDN and NFV for Re-designing", 《2016 IEEE CONFERENCE ON NETWORK FUNCTION VIRTUALIZATION AND SOFTWARE DEFINED NETWORKS》 *
杨洋,杨家海,温皓森,王会: "基于SDN流量测量的数据中心多路径传输研究", 《华中科技大学学报》 *
王占京,陈聪,霍晓莉: "面向SDN的未来传输网络管理体系探索", 《电信网技术》 *

Cited By (25)

* 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
CN108092895A (en) * 2017-12-26 2018-05-29 重庆邮电大学 A kind of software defined network joint route selection and network function dispositions method
CN108449275A (en) * 2018-03-21 2018-08-24 常熟理工学院 A kind of reliable software defined network implementation method
CN108449275B (en) * 2018-03-21 2020-07-31 常熟理工学院 Reliable software defined network implementation method
CN108549684A (en) * 2018-04-04 2018-09-18 西安交通大学 A kind of caching method relied on using multi-path search reduction rule in SDN
CN108549684B (en) * 2018-04-04 2020-08-18 西安交通大学 Caching method adopting multi-path search reduction rule dependence in SDN
CN108881031A (en) * 2018-06-11 2018-11-23 云南师范大学 A kind of adaptive reliable data transmission method based on SDN network
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
CN110087335A (en) * 2019-04-30 2019-08-02 上海寰创通信科技股份有限公司 A kind of data transmission system and method polymerizeing a variety of Radio Links
CN111782885A (en) * 2020-06-22 2020-10-16 华青融天(北京)软件股份有限公司 Method and device for judging state of data set
CN111782885B (en) * 2020-06-22 2024-05-24 华青融天(北京)软件股份有限公司 Data set state judging method and device
CN113923138A (en) * 2020-07-07 2022-01-11 瑞昱半导体股份有限公司 Communication device and network management method
CN113923138B (en) * 2020-07-07 2023-03-31 瑞昱半导体股份有限公司 Communication device and network management method
CN113300963A (en) * 2021-04-07 2021-08-24 北京邮电大学 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
CN113535359A (en) * 2021-07-23 2021-10-22 中国科学技术大学苏州高等研究院 Service request scheduling method and device in multi-tenant cloud
CN113904977A (en) * 2021-10-13 2022-01-07 中国电信股份有限公司 Multilink gateway data transmission method and device, electronic equipment and readable medium
CN114323067A (en) * 2021-12-02 2022-04-12 一汽奔腾轿车有限公司 Vehicle navigation data timeliness test method
CN114928526A (en) * 2022-02-09 2022-08-19 北京邮电大学 Network isolation and resource planning method and system based on SDN
CN114928526B (en) * 2022-02-09 2023-06-16 北京邮电大学 SDN-based network isolation and resource planning method and system
CN114567582A (en) * 2022-02-24 2022-05-31 南京航空航天大学 SDN network trusted route scheduling method based on path tracking feedback
CN114567582B (en) * 2022-02-24 2022-11-22 南京航空航天大学 SDN network trusted route scheduling method based on path tracking feedback

Also Published As

Publication number Publication date
CN107347021B (en) 2020-05-22

Similar Documents

Publication Publication Date Title
CN107347021A (en) One kind is based on SDN method for reliable transmission
CN107360092B (en) System and method for balancing load in data network
US8223660B2 (en) Failure notification in a network having serially connected nodes
US6865160B1 (en) Broadcast tree determination in load balancing switch protocols
CN100589408C (en) A communication network connection method and its device
CN103618678A (en) Method, device and system for self-adaptation multiple-link aggregation
US20120155458A1 (en) Repeated Lost Packet Retransmission in a TCP/IP Network
US9584425B2 (en) Bandwidth optimization using coalesced DUP ACKs
CN102882780B (en) Looped network tunnel configuration method based on overlapping trees, ring network protection method and system
CN108123824A (en) A kind of network fault detecting method and device
EP2137891A1 (en) Failure notification in a network having serially connected nodes
JP2013126244A (en) Packet communication device and method
US20050099948A1 (en) Automated path tracing through switching mesh
CN105915467A (en) Data center network flow balancing method and device oriented to software definition
CN111800336A (en) Routing transmission implementation method based on multi-channel network link aggregation
CN102891787B (en) Looped network tunnel configuration method, business switch method and system based on overlapping trees
Natarajan et al. Concurrent multipath transfer during path failure
Alheid et al. An analysis of the impact of out-of-order recovery algorithms on MPTCP throughput
Zou et al. RMC: Reordering marking and coding for fine-grained load balancing in data centers
US20070159975A1 (en) Network,router device, route updating suppression method used for the same, and program thereof
CN107231316A (en) The transmission method and device of message
Zats et al. FastLane: An agile congestion signaling mechanism for improving datacenter performance
Molina et al. Managing path diversity in layer 2 critical networks by using OpenFlow
Baccelli et al. The one-to-many TCP overlay: a scalable and reliable multicast architecture
Dan et al. SOPA: source routing based packet-level multi-path routing in data center networks

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200522