WO2018121535A1 - Procédé et appareil de traitement d'équilibrage de charge - Google Patents

Procédé et appareil de traitement d'équilibrage de charge Download PDF

Info

Publication number
WO2018121535A1
WO2018121535A1 PCT/CN2017/118652 CN2017118652W WO2018121535A1 WO 2018121535 A1 WO2018121535 A1 WO 2018121535A1 CN 2017118652 W CN2017118652 W CN 2017118652W WO 2018121535 A1 WO2018121535 A1 WO 2018121535A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
flowlet
tcp
sending
sent
Prior art date
Application number
PCT/CN2017/118652
Other languages
English (en)
Chinese (zh)
Inventor
韩冰
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2018121535A1 publication Critical patent/WO2018121535A1/fr

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Definitions

  • the present application relates to the field of communications technologies, and in particular, to a load balancing method and apparatus.
  • Equal-cost multi-path routing is a commonly used load balancing processing method.
  • ECMP technology includes a packet-based path selection method and a flow-based path selection method.
  • Packet-based path selection can achieve load balancing. There is a difference in the delay of different paths in the multipath, which causes the packets received at the receiving end to be out of order. Requires Packet reordering.
  • the outbound interface the packet forwarding path
  • the receiver does not need to reorder the message.
  • the rates of different flows may be different (for example, occupying a large bandwidth (Elephant Flow) and occupying a smaller bandwidth (Mice Flow)), and the flows transmitted in different paths are also different.
  • the rates of Flows transmitted in different paths are not equal, the load may be unbalanced.
  • a load balancing processing method based on Flowlet mechanism is proposed.
  • a load balancing processing method based on the flow mechanism a plurality of packets continuously sent in a certain flow are used as one flowlet, and a flowlet mechanism is used to perform path selection, so that multiple packets included in the flowlet are forwarded based on the selected path.
  • the load balancing processing method based on the Flowlet mechanism combines the two path selection methods, that is, the packet-based path selection method and the flow-based path selection method, so that load balancing processing can be performed better.
  • the path selection method based on the hash algorithm is not switched to the path selection method based on the Flowlet mechanism.
  • switching of the execution path selection mode easily leads to out-of-order.
  • the embodiment of the present application provides a load balancing processing method and apparatus, which can implement a path selection manner based on a hash algorithm to switch to a path selection method based on a Flowlet mechanism.
  • disorder can be avoided.
  • the first aspect provides a load balancing processing method, in which the packet sending device sends a first packet by using a TCP, where the first packet is sent by the packet sending device in the first TCP sending window.
  • a message The packet forwarding device receives the first packet sent by the packet sending device by using the TCP, and determines the outgoing interface according to the feature information of the first packet and the hash algorithm, and forwards the first packet by using the outbound interface. .
  • the packet sending device sends a second packet by using TCP, and sets a Flowlet start tag for the second packet, where the Flowlet start tag is used to identify the first packet in the Flowlet.
  • the packet forwarding device receives the second packet sent by the packet sending device by using the TCP, and the second packet is the first packet sent by the packet sending device in the second TCP sending window, and the second packet is sent by the packet sending device.
  • the text includes a flowlet start tag, so the first flowlet flow table entry can be created based on the flowlet start tag included in the second message, and the second message is forwarded according to the created first flowlet flow table entry.
  • the second TCP transmission window is a TCP transmission window adjacent to the first TCP transmission window, and the packet sending device receives the ACK confirmation corresponding to the packet sent in the first TCP transmission window. Sending a message in the second TCP transmission window.
  • the ACK acknowledgement corresponding to the packet sent in the first TCP transmission window refers to the ACK acknowledgement corresponding to the last packet (the first packet) sent in the first TCP transmission window.
  • the packet forwarding path used by the packet forwarding device to forward the second packet indicated by the first flowlet flow table entry according to the flowlet start tag included in the second packet may be used for determining the packet forwarding path based on the hash algorithm.
  • the forwarding path of the first packet is the same or different.
  • the outbound interface for forwarding the second packet indicated by the first flowlet flow table entry is the same outbound interface as the outbound interface determined by the hash algorithm for forwarding the first packet, or is different. interface.
  • the packet forwarding device may be switched to adopt a flowlet to perform path selection by using a hash algorithm to determine a packet forwarding path, and the packet forwarding device is a flowlet stream created based on a Flowlet start tag.
  • the table entry, the Flowlet start tag is used to identify the first packet sent in the second TCP sending window, and the packet sending device needs to receive the ACK acknowledgement to continue sending after sending the message in the first TCP sending window.
  • the packet is sent by the packet sending device, and the packet sending device has received the packet sent by the packet sending device. Therefore, the packet sending device sends the packet to the packet receiving device in the second TCP sending window.
  • the text does not cause out-of-order when the packet arrives at the packet receiving device, which can avoid out-of-order.
  • the packet forwarding device after receiving the second packet sent by the packet sending device by using the TCP, the packet forwarding device continues to receive the packet sent by the sending device using TCP in the second TCP sending window, and according to the packet forwarding device, The created first flowlet flow table entry forwards the subsequently received packet sending device to send the packet sent by the TCP in the second TCP sending window.
  • the packet forwarding device if the packet forwarding device receives the third packet sent by the packet sending device in the second TCP sending window, and the third packet includes the Flowlet end tag, the packet forwarding device Deleting the first Flowlet flow table entry based on the Flowlet End Tag included in the third message to release the resource, the released resource may be used to create a Flowlet flow table entry followed by other Flowlets, so that more Flowlets are obtained. It can match the flow table flow table entries and perform load balancing processing.
  • the packet forwarding device can continue to receive the subsequent packet.
  • the packet forwarding device receives the fourth packet sent by the packet sending device by using TCP.
  • the fourth packet is a first packet sent by the packet sending device in the third TCP sending window, and the fourth packet includes a Flowlet start tag.
  • the packet forwarding device creates a second Flowlet flow table entry based on the Flowlet start tag included in the fourth packet, and forwards the fourth packet according to the created second Flowlet flow table entry to implement the Flowlet mechanism.
  • the path selection method is used for path selection.
  • the third TCP transmission window is a TCP transmission window adjacent to the second TCP transmission window, and the packet sending device receives the ACK confirmation corresponding to the packet sent in the second TCP transmission window, The third TCP transmission window sends a message.
  • the ACK acknowledgement corresponding to the packet sent in the second TCP sending window refers to the ACK acknowledgement corresponding to the last packet (third packet) sent in the second TCP sending window.
  • the packet forwarding path that is used by the packet forwarding device to forward the fourth packet according to the flowlet start tag included in the fourth packet to create the second flowlet flow table entry may be based on the packet included in the second packet.
  • the flow forwarding path of the Flowlet start tag is the same as that of the first flowlet table entry, and the packet forwarding path used to forward the second packet is the same or different.
  • the outbound interface for forwarding the fourth packet indicated by the second flowlet flow table entry is the same outbound interface as the outgoing interface for forwarding the second packet indicated by the first flowlet flow table entry, or Is a different outbound interface.
  • the Flowlet Start Tag and/or the Flowlet End Tag are carried by the idle bits in the message header.
  • the existing TCP can be augmented, and the Flowlet Start Tag and/or the Flowlet End Tag are carried by the Reserved Bit in the Message Header field.
  • the Flowlet start tag included in the second packet is carried by the idle bit in the packet header of the second packet, and the Flowlet end tag included in the third packet passes the packet of the third packet.
  • the idle bit in the header is carried, and the Flowlet start tag included in the fourth packet is carried by the idle bit in the header of the fourth packet.
  • a load balancing processing apparatus including all of the functions of implementing the load balancing processing method described above.
  • the functions may be implemented by hardware or by corresponding software implemented by hardware.
  • the hardware or software includes one or more modules corresponding to the functions described above.
  • the modules can be software and/or hardware.
  • the load balancing processing device includes a receiving unit, a processing unit, and a sending unit.
  • the functions of the receiving unit, the processing unit, and the sending unit may correspond to the method steps, and details are not described herein.
  • a third aspect provides a message forwarding device, where the message forwarding device includes a processor, a memory, and a communication interface, and the processor, the memory, and the communication interface are connected by a bus.
  • the memory is configured to store program code executed by the processor; the processor calls the program code stored in the memory, acquires and forwards a message through the communication interface, and when the processor executes the memory storage
  • the instruction is used to complete any of the load balancing processing methods as involved in the first aspect.
  • a computer storage medium for storing instructions that, when executed, perform any of the load balancing processing methods described above.
  • the packet forwarding device after receiving the last packet sent by the packet sending device in the first TCP sending window, determines the interface according to the feature information of the first packet and the hash algorithm, and The method of forwarding the first packet by the interface is a method for determining a packet forwarding path by using a hash algorithm.
  • the packet forwarding device After the packet forwarding device receives the second packet sent by the TCP in the second TCP sending window, the packet forwarding device creates a first Flowlet flow table entry based on the Flowlet start tag included in the second packet, and creates the first Flowlet flow table entry.
  • the first Flowlet flow table entry, forwarding the second packet is a way for path selection based on the Flowlet mechanism.
  • the method for determining the packet forwarding path based on the hash algorithm is converted into the path selection method by using the flowlet to perform load balancing processing.
  • the packet forwarding device is a flowlet flow table entry created based on a Flowlet start tag included in the second packet, where the Flowlet start tag is used to identify the first packet sent in the second TCP sending window, because the packet After receiving the packet in the first TCP transmission window, the packet sending device needs to receive the ACK to continue to send the packet, and the packet sending device receives the ACK acknowledgement, indicating that the packet receiving device has received the packet sending device and sends the packet.
  • the packet sending device sends a packet to the packet receiving device in the second TCP sending window, so that the packet does not need to be out of order when the packet arrives at the receiving device, and the packet receiving device does not need to receive the received packet.
  • the text is reordered.
  • FIG. 1 is a system architecture applied to a load balancing processing method according to an embodiment of the present disclosure
  • FIG. 2 is a schematic diagram of a path selection manner based on a Flowlet mechanism
  • FIG. 3 is a flowchart of a load balancing processing method according to an embodiment of the present application.
  • FIG. 4 is another flowchart of a load balancing processing method according to an embodiment of the present disclosure.
  • FIG. 5 is still another flowchart of a load balancing processing method according to an embodiment of the present application.
  • FIG. 6 is a schematic structural diagram of a load balancing processing apparatus according to an embodiment of the present disclosure.
  • FIG. 7 is a schematic structural diagram of a packet forwarding device according to an embodiment of the present disclosure.
  • a flowlet can be understood as a packet group consisting of multiple packets continuously sent in a flow, and each flow includes multiple flowlets.
  • the forwarding of multiple packets included in the flowlet can be implemented based on the flowlet flow table entry.
  • Different Flowlets correspond to different Flowlet flow table entries.
  • the flowlet flow table entry is used to indicate a packet forwarding path of multiple packets included in each flowlet.
  • TCP In TCP, the concepts of window, TCP send window, acknowledgement, segment, TCP sender, and TCP receiver are defined.
  • TCP windows, acknowledgement, segments, TCP senders, and TCP receivers see RFC793, RFC813, RFC879, RFC1180, RFC5681, and RFC5690 published by the IETF.
  • the load balancing processing method and apparatus provided by the embodiments of the present application can be applied to a network that supports ECMP technology for load balancing processing, for example, applicable to the network architecture shown in FIG. 1.
  • the server uses a Transmission Control Protocol (TCP) to send packets to a packet forwarding device of a routing switching network, and a packet forwarding device (such as a switch, a router, etc.) in the routing switching network adopts ECMP.
  • TCP Transmission Control Protocol
  • a packet forwarding device such as a switch, a router, etc.
  • the technology forwards the packet and forwards the received packet to the terminal in the case of load balancing of the entire network.
  • the packet forwarding device uses the ECMP technology to forward packets, the Flowlet mechanism can be used for path selection.
  • FIG. 2 is a schematic diagram of a path selection manner based on a Flowlet mechanism according to an embodiment of the present application.
  • the packet forwarding device needs to split the multiple packets included in the flow into multiple packet groups, and each packet group includes multiple packets.
  • Each packet group can be understood as a flowlet.
  • the following embodiments of the present application refer to "message group" and "Flowlet” frequently used interchangeably, but those skilled in the art can understand the meaning thereof.
  • the different packet groups correspond to different flowlet flow table entries, and the flowlet flow table entry is used to indicate the packet forwarding path of the packet forwarding device to forward the packet, for example, to indicate that the packet forwarding device forwards the packet.
  • the packet forwarding device can forward different flowlet table entries.
  • the basis for obtaining multiple message groups in multiple packets in a specific split stream is: the time difference between the time taken by two adjacent packets in the flow to reach the packet receiving device (the device corresponding to the destination address of the packet) Gap) is greater than or equal to the absolute value of the time difference between the two different forwarding paths.
  • the two adjacent packets to be forwarded are forwarded to the packet receiving device through two different forwarding paths.
  • each Gap that meets the condition can determine whether the packet is the first packet or the last packet in the packet group that can be forwarded by a flowlet flow table entry. Message message.
  • the packet forwarding device can forward the packet in the packet group to be split based on the Flowlet mechanism flow table.
  • Each flow entry in the flowlet flow table includes a source address and a destination address of the packet forwarding, and the source address and the destination address forwarded by the flow are the result of the routing of the Flowlet obtained by executing the flowlet routing policy. For example, in FIG.
  • the packet forwarding device receives the to-be-forwarded packets included in the flow as message 1, message 2, message 3, message 4, and message 5, and message 2 and message 3 arrive at the report.
  • the time difference between the time used by the receiving device is Gap
  • the time taken by the packet 2 and the packet 3 through the forwarding path 1 is d1
  • the time taken by the packet 2 and the packet 3 through the forwarding path 2 is d2, and if so, the packet 2 can be
  • the packet 1 is divided into a packet group and forwarded to the packet receiving device through the forwarding path 1
  • the packet 3, the packet 4, and the packet 5 are divided into another packet group and forwarded to the packet through the forwarding path 2.
  • each packet group is forwarded based on the Flowlet flow table entry, and the packet arrives at the report.
  • the packet forwarding device does not determine the first packet in the packet group that is forwarded based on the flowlet flow table entry.
  • the packet forwarding device has insufficient specifications due to the flowlet flow table
  • the route selection method based on the flowlet is converted to the path selection mode based on the hash algorithm to determine the packet forwarding path, even if there is an available flowlet flow table, it is determined whether the current to-be-forwarded packet is based on the flowlet flow table.
  • the first packet of the packet forwarding group is forwarded. Therefore, in order to avoid packet out-of-order, the path of the packet forwarding path can be determined by using the hash algorithm.
  • the method performs load balancing processing.
  • An embodiment of the present application provides a load balancing processing method, in which a Flowlet start flag is set for a first packet in a packet group forwarded by each Flowlet flow table entry obtained by the splitting, by using the The Flowlet Start tag identifies the first message in the packet group forwarded based on the Flowlet Flow Table entry.
  • the packet in the two adjacent to-be-forwarded packets in the basis of splitting the multiple packets in the flow into the plurality of packets in the foregoing embodiment may be used as a basis.
  • the first packet of the packet group forwarded by the flowlet flow entry may be used as a basis.
  • the packet forwarding device forwards the packet
  • the packet is forwarded by the flowlet to determine that the packet forwarded by the flowlet table entry is the first packet in the packet group, and even if the packet forwarding device is currently applied.
  • the path selection mode of the packet forwarding path is determined by the hash algorithm to perform load balancing processing.
  • the method can be converted into a path using the flowlet by the application to determine the packet forwarding path based on the hash algorithm.
  • the method of load balancing is performed, and the packet does not need to be out of order when the packet arrives at the packet receiving device.
  • the packet receiving device does not need to reorder the received packet.
  • the packet sending device can determine the sending time of the packet, the packet sending device can identify each packet group that is forwarded based on the flowlet flow table entry.
  • the first packet and the last packet in this embodiment, the packet sending device may set the Flowlet start tag for the first packet in each packet group forwarded by the Flowlet flow table entry. .
  • the Flowlet start tag can be carried by the first message in the packet group forwarded by the Flowlet flow table entry in the Flowlet.
  • TCP Transmission Control Protocol
  • TCP Transmission Control Protocol
  • TCP Receiver Transmission Control Protocol receiver
  • the packet transmitted by using TCP on the following refers to the above TCP packet.
  • the TCP transmission window is capable of characterizing a sequence number of a message that the TCP receiver desires to receive, and the sequence number can indicate a data segment included in the message received by the TCP receiver through the TCP transmission window.
  • the TCP receiver After receiving the data packet sent by the TCP sender through the TCP transmission window, the TCP receiver sends an acknowledgement (ACK) to the TCP transmitter according to the received message. After receiving the ACK, the TCP sender continues to send a message to the TCP receiver in another TCP transmission window.
  • ACK acknowledgement
  • the packet sending device needs to receive the ACK to confirm the packet after the packet is sent in the first TCP sending window, and the packet sending device receives the packet.
  • the packet receiving device has received the packet sent by the packet sending device, so the packet sending device sends a packet to the packet receiving device in the second TCP sending window, where the second TCP is sent.
  • the sending window is different from the first TCP sending window, the second TCP sending window is a TCP sending window adjacent to the first TCP sending window, and the message sending device receives the sending in the first TCP sending window.
  • TCP packets sent in each window is a TCP packet based on a plurality of packet group Flowlet flow table entry in the forwarding.
  • the message sending device that uses TCP to send a message in the embodiment of the present application may set a Flowlet start tag for the first message sent in each TCP sending window, and the Flowlet starts marking.
  • the first packet in the flowlet is identified, in other words, if the packet includes a Flowlet start tag, the packet containing the Flowlet start tag may be considered as the first packet in the Flowlet.
  • the packet forwarding device receives the packet including the Flowlet start tag sent by the packet sending device using the TCP, it may be based on the received message.
  • the Flowlet included in the packet starts to create a Flowlet flow table entry, and forwards the packet according to the created Flowlet flow table entry, thereby implementing a path selection method based on the Flowlet mechanism.
  • the message sending device that uses TCP to send a message in the embodiment of the present application may set a Flowlet end tag for the last message sent in each TCP sending window.
  • the Flowlet End Tag is used to identify the last packet in the packet group forwarded based on the Flowlet Flow Table entry. In other words, if the packet includes a Flowlet End Tag, the packet may be considered to include the Flowlet End Tag.
  • the last packet in a packet group forwarded based on the Flowlet flow table entry.
  • the packet forwarding device can determine the packet if the packet sending device receives the packet including the Flowlet end tag sent by the packet sending device by using the TCP packet.
  • the packet After the packet containing the flow end tag is forwarded, the packet is sent to the last packet in the packet group, and the packet is forwarded.
  • the Flowlet flow table entry on which the packet is based is deleted to release the resource.
  • the released resource can be used to create a Flowlet flow table entry that is followed by other packet groups, so that more packet groups can be matched to the Flowlet flow table. Item, load balancing processing.
  • the Flowlet Start Tag and/or the Flowlet End Tag are carried by idle bits in the message header.
  • the existing TCP can be extended and carried by the reserved bit in the message header field.
  • the Flowlet Start Tag and the Flowlet End Tag can be marked by two reserved bits in the message header field.
  • the Flowlet start tag and the Flowlet end tag may be represented by a bit position bit. For example, if the bit used to indicate the Flowlet start tag in the message is set to 1, the message includes the Flowlet. Start tag, which is the first packet in the packet group forwarded based on the Flowlet flow table entry.
  • bit in the packet indicating the end of the Flowlet flag is set to 1, it indicates that the packet contains a Flowlet End Tag, which is the last packet in the packet group forwarded based on the Flowlet Flow Table entry. . If the bit in the message indicating the start of the Flowlet flag is set to 0, and the bit used to indicate the end of the Flowlet flag is also set to 0, it indicates that the message is a message forwarded based on the Flowlet flow table entry. A packet between the first packet and the last packet in the group.
  • the embodiment of the present application provides an implementation scheme for performing load balancing processing by converting a manner in which a packet forwarding path is determined based on a hash algorithm into a manner in which a path is selected by using a flowlet.
  • the packet sending device uses TCP to send the packet sent by each TCP sending window as a packet group forwarded by the Flowlet flow table entry.
  • FIG. 3 is a flowchart of a load balancing processing method according to an embodiment of the present application.
  • the execution body of the method shown in FIG. 3 may be a packet forwarding device, or may be a component in a packet forwarding device.
  • the packet forwarding device may be a device with a packet forwarding function, such as a switch or a router, which is not limited in this embodiment. Referring to Figure 3, the method includes:
  • the packet forwarding device receives the first packet sent by the packet sending device by using TCP.
  • the first packet is the last packet sent by the packet sending device in the first TCP sending window.
  • the last message sent by the message sending device in the first TCP sending window can be understood as the last message sent in the first TCP sending window in the time dimension, and if it is represented by the serial number, it can be understood as The message with the largest sequence number sent in the first TCP transmission window.
  • the packet forwarding device determines an interface according to the feature information of the first packet and a hash algorithm, and forwards the first packet by using the outbound interface.
  • the packet forwarding device determines the packet forwarding path based on the hash algorithm.
  • the hash key input when the packet forwarding device executes the hash algorithm may be a feature such as a five-tuple of the first packet that characterizes the first message attribute.
  • the hash value output by the packet forwarding device when the hash algorithm is executed may be used to represent the forwarding path information, and the forwarding path information may be, for example, information such as an outgoing interface of the forwarding packet.
  • the packet forwarding device receives the second packet sent by the packet sending device by using the TCP.
  • the second packet is a first packet sent by the packet sending device in the second TCP sending window, and the second packet includes a Flowlet start tag.
  • the first message sent by the message sending device in the second TCP sending window can be understood as the first message sent in the second TCP sending window in the time dimension, and if it is represented by the serial number, It is understood to be the message with the smallest sequence number sent in the second TCP transmission window.
  • the second TCP sending window is a TCP sending window adjacent to the first TCP sending window, and the packet sending device receives the ACK confirmation corresponding to the sending of the message in the first TCP sending window,
  • the second TCP transmission window sends a message.
  • the ACK corresponding to the packet sent in the first TCP sending window is used to indicate that all the packets sent in the first TCP sending window have reached the destination.
  • the ACK acknowledgment corresponding to the message sent in the first TCP transmission window refers to the ACK acknowledgment corresponding to the last message (the first message) sent in the first TCP transmission window.
  • the sequence number carried in the ACK acknowledgement is equal to the sequence number carried in the first TCP packet.
  • the flow start tag included in the second packet may be carried by the idle bit in the header of the second packet.
  • the second packet may have the same feature information as the first packet.
  • the second packet and the first packet are packets belonging to the same stream.
  • the packet forwarding device creates a first flowlet flow table entry based on the flowlet start tag included in the second packet, and forwards the second packet according to the created first flowlet flow table entry.
  • the packet forwarding device may be based on the flowlet start flag included in the second packet, and the packet forwarding path for forwarding the second packet indicated by the first flowlet flow table entry may be based on a hash algorithm.
  • the forwarding path used to forward the first packet is the same, but may be different.
  • the outbound interface for forwarding the second packet indicated by the first flowlet flow table entry is the same outbound interface as the outbound interface determined by the hash algorithm for forwarding the first packet, or is different. interface.
  • the packet forwarding device after receiving the last packet sent by the packet sending device in the first TCP sending window, determines the interface according to the feature information of the first packet and the hash algorithm, and The method of forwarding the first packet by the interface is a method for determining a packet forwarding path by using a hash algorithm.
  • the packet forwarding device After the packet forwarding device receives the second packet sent by the TCP in the second TCP sending window, the packet forwarding device creates a first Flowlet flow table entry based on the Flowlet start tag included in the second packet, and creates the first Flowlet flow table entry.
  • the first Flowlet flow table entry, forwarding the second packet is a way for path selection based on the Flowlet mechanism.
  • the method for determining the packet forwarding path based on the hash algorithm is converted into the path selection method by using the flowlet to perform load balancing processing.
  • the packet forwarding device is a flowlet flow table entry created based on a Flowlet start tag included in the second packet, where the Flowlet start tag is used to identify the first packet sent in the second TCP sending window, because the packet After receiving the packet in the first TCP transmission window, the packet sending device needs to receive the ACK to continue to send the packet, and the packet sending device receives the ACK acknowledgement, indicating that the packet receiving device has received the packet sending device and sends the packet.
  • the packet sending device sends a packet to the packet receiving device in the second TCP sending window, so that the packet does not need to be out of order when the packet arrives at the receiving device, and the packet receiving device does not need to receive the received packet.
  • the text is reordered.
  • the packet forwarding device after receiving the second packet sent by the packet sending device by using the TCP, continues to receive the packet sent by the sending device using the TCP in the second TCP sending window, and creates the packet according to the method.
  • the first Flowlet flow table entry forwards the subsequently received message sending device to send the message sent by the TCP in the second TCP sending window.
  • the packet forwarding device receives the packet sending device using TCP, the last packet sent in the second TCP sending window, and the last packet sent in the second TCP sending window includes
  • the flowlet end tag is based on the method flow shown in FIG. 3, and may also include the following implementation steps, as shown in FIG. 4:
  • the packet forwarding device receives the third packet sent by the packet sending device by using the TCP.
  • the last packet sent by the packet sending device received by the packet forwarding device in the second TCP sending window is referred to as a third packet
  • the third packet includes a Flowlet end tag.
  • the flow end tag included in the third packet may be carried by the idle bit in the header of the third packet.
  • the packet forwarding device deletes the first Flowlet flow table entry based on the Flowlet End Tag included in the third packet.
  • the packet forwarding device deletes the first flowlet flow table entry based on the flowlet end tag included in the third packet, and can release the resource, and the released resource can be used to create another packet group to follow.
  • the Flowlet flow table entry enables more packet groups to match the Flowlet flow table entries for load balancing.
  • the packet forwarding device after receiving the third packet sent by the TCP, the packet forwarding device can continue to receive subsequent packets, and performs path selection according to the path selection mode of the Flowlet mechanism.
  • the implementation process is as shown in FIG. 5 . Show.
  • the method flow shown in FIG. 5 may further include the following implementation steps on the basis of the method flow shown in FIG. 4:
  • the packet forwarding device receives the fourth packet sent by the packet sending device by using the TCP.
  • the fourth packet is the first packet sent by the packet sending device in the third TCP sending window, and the fourth packet and the first packet have the same feature information.
  • the fourth message and the first message belong to the same stream.
  • the fourth message includes a Flowlet Start tag.
  • the Flowlet start tag included in the fourth message may be carried by the idle bit in the header of the fourth message.
  • the Flowlet start tag included in the fourth packet in the embodiment of the present application may be the same as or different from the Flowlet start tag included in the second packet, but the Flowlet start tag function and the second packet included in the fourth packet are included.
  • the Flowlet start tag included in the function has the same function and is used to identify the first message sent by the data sending device in the TCP send window.
  • the third TCP sending window is a TCP sending window adjacent to the second TCP sending window, and after the packet sending device receives the ACK confirmation corresponding to the sending of the message in the second TCP sending window, The message is sent in the third TCP transmission window.
  • the ACK corresponding to the packet sent in the second TCP sending window is used to indicate that all the packets sent in the second TCP sending window have reached the destination.
  • the ACK acknowledgment corresponding to the message sent in the second TCP transmission window refers to the ACK acknowledgment corresponding to the last message (third message) sent in the second TCP transmission window.
  • the sequence number carried in the ACK acknowledgement is equal to the sequence number carried in the third TCP packet.
  • the packet forwarding device creates a second Flowlet flow table entry based on the Flowlet start tag included in the fourth packet, and forwards the fourth packet according to the created second Flowlet flow table entry.
  • the packet forwarding device may be based on the Flowlet start tag included in the fourth packet, and the packet forwarding path for forwarding the fourth packet indicated by the second Flowlet flow table entry may be based on the second report.
  • the flow forwarding path included in the text is the same as the forwarding path of the packet for forwarding the second packet indicated by the first flowlet flow table entry, and may of course be different.
  • the outbound interface for forwarding the fourth packet indicated by the second flowlet flow table entry is the same outbound interface as the outgoing interface for forwarding the second packet indicated by the first flowlet flow table entry, or Is a different outbound interface.
  • the packet forwarding device after receiving the fourth packet sent by the packet sending device, continues to receive the packet sent by the sending device using the TCP in the third TCP sending window, and creates the packet according to the method.
  • the second Flowlet flow table entry forwards the subsequently received message sending device to send the message sent by the TCP in the third TCP sending window.
  • the inactive flow entry in the created flowlet flow table that exceeds the set duration of the flow table resource is periodically detected, and the inactive flow entry is deleted, so that the resource can be released.
  • the released resources can be used to create flowlet flow tables of other Flowlets, so that more Flowlets can be matched to the Flowlet flow table for load balancing processing.
  • the inactive flow entry is a flow entry that is not executed within a set duration.
  • the embodiment of the present application further provides a load balancing processing apparatus.
  • the load balancing processing device includes corresponding hardware structures and/or software modules for performing the respective functions in order to implement the above functions.
  • the embodiments of the present application can be implemented in a combination of hardware or hardware and computer software in combination with the unit and algorithm steps of the examples described in the embodiments disclosed in the embodiments of the present application. Whether a function is implemented in hardware or computer software to drive hardware depends on the specific application and design constraints of the solution. A person skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the technical solutions of the embodiments of the present application.
  • the embodiment of the present application may divide the functional unit into the load balancing processing device according to the foregoing method example.
  • each functional unit may be divided according to each function, or two or more functions may be integrated into one processing unit.
  • the above integrated unit can be implemented in the form of hardware or in the form of a software functional unit. It should be noted that the division of the unit in the embodiment of the present application is schematic, and is only a logical function division. In actual implementation, there may be another division manner.
  • FIG. 6 is a schematic structural diagram of a load balancing processing apparatus 100 according to an embodiment of the present application.
  • the load balancing processing apparatus 100 includes a receiving unit 101, a processing unit 102, and a transmitting unit 103.
  • the receiving unit 101 is configured to receive a first packet that is sent by the packet sending device by using the TCP, where the first packet is the last packet sent by the packet sending device in the first TCP sending window; Receiving, by the packet sending device, a second packet sent by using a TCP, where the second packet is a first packet sent by the packet sending device in a second TCP sending window, where the second packet is sent Contains the Flowlet start tag.
  • the second TCP transmission window is a TCP transmission window adjacent to the first TCP transmission window, and the message sending device receives the correct ACK confirmation of the message sent in the first TCP transmission window. Sending a message in the second TCP transmission window.
  • the processing unit 102 is configured to determine an interface according to the feature information of the first packet received by the receiving unit 101 and a hash algorithm, and create a first identifier based on the Flowlet start tag included in the second packet. Flowlet flow table entry.
  • the sending unit 103 is configured to forward the first packet by using the outbound interface determined by the processing unit 102, and forward the second according to the first Flowlet flow table entry created by the processing unit 102.
  • the message has the same feature information between the second message and the first message.
  • the receiving unit 101 is further configured to: after the first flowlet flow table entry is created, receive the third packet sent by the packet sending device by using the TCP, where the third packet is sent by using the third packet. The last message sent by the device in the second TCP transmission window, the third message containing a Flowlet End Tag.
  • the processing unit 102 is further configured to delete the first Flowlet flow table entry based on the Flowlet end tag included in the third packet received by the receiving unit 101.
  • the receiving unit 101 is further configured to: after the processing unit 102 determines that the third packet sent by the packet sending device by using the TCP includes the Flowlet End Tag, and receives the first sent by the packet sending device. And a fourth packet, where the fourth packet is a first packet sent by the packet sending device in a third TCP sending window, where the fourth packet includes a Flowlet start tag.
  • the processing unit 102 is further configured to: create, according to the Flowlet start tag included in the fourth packet received by the receiving unit 101, a second Flowlet flow table entry; the sending unit 103 further uses The fourth packet is forwarded according to the second flowlet flow table entry created by the processing unit 102.
  • the processing unit 102 may be a processor, and the receiving unit 101 and the sending unit 103 may be communication interfaces.
  • the communication interface is a collective name and may include one or more interfaces.
  • the load balancing processing apparatus 100 When the processing unit 102 is a processor, and the receiving unit 101 and the transmitting unit 103 are communication interfaces, the load balancing processing apparatus 100 provided by the embodiment of the present application may have the structure as shown in FIG. 7.
  • the load balancing processing device 100 shown in FIG. 7 may be a packet forwarding device, and the packet forwarding device may be a load balancing device, or may be a switch or a router.
  • FIG. 7 is a schematic structural diagram of a packet forwarding device 1000 according to an embodiment of the present application.
  • the message forwarding device 1000 adopts a general computer system structure, including a bus, a processor 1001, a memory 1002, and a communication interface 1003.
  • the program code for executing the solution of the embodiment of the present application is stored in the memory 1002, and is processed by the processor. 1001 to control execution.
  • the program stored in the memory 1002 is used by the instruction processor 1001 to perform the load balancing processing method of the foregoing embodiment, including: receiving, by the communication interface 1003, a first packet sent by the packet sending device by using the TCP, where the first packet is The last message sent by the message sending device in the first TCP sending window. Determining an interface according to the feature information of the first packet and a hash algorithm, and forwarding the first packet by using the outbound interface.
  • the second message includes a Flowlet start tag
  • the second TCP send window is a TCP send window adjacent to the first TCP send window
  • the message sending device receives the message in the first TCP send window.
  • the message is sent in the second TCP transmission window.
  • the data forwarding device creates a first flowlet flow table entry based on the flowlet start tag included in the second packet, and forwards the second packet according to the created first flowlet flow table entry.
  • the second message has the same feature information as the first message.
  • the program stored in the memory 1002 is further used by the instruction processor 1001 to receive, by the communication interface 1003, the third report sent by the packet sending device by using the TCP after creating the first Flowlet flow table entry.
  • the third packet is the last packet sent by the packet sending device in the second TCP sending window, where the third packet includes a Flowlet end tag, and is based on the third packet.
  • the flowlet end tag included in the first flowlet flow table entry is deleted.
  • the program stored in the memory 1002 is further used by the instruction processor 1001 to determine that the third message sent by the message sending device includes a Flowlet end tag, and then communicates
  • the interface 1003 receives the fourth packet sent by the packet sending device by using the TCP, and the fourth packet is the first packet sent by the packet sending device in the third TCP sending window, and the fourth packet
  • the message includes a flow start tag, and based on the flowlet start tag included in the fourth packet, creating a second flowlet flow table entry, and forwarding the according to the created second flowlet flow table entry Fourth message.
  • load balancing processing device 100 and the packet forwarding device 1000 provided by the embodiments of the present application have the functions of the packet forwarding device involved in the foregoing embodiment.
  • the embodiments of the present application are not described herein again.
  • bus involved above may include a path for transferring information between various components of the computer.
  • the processor may be a general purpose central processing unit (CPU), a microprocessor, an application specific integrated circuit (ASIC), or one or more integrated circuits for controlling the execution of the program of the embodiments of the present application.
  • CPU central processing unit
  • ASIC application specific integrated circuit
  • One or more memories included in the computer system which may be read-only memory (ROM) or other types of static storage devices that can store static information and instructions, random access memory (RAM) or Other types of dynamic storage devices that store information and instructions may also be disk storage. These memories are connected to the processor via a bus.
  • any device such as transceiver can be used to communicate with other devices or communication networks, such as Ethernet, Radio Access Network (RAN), Wireless Local Area Network (WLAN), etc.
  • RAN Radio Access Network
  • WLAN Wireless Local Area Network
  • a memory such as a RAM, stores an operating system and a program for executing the aspects of the embodiments of the present application.
  • the operating system is a program that controls the running of other programs and manages system resources.
  • the embodiment of the present application further provides a storage medium, configured to store computer software instructions used by the load balancing processing device and the packet forwarding device, and includes a method for performing the user read/write request scheduling method related to the first aspect. program.

