CN111147381A - Flow balancing method and device - Google Patents

Flow balancing method and device Download PDF

Info

Publication number
CN111147381A
CN111147381A CN201811302495.8A CN201811302495A CN111147381A CN 111147381 A CN111147381 A CN 111147381A CN 201811302495 A CN201811302495 A CN 201811302495A CN 111147381 A CN111147381 A CN 111147381A
Authority
CN
China
Prior art keywords
control
destination
data
packet
path identifier
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
CN201811302495.8A
Other languages
Chinese (zh)
Other versions
CN111147381B (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.)
Huawei Technologies Co Ltd
Original Assignee
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201811302495.8A priority Critical patent/CN111147381B/en
Priority to PCT/CN2019/114923 priority patent/WO2020088624A1/en
Publication of CN111147381A publication Critical patent/CN111147381A/en
Application granted granted Critical
Publication of CN111147381B publication Critical patent/CN111147381B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling

Abstract

The application discloses a flow balancing method, in the method, a flow balancing device obtains a first control message and a second control message, the first control message comprises a first path identifier and a first destination address, and the second control message comprises a second path identifier and a first destination address; the flow balancing device determines a first output port according to the routing table, the first path identifier and the first destination address, and sends a first control message to a destination host through the first output port; the flow balancing device determines a second output port according to the routing table, the second path identifier and the first destination address, and sends a second control message to the destination host through the second output port; the traffic balancing device obtains C1 data messages, determines a third egress port according to a routing table, a third path identifier and a first destination address included in the C1 data messages, and sends C1 data messages to a destination host through the third egress port, where the third egress port is the first egress port or the second egress port.

Description

