CN108965121A - Transmit method, host and the interchanger of data - Google Patents

Transmit method, host and the interchanger of data Download PDF

Info

Publication number
CN108965121A
CN108965121A CN201710359609.1A CN201710359609A CN108965121A CN 108965121 A CN108965121 A CN 108965121A CN 201710359609 A CN201710359609 A CN 201710359609A CN 108965121 A CN108965121 A CN 108965121A
Authority
CN
China
Prior art keywords
path
host
slice
interchanger
index
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
CN201710359609.1A
Other languages
Chinese (zh)
Other versions
CN108965121B (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.)
Tsinghua University
Huawei Technologies Co Ltd
Original Assignee
Tsinghua University
Huawei Technologies Co Ltd
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 Tsinghua University, Huawei Technologies Co Ltd filed Critical Tsinghua University
Priority to CN201710359609.1A priority Critical patent/CN108965121B/en
Publication of CN108965121A publication Critical patent/CN108965121A/en
Application granted granted Critical
Publication of CN108965121B publication Critical patent/CN108965121B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/123Evaluation of link metrics
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2466Traffic characterised by specific attributes, e.g. priority or QoS using signalling traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/33Flow control; Congestion control using forward notification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric

Abstract

A kind of method for transmitting data is provided in the embodiment of the present invention, this method comprises: the first host first index of addition in each message of the first slice of the first data flow, first index determine the corresponding first path of the first index for interchanger in a plurality of available path of first host to the second host;The first slice of first data flow is sent to the interchanger, the last one message of first slice is that first host is determined according to the path status information for the first path for forwarding first slice, so that the interchanger forwards first slice to second host by the first path.In embodiments of the present invention, first host is indexed by increasing in each slice of the first data flow, it is able to know that the path status information of the transmission path of each slice, and then the problem that the actual transmission paths that can be avoided first data flow are inconsistent with the path of host computer side congestion window instruction.

Description