Landscapes

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

Abstract

L'invention concerne un procédé et un appareil de traitement d'équilibrage de charge Dans le procédé de traitement d'équilibrage de charge, un dispositif d'acheminement de paquets reçoit un premier paquet envoyé par un dispositif d'envoi de paquets à l'aide d'un protocole de commande de transport (TCP), et détermine une interface sortante selon des informations caractéristiques du premier paquet et un algorithme de hachage, et transmet le premier paquet par l'intermédiaire de l'interface sortante. Le dispositif d'acheminement de paquets reçoit un second paquet envoyé par le dispositif d'envoi de paquets à l'aide du TCP, et crée une première entrée de table de flux Flowlet selon un identifiant de départ Fowlet compris dans le second paquet, et transfère le second paquet selon la première entrée de table de flux Flowlet établie. Au moyen du procédé, un mode de sélection de chemin basé sur le flux est converti en un mode de chemin de trajet basé sur un mécanisme de Fowlet dans un cas d'absence de désorde.
PCT/CN2017/118652 2016-12-30 2017-12-26 Procédé et appareil de traitement d'équilibrage de charge WO2018121535A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201611264145.8 2016-12-30
CN201611264145.8A CN108270687B (zh) 2016-12-30 2016-12-30 一种负载均衡处理方法及装置