Flow balancing method and device
Technical Field
The present application relates to the field of communications, and in particular, to a method and an apparatus for traffic balancing.
Background
The most dominant traffic balancing method in packet networks is currently flow-by-flow balancing. The method of stream-by-stream balancing is to share different streams to multiple paths with one Transmission Control Protocol (TCP) stream or User Datagram Protocol (UDP) stream as the minimum granularity. Taking TCP flows as an example, even if the number of allocated TCP flows on each path is the same, the bandwidth utilization rate of each path may be greatly different due to the difference in data amount of different TCP flows, which affects the flow balancing effect. Packet-by-packet balancing can improve the flow balancing effect. Packet-by-packet balancing is to share different data packets to multiple paths with one data packet as the minimum granularity. However, the packet-by-packet balancing may cause data packet misordering due to time delays generated by different paths, so that a device receiving the data packet may further trigger a retransmission operation or reduce a sending rate of the data packet due to packet loss in the misjudgment and transmission process of the data packet misjudgment.
Disclosure of Invention
The embodiment of the application provides a flow balancing method and device, which can avoid data messages from being out of order under the condition of ensuring the flow balancing effect.
In a first aspect, a traffic balancing method is provided, where the method includes: a flow balancing device acquires a first control message, wherein the first control message comprises a first path identifier and a first destination address; the flow balancing device determines a first output port according to a routing table, the first path identifier and the first destination address, and sends the first control message to a destination host through the first output port; the flow balancing device acquires a second control message, wherein the second control message comprises a second path identifier and the first destination address; the traffic balancing device determines a second output port according to the routing table, the second path identifier and the first destination address, and sends the second control message to the destination host through the second output port; the traffic balancing device obtains C1 data messages, each data message includes a third path identifier and the first destination address, the third path identifier is the same as the first path identifier or the second path identifier, and C1 is an integer greater than or equal to 1; the traffic balancing device determines a third output port according to the routing table, the third path identifier and the first destination address, where the third output port is the same as the first output port or the second output port; and the traffic balancing device sends the C1 data messages to the destination host through the third egress port.
In the above method, the traffic balancing apparatus may select a port (first output port) for forwarding the first control packet or a port (second output port) for forwarding the second control packet according to the third path identifier carried by the obtained C1 data packets, to send the C1 data packets. If the third path identifiers carried by the C1 data packets are the same as the first path identifiers, the traffic balancing apparatus determines that the first egress port is available for sending the C1 data packets. If the third path identifiers carried by the C1 data packets are the same as the second path identifiers, the traffic balancing apparatus determines that the second egress port is available for sending the C1 data packets. Therefore, the data messages included in the service flow can reach the destination host along different paths, and the orderliness of the control messages for triggering the data messages to be sent ensures that the triggered data messages do not have disorder conditions when reaching the destination host.
In one possible design, the determining, by the traffic balancing apparatus, the first egress port according to the routing table, the first path identifier, and the first destination address includes: the traffic balancing device performs hash operation on the first path identifier and at least one tuple included in the first control message to obtain a first hash value, where the at least one tuple of the first control message includes one or more of a source address, a destination address, a source port number, and a destination port number; the flow balancing device searches the routing table by using the first hash value and the first destination address to obtain an identifier of a first output port; the traffic balancing apparatus determines the first egress port based on the identity of the first egress port. Wherein the routing table includes a first correspondence, the first correspondence including the first hash value, the first destination address, and the first egress port.
In one possible design, the sending the first control packet to the destination host through the first egress port includes: the flow balancing device buffers the first control message in a control queue corresponding to the first output port; the flow balancing device reads a plurality of control messages from the control queue corresponding to the first output port according to a time period, wherein the plurality of control messages in the control queue corresponding to the first output port comprise the first control message; and the flow balancing device sends the read first control message to the destination host through the first output port. The duration of the time period may be calculated according to the packet length of any control packet and the bandwidth occupied by the control channel transmitting the any control packet.
In one possible design, the determining, by the traffic balancing apparatus, a second egress port according to the routing table, the second path identifier, and the first destination address includes: the traffic balancing device performs hash operation on the second path identifier and at least one tuple included in the second control packet to obtain a second hash value, where the at least one tuple of the second control packet includes one or more of a source address, a destination address, a source port number, and a destination port number; the traffic balancing device searches the routing table by using the second hash value and the first destination address to obtain an identifier of the second output port; the traffic balancing apparatus determines the second egress port based on the identity of the second egress port. Wherein the routing table may include the second correspondence in addition to the first correspondence. The second correspondence includes the second hash value, the first destination address, and the second egress port.
In one possible design, the sending the second control packet to the destination host through the second egress port includes: the flow balancing device buffers the second control message in a control queue corresponding to the second output port; the flow balancing device reads a plurality of control messages from the control queue corresponding to the second output port according to a time period, wherein the plurality of control messages in the control queue corresponding to the second output port comprise the second control message; and the flow balancing device sends the read second control message to the destination host through the second output port. The duration of the time period may be calculated according to the packet length of any control packet and the bandwidth occupied by the control channel transmitting the any control packet.
In one possible design, the traffic balancing apparatus may be disposed in a forwarding device or a source host in a network. The forwarding device may be a router or other device capable of implementing the message caching and forwarding functions. The source host may be a device, such as a server, having a function of generating control messages and data messages. When the traffic balancing apparatus is installed in the source host, the method further includes: the traffic balancing device receives a third control message sent by the destination host, where the third control message includes the third path identifier; the traffic balancing apparatus acquiring C1 data messages includes: and the traffic balancing device generates the C1 data messages according to the third path identifier carried by the third control message. The source host may add the third path identifier to C1 data packets to be sent. When the third path identifier is the first path identifier, the C1 data packets may reach the destination host along the path through which the first control packet is forwarded. When the third path identifier is the second path identifier, the C1 data packets may reach the destination host along the path through which the second control packet is forwarded. Thus, the C1 data packets can reach the destination host along a path through which a control packet is forwarded, and the order of the data packets can be ensured while achieving packet-based traffic balancing.
In a possible design, when the first control packet reaches the destination host before the second control packet, and a path identifier carried by the third control packet is the same as the first path identifier, the traffic balancing apparatus determines, according to the routing table, the third path identifier, and the first destination address, that the third egress port includes: the traffic balancing device performs hash operation on the third path identifier which is the same as the first path identifier and at least one unary group included in any data message of the C1 data messages to obtain a third hash value; the traffic balancing device searches the routing table by using the third hash value and the first destination address to obtain an identifier of the first egress port, where the first egress port and the third egress port are the same egress port; the traffic balancing apparatus determines the third egress port based on the identity of the first egress port.
In a possible design, when the second control packet reaches the destination host before the first control packet, and a path identifier carried by the third control packet is the same as the second path identifier, the traffic balancing apparatus determines, according to the routing table, the third path identifier, and the first destination address, that the third egress port includes: the traffic balancing device performs hash operation on the third path identifier which is the same as the second path identifier and at least one unary group included in any data message of the C1 data messages to obtain a third hash value; the traffic balancing device searches the routing table by using the third hash value and the second destination address to obtain an identifier of the second egress port, where the second egress port and the third egress port are the same egress port; the traffic balancing apparatus determines the third egress port based on the identity of the second egress port.
In one possible design, the sending, by the traffic balancing apparatus, the C1 data messages to the destination host through the third egress port includes: the traffic balancing device caches the C1 data messages in a data queue corresponding to the third egress port; when the traffic balancing device stores a control message to be sent, the traffic balancing device sends the C1 data messages read from the data queue to the destination host through the third output port after sending a control message.
In one possible design, the sending, by the traffic balancing apparatus, the C1 data messages to the destination host through the third egress port includes: the traffic balancing device caches the C1 data messages in a data queue corresponding to the third egress port; when the traffic balancing device does not store the control message to be sent, the traffic balancing device sends the C1 data messages read from the data queue to the destination host through the third output port, and the traffic balancing device does not send a control message before sending the C1 data messages.
In one possible design, the first path is identified as a first source port number and the second path is identified as a second source port number. Or the first path mark is a first TTL (time to live) and the second path mark is a second TTL. Or the first path is identified as a first destination MAC address, and the second path is identified as a second destination MAC address.
In a second aspect, a traffic balancing apparatus is provided, where the apparatus includes a module for implementing the traffic balancing method according to the first aspect or any possible design of the first aspect.
In a third aspect, a computer-readable storage medium is provided, which comprises instructions that, when executed on a computer, cause the computer to perform the traffic balancing method according to the first aspect or any one of the possible designs of the first aspect.
In a fourth aspect, there is provided a computer program product comprising instructions which, when run on a computer, cause the computer to perform the traffic balancing method of the first aspect or any one of the possible designs of the first aspect.
In a fifth aspect, a traffic balancing apparatus is provided, which includes: a processor, a memory, a bus, and a communication interface; the memory is configured to store computer-executable instructions, the processor is connected to the memory through the bus, and when the traffic balancing apparatus operates, the processor executes the computer-executable instructions stored in the memory, so that the traffic balancing apparatus executes the traffic balancing method according to any one of the above first aspect and the possible designs of the first aspect.
Drawings
In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings used in the description of the embodiments will be briefly described below.
Fig. 1 is a schematic view of a scenario provided in an embodiment of the present application.
Fig. 2 is a schematic flow chart of a traffic balancing method according to an embodiment of the present application.
Fig. 3 is a scene schematic diagram provided in the second embodiment of the present application.
Fig. 4 is a schematic flow chart of a traffic balancing method according to a second embodiment of the present application.
Fig. 5 is a scene schematic diagram provided in the third embodiment of the present application.
Fig. 6 is a schematic structural diagram of a traffic balancing apparatus according to an embodiment of the present application.
Fig. 7 is a schematic structural diagram of another flow equalization apparatus according to an embodiment of the present application.
Detailed Description
Embodiments of the present invention will be described below with reference to the accompanying drawings.
Example one
Fig. 1 is a schematic view of a scenario provided in an embodiment of the present application. In the scenario provided in the first embodiment of the present application, S1 denotes a source host serving as a sending end. S2 denotes the destination host as the receiving end. The source host and the destination host can be servers in a data center network, hosts in a home network or other network devices capable of generating control messages. R1 denotes a first forwarding device. R2 denotes a second forwarding device. R3 denotes a third forwarding device. R4 denotes a fourth forwarding device. The forwarding device may be a device such as a switch or a router having message forwarding capability. The physical link (first physical link) between S1 and S2 includes a first path and a second path. The first path and the second path have the same length. The first path comprises a link1 between S1 and R1, a link2 between R1 and R2, a link3 between R2 and R4, and a link4 between R4 and S2. The second path comprises a link1 between S1 and R1, a link5 between R1 and R3, a link6 between R3 and R4, and a link4 between R4 and S2. The port of link1 at S1 requires the transmission of a first data queue and a first control queue. The first data queue is used for storing at least one data message. In the scenario shown in fig. 1, the first data queue includes data packet a1, data packet a2, data packet A3, and data packet a 4. The first control queue is used for storing at least one control message. In the scenario shown in fig. 1, the first control queue includes a control packet a1, a control packet a2, a control packet a3, a control packet a4, and a control packet a 5. The port on R1 for communication with R2 (the egress port of connection link 2) needs to transmit a second data queue as well as a second control queue. The port on R1 for communicating with R2 corresponds to the first token bucket. The second data queue is used for storing data messages from link 1. And the second control queue is used for storing the control message from the link 1. The first token bucket is used for scheduling the control messages in the second control queue. The port on R1 for communication with R3 (the egress port of connection link 5) is used to transmit a third data queue and a third control queue. The port on R1 for communicating with R3 corresponds to a second token bucket. The third data queue is used for storing data messages from link 1. And the third control queue is used for storing the control message from the link 1. The second token bucket is used for scheduling the control messages in the third control queue. The egress port of any of R2, R3, and R4 may also correspond to a respective token bucket. The egress ports of any of the devices R2, R3, and R4 may also be used for transmit data queues and control queues. The functions of the R2, R3, and R4 transmission data queues and control queues can be found in the related description of R1. R4 may send data messages and control messages to S2 through the egress port.
Fig. 2 is a schematic flow chart of a traffic balancing method according to an embodiment of the present application. The method provided by the first embodiment can be applied to the scenario shown in fig. 1. In an embodiment, in the method provided in the first embodiment, the first hop connected to the source host performs a packet (control packet and data packet) splitting operation, for example, R1 in fig. 1 performs a packet splitting operation on the same traffic flow from S1. The first hop in connection with the source host is the next hop in the direction of transport of the proxy traffic flow towards the source host. The packet splitting operation refers to transmitting data packets belonging to the same service flow or control packets corresponding to the same service flow to different links. The following describes a traffic balancing method according to a first embodiment of the present application with reference to fig. 1 and fig. 2.
S201, the source host generates a first control message and a second control message.
For example, the source host generates a first control packet and a second control packet according to a packet header of any data packet included in the service flow. Wherein the header of the first control packet includes: a first source Internet Protocol (IP) address, a first destination IP address, a first source port number, and a first destination port number. The header of the second control packet includes: a second source IP address, a second destination IP address, a second source port number, and a second destination port number. The first control packet and the second control packet correspond to the same service flow. The first source port number and the second source port number are not the same. And the packet length of the first control message is the same as that of the second control message. Taking the first control packet as an example, the packet length of the first control packet may be set to be the sum of the rounded-down quotient of M and N and 1. The M is a Path Maximum Transmission Unit (PMTU). And N is the bandwidth ratio between the data channel and the control channel. The method for obtaining the packet length of the first control packet by the source host is not limited to the above manner. The source host may further set a packet length of the first control packet to a preset value, and the source host may determine N according to the packet length of the first control packet and M.
In an implementation manner, in consideration of a possibility of packet loss in a network, the number of control packets generated by the source host corresponding to the arbitrary data packet is L1, the number of data packets with a data volume M included in the service flow is L2, the L1 is greater than or equal to the L2, and the L2 is an integer greater than or equal to 1. In another mode, the source host may generate L2 control packets corresponding to the arbitrary data packet, and if packet loss is detected in the network, L3 control packets corresponding to the arbitrary data packet may be generated according to the number of packet loss L3 obtained by the detection, where L3 is an integer greater than or equal to 1. The service flow includes at least two data packets with data volume M, for example, the service flow includes a first data packet and a second data packet. The first data packet data volume is M. The data volume of the second data packet is M.
For example, the data channel is used for transmitting data packets. The control channel is used for transmitting control messages. The data lanes and the control lanes may be carried on one or more physical links. The embodiments of the present application take the case where the data channel and the control channel are carried in one physical link as an example. And the physical link for bearing the data channel and the control channel is a physical link between the source host and the destination host. In the scenario shown in fig. 1, the first path between S1 and S2 carries the data channel and the control channel, and the second path between S1 and S2 also carries the data channel and the control channel. The data channel and the control channel are mainly implemented in the following three ways: the first way is logic partitioning, that is, the data channel is embodied as a data queue at an output port of a device, the control channel is embodied as a control queue at an output port of the device, and the device is the source host, the destination host, or an intermediate node (an intermediate node that does not perform packet offloading or an intermediate node that performs packet offloading). The intermediate node may be a forwarding device in the network, such as a router, switch or gateway. The second way is physical partitioning, i.e. the data channel and the control channel may be two Time Division Multiplexing (TDM) channels at the egress port of the device. The third mode is logic partitioning, that is, the data channel is embodied as a data queue on an output port of the device, and under the condition that the source host does not cache the generated control packet, the output port of the source host may not include the control queue, which is beneficial to reducing memory overhead on the source host. The condition that the source host does not cache the generated control packet refers to that the source host generates one control packet and then performs a sending action.
In the scenario shown in fig. 1, the first data queue includes at least one data packet. In an initial phase, the at least one data packet comprises: data packet A1, data packet A2, data packet A3, and data packet A4. The data packet a1 is the data packet at the head of the queue in the first data queue. The data packet a1 is the first data packet. The data packet a2 is the second data packet. The first control queue includes at least one control packet. In the initial stage, the at least one control packet includes a control packet a1, a control packet a2, a control packet a3, a control packet a4, and a control packet a 5. The control message a1 is the first control message. The control message a2 is the second control message. The control message a1 is the control message at the head of the first control queue. The initial stage is the stage of S1 where no data message and no control message are sent. The data packet a1, the data packet a2, the data packet A3, and the data packet a4 belong to the same traffic flow. S1 may obtain the source IP address, the destination IP address, and the destination port number included in the header of the control packet according to any data packet. The packet length of any control message is Lc, and the packet length of any data message is Ld. The calculation formula for controlling the bandwidth allocation proportion of the channel can be expressed as
Figure BDA0001852743880000061
The calculation formula of the data channel bandwidth allocation proportion can be expressed as
Figure BDA0001852743880000062
In the above formula, X1 indicates that the source host sends X1 data packets to the destination host every time it receives a control packet from the destination host. The value of X1 is an integer greater than or equal to 1. In the case where Lc is 84 bytes, Ld is 1596 bytes, and the value of X1 is 1, S1 can be obtained from the above calculation formula: the ratio of the bandwidth of the data channel to the bandwidth of the first path (or the second path) is 1596/(84+1596) ═ 95%, and the ratio of the bandwidth of the control channel to the bandwidth of the first path (or the second path) is 84/(84+1596) ═ 5%. Based on the above ratio of the bandwidths, taking the first path with a bandwidth of 10 Gigabits per second (Gbps) as an example, the bandwidth of the data channel is 9.5Gbps, and the bandwidth of the control channel is 500 Megabits per second (Mbps). In the embodiment of the present application, the packet length and the data size express equivalent meanings, for example, a packet length of one message is 84 bytes, which means that the data size occupied by the message is 84 bytes.
In an implementation manner, the source host may add an identifier to the generated control packet, where the identifier is used to identify the packet where the identifier is located as the control packet. The intermediate node and the target host which receive any control message can distinguish the control message from the data message according to the identification. For example, in an IP network, the identifier may be implemented by a certain bit or several bits in a type of service (TOS) field or a Differentiated Services Code Point (DSCP) field in a header of any control packet. In another implementation manner, the intermediate node and the destination host may distinguish the control packet from the data packet by the packet length, or distinguish the control packet from the data packet according to a load (payload) included in the packet, which is not illustrated herein one by one.
S202, the source host sends the first control message and the second control message to a destination host through a control channel.
For example, the source host may send the first control packet and the second control packet sequentially according to an order of control packets included in a control queue of the source host. In the scenario shown in fig. 1, S1 may send control message a1 and control message a2 through the port of the connection link 1. The control message a1 and the control message a2 are sent to R1 through link 1. S1, in the stage of sending the control message a1, the first data queue includes: the data packet A1, the data packet A2, the data packet A3, and the data packet A4. After the control message a1 and the control message a2 are sent, the control message a3 is located at the head of the first control queue.
S203, the first intermediate node caches the received first control packet and the second control packet.
For example, the first control packet and the second control packet include the same destination IP address and different source port numbers, that is, the first destination IP address is the same as the second destination IP address, and the first source port number is different from the second source port number. And the first intermediate node performs hash operation on a first source IP address, the first destination IP address, the first source port number and a first destination port number included in a message header of the first control message to obtain a first hash value. And the first intermediate node searches a routing table by using the first destination IP address and the first hash value to obtain the identifier of the first output port. And the first intermediate node determines the first output port according to the identifier of the first output port. The routing table comprises a corresponding relation between the first destination IP address, the first hash value and the identifier of the first exit port. In one implementation of the routing table, the routing table includes an identification of the first destination IP address and its corresponding set of egress ports. The identifier of the group of egress ports corresponding to the first destination IP address comprises an identifier of the first egress port. The first hash value may be a number of an entry, where the entry identified by the number includes the first destination IP address and the identifier of the first egress port. And the first intermediate node performs the hash operation on a second source IP address, a second destination IP address, a second source port number and a second destination port number which are included in a message header of the second control message to obtain a second hash value. The second hash value is different from the first hash value. And the first intermediate node searches the routing table by using the destination IP address and the second hash value to obtain the identifier of the second output port. And the first intermediate node determines the second output port according to the identifier of the second output port. The routing table further includes a corresponding relationship between the first destination IP address, the second hash value, and the identifier of the second egress port. And the first intermediate node buffers the first control message in a control queue of the first output port. And the first intermediate node buffers the second control message in a control queue of the second output port. In the scenario shown in fig. 1, R1 performs HASH operations on the received control packet a1 and the received control packet a2, respectively, to obtain HASH1 (first HASH value) and HASH2 (second HASH value). R1 determines an egress port (first egress port) of the connection link2 by looking up a routing table using the HASH1 and the destination IP address included in the control message a 1. The egress port of connection link2 corresponds to the second control queue and the first token bucket. R1 determines an egress port (second egress port) of the connection link5 by looking up a routing table using the HASH2 and the destination IP address included in the control message a 2. There is a third control queue and a second token bucket corresponding to the egress port of connection link 5. R1 buffers the control packet a1 in a second control queue and buffers the control packet a2 in a third control queue.
S204, the first intermediate node sends the first control message and the second control message.
For example, the first control packet and the second control packet are cached in the first intermediate node, and the first control packet is located at the head of the control queue of the first egress port, and the second control packet is located at the head of the control queue of the second egress port. The token bucket of the first output port can send the first control message according to preset time length. And the token bucket of the second output port can send the first control message according to the preset time length. The preset duration is the duration between the moment of sending the first control message and the moment of sending the control message cached behind the first control message. The preset duration is a quotient of a Committed Burst Size (CBS) and a Committed Information Rate (CIR). The CBS value may be a packet length of the first control packet or the second control packet. The value of the CIR may be a bandwidth occupied by the control channel. When the CBS is 84 bytes and the CIR has a value of 500Mbps, the preset time period is 1.344 milliseconds (μ s). Specifically, the preset time period may be a value obtained by dividing 84 bytes by 8 by 500 Mbps. In the scenario shown in fig. 1, the second token bucket of R1 reads one control packet from the third control queue every 1.344 μ s, and outputs the read control packet. And the first token bucket of the R1 reads a control message from the second control queue every 1.344 mu s and outputs the read control message.
For example, the first intermediate node sends the first control packet to a second intermediate node, and sends the second control packet to a third intermediate node. The second intermediate node is located on a first path between the first intermediate node and the destination host, such as R2 in fig. 1. The third intermediate node is located on a second path between the first intermediate node and the destination host, such as R3 in fig. 1. In one implementation, the second intermediate node and the third intermediate node may send the received control packet to the destination host according to a normal routing method. In another implementation manner, the second intermediate node and the third intermediate node do not need to perform the steps of determining an output port by using hash operation and table lookup using a hash operation result, but use a method of periodically sending read control packets by using a token bucket to send the received control packets to the destination host.
And S205, the destination host sends the obtained third control message and the fourth control message to the source host.
In an implementation manner, a time delay of a first path between the source host and the destination host is greater than a time delay of a second path between the source host and the destination host, and a difference between the time delay of the first path and the time delay of the second path is greater than a first time length, where the first time length is a time length between a time when the source host sends the first control packet and a time when the source host sends the second control packet. And based on the time delay reason, the second control message reaches the target host before the first control message. And the target host acquires a third control message according to the second control message. And the destination IP address included in the third control message is a second source IP address. And the source IP address included in the third control message is a second destination IP address. The third control packet includes a source port number that is a second destination port number. The third control packet includes a destination port number that is a second source port number. In the scenario shown in fig. 1, the control packet a2 sent by R3 is sent to S2 via link6- > R4- > link 4. S2, after receiving the control packet a2, exchanges the destination IP address and the source IP address of the control packet a2, and exchanges the source port number and the destination port number of the control packet a2 to obtain a control packet a 1'. The destination IP address of the control message a 1' is the source IP address of the control message a 2. The source IP address of the control message a 1' is the destination IP address of the control message a 2. The source port number of the control packet a 1' is the destination port number of the control packet a 2. The destination port number of the control packet a 1' is the source port number of the control packet a 2. In this implementation manner, the destination host may further adopt a method of acquiring the third control packet, and acquire the fourth control packet according to the first control packet. The value of the path identifier included in the fourth control packet is the same as the value of the path identifier included in the first control packet.
In another implementation, a latency of a first path between the source host and the destination host is less than or equal to a latency of a second path between the source host and the destination host. Based on the time delay and the reason of the control message sending interval time, the first control message reaches the target host before the second control message. And the target host acquires a third control message according to the first control message. The destination IP address included in the third control packet is the first source IP address. The source IP address included in the third control packet is the first destination IP address. The third control packet includes a source port number that is a first destination port number. The third control packet includes a destination port number that is the first source port number. In the scenario shown in fig. 1, the control packet a1 sent by R2 is sent to S2 via link3- > R4- > link 4. S2, after receiving the control packet a1, exchanges the destination IP address and the source IP address of the control packet a1, and exchanges the source port number and the destination port number of the control packet a1 to obtain a control packet a 1'. The destination IP address of the control message a 1' is the source IP address of the control message a 1. The source IP address of the control message a 1' is the destination IP address of the control message a 1. The source port number of the control packet a 1' is the destination port number of the control packet a 1. The destination port number of the control packet a 1' is the source port number of the control packet a 1. In this implementation manner, the destination host may further adopt a method of acquiring the third control packet, and acquire the fourth control packet according to the second control packet. The value of the path identifier included in the fourth control packet is the same as the value of the path identifier included in the second control packet.
For example, the destination host may send the third control packet and the fourth control packet using a third path. The third path is a path through which the third control packet passes from the destination host to the source host. The third path may be different from the first path and the second path.
S206, the source host sends X1 data messages to the destination host through a data channel according to the third control message.
For example, the X1 data packets are X1 data packets with the head of a queue as the starting position in the traffic flow. And the source host adds the path identifier in the third control message to the X1 data messages, so that the X1 data messages can be transmitted along a specific path, and the orderliness of the data messages is ensured under the condition of realizing load sharing. The path identifier in this embodiment is a destination port number in a header of a point control packet sent by a destination host. When the X1 is 1, the source host sends a first data packet according to the third control packet, where a source port number included in the first data packet is a destination port number included in the third control packet. The first data packet is a data packet with a data volume M in the service flow in S201. The first data message is located at the head of the data queue of the source host. When X1 is 2, the source host sends the first data packet and the second data packet according to the third control packet, where a source port number included in the first data packet and a source port number included in the second data packet are both destination port numbers included in the third control packet. When X1 is greater than 2, the processing method of the source host for the data packet in the data queue thereof may refer to the processing method adopted by the source host when X1 is 2.
In the scenario shown in fig. 1, in an implementation manner, the S1 may determine that the control packet a1 'corresponds to a data packet in the traffic flow by that the packet header of the control packet a 1' and the packet header of the data packet a1 include the same parameter set. In another mode, after the S1 exchanges the source IP address and the destination IP address of the control packet a1 ', when the source IP address of the control packet a 1' is the same as the source IP address of the data packet in the traffic flow and the destination IP address of the control packet a1 'is the same as the destination IP address of the data packet in the traffic flow, S1 determines that the control packet a 1' corresponds to the data packet in the traffic flow. If the value of X1 is 1, S1 sends the data packet a1 through a port (egress port) connected to link 1. The data packet A1 includes the same path identification as the control packet a 1'. And if the value of the X1 is 2, S1 sends the data message A1 and the data message A2 through an output port of the connection link 1. If the value of X1 is 3, S1 sends the data packet a1, the data packet a2, and the data packet A3 through the egress port of the connection link 1. After the data message transmitted through link1 reaches R1, the R1 performs message distribution operation.
And S207, the source host sends X2 data messages to the destination host through a data channel according to the fourth control message.
For example, the value of X2 is the same as the value of X1. The X2 data packets are data packets following the X1 data packets in the traffic flow. And the source host adds the path identifier in the fourth control message to the X2 data messages. The path identifier in this embodiment is a destination port number in a header of a fourth control packet sent by the destination host. When the X2 is 1, the source host sends a second data packet according to the fourth control packet, where a source port number included in the second data packet is a destination port number included in the fourth control packet. The second data packet is a data packet with a data volume M in the service flow in S201. The second data packet is located in the data queue of the source host after the first data packet. When X2 is 2, the source host sends a third data packet and a fourth data packet according to the fourth control packet, where a source port number included in the third data packet and a source port number included in the fourth data packet are both destination port numbers included in the fourth control packet. When X2 is greater than 2, the processing method of the source host for the data packet in the data queue thereof may refer to the processing method adopted by the source host when X2 is 2.
In the scenario shown in fig. 1, in one implementation, S1 may determine that the control packet a2 'corresponds to a data packet in the traffic flow by the header of a control packet a 2' (not shown in fig. 1) and the header of the data packet a2 including the same parameter set. In another mode, after the S1 exchanges the source IP address and the destination IP address of the control packet a2 ', when the source IP address of the control packet a 2' is the same as the source IP address of the data packet in the traffic flow and the destination IP address of the control packet a2 'is the same as the destination IP address of the data packet in the traffic flow, S1 determines that the control packet a 2' corresponds to the data packet in the traffic flow. If the value of X2 is 1, S1 sends the data packet a2 through the port (egress port) connected to link 1. The data packet A2 includes the same path identification as the control packet a 2'. And if the value of the X2 is 2, S1 sends the data message A3 and the data message A4 through an output port of the connection link 1. After the data message transmitted through link1 reaches R1, the R1 performs message distribution operation.
S208, the first intermediate node caches the received X1 data packets and the X2 data packets.
In one implementation, when the value of the path identifier included in the third control packet is the same as the value of the path identifier included in the second control packet, and the value of the path identifier included in the fourth control packet is the same as the value of the path identifier included in the first control packet, the value of the path identifier included in each of the X1 data packets is the same as the value of the path identifier included in the second control packet, and the value of the path identifier included in each of the X2 data packets is the same as the value of the path identifier included in the first control packet. The first intermediate node performs hash operation on a source port number, a destination port number, a source IP address and a destination IP address included in any one of the received X1 data messages to obtain a second hash value. And the first intermediate node acquires the identifier of the second egress port according to the second hash value, the routing table and the destination IP address included in the X1 data packets, and further determines that the second egress port can be used for sending the X1 data packets. And the first intermediate node buffers the X1 data messages in a data queue corresponding to the second egress port. In the scenario shown in fig. 1, R1 buffers X1 data packets in a third data queue. When X1 is 1, the third data queue buffers the data packet a1, as shown by the dashed line in the third data queue of fig. 1. The first intermediate node performs hash operation on a source port number, a destination port number, a source IP address and a destination IP address included in any one of the received X2 data messages to obtain a first hash value. And the first intermediate node acquires the identifier of the first egress port according to the first hash value, the routing table and the destination IP address included in the X2 data packets, and further determines that the first egress port can be used for sending the X2 data packets. And the first intermediate node buffers the X2 data messages in a data queue corresponding to the first egress port. In the scenario shown in fig. 1, R1 buffers X2 data packets in the second data queue. When X2 is 1, the second data queue buffers the data packet a2, as shown by the dashed line in the second data queue of fig. 1.
In another implementation manner, when the value of the path identifier included in the third control packet is the same as the value of the path identifier included in the first control packet, and the value of the path identifier included in the fourth control packet is the same as the value of the path identifier included in the second control packet, the value of the path identifier included in each data packet of the X1 data packets is the same as the value of the path identifier included in the first control packet, and the value of the path identifier included in each data packet of the X2 data packets is the same as the value of the path identifier included in the second control packet. The method for caching the X1 data packets and the X2 data packets by the intermediate node may refer to the above implementation manner.
For example, the first intermediate node may determine an egress port for the X1 data packets and the X2 data packets by determining an egress port for the first control packet and the second control packet. Thus, the X1 data packets and the X2 data packets may reach the destination host through different paths, so as to implement load sharing.
S209, the first intermediate node sends the X1 data packets and the X2 data packets to the destination node.
For example, after a control packet buffered in the control queue of the first egress port is sent or the control queue of the first egress port is in an empty state, a data packet buffered in the data queue of the first egress port may be sent. After a control message buffered by the control queue of the second egress port is sent or the control queue of the second egress port is in an empty state, the data message buffered by the data queue of the second egress port may be sent. The X1 data packets arrive at the first intermediate node before the X2 data packets, and the first intermediate node preferentially sends the X1 data packets when no abnormal sending (the buffered data packets cannot be sent normally) occurs on the data queue of the first intermediate node. The first intermediate node sends the X1 data messages through one of the first egress port and the second egress port according to the egress port determined in S208, and sends the X2 data messages through the other of the first egress port and the second egress port.
The second intermediate node and the third intermediate node may transmit the received data packets (X1 data packets or X2 data packets) by using a method of transmitting control packets. The X1 data packets and the X2 data packets may travel different paths to reach the destination host.
Based on the method provided in the first embodiment, in an implementation manner, the path identifier may be Time To Live (TTL) in a header of the control packet, the parameter for performing the hash operation by the first intermediate node further includes the TTL, and the data packet sent by the source host further includes the TTL carried in the control packet corresponding to the data packet. For example, each data packet of the X1 data packets further includes TTL carried by the third control packet. Each data packet in the X2 data packets further includes TTL carried in the fourth control packet. In another implementation, the path identifier may be a Media Access Control (MAC) address in a header of the Control packet, and the parameter for performing the hash operation by the first intermediate node further includes the destination MAC address, and the data packet sent by the source host further includes the destination MAC address carried in the Control packet corresponding to the data packet. For example, each of the X1 data messages further includes a source MAC address carried by the third control message (a destination MAC address carried by the first control message or the second control message). The X2 data packets further include a source MAC address (a destination MAC address carried in the second control packet or the first control packet) carried in the fourth control packet.
Example two
Fig. 3 is a scene schematic diagram provided in the second embodiment of the present application. In the scenario provided in embodiment two of the present application, S1 denotes a source host serving as a sending end. S2 denotes the destination host as the receiving end. Both the source host and the destination host may be servers in a data center network. R1 denotes a first forwarding device. R2 denotes a second forwarding device. R3 denotes a third forwarding device. The physical link between S1 and S2 includes a first path and a second path. The first path comprises a link1 between S1 and R1, a link2 between R1 and R3, and a link3 between R3 and S2. The second path includes a link4 between S1 and R2, a link5 between R2 and R3, and a link3 between R3 and S2. The first egress port of S1 corresponds to the first data queue, the first control queue, and the first token bucket. The first data queue is used for caching data messages which need to be sent through the first output port. The first control queue is used for buffering a control message which needs to be sent through the first output port. The second egress port of S1 corresponds to a second data queue, a second control queue, and a second token bucket. The second data queue is used for buffering data messages which need to be sent through the second output port. The second control queue is used for buffering a control message which needs to be sent through the second output port. The egress port of R1 corresponds to a third data queue, a third control queue, and a third token bucket. The third data queue is used for storing data messages from link 1. And the third control queue is used for storing the control message from the link 1. The third token bucket is used for scheduling the control messages in the third control queue. The egress ports of either of R2 and R3 correspond to data queues, control queues, and token buckets. The functions of the data queue, the control queue and the token bucket corresponding to the egress port of any one of the devices R2 and R3 can be referred to in the related description of R1.
Fig. 4 is a schematic flow chart of a traffic balancing method according to a second embodiment of the present application. The method provided by the second embodiment can be applied to the scenario shown in fig. 3. In the method provided in the second embodiment, the source host performs a packet (control packet and data packet) splitting operation, for example, at S1 in fig. 3, the source host performs a packet splitting operation on the same service flow. The packet splitting operation refers to transmitting data packets belonging to the same service flow or control packets corresponding to the same service flow to different links. Next, a traffic balancing method provided in the second embodiment of the present application is described with reference to fig. 3 and fig. 4.
S401, the source host caches the generated first control message and second control message.
For example, the source host of the second embodiment may generate the first control packet and the second control packet by using the method of S201 in the first embodiment. The path identifier included in the first control packet is different from the path identifier included in the second control packet. Taking the path identifier as the source port number as an example, the source port number included in the first control packet is different from the source port number included in the second control packet.
For example, the source host may employ the method of caching the control packet at the first intermediate node in the first embodiment to cache the first control packet and the second control packet. Specifically, the source host may perform hash operation on a source IP address, a destination IP address, a source port number, and a destination port number included in the first control packet, to obtain a first hash value. And the source host acquires the identifier of the first output port according to the first hash value, the routing table and the destination IP address included in the first control message, and further determines that the first output port can be used for sending the first control message. The source host buffers the first control packet in a control queue of the first egress port, such as the first control queue in fig. 3. The routing table in the second embodiment and the routing table in the first embodiment include the same parameters. The source host may perform hash operation on the source IP address, the destination IP address, the source port number, and the destination port number included in the second control packet, to obtain a second hash value. And the source host acquires the identifier of the second output port according to the second hash value, the routing table and the destination IP address included in the second control message, and further determines that the second output port can be used for sending the second control message. The source host buffers the second control packet in a control queue of the second egress port, such as the second control queue in fig. 3.
S402, the source host sends the first control message and the second control message to a destination host.
For example, the source host sends the cached control packet according to a preset duration. The preset time duration can be referred to as the preset time duration in the first embodiment. And sending the first control message cached in the first control queue by a first token bucket on a first output port of the source host based on the preset time length. And the first control message is sent to the target host along the first path through the first output port. And sending a second control message cached in the second control queue by a second token bucket on a second output port of the source host based on the preset time length. And the second control message is sent to the target host along the second path through the second output port. In the scenario shown in fig. 3, the first token bucket at the first egress port of S1 sends a control packet a1 (first control packet) to R1 through link1 based on the preset duration. Based on the preset time length, the second token bucket at the second output port of S1 sends a control packet a2 (second control packet) to R2 through link 4.
In one implementation, the egress port of the first intermediate node (R1 in fig. 3) and the egress port of the second intermediate node (R2 in fig. 3) are both corresponding to a data queue, a control queue and a token bucket, and the third intermediate node (R3 in fig. 3) adopts a first-in-first-out forwarding principle. The first control packet is sent to the first intermediate node (R1 in fig. 3) through the first egress port. The first intermediate node may buffer the received first control packet to a control queue (a second control queue in fig. 3) of its egress port. And the first intermediate node realizes that the sending interval time of two adjacent control messages cached in the control queue is preset time length by using the token bucket corresponding to the output port. The second control packet is sent to a second intermediate node (R2 in fig. 3) through the second egress port. The second intermediate node may buffer the received second control packet to a control queue (not shown in fig. 3) of its egress port. And the second intermediate node realizes that the sending interval time of two adjacent control messages cached in the control queue is preset time length by using the token bucket corresponding to the output port. After the second control packet sent by the second intermediate node reaches the third intermediate node (R3 in fig. 3), the third intermediate node (R3 in fig. 3) buffers the first control packet sent by the first intermediate node and the second control packet sent by the second intermediate node. The third intermediate node (R3 in fig. 3) uses a first-in first-out forwarding principle, for example, the first control packet arrives at the third intermediate node before the second control packet, and the third intermediate node preferentially sends the first control packet to the destination host (S2 in fig. 3). The first control packet arrives at the third intermediate node later than the second control packet, and the third intermediate node preferentially sends the second control packet to the destination host (S2 in fig. 3).
In another implementation, the first intermediate node (R1 in fig. 3) and the second intermediate node (R2 in fig. 3) adopt a first-in first-out forwarding principle, and the egress port of the third intermediate node (R3 in fig. 3) corresponds to a data queue, a control queue and a token bucket. The method for forwarding the first control packet by the first intermediate node may refer to a method adopted by the third intermediate node in the former implementation manner. The method for forwarding the second control packet by the second intermediate node may refer to a method adopted by the third intermediate node in the former implementation manner. The third intermediate node caches a first control packet from the first intermediate node and a second control packet from the second intermediate node. And the first control message and the second control message are buffered in a control queue of the third intermediate node according to the sequence of reaching the third intermediate node. And the third intermediate node realizes that the time length between the sending moments of the first control message and the second control message is preset time length by using the token bucket corresponding to the output port of the third intermediate node.
And S403, the destination host sends the obtained third control message and the fourth control message to the source host.
For example, the method for generating the third control packet and the fourth control packet by the destination host can be seen from the corresponding contents in the first embodiment. The method for sending the third control packet and the fourth control packet to the source host by the destination host may refer to corresponding contents in the first embodiment. The third control message is sent prior to the fourth control message.
S405, the source host obtains X1 data messages according to the third control message.
For example, X1 is an integer greater than or equal to 1. The X1 data messages belong to the same traffic flow. The X1 datagrams include the same path identification. The method for the source host to obtain X1 data packets can be seen in the method for the source host to obtain X1 data packets in the first embodiment. A value of a path identifier included in each of the X1 data messages is the same as a value of a path identifier included in the third control message, for example, a source port number included in each of the X1 data messages is the same as a destination port number included in the third control message.
S406, the source host obtains X2 data messages according to the fourth control message.
For example, X2 is an integer greater than or equal to 1. The value of X2 may be the same as the value of X1. The X2 data messages and the X1 data messages belong to the same service flow. The X2 datagrams include the same path identification. The method for the source host to obtain X2 data packets can be seen in the method for the source host to obtain X2 data packets in the first embodiment. A value of a path identifier included in each of the X2 data packets is the same as a value of a path identifier included in the fourth control packet, for example, a source port number included in each of the X2 data packets is the same as a destination port number included in the fourth control packet.
S407, the source host sends the X1 data packets and the X2 data packets to the destination host.
For example, the method for the source host to send the X1 data packets may refer to the method for the first intermediate node to send the X1 data packets in embodiment one. The method for the source host to send the X2 data packets may refer to a method for the first intermediate node to send the X2 data packets in the embodiment. In the scenario shown in fig. 3, the values of X1 and X2 are both 1. S1 obtains a first hash value based on the hash operation of the source port number and the at least one tuple (one or more of the destination port number, the source IP address, and the destination IP address) of the data packet a 1. S1, according to the first hash value, the routing table and the destination IP address of the data packet A1, obtains the identifier of the first egress port, and further determines that the first egress port can be used for sending the data packet A1. S1, the data message A1 is buffered in a first data queue corresponding to the first output port. S1 sends data message A1 to R1 through link1 after the first token bucket sends a control message or the first control queue is empty. S1 obtains a second hash value according to the hash operation result of the source port number and the at least one tuple (one or more of the destination port number, the source IP address, and the destination IP address) of the data packet a 2. S1, according to the second hash value, the routing table and the destination IP address of the data packet A2, obtains the identifier of the second egress port, and further determines that the second egress port can be used for sending the data packet A2. S1, buffering the data message A2 in a second data queue corresponding to the second egress port. S1 sends data message A2 to R2 through link4 after the second token bucket sends a control message or the second control queue is empty. The R2, R1, and R3 may transmit the received data packet by using the method used by the R2 in the scenario shown in fig. 1. The data packet A1 is sent S2 before the data packet A2. Thus, message disorder is avoided under the condition of realizing load sharing.
EXAMPLE III
Fig. 5 is a scene schematic diagram provided in the third embodiment of the present application. In the scenario provided in the third embodiment of the present application, S1 denotes a source host serving as a sending end. S2 denotes the destination host as the receiving end. Both the source host and the destination host may be servers in a data center network. R1, R2, R3, R4, R5 and R6 are all forwarding devices in the network. The physical link between S1 and S2 includes a first path, a second path, a third path, a fourth path, a fifth path, and a sixth path. The first path may be represented as S1- > R2- > R3- > R4- > S2. The second path may be represented as S1- > R2- > R3- > R6- > S2. The third pathway can be represented as S1- > R2- > R3- > R1- > R5- > R6- > S2. The fourth path may be represented as S1- > R1- > R5- > R6- > S2. The fifth path may be represented as S1- > R1- > R3- > R4- > S2. The sixth path may be represented as S1- > R1- > R3- > R6- > S2. The first egress port of S1 corresponds to the first data queue, the first control queue, and the first token bucket. The first data queue is used for caching data messages which need to be sent through the first output port. The first control queue is used for buffering a control message which needs to be sent through the first output port. The first token bucket is used for periodically scheduling the control messages buffered in the first control queue. The second egress port of S1 corresponds to a second data queue, a second control queue, and a second token bucket. The second data queue is used for buffering data messages which need to be sent through the second output port. The second control queue is used for buffering a control message which needs to be sent through the second output port. The second token bucket is used for periodically scheduling the control messages buffered in the second control queue. The first egress port of R1 corresponds to a third data queue, a third control queue, and a third token bucket. The third data queue is used for storing the data message from S1. The third control queue is used for storing the control message from S1. The third token bucket is configured to periodically schedule control packets in the third control queue. The second egress port of R1 corresponds to a fourth data queue, a fourth control queue, and a fourth token bucket. The fourth data queue is used for storing the data message from S1. The fourth control queue is used for storing the control message from S1. The fourth token bucket is configured to periodically schedule control packets in the fourth control queue. The first egress port of R3 corresponds to a fifth data queue, a fifth control queue, and a fifth token bucket. The third data queue is used for storing data messages from R2 or R1. And the fifth control queue is used for storing control messages from R2 or R1. The fifth token bucket is configured to periodically schedule control packets in the fifth control queue. The second egress port of R3 corresponds to a sixth data queue, a sixth control queue, and a sixth token bucket. The sixth data queue is used for storing data messages from R2 or R1. And the sixth control queue is used for storing control messages from R2 or R1. The sixth token bucket is configured to periodically schedule control packets in the sixth control queue. The egress ports of R2, R4, R5, and R6 may correspond to a data queue for buffering data messages and a control queue for buffering control messages, respectively. Optionally, the egress ports of R2, R4, R5, and R6 may respectively correspond to token buckets for periodically reading and sending control packets in the control queue.
Next, each device in the scenario provided in the third embodiment is described by taking the transmission methods of the control message a1 and the control message a2 as examples. In the third embodiment, at S1, the data packet (the data packet including the path identifier of the control packet a 1) triggered by the control packet a1 arrives at S2 along the path traversed by the control packet a1 in the scenario provided in the third embodiment. At S1, the data packet triggered to be sent by the control packet a2 (the data packet including the path identifier of the control packet a 2) arrives at S2 along the path traversed by the control packet a2 in the scenario provided in the third embodiment. The forwarding method of the data packet can refer to the corresponding contents in the first embodiment and the second embodiment.
In the scenario shown in fig. 5, S1 may generate the control packet a1 and the control packet a2 by using the method in the first embodiment or the second embodiment. Taking the path identifier as the source port number as an example, S1 may perform hash calculation on the source port number, the destination port number, the source IP address, and the destination IP address included in the control packet a1, to obtain a first hash value. S1 may perform hash calculation on the source port number, the destination port number, the source IP address, and the destination IP address included in the control packet a2, to obtain a second hash value. S1 obtains the identifier of the first egress port according to the routing table, the first hash value, and the destination IP address included in the control packet a1, and further determines that the egress port that sends the control packet a1 is the first egress port of S1. The meaning of the routing table can be seen in the related contents of the first embodiment or the second embodiment. S1 buffers the control message a1 in the first control queue. S1 obtains the identifier of the second egress port according to the routing table, the second hash value, and the destination IP address included in the control packet a2, and further determines that the egress port that sends the control packet a2 is the second egress port of S1. S1 buffers the control message a2 in the second control queue. And the first token bucket reads the control message a1 buffered in the first control queue according to a preset duration and sends the control message a 1. The control message a1 is sent to R1 via the first egress port of S1. And the second token bucket reads the control message a2 cached in the second control queue according to the preset time length and sends the control message a 2. The control message a2 arrives at R3 via the second egress port of S1 and forwarding of R2. R1 may be calculated to obtain the first hash value using the method used in S1. R1 obtains the identifier of the first egress port according to the routing table, the first hash value, and the destination IP address included in the control packet a1, and further determines that the egress port that sends the control packet a1 is the first egress port of S1. The control message a1 arrives at R3 via the first egress port of S1. R3 may obtain the first hash value and the second hash value by calculation using the method used in S1. R3 obtains the identifier of the first egress port according to the routing table, the first hash value and the destination IP address included in the control packet a1, and further determines that the egress port sending the control packet a1 is the first egress port of R3. The control message a1 arrives at S2 via the first egress port of R3 and forwarding of R4. And the R3 obtains the identifier of the second egress port according to the routing table, the second hash value and the destination IP address included in the control packet a2, and further determines that the egress port sending the control packet a2 is the second egress port of the R3. The control message a2 arrives at S2 via the second egress port of R3 and forwarding of R6. The control message a1 arrives at S2 before the control message a 2. S2 generates a control packet a 1' according to the control packet a1, the specific method can refer to the corresponding contents in the first embodiment or the second embodiment. S2 sends control message a 1' to S1. S1 the method for sending data message according to the control message a 1' can be seen from the corresponding contents of the second embodiment. The data packet triggered to be sent by the control packet a 1' is forwarded to S2 along the path S1- > R1- > R3- > R4- > S2 in the scenario shown in fig. 5. S2 generates a control packet a 2' according to the control packet a2, the specific method can refer to the corresponding contents in the first embodiment or the second embodiment. S2 sends control message a 2' to S1. S1 the method for sending data message according to the control message a 2' can be seen from the corresponding contents of the second embodiment. The data packet triggered to be sent by the control packet a 2' is forwarded to S2 along the path S1- > R2- > R3- > R6- > S2 in the scenario shown in fig. 5. The methods for processing the received data packets by the R1, R3, R4 and R6 can be referred to as methods for processing control packets by the R1, R3, R4 and R6.
Fig. 6 is a schematic structural diagram of a traffic balancing apparatus according to an embodiment of the present application. The traffic balancing apparatus provided in the embodiments may be disposed in the forwarding device or the source host in any one of the first to third embodiments. The traffic balancing device is arranged on the forwarding equipment or the source host, and the forwarding equipment or the source host comprises the traffic balancing device. The forwarding device or the source host may communicate with the destination host using the traffic balancing means. When the forwarding device comprises the traffic balancing device, the traffic generated by the source host is received by the forwarding device. The forwarding device can forward the traffic of the source host, so that the traffic of the source host reaches the destination host. When the source host includes the traffic balancing apparatus, the source host may generate traffic using the traffic balancing apparatus included in the source host. In addition, the traffic balancing apparatus included in the source host may transmit the generated traffic to the destination host. Referring to fig. 6, the flow equalization apparatus includes: a first obtaining module 601, a first determining module 602, a first sending module 603, a second obtaining module 604, a second determining module 605, a second sending module 606, a third obtaining module 607, a third determining module 608, and a third sending module 609. The first obtaining module 601 is configured to obtain a first control packet, where the first control packet includes a first path identifier and a first destination address. The first determining module 602 is configured to determine a first egress port according to a routing table, the first path identifier, and the first destination address. The first sending module 603 is configured to send the first control packet to a destination host through the first egress port. The second obtaining module 604 is configured to obtain a second control packet, where the second control packet includes a second path identifier and the first destination address. The second determining module 605 is configured to determine a second egress port according to the routing table, the second path identifier, and the first destination address. The second sending module 606 is configured to send the second control packet to the destination host through the second egress port. The third obtaining module 607 is configured to obtain C1 data packets, where each data packet includes a third path identifier and the first destination address, the third path identifier is the same as the first path identifier or the second path identifier, and the C1 is an integer greater than or equal to 1. The third determining module 608 is configured to determine a third egress port according to the routing table, the third path identifier and the first destination address, where the third egress port is the same as the first egress port or the second egress port. The third sending module 609 is configured to send the C1 data packets to the destination host through the third egress port.
In one implementation, the first determining module 602 is configured to: performing hash operation on the first path identifier and at least one tuple included in the first control packet to obtain a first hash value, where the at least one tuple of the first control packet includes one or more of a source address, a destination address, a source port number, and a destination port number; searching the routing table by using the first hash value and the first destination address to obtain an identifier of a first output port; determining the first egress port based on the identification of the first egress port.
In one implementation manner, the first sending module 603 is configured to: buffering the first control message in a control queue corresponding to the first output port; reading a plurality of control messages from a control queue corresponding to the first output port according to a time period, wherein the plurality of control messages in the control queue corresponding to the first output port comprise the first control message; and sending the read first control message to the destination host through the first output port.
In one implementation, the second determining module 605 is configured to: performing hash operation on the second path identifier and at least one tuple included in the second control packet to obtain a second hash value, where the at least one tuple of the second control packet includes one or more of a source address, a destination address, a source port number, and a destination port number; searching the routing table by using the second hash value and the first destination address to obtain an identifier of the second output port; determining the second egress port based on the identification of the second egress port.
In one implementation, the second sending module 606 is configured to: buffering the second control message in a control queue corresponding to the second output port; reading a plurality of control messages from the control queue corresponding to the second output port according to a time period, wherein the plurality of control messages in the control queue corresponding to the second output port comprise the second control message; and sending the read second control message to the destination host through the second output port.
The token bucket corresponding to the first output port can control the periodic transmission of the control message cached by the control message corresponding to the first output port. The token bucket corresponding to the second output port can control the periodic transmission of the control message cached by the control message corresponding to the second output port. When the Traffic balancing apparatus is a forwarding device, the control queue corresponding to the first output port and the control queue corresponding to the second output port may be disposed in a Traffic management chip (Traffic Manager, TM) on a board of the forwarding device. The token bucket corresponding to the first egress port and the token bucket corresponding to the second egress port may be set in a Packet Forwarding Engine (PFE) on a board of the forwarding device. The PFE may be a Network Processor (NP).
In one implementation, when the traffic balancing apparatus is disposed on the source host, the traffic balancing apparatus further includes a receiving module 610. The receiving module 610 is configured to receive the third control packet sent by the destination host, where the third control packet includes the third path identifier. The third obtaining module 607 is configured to generate the C1 data packets according to the third path identifier carried in the third control packet.
In an implementation manner, when the first control packet reaches the destination host before the second control packet, and a path identifier carried by the third control packet is the same as the first path identifier, the third determining module 608 is configured to: performing hash operation on the third path identifier which is the same as the first path identifier and at least one unary group included in any data packet of the C1 data packets to obtain a third hash value, where the third hash value is the same as the first hash value; searching the routing table by using the third hash value and the first destination address to obtain an identifier of the first egress port, where the first egress port and the third egress port are the same egress port; determining the third egress port based on the identification of the first egress port.
In an implementation manner, the third sending module is specifically configured to: buffering the C1 data messages in a data queue corresponding to the third output port; when the traffic balancing device stores a control packet to be sent, the third sending module is configured to send, to the destination host through the third output port, the C1 data packets read from the data queue after sending a control packet.
In one implementation, the third sending module is configured to: buffering the C1 data messages in a data queue corresponding to the third output port; when the traffic balancing device does not store a control message to be sent, the third sending module is configured to send the C1 data messages read from the data queue to the destination host through the third output port, and the traffic balancing device does not send a control message before sending the C1 data messages.
In one implementation, the first path is identified as a first source port number and the second path is identified as a second source port number. Or the first path mark is a first TTL (time to live) and the second path mark is a second TTL. Or the first path is identified as a first destination MAC address, and the second path is identified as a second destination MAC address.
The traffic balancing apparatus provided in the embodiment is disposed at the intermediate node, and a unit included in the traffic balancing apparatus may perform corresponding functions of the first intermediate node provided in the first embodiment. The first obtaining module 601 and the second obtaining module 604 are configured to support the first intermediate node to execute S203 in the first embodiment. The first determining module 602, the first sending module 603, the second determining module 605 and the second sending module 606 are configured to support the first intermediate node to execute S204 in the first embodiment. The third obtaining module 606 is configured to support the first intermediate node to execute S208 in the first embodiment. The third determining module 607 and the third sending module 608 are configured to support the first node to execute S209 in the first embodiment.
The traffic balancing device provided by the embodiment is arranged on a source host. The unit included in the traffic balancing apparatus may perform the corresponding function of the source host provided in the second embodiment. The first obtaining module 601 and the second obtaining module 604 are configured to support the source host to execute S401 in implementation two. The first determining module 602, the first sending module 603, the second determining module 605 and the second sending module 606 are configured to support the source host to execute S402 in the second embodiment. The receiving module 610 is configured to support the source host to execute S403 in embodiment two. The third obtaining module 606 is configured to support the source host to perform S405 and S406 in embodiment two. The third determining module 607 and the third sending module 608 are configured to support the source host to execute S407 in the first embodiment.
Fig. 7 is a schematic structural diagram of another flow equalization apparatus according to an embodiment of the present application. The flow equalization apparatus provided in this embodiment is a description of the structure of the flow equalization apparatus from the viewpoint of the hardware structure. The flow equalization means provided in this embodiment may be the same means as the flow equalization means shown in fig. 6. The apparatus includes a processor 701, a memory 702, a communication bus 704, and a communication interface 703. The processor 701, the memory 702 and the communication interface 703 are connected by a communication bus 704. The memory 702 is used to store programs. The processor 701 executes the method executed by the first intermediate node in the first embodiment and/or the method executed by the source host in the second embodiment according to the executable instructions included in the program read from the memory 702. The processor 701 may perform transceiving of a control message and a data message through the communication interface 703.
The traffic balancing apparatus provided in this embodiment is disposed in an intermediate node, and the processor 701 and the communication interface 703 are configured to support the first intermediate node to execute S203, S204, S208, and S209 in the first embodiment. The traffic balancing apparatus provided in the embodiment is disposed in a source host, and the processor 701 and the communication interface 703 are configured to support the source host to execute S401, S402, S405, S406, and S407 in implementation two.
The general-purpose processor referred to in the embodiments of the application may be a microprocessor or the processor may be any conventional processor. The steps of the method disclosed in the embodiments of the present invention may be directly implemented by a combination of hardware and software modules in a processor. When implemented in software, the code implementing the above described functionality may be stored on a computer readable medium. Computer readable media includes computer storage media. A storage media may be any available media that can be accessed by a computer. Taking this as an example but not limiting: the computer-readable medium may be a random-access memory (RAM), a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM), or other optical disc storage, magnetic disk storage or other magnetic storage device, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. The computer readable medium may be a Compact Disc (CD), a laser disc, a Digital Video Disc (DVD), a floppy disc or a blu-ray disc.
The embodiments in the present specification are described in a progressive manner, and the same and similar parts among the embodiments are referred to each other, and each embodiment focuses on the differences from the other embodiments. In particular, for the system embodiment, since it is substantially similar to the method embodiment, the description is simple, and for the relevant points, reference may be made to the partial description of the method embodiment.