Transmit method, host and the interchanger of data
Technical field
The present embodiments relate to the communications fields, and more particularly, to a kind of method, host and friendship for transmitting data It changes planes.
Background technique
Currently, internet data is just increased in a manner of volatile.For example, registration number of users of the Sina weibo in China Broken 300,000,000, the immediate communication tool any active ues of Tencent (Tencent) reach 7.1 hundred million, the types of facial makeup in Beijing operas (Facebook) Global Subscriber Quantity just approaches 1,000,000,000.According to the report (Digital Universe Study 2011) that International Data Corporation (IDC) issues, whole world letter The breath every mistake of total amount will double for 2 years.The appearance of big data is just forcing enterprise constantly to promote itself using data center as platform Data-handling capacity.
Years of researches and practice discovery, based on the data center network of Crouse (Clos) framework than traditional tree-like frame Structure topology has a better scalability, more equative route number advantages, and under Clos framework, can be using same size Equipment constructs data center network, and no longer need expensive convergence device, these advantages make Clos framework in the industry cycle More and more extensive deployment is arrived.
In the prior art, the data center network based on Clos framework can use traditional equal cost multipath (equal- Cost multi-path, ECMP) Hash (hash) mechanism carries out data transmission.Wherein, Hash is a kind of hashing mechanism, specifically Ground refers to M input data passing through hash after calculating to the method in N number of corresponding result.However, tradition ECMP hash mechanism It is that hash is carried out based on stream.That is, a stream can strictly correspond to a paths.In this way for every stream, network In can all have a plurality of forward-path so that it is multiple stream at the same time forward in the case where, not cocurrent flow can be sent to same turn It sends out on path, the forward-path is made congestion occur.
For example, as shown in Figure 1, four stream (flow) A, B, C, D are forwarded to different purposes, stream A from different sources respectively Occur at first left middle layer equipment local collision (local collision) with stream B, stream C and stream D can be on the left sides the Occurs downstream conflict (downstream collision) at two top equipment.
To solve the above-mentioned problems, Cisco proposes point for data center implemented based on stream slice (flowlet) Cloth congestion aware load balancing scheme (Distributed Congestion-aware Load Balancing for Datacenters, CONGA), instead of traditional load balancing mode for carrying out hash based on stream, come more compared to flow It is fine.And according to the flowlet mechanism of CONGA, every stream can be distributed at least two forward-paths, to reach more Good load balancing effect.
But since CONGA mechanism is implemented on switches, only used in load balancing routing decision Flowlet, and sender's (host) is still based on flow and carries out congestion control, will lead to the congestion shape of actual transmission paths State and the inconsistent problem of sender's congestion window, thereby reduce the efficiency of transmission of data.
For example, as shown in Fig. 2, flow A can be transmitted from source interchanger L0 to purpose interchanger L1 by two paths, It is L0-S0-L1 and L0-S1-L1 respectively, wherein the corresponding link bandwidth of L0-S0-L1 is 10Gbps, the corresponding chain of L0-S1-L1 Road bandwidth is 1Gbps;The flow A that sender issues can be split as flowlet A1 and flowlet A2;Sender is sending out Out while flow A, the transmission rate of meeting through-rate control algolithm control flow A, and the path detected according to implementation Packet loss situation carries out speed adjust;Sender sends the flowlet A1 of flow A first with the rate of 1Gbps, and L0 passes through CONGA algorithms selection path L0-S1-L1 forwards flowlet A1;Sender has found that the flow A flow of this transmission is not sent out Raw congestion then increases the rate of stream, such as the flowlet A2 of flow A is sent with the rate of 2Gbps;L0 is continued to run CONGA, the path congestion level of path L0-S0-L1 is lower than the Congestion Level SPCC of path L0-S1-L1 at this time, therefore, according to CONGA Algorithm, L0 select passage path L0-S0-L1 to forward flowlet A2;However, since the available bandwidth of path L0-S0-L1 is 1Gbps, and the 2Gbps rate of flowlet 2 has been more than the bandwidth of L0-S0-L1, congestion will occur in L0-S0-L1, can abandon Segment message in flowlet A2.
By analyzing above it can be found that since CONGA mechanism is implemented on switches, and only in load balancing Flowlet is used when routing decision, and host computer side is that congestion control is carried out based on flow, that is, host computer side does not know flow A Actual transmission paths.In other words, host computer side congestion window instruction be flowlet A1 L0-S1-L1 congestion condition, And the actual transmission paths of flowlet A2 are L0-S0-L1, the actual transmission paths of flow A and host computer side congestion window occur The problem that the transmission path of the flow A indicated is inconsistent further causes the congestion window of host computer side can not accurately It indicates the congestion state of the actual transmission paths of flow A, and then influences the efficiency of transmission of data.
Summary of the invention
This application provides it is a kind of transmit data method, host and interchanger, can under the scene of equal cost multipath, Effectively improve the efficiency of transmission of data.
In a first aspect, providing a kind of method for transmitting data, which comprises
First host, first index of addition in each message of the first slice of the first data flow, first index are used The corresponding first via of first index is determined in a plurality of available path of first host to the second host in interchanger Diameter;
First host sends the first slice of first data flow to the interchanger, and first slice is most The latter message is that first host is determined according to the path status information for the first path for forwarding first slice, institute Stating the first slice includes first index, so that the interchanger forwards institute to second host by the first path State the first slice.
In embodiments of the present invention, when the first host needs to send the first data flow to the second host, first host By increasing index in each slice of the first data flow, it is able to know that the route conditions letter of the transmission path of each slice Breath, and the path status information of the transmission path according to current slice, it is determined whether first data flow is sliced again, it can The inconsistent problem in the path of the actual transmission paths and the instruction of host computer side congestion window that avoid first data flow, and then effectively It ensure that the efficiency of transmission of data.
In some possible implementations, the method also includes:
First host is when the path status information of the first path shows that first path is in congestion state, knot Beam sends first slice, and after first slice, in each message of the second slice of first data flow Middle the second index of addition, second index determine second index for the interchanger in a plurality of available path Corresponding second path, second path are different from the first path;
First host sends second slice to the interchanger, so that the interchanger passes through second tunnel The radial second host forwarding, second slice.
The method of the data transmission of the embodiment of the present invention, by only showing the in the path status information of the first path When one path is in congestion state, just terminates to send first slice, which is reduced to greatest extent The number of slices of first data flow.
In some possible implementations, the method also includes:
First host is after sending second slice of predetermined length, according to the route conditions of the first path The path status information of information and second path terminates to send second slice or continue to send described second to cut Piece.
In some possible implementations, first host is after sending second slice of predetermined length, root According to the path status information of the first path and the path status information in second path, terminate to send second slice Or continue to send second slice, comprising:
First host shows that the first path is not on congestion in the path status information of the first path When state, terminate to send second slice;
The method also includes:
First host is after second slice, in each message of the third slice of first data flow Add first index;
First host sends third slice to the interchanger, and the third slice includes first index, with Toilet states interchanger and forwards the third to be sliced to second host by the first path.
In some possible implementations, first host is after sending second slice of predetermined length, root According to the path status information of the first path and the path status information in second path, terminate to send second slice Or continue to send second slice, comprising:
First host shows that first path is in congestion state and institute in the path status information of the first path When stating the path status information in the second path and showing that the second path is not on congestion state, continue to send second slice.
In some possible implementations, first host is after sending second slice of predetermined length, root According to the path status information of the first path and the path status information in second path, terminate to send second slice Or continue to send second slice, comprising:
First host shows that first path is in congestion state and institute in the path status information of the first path When stating the path status information in the second path and showing that second path is in congestion state, terminate to send second slice;
The method also includes:
First host is after second slice, in each message of the third slice of first data flow Third index is added, second index determines the third index pair for the interchanger in a plurality of available path The third path answered, the first path, second path and the third path are different;
First host sends third slice to the interchanger, and the third slice includes that the third indexes, with Toilet states interchanger and forwards the third slice to second host on the third path.
In some possible implementations, first host is in each message of the first slice of the first data flow Before the first index of addition, the method also includes:
First host obtains the sum of a plurality of available path, in order to which first host is according to described a plurality of The sum of available path determines the index quantity that can be added in first data flow.
In some possible implementations, first host obtains the sum of a plurality of available path, comprising:
First host sends the first transmission control protocol TCP linking request message, the TCP chain to the interchanger Connecing request message includes first request message, and first request message is for a plurality of available path described in request Sum generates so that the interchanger adds the sum of a plurality of available path in the first TCP linking request message Need the 2nd TCP linking request message sent to second host;
First host receives the response message of the 2nd TCP linking request message of the interchanger forwarding, institute State the sum that response message includes a plurality of available path.
In some possible implementations, first host is in each message of the second slice of the first data flow Before the second index of addition, the method also includes:
First host receives the route conditions for the first path that the corresponding server of second host is sent Information.
In some possible implementations, the path status information includes that round-trip delay RTT and/or dominant congestion are logical Know ECN.
Second aspect provides a kind of method for transmitting data, which comprises
Interchanger receives the first slice of the first data flow that the first host is sent, the last one report of first slice Text is that first host is determining according to the path status information for the first path for forwarding first slice, and described first cuts Piece includes the first index, and first index is for interchanger in a plurality of available path of first host to the second host Determine the corresponding first path of first index;
The interchanger forwards first slice to the second host by the first path.
In some possible implementations, the interchanger forwards described the to the second host by the first path Before one slice, the method also includes:
The interchanger establishes mapping table, and the mapping table is for recording in a plurality of available path every The corresponding index of available path;
The interchanger determines the first path according to the mapping table and first index.
In some possible implementations, the method also includes:
The interchanger terminates to receive first slice, and after first slice, receives first host Second slice of first data flow sent, second slice include the second index, and second index is for described Interchanger determines corresponding second path of second index in a plurality of available path, second path and described the One path is different;
The interchanger forwards second slice to the second host by second path.
In some possible implementations, the method also includes:
The interchanger terminates to receive second slice or continue after receiving second slice of predetermined length Receive second slice.
In some possible implementations, the first of the first data flow that the first host of the interchanger reception is sent is cut Before piece, the method also includes:
The interchanger receives the first transmission control protocol TCP linking request message that first host is sent, described TCP linking request message includes first request message, and first request message is for the first host described in request To the sum of a plurality of available path of second host, in order to which first host is according to the total of a plurality of available path Number determines the index quantity that can be added in first data flow;
The interchanger adds the sum of a plurality of available path in the first TCP linking request message, is formed 2nd TCP linking request message;
The interchanger sends the 2nd TCP linking request message to second host;
The interchanger receives the response message for the 2nd TCP linking request message that second host is sent, institute State the sum that response message includes a plurality of available path;
The interchanger sends the response message to first host.
In some possible implementations, interchanger can redefine transmission road by way of polling dispatching RR Diameter, and first slice is forwarded to the second host in the transmission path redefined.
The third aspect, provides a kind of host, and the host includes:
Processing unit indexes, described first for adding first in each message of the first slice of the first data flow Index determines that first index is corresponding for interchanger in a plurality of available path of first host to the second host First path;
Transmit-Receive Unit, for sending the first slice of first data flow to the interchanger, first slice The last one message is that first host is determined according to the path status information for the first path for forwarding first slice, First slice includes first index, so that the interchanger is forwarded by the first path to second host First slice.
The host of the third aspect can be realized first aspect method and its each implementation.
Fourth aspect, provides a kind of host, and the host includes:
Processor, for the first index of addition, first rope in each message of the first slice of the first data flow It is incorporated in interchanger and determines first index corresponding the in a plurality of available path of first host to the second host One path;
Port, for the first slice of first data flow to be sent to the interchanger under processor control, The last one message of first slice is path of first host according to the first path for forwarding first slice Condition information determine, it is described first slice include it is described first index, so as to the interchanger by the first path to Second host forwarding, first slice.
The interchanger of the fourth aspect can be realized first aspect method and its each implementation.
5th aspect, provides a kind of interchanger, the interchanger includes:
First Transmit-Receive Unit, the first slice of the first data flow for receiving the transmission of the first host, first slice The last one message to be first host determine according to the path status information for the first path for forwarding first slice , first slice includes the first index, and first index is for interchanger in first host to the second host The corresponding first path of first index is determined in a plurality of available path;
Second Transmit-Receive Unit, for forwarding first slice to the second host by the first path.
6th aspect, provides a kind of interchanger, the interchanger includes processor, first port and second port, institute Processor is stated to be used for:
The first slice that the first port receives the first data flow that the first host is sent is controlled, first slice The last one message is that first host is determined according to the path status information for the first path for forwarding first slice, First slice includes the first index, and first index is for interchanger in first host to a plurality of of the second host The corresponding first path of first index is determined in available path;
It controls the second port and first slice is forwarded to second host by the first path.
7th aspect, provides a kind of computer readable storage medium, the computer-readable recording medium storage has journey Sequence, described program make host execute the side in any possible implementation in above-mentioned first aspect or first aspect Method.
Eighth aspect, provides a kind of computer readable storage medium, and the computer-readable recording medium storage has journey Sequence, described program execute interchanger in any possible implementation in above-mentioned second aspect or second aspect Method.
9th aspect, provides a kind of computer program product comprising instruction, when run on a computer, so that Computer executes method described in above-mentioned various aspects.
Detailed description of the invention
Fig. 1 is the path congestion schematic diagram under existing Clos framework;
Fig. 2 is the schematic diagram of the data transmission method of CONGA scheme;
Fig. 3 is the schematic diagram of 2 grade of 3 stage Clos framework;
Fig. 4 is the schematic diagram of 3 grade of 5 stage Clos framework;
Fig. 5 is the schematic diagram of data transmission method according to an embodiment of the present invention;
Fig. 6 is the schematic diagram of the stream of CONGA scheme;
Fig. 7 is another schematic diagram of data transmission method according to an embodiment of the present invention;
Fig. 8 is the schematic block diagram of host according to an embodiment of the present invention;
Fig. 9 is another schematic block diagram of host according to an embodiment of the present invention;
Figure 10 is the schematic block diagram of interchanger according to an embodiment of the present invention;
Figure 11 is another schematic block diagram of interchanger according to an embodiment of the present invention.
Specific embodiment
Below in conjunction with attached drawing, Clos framework is introduced.
Clos is in nineteen fifty-three by charles Crouse (Charles Clos) to solve the clog-free friendship in telephone network A kind of network architecture that the problem of changing is proposed, Clos network are mainly characterized by: every level-one switching node all with the institute of next stage There is interchanger to have connection;Have between every level-one switching node and a switching node of next stage and only one connects.Usually Clos framework is described using grade (tier) and stage (stage), wherein tier refers to the hierachy number of network;stage It can be understood as being input to the number of devices on any one outgoing route from any one of network.
For example, as shown in figure 3, the Clos framework is the Clos framework of 2 grades of (2-tier) 3 stages (3-stage) Example.The Clos framework includes top equipment and bottom equipment.Wherein, bottom equipment is referred to as leaf, highest Layer equipment is referred to as spine.Under Clos framework, the equipment of the bottom is referred to as edge switch (edge Switch), top equipment is referred to as core switch (core Switch) etc..
It should be understood that Fig. 3 is only the exemplary description of Clos framework, Clos framework that should not be applicable to the present invention causes to limit It is fixed.That is, the Clos framework that the present invention uses can be the Clos framework of any level and either phase, such as 4 grade of 7 stage Deng.For example, as shown in figure 4, the Clos framework is the example of the Clos framework of 3 grades of (3-tier) 5 stages (5-stage). The Clos framework includes top equipment, middle layer equipment and bottom equipment.Wherein, middle layer equipment is referred to as converging Equipment (aggregation, referred to as: Agg).
The method of the data transmission of the embodiment of the present invention needs to send the first data flow to the second host in the first host When, which determines the transmission path of first data flow, and the addition index instruction interchanger in first data flow The transmission path of first data flow, the actual transmission paths and host computer side congestion window that can be avoided first data flow indicate The inconsistent problem in path, and then the efficiency of transmission of data has been effectively ensured.
Fig. 5 is the schematic flow chart of the method 100 of the transmission data of the embodiment of the present invention.
As shown in figure 5, this method 100 includes:
110, the first host first index of addition in each message of the first slice of the first data flow.
120, the first host sends the first slice of first data flow to interchanger.
130, interchanger forwards first slice by the first path, to the second host.
Specifically, the first host first index of addition in each message of the first slice of the first data flow, this Interchanger of one index for connecting first host determines in a plurality of available path of first host to the second host The corresponding first path of first index;First host sends the first slice of first data flow to the interchanger, this The last one message of one slice is that first host is true according to the path status information for the first path for forwarding first slice Fixed, so that the interchanger forwards first slice to second host by the first path.
It should be understood that the first index in the embodiment of the present invention should for determining the interchanger in a plurality of available path The corresponding first path of first index, that is to say, that first index can be ID of trace route path, port numbers, be also possible to other The mark of form, as long as this mark can play the role of identifying the first path, the embodiment of the present invention is not done specifically It limits.
In 110, the first host first index of addition in each message of the first slice of the first data flow, described the One index is true in a plurality of available path of first host to the second host for making the interchanger of the first host connection The fixed corresponding first path of first index.In this manner it is possible to ensure that the route conditions of the congestion window instruction of the first host are The situation in the corresponding path of the first index adds the route conditions of the corresponding first path of the first slice of the first index.? That is the first host can control congestion according to the actual transmission paths of first slice.
Optionally, the first host can increase index mark (identifier, ID) field outside five-tuple.
In embodiments of the present invention, which can be uniquely to be marked with specific five-tuple (five critical fielies) The one group of TCP/IP message known.For example, certain user is from the address internetworking protocol (Internet Protocol, IP) 202.100.1.2 host initiates hypertext transfer protocol (Hyper Text to the web page server that IP address is 100.1.1.2 Transfer Protocol, HTTP) access, this is a transmission control protocol (Transmission Control Protocol, TCP) stream, other two five-tuple field of the TCP flow is source tcp port 20000, purpose TCP port 8080. In other words, can be used in unique identification network by five-tuple (202.100.1.2+100.1.1.2+TCP+20000+8080) This TCP flow of transmitting.
It should be understood that above-mentioned is only the exemplary illustration to the first data flow, the embodiment of the present invention is to the first data flow Particular content is without limitation.
In embodiments of the present invention, since the index that the first host adds in the first data flow is for making interchanger exist The corresponding first path of the first index is determined in above-mentioned a plurality of available path, therefore, for the first host, in addition rope It needs to know before drawing and can add several different indexes.
Optionally, the first index is added in each message of the first slice of the first data flow in first host Before, first host need to obtain first host to the second host available path sum, in order to the first host root The index quantity that can be added in first data flow is determined according to the sum of a plurality of available path.
For example, the first host can send the list of ECMP equative route based on interchanger, perceive in network end to end Equative route.It is appreciated that above-mentioned ECMP equative route list can be the first host to the second host stored in interchanger Above-mentioned a plurality of available path list.In such manner, it is possible to which the first host is made to complete the detection to a plurality of available path quantity.
When first host obtains sum of first host to the available path of the second host, specifically, this first Host sends the first TCP linking request message to the interchanger, which includes first request message, should First request message is used for the sum of the above-mentioned a plurality of available path of request, so that the interchanger is asked in the first TCP link The sum for adding above-mentioned a plurality of available path in message is sought, the 2nd TCP linking request for needing to send to second host is generated Message;First host receives the response message of the 2nd TCP linking request message of interchanger forwarding, the response message packet Include the sum of above-mentioned a plurality of available path.
For example, as shown in fig. 7, including top equipment, bottom equipment, the first host (10.0.0.2/ in Clos framework 8) with the second host (40.0.0.2/8), bottom equipment includes interchanger L1 (10.0.0.1/8) and interchanger L2 (40.0.0.1/8), top equipment include interchanger S1 (20.0.0.1/8) and interchanger S2 (30.0.0.1/8), then and first The available path of host to the second host is 2, respectively P10-P11-P21-P22-P41-P40 and P10-P12-P31- P32-P42-P40。
For Fig. 7, interchanger L1 receives a new TCP SYN stream of the first host transmission, passes through route querying Interchanger L1 to the second host next-hop equative route;It identifies equative route sum 2, and marks in the specific word of message Section, is sent to the second host as label (tag);If the second host is supported to identify the specific fields, the second host passes through The specific fields of TCP ACK message carry the tag, and the TCP ACK message for carrying the tag is sent back to the first host;First Host receives the TCP ACK message of the carrying tag, and the tag is extracted from the specific fields, obtains from oneself to the second host Whole net equative route number.
That is, the interchanger receives the first transmission control protocol TCP linking request message of first host transmission, The TCP linking request message includes first request message, which arrives this for request first host The sum of a plurality of available path of second host;The interchanger added in the first TCP linking request message it is above-mentioned it is a plurality of can With the sum in path, the 2nd TCP linking request message is formed;The interchanger sends the 2nd TCP link to second host and asks Seek message;The interchanger receives the response message of the 2nd TCP linking request message of second host transmission, the response message Sum including above-mentioned a plurality of available path;The interchanger sends the response message to first host.
It should be noted that in embodiments of the present invention, the first host can be based on the logical of the ECMP equative route that interchanger is sent It accuses, perceives in network equative route end to end.But the embodiment of the present invention is to the realization side for obtaining above-mentioned a plurality of available path Formula is not specifically limited.
For example, first host directly can also send one for requesting above-mentioned a plurality of available path to leaf interchanger Request message, which upon receiving the message, directly sends the response message of the request message to first host, For informing the above-mentioned a plurality of available path of the first host.
Optionally, the second index is added in each message of the second slice of the first data flow in first host Before, which also needs to obtain the path status information of first path.Specifically, the first host is sent to the second host After one message, the second host can include transmitting the message in this response message to one response message of the first host response Path path status information.In the embodiment of the present invention, for the first host, the first host can be according to the current path Path status information be sliced.
For example, first host receives the route conditions letter for the first path that the corresponding server of second host is sent Breath, and first data flow is sliced according to the path status information of the first path.
It should be noted that can establish path matrix table on each leaf interchanger, the path in CONGA scheme Matrix table can represent the leaf interchanger to all reachable paths of other leaf interchangers and gathering around for each reachable path Plug degree, the path matrix table are referred to as path congestion level table (congestion-to-leaf).
For example, every a line in path matrix table can indicate a leaf interchanger, the column in path matrix table can be with Indicate the corresponding all first line of a couplet ports of leaf interchanger.For example, if a leaf interchanger has 48 ports, wherein 24 ports For first line of a couplet spine interchanger, whole net has 100 leaf interchangers, then the size of the routing table on every leaf interchanger It can be 100*24.Value in path matrix table is the Congestion Level SPCC in path.For example, the band width in physical in a path is 10Gbps, current bearer traffic are 5Gbps, then the Congestion Level SPCC in path is 5/10=0.5.
Particularly, when Clos framework is 2 grades of Clos frameworks, the first line of a couplet port of leaf interchanger and purpose interchanger are determined Afterwards, forward-path is also to uniquely determine.
That is, when leaf interchanger receives data flow, can be determined according to its destination address in CONGA scheme Accessed path matrix table which;Again by searching for all column of the row, it can be deduced that handed over from all first line of a couplet ports to purpose The Congestion Level SPCC seniority among brothers and sisters changed planes avoids congestion so as to exit port (path) forwarding for selecting Congestion Level SPCC minimum.
Specifically, source leaf interchanger (source leaf) detect flowlet, if current message belong to it is new Flowlet then searches purpose leaf interchanger in path matrix table;Found according to purpose leaf interchanger can forward it is all Exit port;It is compared according to the Congestion Level SPCC of exit port, the selection wherein minimum port forwarding of path congestion level;If table Content is sky, or initial fashion does not set up the Congestion Level SPCC information for playing purpose leaf interchanger, then from for the multiple of forwarding One is randomly choosed in exit port.If current message belongs to a flowlet, it is corresponding to find a flowlet on this Exit port forwarding.
It can thus be seen that be in fact that a stream (flow) is cut by source leaf interchanger multiple for the essential idea of CONGA Flowlet, different flowlet walk different paths, to realize that different size of flow more refines ground load balancing Effect.
In other words, in CONGA scheme, different flowlet is hashing onto different paths, host by source leaf interchanger Side is to carry out congestion control based on flow, what the actual transmission paths and host computer side congestion window that thus will appear flow indicated The inconsistent problem of the transmission path of the flow further causes the congestion window of host computer side that can not accurately indicate flow Actual transmission paths congestion state, and then influence data efficiency of transmission.
However, in embodiments of the present invention, when the first host needs to send the first data flow to the second host, this first Host is indexed by increasing in each slice of the first data flow, so that first host is able to know that in each slice and indexes The path status information of corresponding transmission path.In other words, which can be by indexing corresponding slice and index The path status information of corresponding transmission path avoids the actual transmission paths of first data flow from referring to host computer side congestion window The inconsistent problem in the path shown, and then the efficiency of transmission of data has been effectively ensured.
120, the first host sends the first slice of first data flow to the interchanger connecting with first host.
Specifically, first host sends the first slice of first data flow to the interchanger, first slice The last one message is first host to be determined according to the path status information for the first path for forwarding first slice, this One slice includes first index, so that the interchanger forwards first slice to second host by the first path.
That is, in embodiments of the present invention, first host is at the path status information of the first path is shown Terminate the transmission of first slice when congestion state, if before the first data flow has been sent, the path shape of the first path Condition information shows that always the first path does not have congestion, then does not need to first data stream sliced sheet, which is First slice, if the path status information of the first path shows that the first path is in the first data transmission procedure Congestion state, the needs are sliced first data flow again, then first data flow may include multiple slices.
Specifically, the second host can be to the first host response one after the first host sends a message to the second host A response message includes the path status information for transmitting the path of the message in this response message.It, should in the embodiment of the present invention First slice includes at least one message.
Wherein, the interchanger in the embodiment of the present invention can be any leaf interchanger under Clos framework.
It should be noted that CONGA scheme is to be transmitted based on stream flowlet to data, flowlet be can be understood as One section of message in a TCP flow, generally, if the time difference that former and later two messages reach is greater than the value of a configuration First message that the latter message is a new flowlet can be judged to if (such as 500 microseconds);If the message of front two reaches Time difference is less than the value (such as 500 microseconds) of the configuration, then this determines that two messages belong to the same flowlet.Specifically, as schemed Shown in 6, it is A1 and A2 respectively that stream (flow) A, which includes 2 stream slices, wherein the interval (Gap) between A1 and A2 is greater than one The value of configuration.
However, in embodiments of the present invention, the first host is determined by the path status information of first path for sending Whether the path of first slice is in congestion state, and then determines the end sending instant of the first slice, is finally reached dynamic The purpose of slice, and then farthest avoid path congestion.
In addition, the first host carries out Dynamic Slicing to the first data flow according to path congestion situation, this can be effectively reduced The slice number of first data flow.
In embodiments of the present invention, on the one hand, the first host is indexed by increasing in each slice of the first data flow, Realization is sliced first data flow, can avoid to the greatest extent it is single flow in the case of slice the congestion window of transport layer with Actual path congestion situation mismatches the problem of (mismatch).On the other hand, first host is according to first data flow In the congestion condition of the first corresponding first path of slice realize Dynamic Slicing, can effectively ensure that first data flow on road Diameter situation is transmitted in preferable path, effectively increases efficiency of transmission.
In embodiments of the present invention, the first host shows that the first path is in the path status information of the first path Terminate first slice when congestion state, the second slice is then sent by the second path.That is, the first host needs reality When or non real-time (period) detect the path status of first path.
Optionally, the path status information in the embodiment of the present invention may include round-trip delay (round-trip time, ) and/or the parameters such as dominant congestion notification (explicit congestion notification, ECN) RTT.
For example, the first host can determine the road of the first path according to parameters such as the RTT and/or ECN of the first path Diameter state.Wherein, RTT is an important performance indicator, indicates to receive to come to transmitting terminal since transmitting terminal sends data Confirmation message (receiving end soon sends confirmation message after receiving data) from receiving end, the time delay undergone in total.For ECN, in general, the ECN field when host of a support ECN sends data packet in data packet is 01 or 10, if on path Router support ECN and to undergo congestion, which can be revised as 11 for the value of ECN field, if the field by 11 are set as, then downstream router will not modify the value of the field.
For example, if determining should when the ECN field that the RTT of the first path is more than the threshold value and/or message set is modified The path status information of first path shows that the first path is in congestion state, then first host terminates first slice, That is the first host carry out sectioning, using the subsequent packet of first data flow as second slice, again it is above-mentioned it is a plurality of can It is the second slice selection new route in path.
First path, which is in congestion state, to be shown to the path status information in first path below, that is, terminates the first slice Later, the method for the data transmission of the embodiment of the present invention is illustrated.
Optionally, which shows that first path is in congestion state in the path status information of the first path When, terminate to send first slice, and after first slice, in each message of the second slice of first data flow The second index of addition, second index determine second index corresponding for the interchanger in above-mentioned a plurality of available path Two paths, the first path are different from second path;First host sends the second slice to the interchanger, so as to the exchange Machine forwards second slice to second host by second path.
In other words, which receives first data flow of first host transmission after first slice Second slice, second slice include the second index;The interchanger by second path, to the second host forward this second Slice.
The method of the data transmission of the embodiment of the present invention, only shows first in the path status information of the first path When path is in congestion state, just terminates to send first slice, first host is enabled to reduce this to greatest extent The number of slices of first data flow.
As one embodiment, optionally, which can show institute in the path status information in second path Stating terminates to send second slice when the second path is in congestion state.
As another embodiment, optionally, first host is after sending second slice of predetermined length, according to this The path status information of the path status information of first path and second path terminates to send second slice or after supervention Give second slice.For example, first host can also be after sending second slice of 64KB, according to the road in second path Diameter condition information terminates to send second slice or continues to send second slice.It should be understood that the predetermined length can be it is pre- If any value.
In other words, the interchanger receive predetermined length this second slice after, terminate receive this second slice or Continue to second slice.
For example, first host shows that first path is not on congestion state in the path status information of the first path When, terminate to send second slice;First host is sliced every after second slice in the third of first data flow First index is added in a message;First host sends the third slice of first data flow to the interchanger, this Three slices include first index, so that the interchanger forwards the third to be sliced by the first path to second host.
In another example first host the first path path status information show first path be in congestion state and When the path status information in second path shows that the second path is not on congestion state, continue to send second slice.
In another example first host the first path path status information show first path be in congestion state and When the path status information in second path shows that the second path is in congestion state, terminate to send second slice;This first Host is after second slice, addition third index, the third in each message of the third slice of first data flow It indexes and determines the corresponding third path of third index in above-mentioned a plurality of available path for the interchanger, the first path, Second path and the third path are different;First host sends third slice, third slice packet to the interchanger Third index is included, so that the interchanger forwards the third to be sliced on the third path to second host.
It should be understood that in embodiments of the present invention, the first host can determine knot according to the path status information of current path Beam sends current slice, i.e., carries out dynamic to the data flow according to the path status information in the current transmission path of data flow and cut Piece;Static slicing can also be carried out to data stream with scheduled length, it can also be in a manner of dynamic and static combination to data Stream is sliced, and the embodiment of the present invention is not specifically limited.
130, the interchanger forwards first slice by the first path, to the second host.
Specifically, interchanger receives the first slice of the first data flow that the first host is sent, so as to the interchanger First slice is forwarded to second host by the first path, which includes the first index, this first Index determines first index corresponding first for interchanger in a plurality of available path of first host to the second host Path, the interchanger forward first slice by the first path, to the second host.
Optionally, it is described before the interchanger forwards first slice to the second host by the first path Interchanger establishes mapping table, and the mapping table is corresponding for recording every available path in a plurality of available path Index;The interchanger determines the first path according to the mapping table and first index.
It should be understood that in embodiments of the present invention, interchanger can establish above-mentioned mapping table, it is then based on correspondence pass It is that table forwards first slice.Interchanger can also forward first slice otherwise.
For example, the interchanger can directly establish the first slice after receiving the first slice in 2 grades of Clos frameworks With the mapping table of ECMP exit port, subsequent slice is forwarded according to the mapping table.For Fig. 7, interchanger is being connect After receiving the first slice including the first index, the mapping relations of the first index and exit port P11 are established.Optionally, interchanger The mapping relations between each ECMP exit port and index can be disposably established, it can also be after receiving new slice, root The mapping relations between index and ECMP exit port are established according to the index in slice.
In another example interchanger can redefine transmission path, and in weight by polling dispatching (round-robin, RR) Newly first slice etc. is forwarded to the second host in determining transmission path.
It should be understood that RR is merely illustrative, optionally, RR includes: weighted polling (weight RR, WRR), difference wheel Ask (defict RR, DRR) and urgent poll (urgency-based RR, URR).
It shall yet further be noted that the method for the embodiment of the present invention can be by traditional Windows/Linux operating system nucleus code Network processes part (network stack) executes, and can also directly be executed by host.It above-mentioned network processes part for example can be with It is linux system ICP/IP protocol stack functional module, cloud or virtualizing operating systems (VMware, Xen or Openstack) ICP/IP protocol stack functional module etc..
Based on inventive concept same as the above method, the embodiment of the invention also provides a kind of host, Fig. 8 is the present invention The schematic block diagram of the host 200 of embodiment.
As shown in figure 8, the host 200 includes:
Processing unit 210, for the first index of addition in each message of the first slice of the first data flow, this first Index determines first index corresponding first for interchanger in a plurality of available path of first host to the second host Path;
Transmit-Receive Unit 220, for the interchanger send first data flow first slice, this first slice it is last One message is that first host is determined according to the path status information for the first path for forwarding first slice, so as to the friendship It changes planes and first slice is forwarded to second host by the first path.
Optionally, which is also used to:
When the path status information of the first path shows that first path be in congestion state, terminating transmission, this first is cut Piece, the second index of addition in each message of the second slice of first data flow, second index exist for the interchanger Corresponding second path of the second index is determined in above-mentioned a plurality of available path, the first path is different from second path, In, which is also used to:
Second slice is sent to the interchanger, so that the interchanger is forwarded by second path to second host Second slice.
Optionally, which is also used to:
After sending second slice of predetermined length, according to the path status information of the first path and second path Path status information, terminate to send second slice or continue to send second slice.
Optionally, which is specifically used for:
When the path status information of the first path shows that the first path is not on congestion state, terminate to send Second slice;After second slice, first rope is added in each message of the third slice of first data flow Draw;Wherein, which is also used to:
Third slice is sent to the interchanger, third slice includes first index, so that the interchanger passes through institute It states first path and forwards the third to be sliced to second host.
Optionally, which is specifically used for:
Show that first path is in congestion state and the path in second path in the path status information of the first path When condition information shows that the second path is not on congestion state, continue to send second slice.
Optionally, which is specifically used for:
Show that first path is in congestion state and the path in second path in the path status information of the first path When condition information shows that second path is in congestion state, terminate to send second slice;After second slice, Addition third index in each message of the third slice of first data flow, second index is for the interchanger above-mentioned more Determine that the third indexes corresponding third path in available path, the first path, second path and the third path are mutual It is not identical;Wherein, which is also used to:
Send third slice to the interchanger, third slice includes that the third indexes, so as to the interchanger this The third is forwarded to be sliced to second host on three paths.
Optionally, which is also used to:
In each message of the first slice of the first data flow before the first index of addition, which obtains above-mentioned The sum of a plurality of available path.
Optionally, which is specifically used for:
The first transmission control protocol TCP linking request message is sent to the interchanger, which includes should First request message, which is used for the sum of the above-mentioned a plurality of available path of request, so that the interchanger exists The sum of above-mentioned a plurality of available path is added in first TCP linking request message, generates what needs were sent to second host 2nd TCP linking request message;Receive the response message of the 2nd TCP linking request message of interchanger forwarding, the response Message includes the sum of above-mentioned a plurality of available path.
Optionally, which is also used to:
In each message of the second slice of the first data flow before the second index of addition, server is sent the is received The path status information in one path.
Optionally, which includes round-trip delay RTT and/or dominant congestion notification ECN.
It should be noted that processing unit 210 can be realized by processor, and Transmit-Receive Unit 220 can be by handling in the embodiment of the present invention Device controls communication port and realizes.
As shown in figure 9, host 300 may include processor 310, port 320 and memory 330.Wherein, memory 330 It can be used for code, the instruction etc. of the execution of storage processor 310.
It is non-limiting as example, processor 310, port 320, between memory 330 for example, by the modes such as bus reality Now communicate to connect.
Based on inventive concept same as the above method, the embodiment of the invention also provides a kind of interchanger, Figure 10 is this The schematic block diagram of the interchanger 400 of inventive embodiments.
As shown in Figure 10, which includes the first Transmit-Receive Unit 410 and the second Transmit-Receive Unit 420.
The interchanger includes the first Transmit-Receive Unit 410, which is used for:
First Transmit-Receive Unit 410, the first slice of the first data flow for receiving the transmission of the first host, first slice The last one message to be first host determine according to the path status information for the first path for forwarding first slice, should First slice includes the first index, which is used for interchanger in a plurality of available path of first host to the second host The middle determination corresponding first path of the first index;
Second Transmit-Receive Unit 420, for forwarding first slice to the second host by the first path.
Optionally, which further includes processing unit, which is used for:
Mapping table is established, the mapping table is corresponding for recording every available path in a plurality of available path Index;
According to the mapping table and first index, the first path is determined.
Optionally, which is also used to:
And after first slice, the second slice of first data flow of first host transmission is received, this second Slice includes the second index, which determines that second index is corresponded to for the interchanger in above-mentioned a plurality of available path The second path, the first path is different from second path.
Wherein, which is also used to: by second path, forwarding this second to cut to the second host Piece.
Optionally, which is also used to:
After receiving second slice of predetermined length, terminate to receive second slice or continue to this second to cut Piece.
Optionally, which is also used to:
Before the first slice for receiving the first data flow of the first host transmission, receive first host transmission first is passed Transport control protocol discusses TCP linking request message, which includes first request message, first request message The sum of a plurality of available path for request first host to second host;In the first TCP linking request report The sum of above-mentioned a plurality of available path is added in text, forms the 2nd TCP linking request message;Wherein, second Transmit-Receive Unit 420 It is also used to: sending the 2nd TCP linking request message to second host;Receive the 2nd TCP chain of second host transmission The response message of request message is connect, which includes the sum of above-mentioned a plurality of available path;Sending to first host should Response message.
It should be noted that the first Transmit-Receive Unit 410 and the second Transmit-Receive Unit 420 can be controlled by processor in the embodiment of the present invention Realize that processing unit can be realized by processor in different ports.
As shown in figure 11, interchanger 500 may include processor 510, multiple communication port 520 and memory 530.Its In, memory 530 can be used for code, the instruction etc. of the execution of storage processor 510.
It is non-limiting as example, processor 510, communication port 520, between memory 530 for example, by the side such as bus Formula realizes communication connection.
It should be noted that the method that processor executes is consistent with the content of preceding method embodiment, repeat no more.
It should be noted that above-mentioned processor may be a kind of IC chip, there is signal handling capacity.In the process of realization In, each step of above method embodiment can pass through the integrated logic circuit of the hardware in processor or the finger of software form It enables and completing.Above-mentioned processor can be general processor, digital signal processor (digital signal processor, DSP), specific integrated circuit (application-specific integrated circuit, ASIC), ready-made programmable gate Array (field-programmable gate array, FPGA) or other programmable logic device, transistor logic device Part, discrete hardware components.
It is appreciated that memory can be volatile memory or nonvolatile memory, or can in the embodiment of the present invention Including both volatile and non-volatile memories.Wherein, nonvolatile memory can be read-only memory (read-only Memory, ROM), programmable read only memory (programmable ROM, PROM), Erasable Programmable Read Only Memory EPROM (erasable PROM, EPROM), electrically erasable programmable read-only memory (electrically EPROM, EEPROM) dodge It deposits.Volatile memory can be random access memory (random access memory, RAM), be used as external high speed Caching.By exemplary but be not restricted explanation, the RAM of many forms is available, for example, static random access memory (static RAM, SRAM), dynamic random access memory (dynamic RAM, DRAM), Synchronous Dynamic Random Access Memory (synchronous DRAM, SDRAM), double data speed synchronous dynamic RAM (double data rate SDRAM, DDR SDRAM), enhanced Synchronous Dynamic Random Access Memory (enhanced SDRAM, ESDRAM), synchronized links Dynamic random access memory (synch link DRAM, SLDRAM) and direct rambus random access memory (direct Rambus RAM, DR RAM).It should be noted that the memory of system and method described herein be intended to include but be not limited to these and The memory of any other suitable type.
It should be understood that the term used in the embodiment of the present invention and the appended claims is only merely for the specific reality of description The purpose for applying example, is not intended to limit the invention embodiment.
For example, term "and/or" in the embodiment of the present invention, only a kind of incidence relation for describing affiliated partner, is indicated There may be three kinds of relationships.Specifically, A and/or B can be indicated: individualism A, exist simultaneously A and B, individualism B this three Kind situation.In addition, character "/" herein, typicallys represent the relationship that forward-backward correlation object is a kind of "or".
In another example in the "an" and "the" of the embodiment of the present invention and singular used in the attached claims It is also intended to including most forms, unless context clearly shows that other meanings.
In another example various slices, rope may be described using term first, second, third, etc. in embodiments of the present invention Draw and host, but these slices, index and host should not necessarily be limited by these terms.These terms are only used to be sliced, index and lead Machine is distinguished from each other out.
The above content, the only specific embodiment of the embodiment of the present invention, but the protection scope of the embodiment of the present invention is not It is confined to this, anyone skilled in the art can think easily in the technical scope that the embodiment of the present invention discloses To change or replacement, should all cover within the protection scope of the embodiment of the present invention.Therefore, the protection scope of the embodiment of the present invention It should be subject to the protection scope in claims.