Publications (1)

Publication Number Publication Date
WO2018121535A1 true WO2018121535A1 (fr) 2018-07-05

Family

ID=62710279

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/118652 WO2018121535A1 (fr) 2016-12-30 2017-12-26 Procédé et appareil de traitement d'équilibrage de charge

Country Status (2)

Country Link
CN (1) CN108270687B (fr)
WO (1) WO2018121535A1 (fr)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109040323A (zh) * 2018-10-19 2018-12-18 盛科网络(苏州)有限公司 负载均衡装置
CN111200558A (zh) * 2018-11-19 2020-05-26 华为技术有限公司 一种flowlet负载分担方法及装置
CN112866115A (zh) * 2020-12-31 2021-05-28 杭州迪普科技股份有限公司 一种实现透明串接的方法、装置、电子设备及存储介质
CN113542131A (zh) * 2021-05-25 2021-10-22 新华三信息安全技术有限公司 一种报文转发方法及装置
WO2022184267A1 (fr) * 2021-03-05 2022-09-09 Huawei Technologies Co., Ltd. Système et procédé de transmission d'un paquet de données

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593134B2 (en) 2018-01-26 2023-02-28 Nicira, Inc. Throttling CPU utilization by implementing a rate limiter
US20210224138A1 (en) * 2020-01-21 2021-07-22 Vmware, Inc. Packet processing with load imbalance handling
CN116325708A (zh) * 2020-09-30 2023-06-23 华为技术有限公司 一种数据处理、传输方法及相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102904825A (zh) * 2012-09-27 2013-01-30 杭州华三通信技术有限公司 一种基于Hash的报文传输方法和设备
CN104168201A (zh) * 2014-08-06 2014-11-26 福建星网锐捷网络有限公司 一种多路径转发的方法及装置
US20150124611A1 (en) * 2013-11-05 2015-05-07 Insieme Networks, Inc. Dynamic flowlet prioritization
US20150127797A1 (en) * 2013-11-05 2015-05-07 Cisco Technology, Inc. System and method for multi-path load balancing in network fabrics

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9502111B2 (en) * 2013-11-05 2016-11-22 Cisco Technology, Inc. Weighted equal cost multipath routing
CN104580002B (zh) * 2015-01-14 2017-07-28 盛科网络(苏州)有限公司 大流负载均衡转发方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102904825A (zh) * 2012-09-27 2013-01-30 杭州华三通信技术有限公司 一种基于Hash的报文传输方法和设备
US20150124611A1 (en) * 2013-11-05 2015-05-07 Insieme Networks, Inc. Dynamic flowlet prioritization
US20150127797A1 (en) * 2013-11-05 2015-05-07 Cisco Technology, Inc. System and method for multi-path load balancing in network fabrics
CN104168201A (zh) * 2014-08-06 2014-11-26 福建星网锐捷网络有限公司 一种多路径转发的方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SHAN SINHA ET AL.: "Harnessing TCP's Burstiness with Flowlet Switching", ACM HOT TOPICS IN NETWORKS- (HOTNETS, 30 November 2004 (2004-11-30), pages 1 - 6, XP055509598 *
SRIKANTH KANDULA ET AL.: "Dynamic Load Balancing Without Packet Reordering", ACM SIGCOMM COMPUTER COMMUNICATION REVIEW, vol. 37, no. 2, 30 April 2007 (2007-04-30), pages 51 - 62, XP058355011 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109040323A (zh) * 2018-10-19 2018-12-18 盛科网络(苏州)有限公司 负载均衡装置
CN109040323B (zh) * 2018-10-19 2021-03-16 盛科网络(苏州)有限公司 负载均衡装置
CN111200558A (zh) * 2018-11-19 2020-05-26 华为技术有限公司 一种flowlet负载分担方法及装置
CN111200558B (zh) * 2018-11-19 2021-05-18 华为技术有限公司 一种flowlet负载分担方法及装置
CN112866115A (zh) * 2020-12-31 2021-05-28 杭州迪普科技股份有限公司 一种实现透明串接的方法、装置、电子设备及存储介质
WO2022184267A1 (fr) * 2021-03-05 2022-09-09 Huawei Technologies Co., Ltd. Système et procédé de transmission d'un paquet de données
CN113542131A (zh) * 2021-05-25 2021-10-22 新华三信息安全技术有限公司 一种报文转发方法及装置
CN113542131B (zh) * 2021-05-25 2023-08-22 新华三信息安全技术有限公司 一种报文转发方法及装置

Also Published As

Publication number Publication date
CN108270687B (zh) 2020-08-25
CN108270687A (zh) 2018-07-10

Similar Documents

Publication Publication Date Title
WO2018121535A1 (fr) Procédé et appareil de traitement d'équilibrage de charge
WO2018210117A1 (fr) Procédé de régulation de congestion, dispositif de réseau et dispositif de commande d'interface réseau associé
US10237153B2 (en) Packet retransmission method and apparatus
WO2018086076A1 (fr) Procédé et appareil de transmission de données
WO2019029318A1 (fr) Procédé de notification de congestion de réseau, nœud mandataire et dispositif informatique
US8953631B2 (en) Interruption, at least in part, of frame transmission
WO2018113373A1 (fr) Procédé et dispositif de transmission de données
WO2019134383A1 (fr) Procédé pour commander une congestion de réseau, dispositif d'accès et support de stockage lisible par ordinateur
WO2021238025A1 (fr) Procédé de commande d'encombrement du réseau et produit associé
WO2020078448A1 (fr) Procédé et appareil de traitement de messages
WO2016033948A1 (fr) Procédé de gestion du trafic par fenêtres de transmission, et terminal
US11777846B2 (en) Ultra reliable segment routing
US10461886B2 (en) Transport layer identifying failure cause and mitigation for deterministic transport across multiple deterministic data links
CN109218222B (zh) 一种实现发送端调速的方法、装置和系统
US10897725B2 (en) System and method for managing data transfer between two different data stream protocols
WO2020156569A1 (fr) Procédé et dispositif d'envoi de rapport d'état rlc et support d'informations
CN111224888A (zh) 发送报文的方法及报文转发设备
EP3490293B1 (fr) Procédé de réception de données, procédé d'envoi de données, dispositif de réception et système
WO2016202224A1 (fr) Procédé et dispositif d'ajustement de paramètre de couche de transport
WO2022143468A1 (fr) Procédé, appareil et système de transmission de données, et support de stockage
EP3297210B1 (fr) Procédé et dispositif de réglage du mode de transmission de paquets
WO2012146139A1 (fr) Procédé de filtrage de message et dispositif d'accès
WO2021101640A1 (fr) Procédé et appareil de nettoyage de paquets pour la distribution de paquets dans les temps
CN108337171B (zh) 与dtn网络兼容的ip分组转发方法、网络节点及存储介质
WO2018133784A1 (fr) Procédé, dispositif et système de traitement de paquets

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17885902

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17885902

Country of ref document: EP

Kind code of ref document: A1