Claims (18)

1. A method for traffic balancing, the method comprising:
a flow balancing device acquires a first control message, wherein the first control message comprises a first path identifier and a first destination address;
the flow balancing device determines a first output port according to a routing table, the first path identifier and the first destination address, and sends the first control message to a destination host through the first output port;
the flow balancing device acquires a second control message, wherein the second control message comprises a second path identifier and the first destination address;
the traffic balancing device determines a second output port according to the routing table, the second path identifier and the first destination address, and sends the second control message to the destination host through the second output port;
the traffic balancing device obtains C1 data messages, each data message includes a third path identifier and the first destination address, the third path identifier is the same as the first path identifier or the second path identifier, and C1 is an integer greater than or equal to 1;
the traffic balancing device determines a third output port according to the routing table, the third path identifier and the first destination address, where the third output port is the same as the first output port or the second output port;
and the traffic balancing device sends the C1 data messages to the destination host through the third egress port.
2. The method of claim 1, wherein determining, by the traffic balancing apparatus, the first egress port based on the routing table, the first path identifier, and the first destination address comprises:
the traffic balancing device performs hash operation on the first path identifier and at least one tuple included in the first control message to obtain a first hash value, where the at least one tuple of the first control message includes one or more of a source address, a destination address, a source port number, and a destination port number;
the traffic balancing device searches the routing table by using the first hash value and the first destination address to obtain an identifier of the first output port;
the traffic balancing apparatus determines the first egress port based on the identity of the first egress port.
3. The method according to claim 1 or 2, wherein said sending the first control packet to a destination host through the first egress port comprises:
the flow balancing device buffers the first control message in a control queue corresponding to the first output port;
the flow balancing device reads a plurality of control messages from the control queue corresponding to the first output port according to a time period, wherein the plurality of control messages in the control queue corresponding to the first output port comprise the first control message;
and the flow balancing device sends the read first control message to the destination host through the first output port.
4. The method of any of claims 1 to 3, wherein determining, by the traffic balancing device, a second egress port based on the routing table, the second path identifier, and the first destination address comprises:
the traffic balancing device performs hash operation on the second path identifier and at least one tuple included in the second control packet to obtain a second hash value, where the at least one tuple of the second control packet includes one or more of a source address, a destination address, a source port number, and a destination port number;
the traffic balancing device searches the routing table by using the second hash value and the first destination address to obtain an identifier of the second output port;
the traffic balancing apparatus determines the second egress port based on the identity of the second egress port.
5. The method according to any of claims 1 to 4, wherein said sending said second control packet to said destination host through said second egress port comprises:
the flow balancing device buffers the second control message in a control queue corresponding to the second output port;
the flow balancing device reads a plurality of control messages from the control queue corresponding to the second output port according to a time period, wherein the plurality of control messages in the control queue corresponding to the second output port comprise the second control message;
and the flow balancing device sends the read second control message to the destination host through the second output port.
6. The method according to any one of claims 1 to 5, wherein the traffic balancing apparatus is provided at a source host, the method further comprising: the traffic balancing device receives a third control message sent by the destination host, where the third control message includes the third path identifier;
the traffic balancing apparatus acquiring C1 data messages includes: and the traffic balancing device generates the C1 data messages according to the third path identifier carried by the third control message.
7. The method of claim 6, wherein when the first control packet arrives at the destination host before the second control packet, and a path identifier carried by the third control packet is the same as the first path identifier, the traffic balancing device determining a third egress port according to the routing table, the third path identifier, and the first destination address comprises:
the traffic balancing device performs hash operation on the third path identifier which is the same as the first path identifier and at least one unary group included in any data message of the C1 data messages to obtain a third hash value;
the traffic balancing device searches the routing table by using the third hash value and the first destination address to obtain an identifier of a first egress port, where the first egress port and the third egress port are the same egress port;
the traffic balancing apparatus determines the third egress port based on the identity of the first egress port.
8. The method according to any one of claims 1 to 7, wherein the traffic balancing apparatus sending the C1 data messages to the destination host through the third egress port comprises:
the traffic balancing device caches the C1 data messages in a data queue corresponding to the third egress port;
when the traffic balancing device stores a control message to be sent, the traffic balancing device sends the C1 data messages read from the data queue to the destination host through the third output port after sending a control message; or
When the traffic balancing device does not store the control message to be sent, the traffic balancing device sends the C1 data messages read from the data queue to the destination host through the third output port, and the traffic balancing device does not send a control message before sending the C1 data messages.
9. The method of any of claims 1-8, wherein the first path is identified as a first source port number and the second path is identified as a second source port number; or
The first path identification is a first TTL (time to live) and the second path identification is a second TTL; or
The first path identifier is a first destination MAC address and the second path identifier is a second destination MAC address.
10. A flow equalization apparatus, comprising:
the first obtaining module is used for obtaining a first control message, wherein the first control message comprises a first path identifier and a first destination address;
a first determining module, configured to determine a first egress port according to a routing table, the first path identifier, and the first destination address;
a first sending module, configured to send the first control packet to a destination host through the first egress port;
a second obtaining module, configured to obtain a second control packet, where the second control packet includes a second path identifier and the first destination address;
a second determining module, configured to determine a second egress port according to the routing table, the second path identifier, and the first destination address;
a second sending module, configured to send the second control packet to the destination host through the second egress port;
a third obtaining module, configured to obtain C1 data messages, where each data message includes a third path identifier and the first destination address, the third path identifier is the same as the first path identifier or the second path identifier, and the C1 is an integer greater than or equal to 1;
a third determining module, configured to determine a third egress port according to the routing table, the third path identifier, and the first destination address, where the third egress port is the same as the first egress port or the second egress port;
a third sending module, configured to send the C1 data packets to the destination host through the third egress port.
11. The apparatus of claim 10, wherein the first determining module is configured to:
performing hash operation on the first path identifier and at least one tuple included in the first control packet to obtain a first hash value, where the at least one tuple of the first control packet includes one or more of a source address, a destination address, a source port number, and a destination port number;
searching the routing table by using the first hash value and the first destination address to obtain an identifier of a first output port;
determining the first egress port based on the identification of the first egress port.
12. The apparatus of claim 10 or 11, wherein the first sending module is configured to:
buffering the first control message in a control queue corresponding to the first output port;
reading a plurality of control messages from a control queue corresponding to the first output port according to a time period, wherein the plurality of control messages in the control queue corresponding to the first output port comprise the first control message;
and sending the read first control message to the destination host through the first output port.
13. The apparatus of any of claims 10 to 12, wherein the second determining module is configured to:
performing hash operation on the second path identifier and at least one tuple included in the second control packet to obtain a second hash value, where the at least one tuple of the second control packet includes one or more of a source address, a destination address, a source port number, and a destination port number;
searching the routing table by using the second hash value and the first destination address to obtain an identifier of the second output port;
determining the second egress port based on the identification of the second egress port.
14. The apparatus according to any one of claims 10 to 13, wherein the second sending module is configured to:
buffering the second control message in a control queue corresponding to the second output port;
reading a plurality of control messages from the control queue corresponding to the second output port according to a time period, wherein the plurality of control messages in the control queue corresponding to the second output port comprise the second control message;
and sending the read second control message to the destination host through the second output port.
15. The apparatus according to any one of claims 10 to 14, wherein the traffic balancing apparatus is provided at the source host, the apparatus further comprising:
a receiving module, configured to receive a third control packet sent by the destination host, where the third control packet includes the third path identifier;
the third obtaining module is configured to generate the C1 data packets according to the third path identifier carried in the third control packet.
16. The apparatus according to claim 15, wherein when the first control packet arrives at the destination host before the second control packet, and a path identifier carried by the third control packet is the same as the first path identifier, the third determining module is configured to:
performing hash operation on the third path identifier which is the same as the first path identifier and at least one unary group included in any data message of the C1 data messages to obtain a third hash value;
searching the routing table by using the third hash value and the first destination address to obtain an identifier of the first egress port, where the first egress port and the third egress port are the same egress port;
determining the third egress port based on the identification of the first egress port.
17. The apparatus according to any one of claims 10 to 16, wherein the third sending module is configured to:
buffering the C1 data messages in a data queue corresponding to the third output port;
when the traffic balancing device stores a control packet to be sent, the third sending module is configured to send, to the destination host through the third output port, the C1 data packets read from the data queue after sending a control packet; or
When the traffic balancing device does not store a control message to be sent, the third sending module is configured to send the C1 data messages read from the data queue to the destination host through the third output port, and the traffic balancing device does not send a control message before sending the C1 data messages.
18. The apparatus of any of claims 10 to 17, wherein the first path is identified as a first source port number and the second path is identified as a second source port number; or
The first path identification is a first TTL (time to live) and the second path identification is a second TTL; or
The first path identifier is a first destination MAC address and the second path identifier is a second destination MAC address.
CN201811302495.8A 2018-11-02 2018-11-02 Flow balancing method and device Active CN111147381B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811302495.8A CN111147381B (en) 2018-11-02 2018-11-02 Flow balancing method and device
PCT/CN2019/114923 WO2020088624A1 (en) 2018-11-02 2019-11-01 Traffic balancing method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811302495.8A CN111147381B (en) 2018-11-02 2018-11-02 Flow balancing method and device