Claims (28)

1. a kind of method for transmitting data, which is characterized in that the described method includes:
First host, first index of addition in each message of the first slice of the first data flow, first index is for making The interchanger of the first host connection determines described first in a plurality of available path of first host to the second host Index corresponding first path;
First host to the interchanger send first data flow first slice, it is described first slice last A message is that first host is determined according to the path status information for the first path for forwarding first slice, with toilet It states interchanger and first slice is forwarded to second host by the first path.
2. the method according to claim 1, wherein the method also includes:
First host terminates hair when the path status information of the first path shows that first path is in congestion state Send first slice;
The second index of addition in each message of the second slice of first data flow, second index are described for making Interchanger determines corresponding second path of second index in a plurality of available path, second path and described the One path is different;
First host to the interchanger send it is described second slice, so as to the interchanger by second path to Second host forwarding, second slice.
3. according to the method described in claim 2, it is characterized in that, the method also includes:
First host is after sending second slice of predetermined length, according to the path status information of the first path With the path status information in second path, terminates to send second slice or continue to send second slice.
4. according to the method described in claim 3, it is characterized in that, first host is sending described the second of predetermined length After slice, according to the path status information of the path status information of the first path and second path, terminate to send institute It states the second slice or continues to send second slice, comprising:
First host shows that the first path is not on congestion state in the path status information of the first path When, terminate to send second slice;
The method also includes:
First host adds in each message of the third slice of first data flow after second slice First index;
First host sends third slice to the interchanger, so as to the interchanger by the first path to Second host forwards the third slice.
5. according to the method described in claim 3, it is characterized in that, first host is sending described the second of predetermined length After slice, according to the path status information of the path status information of the first path and second path, terminate to send institute It states the second slice or continues to send second slice, comprising:
First host shows that first path is in congestion state and described the in the path status information of the first path When the path status information in two paths shows that the second path is not on congestion state, continue to send second slice.
6. according to the method described in claim 3, it is characterized in that, first host is sending described the second of predetermined length After slice, according to the path status information of the path status information of the first path and second path, terminate to send institute It states the second slice or continues to send second slice, comprising:
First host shows that first path is in congestion state and described the in the path status information of the first path When the path status information in two paths shows that second path is in congestion state, terminate to send second slice;
The method also includes:
First host adds in each message of the third slice of first data flow after second slice Third index, the third index is for making the interchanger determine that the third index corresponds in a plurality of available path Third path, the first path, second path and the third path are different;
First host sends third slice to the interchanger, so as to the interchanger on the third path to Second host forwards the third slice.
7. method according to any one of claim 1 to 6, which is characterized in that first host is in the first data flow First slice each message in addition first index before, the method also includes:
First host obtains the sum of a plurality of available path, in order to which first host is according to described a plurality of available The sum in path determines the index quantity that can be added in first data flow.
8. the method according to the description of claim 7 is characterized in that first host obtains the total of a plurality of available path Number, comprising:
First host sends the first transmission control protocol TCP linking request message to the interchanger, and the TCP link is asked Seeking message includes the first request message, and sum of first request message for a plurality of available path described in request makes The interchanger adds the sum of a plurality of available path in the first TCP linking request message, generation need to The 2nd TCP linking request message that second host is sent;
First host receives the response message of the 2nd TCP linking request message of the interchanger forwarding, the sound Answering message includes the sum of a plurality of available path.
9. method according to any one of claim 1 to 8, which is characterized in that first host is in first number Before the second index of addition in each message of the second slice of stream, the method also includes:
First host receives the first path that the corresponding server of second host is sent by the interchanger Path status information.
10. a kind of method for transmitting data, which is characterized in that the described method includes:
Interchanger receives the first slice of the first data flow that the first host is sent, the last one message of first slice is What the path status information for the first path that first host is sliced according to forwarding described first determined, first slice Each message includes the first index, and first index is for making the interchanger in first host to the more of the second host The corresponding first path of first index is determined in available path;
The interchanger forwards first slice to the second host by the first path.
11. according to the method described in claim 10, it is characterized in that, the interchanger is main to second by the first path Before machine forwarding first slice, the method also includes:
The interchanger establishes mapping table, and the mapping table is available for recording in a plurality of available path every The corresponding index in path;
The interchanger determines the first path according to the mapping table and first index.
12. method described in 0 or 11 according to claim 1, which is characterized in that the method also includes:
The interchanger receives the second slice of first data flow that first host is sent, second slice it is every A message includes the second index, and second index determines described second for the interchanger in a plurality of available path Corresponding second path is indexed, second path is different from the first path;
The interchanger forwards second slice to the second host by second path.
13. method according to any one of claims 10 to 12, which is characterized in that the interchanger receives the first host Before first slice of the first data flow sent, the method also includes:
The interchanger receives the first transmission control protocol TCP linking request message that first host is sent, the TCP chain Connecing request message includes first request message, and first request message is for the first host described in request described in The sum of a plurality of available path of second host, in order to which first host is determined according to the sum of a plurality of available path The index quantity that can be added in first data flow;
The interchanger adds the sum of a plurality of available path in the first TCP linking request message, forms second TCP linking request message;
The interchanger sends the 2nd TCP linking request message to second host;
The interchanger receives the response message for the 2nd TCP linking request message that second host is sent, the sound Answering message includes the sum of a plurality of available path;
The interchanger sends the response message to first host.
14. a kind of host, which is characterized in that the host includes:
Processing unit, for the first index of addition in each message of the first slice of the first data flow, first index First index corresponding first is determined in a plurality of available path of first host to the second host for interchanger Path;
Transmit-Receive Unit, for the interchanger send first data flow first slice, it is described first slice it is last One message is that first host is determined according to the path status information for the first path for forwarding first slice, described First slice include it is described first index, so as to the interchanger by the first path to second host forward described in First slice.
15. host according to claim 14, which is characterized in that the processing unit is also used to:
When the path status information of the first path shows that first path is in congestion state, terminates transmission described first and cut Piece;
After first slice, the second index of addition, institute in each message of the second slice of first data flow It states the second index and determines corresponding second path of second index, institute in a plurality of available path for the interchanger It is different from the first path to state the second path, wherein the Transmit-Receive Unit is also used to:
Second slice is sent to the interchanger, so that the interchanger passes through second path to second host Forward second slice.
16. host according to claim 15, which is characterized in that the processing unit is also used to:
After sending second slice of predetermined length, according to the path status information of the first path and second tunnel The path status information of diameter terminates to send second slice or continues to send second slice.
17. host according to claim 16, which is characterized in that the processing unit is specifically used for:
When the path status information of the first path shows that the first path is not on congestion state, terminate to send institute State the second slice;
After second slice, first rope is added in each message of the third slice of first data flow Draw;
Wherein, the Transmit-Receive Unit is also used to:
Third slice is sent to the interchanger, the third slice includes first index, so that the interchanger passes through The first path forwards the third slice to second host.
18. host according to claim 16, which is characterized in that the processing unit is specifically used for:
Show that first path is in the path of congestion state and second path in the path status information of the first path When condition information shows that the second path is not on congestion state, continue to send second slice.
19. host according to claim 16, which is characterized in that the processing unit is specifically used for:
Show that first path is in the path of congestion state and second path in the path status information of the first path When condition information shows that second path is in congestion state, terminate to send second slice;
After second slice, addition third index, institute in each message of the third slice of first data flow It states the second index and determines that the third indexes corresponding third path, institute in a plurality of available path for the interchanger It is different to state first path, second path and the third path;
Wherein, the Transmit-Receive Unit is also used to:
Third slice is sent to the interchanger, the third slice includes that the third indexes, so that the interchanger is in institute It states and forwards the third slice to second host on third path.
20. host described in any one of 4 to 19 according to claim 1, which is characterized in that the Transmit-Receive Unit is also used to:
In each message of the first slice of the first data flow before the first index of addition, a plurality of available path is obtained Sum, in order to which first host can add in first data flow according to the sum determination of a plurality of available path The index quantity added.
21. host according to claim 20, which is characterized in that the Transmit-Receive Unit is specifically used for:
The first transmission control protocol TCP linking request message is sent to the interchanger, the TCP linking request message includes institute State the first request message, sum of first request message for a plurality of available path described in request, so that the friendship It changes planes and adds the sum of a plurality of available path in the first TCP linking request message, generate and need to described second The 2nd TCP linking request message that host is sent;
The response message of the 2nd TCP linking request message of the interchanger forwarding is received, the response message includes institute State the sum of a plurality of available path.
22. host described in any one of 4 to 21 according to claim 1, which is characterized in that the Transmit-Receive Unit is also used to:
In each message of the second slice of the first data flow before the second index of addition, by described in interchanger reception The path status information for the first path that the corresponding server of second host is sent.
23. a kind of interchanger, which is characterized in that the interchanger includes:
First Transmit-Receive Unit, the first slice of the first data flow for receiving the transmission of the first host, first slice is most The latter message is that first host is determined according to the path status information for the first path for forwarding first slice, institute State the first slice include first index, it is described first index for interchanger first host can to a plurality of of the second host Corresponding first path is indexed in path determining described first;
Second Transmit-Receive Unit, for forwarding first slice to second host by the first path.
24. interchanger according to claim 23, which is characterized in that the interchanger further includes processing unit, the place Reason unit is used for:
Mapping table is established, the mapping table is corresponding for recording every available path in a plurality of available path Index;
According to the mapping table and first index, the first path is determined.
25. the interchanger according to claim 23 or 24, which is characterized in that first Transmit-Receive Unit is also used to:
The second slice of first data flow that first host is sent is received, second slice includes the second index, Second index determines corresponding second path of second index for the interchanger in a plurality of available path, Second path is different from the first path;
Second Transmit-Receive Unit is also used to forward second slice to second host by second path.
26. the interchanger according to any one of claim 23 to 25, which is characterized in that
First Transmit-Receive Unit is also used to:
Before the first slice for receiving the first data flow of the first host transmission, the first transmission that first host is sent is received Control protocol TCP linking request message, the TCP linking request message include first request message, first request Sum of the message for a plurality of available path of the first host described in request to second host, in order to described first Host determines the index quantity that can be added in first data flow according to the sum of a plurality of available path;
The sum of a plurality of available path is added in the first TCP linking request message, forms the 2nd TCP linking request Message;
Second Transmit-Receive Unit is also used to:
The 2nd TCP linking request message is sent to second host;
The response message for the 2nd TCP linking request message that second host is sent is received, the response message includes The sum of a plurality of available path;
First Transmit-Receive Unit is also used to: sending the response message to first host.
27. a kind of computer readable storage medium, which is characterized in that the computer-readable recording medium storage has program, institute It states program and is performed the method so that transmission data described in any one of host perform claim requirement 1 to 9.
28. a kind of computer readable storage medium, which is characterized in that the computer-readable recording medium storage has program, institute It states program and is performed the method so that transmission data described in any one of interchanger perform claim requirement 10 to 13.
CN201710359609.1A 2017-05-19 2017-05-19 Method, host and switch for transmitting data Active CN108965121B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710359609.1A CN108965121B (en) 2017-05-19 2017-05-19 Method, host and switch for transmitting data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710359609.1A CN108965121B (en) 2017-05-19 2017-05-19 Method, host and switch for transmitting data

