CN108965121A - Transmit method, host and the interchanger of data - Google Patents
Transmit method, host and the interchanger of data Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/123—Evaluation of link metrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2466—Traffic characterised by specific attributes, e.g. priority or QoS using signalling traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/33—Flow control; Congestion control using forward notification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
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
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.
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)
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)
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 |
-
2017
- 2017-05-19 CN CN201710359609.1A patent/CN108965121B/en active Active
Patent Citations (8)
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)
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 |
---|---|---|
CN114073052B (en) | Systems, methods, and computer readable media for slice-based routing | |
CN108965121A (en) | Transmit method, host and the interchanger of data | |
EP3624408B1 (en) | Method for generating forwarding table entry, controller, and network device | |
CN109691037B (en) | Method and system for data center load balancing | |
CN111953604B (en) | Method and device for providing business service for business flow | |
CN108462646B (en) | Message processing method and device | |
US9608938B2 (en) | Method and system for tracking and managing network flows | |
CN102792646B (en) | Communication system, control device, communication means | |
KR101317969B1 (en) | Inter-node link aggregation system and method | |
US10693790B1 (en) | Load balancing for multipath group routed flows by re-routing the congested route | |
CN107078963B (en) | Route tracing in virtual extensible local area networks | |
CN111630817B (en) | Routing method and device | |
CN108667681A (en) | Routing for Multi-path route tracks | |
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 | |
CN108234320A (en) | Message transmitting method and interchanger | |
KR102455886B1 (en) | Service Feature Chaining Congestion Feedback | |
CN116319535A (en) | Path switching method, path switching device, network equipment and network system | |
WO2015039616A1 (en) | Method and device for packet processing | |
US20240275716A1 (en) | Fault Handling Method, Related Device, and System | |
CN113612698A (en) | Data packet sending method and device | |
US12052181B2 (en) | Generic layer independent fragmentation of non-internet protocol frames |
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 |