Publications (2)

Publication Number Publication Date
CN111147381A true CN111147381A (en) 2020-05-12
CN111147381B CN111147381B (en) 2022-01-18

Family

ID=70464669

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811302495.8A Active CN111147381B (en) 2018-11-02 2018-11-02 Flow balancing method and device

Country Status (2)

Country Link
CN (1) CN111147381B (en)
WO (1) WO2020088624A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114172847A (en) * 2021-11-29 2022-03-11 烽火通信科技股份有限公司 Multi-port bandwidth speed limiting method and system
CN114513458A (en) * 2022-01-27 2022-05-17 新华三技术有限公司 Communication method and device
CN115297060A (en) * 2022-10-10 2022-11-04 荣耀终端有限公司 Network on chip, data forwarding method and electronic equipment

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114915593B (en) * 2022-06-10 2023-05-09 北京世纪好未来教育科技有限公司 Redis-based flow control method and device, electronic equipment and storage medium

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1809021A (en) * 2005-01-17 2006-07-26 华为技术有限公司 Ethernet link converging method
US20060233106A1 (en) * 2005-04-14 2006-10-19 Microsoft Corporation Stateless, affinity-preserving load balancing
CN101478499A (en) * 2009-01-08 2009-07-08 清华大学深圳研究生院 Flow allocation method and apparatus in MPLS network
CN102158398A (en) * 2011-02-25 2011-08-17 杭州华三通信技术有限公司 Method and device for forwarding messages
CN103201989A (en) * 2012-08-09 2013-07-10 华为技术有限公司 Method, apparatus and system for controlling data transmission
CN104243302A (en) * 2013-06-20 2014-12-24 华为技术有限公司 Service routing message processing method and device and network system
CN106034071A (en) * 2015-03-09 2016-10-19 华为技术有限公司 Data message transmission method and edge routing bridge equipment
CN106572009A (en) * 2016-11-11 2017-04-19 锐捷网络股份有限公司 Method and device for forwarding massages under multi-operator link environment
US20170359265A1 (en) * 2016-06-13 2017-12-14 Cisco Technology, Inc. Mulit-mobile core networks and value-added services
CN107959702A (en) * 2016-10-17 2018-04-24 财付通支付科技有限公司 Method for routing and device
CN108092914A (en) * 2016-11-21 2018-05-29 华为技术有限公司 Network traffic load equalization scheduling method and device
CN108173765A (en) * 2017-12-28 2018-06-15 新华三技术有限公司 A kind of message forwarding method and device
WO2018149673A1 (en) * 2017-02-20 2018-08-23 Nokia Solutions And Networks Oy A method of distributing a sub-flow associated with a session and a network apparatus
CN108574639A (en) * 2017-03-14 2018-09-25 华为技术有限公司 EVPN message processing methods, equipment and system
CN108650178A (en) * 2013-02-22 2018-10-12 华为技术有限公司 A kind of service message processing method, apparatus and system
CN108712346A (en) * 2018-05-16 2018-10-26 天津芯海创科技有限公司 A kind of load balancing is from routing data exchange structure and method
CN108718278A (en) * 2018-04-13 2018-10-30 新华三技术有限公司 A kind of message transmitting method and device

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1809021A (en) * 2005-01-17 2006-07-26 华为技术有限公司 Ethernet link converging method
US20060233106A1 (en) * 2005-04-14 2006-10-19 Microsoft Corporation Stateless, affinity-preserving load balancing
CN101478499A (en) * 2009-01-08 2009-07-08 清华大学深圳研究生院 Flow allocation method and apparatus in MPLS network
CN102158398A (en) * 2011-02-25 2011-08-17 杭州华三通信技术有限公司 Method and device for forwarding messages
CN103201989A (en) * 2012-08-09 2013-07-10 华为技术有限公司 Method, apparatus and system for controlling data transmission
CN108650178A (en) * 2013-02-22 2018-10-12 华为技术有限公司 A kind of service message processing method, apparatus and system
CN104243302A (en) * 2013-06-20 2014-12-24 华为技术有限公司 Service routing message processing method and device and network system
CN106034071A (en) * 2015-03-09 2016-10-19 华为技术有限公司 Data message transmission method and edge routing bridge equipment
US20170359265A1 (en) * 2016-06-13 2017-12-14 Cisco Technology, Inc. Mulit-mobile core networks and value-added services
CN107959702A (en) * 2016-10-17 2018-04-24 财付通支付科技有限公司 Method for routing and device
CN106572009A (en) * 2016-11-11 2017-04-19 锐捷网络股份有限公司 Method and device for forwarding massages under multi-operator link environment
CN108092914A (en) * 2016-11-21 2018-05-29 华为技术有限公司 Network traffic load equalization scheduling method and device
WO2018149673A1 (en) * 2017-02-20 2018-08-23 Nokia Solutions And Networks Oy A method of distributing a sub-flow associated with a session and a network apparatus
CN108574639A (en) * 2017-03-14 2018-09-25 华为技术有限公司 EVPN message processing methods, equipment and system
CN108173765A (en) * 2017-12-28 2018-06-15 新华三技术有限公司 A kind of message forwarding method and device
CN108718278A (en) * 2018-04-13 2018-10-30 新华三技术有限公司 A kind of message transmitting method and device
CN108712346A (en) * 2018-05-16 2018-10-26 天津芯海创科技有限公司 A kind of load balancing is from routing data exchange structure and method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114172847A (en) * 2021-11-29 2022-03-11 烽火通信科技股份有限公司 Multi-port bandwidth speed limiting method and system
CN114172847B (en) * 2021-11-29 2023-05-26 烽火通信科技股份有限公司 Multi-port bandwidth speed limiting method and system
CN114513458A (en) * 2022-01-27 2022-05-17 新华三技术有限公司 Communication method and device
CN114513458B (en) * 2022-01-27 2023-12-08 新华三技术有限公司 Communication method and device
CN115297060A (en) * 2022-10-10 2022-11-04 荣耀终端有限公司 Network on chip, data forwarding method and electronic equipment