Publications (2)

Publication Number Publication Date
CN108965121A true CN108965121A (en) 2018-12-07
CN108965121B CN108965121B (en) 2021-06-01

Family

ID=64462122

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710359609.1A Active CN108965121B (en) 2017-05-19 2017-05-19 Method, host and switch for transmitting data

Country Status (1)

Country Link
CN (1) CN108965121B (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111817973A (en) * 2020-06-28 2020-10-23 电子科技大学 Data center network load balancing method
WO2021254307A1 (en) * 2020-06-16 2021-12-23 华为技术有限公司 Method and apparatus for determining message transmission path
CN114097206A (en) * 2019-05-14 2022-02-25 威睿公司 Congestion avoidance in slice-based networks
US11588733B2 (en) 2019-05-14 2023-02-21 Vmware, Inc. Slice-based routing
US11595315B2 (en) 2019-05-14 2023-02-28 Vmware, Inc. Quality of service in virtual service networks
US11902080B2 (en) 2019-05-14 2024-02-13 Vmware, Inc. Congestion avoidance in a slice-based network

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102006225A (en) * 2010-11-19 2011-04-06 华为技术有限公司 Network congestion processing method and device
CN102498694A (en) * 2009-09-14 2012-06-13 日本电气株式会社 Communication system, forwarding node, path management server, communication method, and program
US20140064082A1 (en) * 2012-08-31 2014-03-06 Derek Man-Kit Yeung Congestion mitigation and avoidance
CN104579961A (en) * 2013-10-11 2015-04-29 ***通信集团公司 Scheduling method and device for data message
CN105873162A (en) * 2016-06-20 2016-08-17 沈阳化工大学 Wireless sensor network data flow rate shunting routing method based on multipath
CN105933232A (en) * 2016-03-29 2016-09-07 东北大学 Multi-path transmission control terminal and method for supporting multi-service data transmission
CN106059941A (en) * 2016-07-14 2016-10-26 电子科技大学 Backbone network traffic scheduling method for eliminating link congestion
CN106357547A (en) * 2016-09-08 2017-01-25 重庆邮电大学 Software-defined network congestion control algorithm based on stream segmentation

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102498694A (en) * 2009-09-14 2012-06-13 日本电气株式会社 Communication system, forwarding node, path management server, communication method, and program
CN102006225A (en) * 2010-11-19 2011-04-06 华为技术有限公司 Network congestion processing method and device
US20140064082A1 (en) * 2012-08-31 2014-03-06 Derek Man-Kit Yeung Congestion mitigation and avoidance
CN104579961A (en) * 2013-10-11 2015-04-29 ***通信集团公司 Scheduling method and device for data message
CN105933232A (en) * 2016-03-29 2016-09-07 东北大学 Multi-path transmission control terminal and method for supporting multi-service data transmission
CN105873162A (en) * 2016-06-20 2016-08-17 沈阳化工大学 Wireless sensor network data flow rate shunting routing method based on multipath
CN106059941A (en) * 2016-07-14 2016-10-26 电子科技大学 Backbone network traffic scheduling method for eliminating link congestion
CN106357547A (en) * 2016-09-08 2017-01-25 重庆邮电大学 Software-defined network congestion control algorithm based on stream segmentation

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114097206A (en) * 2019-05-14 2022-02-25 威睿公司 Congestion avoidance in slice-based networks
US11588733B2 (en) 2019-05-14 2023-02-21 Vmware, Inc. Slice-based routing
US11595315B2 (en) 2019-05-14 2023-02-28 Vmware, Inc. Quality of service in virtual service networks
US11902080B2 (en) 2019-05-14 2024-02-13 Vmware, Inc. Congestion avoidance in a slice-based network
WO2021254307A1 (en) * 2020-06-16 2021-12-23 华为技术有限公司 Method and apparatus for determining message transmission path
CN111817973A (en) * 2020-06-28 2020-10-23 电子科技大学 Data center network load balancing method
CN111817973B (en) * 2020-06-28 2022-03-25 电子科技大学 Data center network load balancing method

Also Published As

Publication number Publication date
CN108965121B (en) 2021-06-01

Similar Documents

Publication Publication Date Title
CN108965121A (en) Transmit method, host and the interchanger of data
CN114073052B (en) Systems, methods, and computer readable media for slice-based routing
EP3624408B1 (en) Method for generating forwarding table entry, controller, and network device
CN109691037B (en) Method and system for data center load balancing
US9608938B2 (en) Method and system for tracking and managing network flows
CN113382442B (en) Message transmission method, device, network node and storage medium
CN111953604B (en) Method and device for providing business service for business flow
CN108462646B (en) Message processing method and device
CN102792646B (en) Communication system, control device, communication means
KR101317969B1 (en) Inter-node link aggregation system and method
CN107078963B (en) Route tracing in virtual extensible local area networks
CN108667681A (en) Routing for Multi-path route tracks
CN111630817B (en) Routing method and device
US10693790B1 (en) Load balancing for multipath group routed flows by re-routing the congested route
US10263861B2 (en) Multi-path aware tracing and probing functionality at service topology layer
CN112671641B (en) Message forwarding method and device
EP2880550B1 (en) Connection mesh in mirroring asymmetric clustered multiprocessor systems
CN102447638A (en) Load balancing method and forwarding apparatus
Luo et al. Enhancing responsiveness and scalability for OpenFlow networks via control-message quenching
Cheng et al. Application-aware SDN routing for big data networking
KR102455886B1 (en) Service Feature Chaining Congestion Feedback
CN111585911B (en) Method for balancing network traffic load of data center
WO2015039616A1 (en) Method and device for packet processing
CN116319535A (en) Path switching method, path switching device, network equipment and network system
US8625624B1 (en) Self-adjusting load balancing among multiple fabric ports

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