Also Published As

Publication number Publication date
WO2020088624A1 (en) 2020-05-07
CN111147381B (en) 2022-01-18

Similar Documents

Publication Publication Date Title
CN111147381B (en) Flow balancing method and device
US20220217078A1 (en) System and method for facilitating tracer packets in a data-driven intelligent network
CN109691037B (en) Method and system for data center load balancing
US8125904B2 (en) Method and system for adaptive queue and buffer control based on monitoring and active congestion avoidance in a packet network switch
US8665892B2 (en) Method and system for adaptive queue and buffer control based on monitoring in a packet network switch
CN110166367B (en) Method, device and storage medium for controlling flow in packet network
EP2180644B1 (en) Flow consistent dynamic load balancing
US9270598B1 (en) Congestion control using congestion prefix information in a named data networking environment
US9577949B2 (en) Maintaining named data networking (NDN) flow balance with highly variable data object sizes
JP4547339B2 (en) Packet relay device having transmission control function
US10938724B2 (en) Flow rate based network load balancing
JP2013034164A (en) Relay device, and relay method
KR100645537B1 (en) Method of dynamic Queue management for the stable packet forwarding and Element of network thereof
KR102455886B1 (en) Service Feature Chaining Congestion Feedback
WO2020259259A1 (en) Method and device for transmitting traffic
CN110679121B (en) Full fabric-wide bandwidth management
US11805071B2 (en) Congestion control processing method, packet forwarding apparatus, and packet receiving apparatus
KR20150016916A (en) A device for multipath routing of packets in computer networking and the method for its use
JP2013110665A (en) Buffer device, communication device and frame transmission method
CN113612698A (en) Data packet sending method and device
Phinjirapong CAFFEINE: Congestion Avoidance For Fairness & Efficiency In Network Entities
WO2014068818A1 (en) Mpls network and traffic control method utilized therefor
Davidow et al. Design of multi-tier networks to support data-intensive applications
Macura et al. Integration of Multimedia Traffic Into Computer Network

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