Data transmission method, communication equipment and computer readable storage medium

By determining a load balancing strategy set that matches the data receiving side's out-of-order reordering capability, the problem that network nodes cannot perceive the receiving side's out-of-order reordering capability is solved, and efficient service streaming quality assurance is achieved.

CN120455375APending Publication Date: 2025-08-08ZTE CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510741329.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-06-04
Publication Date
2025-08-08

AI Technical Summary

Technical Problem

When existing network nodes perform load balancing, they cannot perceive the unsequential reordering capabilities of the service flow receiver, resulting in the load balancing policy that does not match the receiver, affecting the quality of service flow transmission.

Method used

By determining a set of load balancing policies that match the data receiving side's out-of-order reordering capabilities, we ensure that the load balancing policies of the network node match the packets out-of-order reordering capabilities of the receiving side, and a flexible load balancing mechanism is used to send or forward business messages.

Benefits of technology

Ensure that the data receiving side can correctly restore service messages, ensure transmission quality such as low latency and order preservation, improve network bearing efficiency, and avoid unnecessary retransmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120455375A_ABST
    Figure CN120455375A_ABST
Patent Text Reader

Abstract

The invention discloses a data transmission method, communication equipment and a computer readable storage medium, and belongs to the technical field of communication, and the method comprises the steps: determining a first load balancing strategy set; sending or forwarding a service message based on the first load balancing strategy set; wherein the first load balancing strategy set comprises at least one load balancing strategy which is allowed to be used when the service message is forwarded, and each load balancing strategy in the first load balancing strategy set is matched with the message out-of-order rearrangement capability of a data receiving side.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application belongs to the field of communication technology, and in particular relates to a data transmission method, a communication device, and a computer-readable storage medium. Background Art

[0002] Related technologies have proposed various load balancing mechanisms, such as Equal-Cost Multipath (ECMP) and Weighted Cost Multipath (WCMP), to improve data transmission performance, such as optimizing resource utilization.

[0003] However, since network nodes such as routers cannot perceive the message reordering capability of the service flow receiving end when performing load balancing locally, the load balancing mechanism performed by the network node may not match the reordering capability of the service flow receiving end, affecting the service flow transmission quality. Summary of the Invention

[0004] The purpose of the embodiments of the present application is to provide a data transmission method, communication equipment and computer-readable storage medium, which can match the load balancing mechanism executed by the network node with the out-of-order reordering capability of the service flow receiving end to ensure the quality of service flow transmission.

[0005] In a first aspect, a data transmission method is provided, including: determining a first load balancing policy set; sending or forwarding a service message based on the first load balancing policy set; wherein the first load balancing policy set includes at least one load balancing policy allowed to be used when forwarding the service message, and each load balancing policy in the first load balancing policy set matches the message out-of-order reordering capability of the data receiving side.

[0006] In a second aspect, a data transmission method is provided, including: receiving a business message from a data sending side; determining that the business message carries second information, the second information being used to indicate a first load balancing policy set that is allowed to be used; forwarding the business message based on the first load balancing policy set; wherein the first load balancing policy set includes at least one load balancing policy that is allowed to be used when forwarding the business message, and each load balancing policy in the first load balancing policy set matches the message out-of-order reordering capability of the data receiving side.

[0007] In a third aspect, a data transmission device is provided, comprising: a processing module for determining a first load balancing policy set; a transmission module for sending or forwarding business messages based on the first load balancing policy set; wherein the first load balancing policy set includes at least one load balancing policy allowed to be used when forwarding the business message, and each load balancing policy in the first load balancing policy set matches the message out-of-order reordering capability of the data receiving side.

[0008] In a fourth aspect, a data transmission device is provided, including: a transmission module for receiving a business message from a data sending side; a processing module for determining that the business message carries second information, and the second information is used to indicate a first load balancing policy set that is allowed to be used; the transmission module is also used to forward the business message based on the first load balancing policy set; wherein the first load balancing policy set includes at least one load balancing policy allowed to be used when forwarding the business message, and each load balancing policy in the first load balancing policy set matches the message out-of-order reordering capability of the data receiving side.

[0009] In a fifth aspect, an embodiment of the present application provides a communication device, comprising: a memory, a processor, and computer-executable instructions stored on the memory and executable on the processor, wherein the computer-executable instructions, when executed by the processor, implement the steps of the method described in the first aspect or the second aspect. In a sixth aspect, an embodiment of the present application provides a computer-readable storage medium, which is used to store computer-executable instructions. When the computer-executable instructions are executed by a processor, the steps of the method described in the first aspect or the second aspect are implemented. In an embodiment of the present application, by determining a first load balancing policy set and then sending or forwarding service messages based on the first load balancing policy set, the load balancing policy adopted by the network node can be matched with the message reordering capability of the data receiving side, thereby ensuring that the data receiving side can correctly recover the service message and ensuring the transmission quality of the service message. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are only some embodiments recorded in this application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative labor.

[0011] Figure 1This is one of the structural diagrams of a data transmission system provided by an exemplary embodiment of the present application.

[0012] Figure 2 This is one of the flowcharts of a data transmission method provided by an exemplary embodiment of the present application.

[0013] Figure 3 This is the second flowchart of the data transmission method provided by an exemplary embodiment of the present application.

[0014] Figure 4a This is the second structural diagram of the data transmission system provided by an exemplary embodiment of the present application.

[0015] Figure 4b This is one of the schematic diagrams of the message structure carrying the first information provided by an exemplary embodiment of the present application.

[0016] Figure 5a It is a schematic diagram of the process of obtaining the first information provided by an exemplary embodiment of the present application.

[0017] Figure 5b This is the second schematic diagram of the message structure carrying the first information provided by an exemplary embodiment of the present application.

[0018] Figure 5c This is the third schematic diagram of the message structure carrying the first information provided by an exemplary embodiment of the present application.

[0019] Figure 5d This is the third structural diagram of the data transmission system provided by an exemplary embodiment of the present application.

[0020] Figure 6a This is the fourth structural diagram of the data transmission system provided by an exemplary embodiment of the present application.

[0021] Figure 6b It is a schematic diagram of the message structure carrying the second information provided by an exemplary embodiment of the present application.

[0022] Figure 7 This is the third flowchart of the data transmission method provided by an exemplary embodiment of the present application.

[0023] Figure 8a This is the fourth flowchart of the data transmission method provided by an exemplary embodiment of the present application.

[0024] Figure 8b This is the fifth flowchart of the data transmission method provided by an exemplary embodiment of the present application.

[0025] Figure 8c This is the sixth flowchart of the data transmission method provided by an exemplary embodiment of the present application.

[0026] Figure 9 This is the seventh flowchart of the data transmission method provided by an exemplary embodiment of the present application.

[0027] Figure 10 This is one of the structural diagrams of a data transmission device provided by an exemplary embodiment of the present application.

[0028] Figure 11 This is the second structural diagram of the data transmission device provided by an exemplary embodiment of the present application.

[0029] Figure 12 It is a structural diagram of a communication device provided by an exemplary embodiment of the present application. DETAILED DESCRIPTION

[0030] In order to enable those skilled in the art to better understand the technical solutions in this application, the technical solutions in the embodiments of this application will be clearly and completely described below in conjunction with the drawings in the embodiments of this application. Obviously, the described embodiments are only part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts should fall within the scope of protection of this application.

[0031] As network scale expands and service demands grow, wide area networks (WANs) are increasingly adopting redundant path technologies (such as node dual-homing, ring networking, and spine-leaf architectures) to improve network reliability. However, to avoid loops, traditional WANs typically rely on loop-free routing mechanisms (such as the longest prefix match rule). This results in inadequate utilization of redundant path resources. For example, the average link load rate is consistently limited to 30%-40%, resulting in wasted bandwidth. To optimize resource utilization, various load balancing mechanisms have been proposed.

[0032] For example, flow-level load balancing technologies such as ECMP and WCMP can evenly distribute traffic flows across multiple paths using hashing algorithms, thereby ensuring the order of messages within the flows. However, this technology suffers from hash polarization, which leads to uneven load distribution across paths and makes effective balancing difficult in scenarios with a small number of "elephant flows" (i.e., high-bandwidth, long-connection flows). To address this, related technologies have further developed more fine-grained load balancing strategies, such as congestion-aware flow-level switching, flowlet load balancing, and packet-level load balancing (such as packet spraying).

[0033] Among them, the congestion-aware flow-level switching strategy can dynamically switch the transmission path of the flow, but it may cause message disorder, and the receiving end needs to have basic reordering capabilities.

[0034] For the Flowlet load balancing strategy, it divides the stream into fragments of time or message granularity and transmits them through different paths. Although it can alleviate hash polarization, the disorder problem between fragments significantly increases the cache pressure on the receiving end.

[0035] The packet spraying strategy distributes packets randomly or proportionally to multiple paths to maximize the load balancing effect, but the packets are most disordered and place strict demands on the reordering capabilities of the receiving end.

[0036] However, since network nodes cannot perceive the out-of-order reordering capability of the service flow receiver when performing load balancing locally, the adopted load balancing strategy is mismatched with the out-of-order reordering capability (or out-of-order recovery capability) of the receiver, affecting the service flow transmission quality. Figure 1 As shown, common Remote Direct Memory Access (RDMA) network cards are nearly incapable of handling out-of-order packets due to hardware limitations. However, Data Processing Unit (DPU) network cards or Transmission Control Protocol (TCP) hosts can achieve reordering through cache or protocol stacks. Furthermore, the complexity of multi-domain management in wide area networks results in varying load balancing capabilities supported by devices in different network domains (for example, some devices only support ECMP, while others support Flowlet or packet spraying load balancing strategies), making global policy coordination difficult.

[0037] To this end, the present application provides a data transmission solution that enables communication devices to adopt a load balancing strategy that matches the receiving end's message reordering capabilities. This ensures maximum global link utilization while also guaranteeing service flow transmission quality, such as low latency and order preservation, and improving network carrying efficiency. The following, in conjunction with the accompanying drawings, describes in detail the technical solutions provided by the embodiments of the present application through some embodiments and their application scenarios.

[0038] Figure 2 1 shows a flow chart of a data transmission method 200 provided in an embodiment of the present application. The method 200 can be executed by a communication device. In other words, the method 200 can be executed by software or hardware installed in the communication device. Figure 2 As shown, the method 200 may include but is not limited to the following steps.

[0039] Step S210: Determine a first load balancing policy set.

[0040] Step S220: Send or forward the service message based on the first load balancing policy set.

[0041] Among them, the communication device that determines the first load balancing policy set can be a data sending node that sends business messages (also called business flows or business flow messages), or it can be any network node that forwards the business messages, such as edge devices, gateway devices, routers, switches, configuration units in servers, etc., and there is no restriction here.

[0042] The first load balancing policy set includes at least one load balancing policy that the network node is allowed to use when forwarding the service message, and each load balancing policy in the first load balancing policy set matches the message reordering capability of the data receiving side. In other words, this embodiment can adopt a flexible load balancing mechanism, that is, the service message is sent or forwarded based on the first load balancing policy set that matches the message reordering capability of the data receiving side, so that while the load balancing policy is used to ensure the maximum global link utilization, the load balancing policy adopted by the network node can also match the message reordering capability of the data receiving side, ensuring that the data receiving side can correctly recover the service message, guaranteeing the service message transmission quality, such as low latency and order preservation, improving network carrying efficiency, and avoiding unnecessary retransmissions.

[0043] In this embodiment, the matching of each load balancing strategy in the first load balancing strategy set with the message out-of-order reordering capability of the data receiving side can be understood as: the data receiving side is capable of recovering the out-of-order situation caused when forwarding service messages based on each load balancing strategy in the first load balancing strategy set.

[0044] In some embodiments, the aforementioned first load balancing strategy set may include but is not limited to any one of the following 11)-12).

[0045] 11) Execute or not execute load balancing strategy.

[0046] In this embodiment, when the first load balancing policy set includes the non-implementation of a load balancing policy, it can be assumed that the data receiving side does not have the ability to reorder packets. Therefore, by "non-implementation of a load balancing policy" in this embodiment, it is possible to avoid the problem of service packets being out of order when a network node adopts a load balancing policy that is incompatible with the data receiving side's ability to reorder packets when forwarding service packets.

[0047] When the first load balancing strategy set includes the execution load balancing strategy, it can be considered that the data receiving side has the ability to reorder messages, and the types of the data receiving side's ability to reorder messages include flow-level load balancing, data packet-level load balancing, and flow segment-level load balancing, that is, the network node that forwards business messages adopts any load balancing strategy (such as flow-level load balancing, data packet-level load balancing, or flow segment-level load balancing) that can match the data receiving side's ability to reorder messages.

[0048] 12) Allowing execution of a specific type of load balancing strategy; wherein the specific type of load balancing strategy includes at least one of flow-level load balancing, packet-level load balancing, and flow segment-level load balancing.

[0049] Among them, considering that the data processing granularity of the flow-level load balancing is larger than the data processing granularity of the flow-segment-level load balancing, and the data processing granularity of the flow-segment-level load balancing is larger than the data processing granularity of the data packet-level load balancing, therefore, if the load balancing policy allowed to be executed is data packet-level load balancing, then flow-level load balancing and flow-segment-level load balancing can be allowed to be executed by default; if the load balancing policy allowed to be executed is flow-segment-level load balancing, then flow-level load balancing can be allowed to be executed by default.

[0050] In some embodiments, the data receiving side may include but is not limited to a data receiving node and / or a first network node, where the first network node is a network node located on the data receiving node side, such as a router, an edge device, a gateway device, etc.

[0051] Among them, for the case where the data receiving side includes the data receiving node, it can be understood that: this application can adopt a load balancing strategy that matches the message disorder reordering capability of the data receiving node to forward business messages, thereby controlling the degree of disorder during business message transmission, so that the data receiving node itself can reorder the received business messages.

[0052] For the case where the data receiving side includes a first network node, it can be understood that: the present application can adopt a load balancing strategy that matches the message out-of-order reordering capability of the first network node to forward business messages, so that the first network node can reorder the received business messages before sending them to the data receiving node, thereby ensuring the transmission quality of the business messages while reducing the data processing pressure of the data receiving node.

[0053] In some embodiments, for the case where the aforementioned data receiving side includes the data receiving node and the first network node, it can be understood that: the data receiving node and the first network node (such as a gateway) both have the ability to reorder messages, and the present application can adopt a load balancing strategy that matches the message reordering capability of the first network node to forward part of the business messages, and adopt a load balancing strategy that matches the message reordering capability of the data receiving node to forward another part of the business messages, so that the first network node and the data receiving node respectively reorder part of the business flow, such as the first network node can reorder part of the traffic that the data receiving node cannot reorder, and the traffic that the data receiving node can reorder is reordered by the data receiving node itself, thereby ensuring that the data receiving side can correctly restore the business message while reducing the reordering pressure of the first network node and the data receiving node.

[0054] Optionally, whether the first network node performs message reordering can be determined by preconfiguration (or default) or by capability negotiation between the data receiving node and the first network node, and is not limited here.

[0055] In some embodiments, there are multiple ways to determine the first load balancing policy set described in step S210, for example: Figure 3 As shown, its implementation may include Figure 3 The contents of steps S2101-S2102 shown are as follows.

[0056] Step S2101, obtain first information.

[0057] Step S2102: Determine the first load balancing policy set according to the first information.

[0058] The first information is used to indicate at least one of the following 21)-24).

[0059] 21) Whether the data receiving side has the ability to reorder messages out of order.

[0060] Among them, if the first information indicates that the data receiving side has the ability to reorder messages, the first load balancing policy set can be further determined according to the type of message reordering capability of the data receiving side shown in 22); otherwise, it is determined that the first load balancing policy set includes not executing the load balancing policy, or it is determined that the first load balancing policy set is an empty set.

[0061] 22) The type of message reordering capability possessed by the data receiving side, the type of message reordering capability including at least one of supporting message-level reordering, supporting stream segment-level reordering, and supporting data packet-level reordering.

[0062] Among them, when determining the first load balancing policy set, if the obtained first information indicates that the data receiving side supports flow segment level reordering, it can be determined that the first load balancing policy set includes the flow level load balancing and flow segment level load balancing.

[0063] If the acquired first information indicates that the data receiving side supports packet-level reordering, it can be determined that the first load balancing policy set includes packet-level load balancing, the flow-level load balancing, and flow-segment-level load balancing.

[0064] 23) Traffic characteristics corresponding to the business message.

[0065] Among them, if the traffic characteristic corresponding to the business message indicated by the first information is that the time interval between two adjacent flow segments of the business flow is greater than the first threshold, then regardless of whether the data receiving side has the ability to reorder messages, it can be determined that the first load balancing policy set includes flow segment level load balancing.

[0066] Optionally, the first threshold may be a pre-configured value, or the first threshold may also be determined according to the delay difference of the path characteristic corresponding to the service message, which is not limited here.

[0067] Among them, for the case where the first threshold is determined according to the delay difference of the path characteristics corresponding to the business message, the first threshold can be the delay difference of the path characteristics corresponding to the business message, or the first threshold can be the sum of the delay difference of the path characteristics corresponding to the business message and a predetermined offset value, and there is no restriction here.

[0068] 24) Path characteristics corresponding to the business message.

[0069] It is understandable that, for the information described in 22)-24) above, the first load balancing strategy can be determined based on one or more of the information in 22)-24) above. For example, assuming that the first information indicates that the data receiving side has a message reordering capability, the message reordering capability of the data receiving side supports flow segment-level reordering, and the traffic characteristic corresponding to the service message is that the flow segment interval of the service flow is greater than a first threshold, then it can be determined that the first load balancing strategy set includes flow segment-level load balancing.

[0070] In some embodiments, if valid first information has not been obtained when the service message is sent, the data sending node or the second network node may determine not to perform load balancing processing, that is, the first load balancing set includes not executing the load balancing strategy or the first load balancing set is an empty set, or the data sending node or the second network node may determine that the first load balancing set includes a default flow-level load balancing strategy, such as ordinary flow-level ECMP, WCMP, etc., to avoid the problem of disorder of the service message when the network node adopts a load balancing strategy that does not match the message disorder reordering capability of the data receiving side to forward the service message.

[0071] In some embodiments, assuming that the first information is used to indicate the aforementioned 21) and / or 22), then, depending on the different communication devices executing the embodiment 200 of the method of the present application, the implementation method of step S2101 may be different. The implementation process of step S2101 is explained below in combination with implementation method 1-implementation method 2, as follows.

[0072] Implementation 1 Assuming that the data transmission method (i.e., method embodiment 200 of the present application) is performed by a second network node, the method for obtaining the first information in step S2101 may include, but is not limited to: the second network node may receive a flooding message from a first network node, the flooding message including the first information. The first network node is a network node located on the data receiving node side, such as an edge device or a gateway.

[0073] Among them, in this implementation method 1, the link attributes or node attributes of the Intermediate System to Intermediate System (ISIS) can be extended to carry the message reordering capability supported by the data receiving side. For example, a field indicating the message reordering capability of the data receiving side (used to carry the first information) can be extended in the link attributes and flooded to each network node, such as the second network node, through ISIS.

[0074] For example, Figure 4a As shown in the figure, since the end-side devices (such as data sending nodes and data receiving nodes) generally do not support ISIS or Border Gateway Protocol (BGP), it is possible to connect the end-side devices and the border devices (such as Figure 4a In this case, the edge device 1 can first obtain the message reordering capability supported by the data receiving node through signaling (such as Figure 4aThe notification message shown) is received and stored in a local database; the message reordering capability supported by the data receiving node (i.e., the first information) is then flooded to each network node, such as the edge device 2, through a flooding message; finally, the edge device 2 can save the message reordering capability supported by the data receiving node in a local database for query by the data sending node, or for determining the first load policy set when forwarding the service message, etc., which is not limited here.

[0075] Optionally, when the edge device 2 floods the message reordering capability (ie, the first information) supported by the data receiving node to each network node through a flooding message, it may flood the first information to each network node through an IGP protocol (such as ISIS) extension.

[0076] In this embodiment, the ISIS protocol extension mode is used, and only the IS reachability type-length-value (Type-Length-Value, TLV, such as TLV type (Type) 22) needs to be extended.

[0077] For example, assuming that the first information is flooded by carrying a sub-TLV extension header, then the example of the edge device 2 flooding the first information may be as follows: Figure 4b As shown in Figure 2, a similar extension method can be used to extend Traffic Engineering (TE) attributes such as OSPF.

[0078] Implementation 2 Assuming that the data transmission method (ie, embodiment 200 of the method of the present application) is executed by a data sending node, the manner of obtaining the first information in step S2101 may include but is not limited to at least one of the following manners 1 to 3.

[0079] Mode 1: receiving a first message from a data receiving node, where the first message is used to establish a network connection between the data sending node and the data receiving node, and the first message carries the first information.

[0080] In this embodiment, the first message can be understood as a connection negotiation message. That is, in this embodiment, the field used to negotiate the message reordering capability can be extended in the connection negotiation message to carry the first information. For example, the data receiving node notifies the data sending node of the supported message reordering capability via a signaling message (i.e., the first message). Optionally, if the data receiving node initiates the connection establishment process, then the first message can be the connection establishment request message; if the data sending node initiates the connection establishment process, then the first message can be the connection establishment response message.

[0081] Here, take the data sending node initiating the connection establishment process as an example, Figure 5a As shown, the data sending node can send a connection establishment request message to the data receiving node to request the establishment of an end-to-end network connection; correspondingly, after receiving the connection establishment request message, the data receiving node can encapsulate or add the first information indicating the message out-of-order reordering capability of the data receiving node in a connection establishment response message when determining to establish a network connection, and send the connection establishment response message to the data sending node to complete the establishment of the end-to-end network connection and the acquisition of the first information.

[0082] In some embodiments, in addition to the aforementioned field that can be added to the connection negotiation message to negotiate the message reordering capability, a field can also be added to the transport layer protocol header (e.g., TCP, RDMA) to indicate the need to detect the message reordering capability of other nodes on the transmission path (e.g., the data receiving node, the first network node) (similar to the IETF SCONE working group). For example, a gateway device or a top of rack (TOR) switch on the data receiving side may parse the content of the transport layer protocol message, thereby enabling the data sending node to obtain the message reordering capability possessed by typical devices such as the gateway device or TOR switch on the data receiving side.

[0083] For example, when the data sending node and the data receiving node are establishing a network connection, considering that the handshake message can usually be extended to establish an exchange of node information, such as the maximum transmission unit (MTU) supported by the node, the cache size of the node, and the encryption algorithm supported by the node, the present application can further extend the signaling interaction message to carry the first information. Taking the TCP protocol as an example, when establishing a network connection through a three-way handshake, the data sending node can request to establish a network connection through a synchronization sequence number (SYN) message, and the data receiving node reply message (i.e., the first message) is marked with SYN and acknowledgment (ACK) to agree to establish the connection, and at the same time, Figure 5b As shown, the data receiving node can extend the first information in the 3-bit reserved bit in the reply message. Since TCP connection establishment can be active or passive, the locally supported reordering capability (i.e., the first information) can also be encapsulated in the message through the 3-bit reserved bit in the SYN message.

[0084] Similar to TCP, for the RoCEv2 protocol, RDMA link establishment messages and TCP messages can share the same basic encapsulation format, the difference is that the value of the OpCode field is different. For example, for the RoCEv2 protocol, Opcode is used to indicate the type of the current message, and Opcode has a total of 8 bits. Figure 5c As shown, in the basic encapsulation format, there are two reserved fields that can be reused, that is, the first information can be carried in any one of the two reserved fields.

[0085] It should be pointed out that the aforementioned field extension methods for carrying the first information in the embodiments of the present application are only examples, that is, the first information in the present application can also be obtained by extending other protocols or signaling messages, which is not limited here.

[0086] Mode 2: Requesting or querying the first information of the data receiving node from a second network node, where the second network node is a network node located at the data sending node side.

[0087] There are many ways to implement the first information stored on the second network node, for example, it can be implemented through implementation method 1, or it can be implemented through pre-configuration. Based on this, for the data sending node, it can be implemented as follows Figure 4a As shown, the first information is requested or queried from the second network node through signaling interaction, so as to be used for determining the subsequent first load balancing strategy.

[0088] Method 3: Request or query the central control device for the first information of the data receiving node.

[0089] Among them, Figure 5d As shown, method 3 can be understood as the existence of a centralized control plane when transmitting business messages, such as a central control device (also called a centralized controller), so that the data sending node and the second network node can obtain the message reordering capability of the data sending side by requesting to query the central control device.

[0090] For example, in the case of a centralized control plane in Option 3, network-wide information (such as the packet reordering capabilities of each device in the network) can first be transmitted to the control plane, i.e., the central control device, via Border Gateway Protocol-Link State (BGP-LS). End-users (such as data sending nodes, data receiving nodes, and edge devices) can then interact with the central control device through various flexible protocols to query the first information corresponding to the service message. For example, the popular southbound interface protocol NETCONF provides a Remote Procedure Call (RPC) interface that can be used to request queries and return the required information. Simply implementing this RPC interface within the central control device allows it to receive RPC calls and query requests from the end-users. The definition of the RPC interface based on the Yang model description can be, but is not limited to, as shown below.

[0091] rpc nb flag request input { leaf node-id {type string; leaf prefix-addr {type inet::l3address; output {leaf nb flag { type string;description "nb flag is used for flex network balance.".

[0092] In some embodiments, for the second network node and the data sending node, in addition to obtaining the first information through the aforementioned implementation method 1 and implementation method 2, the first information can also be obtained through various methods such as manual command line interface (CLI) configuration and preset configuration files.

[0093] In some embodiments, in addition to determining the message reordering capability of the data receiving side by obtaining the first information as mentioned above, other methods can also be used to determine it. For example, for typical device types such as Generic Stream Encapsulation (GSE) devices and GSE terminals, it can be assumed that they support flow segment level reordering; for another example, the message reordering capability supported by the data receiving side can also be determined based on the reordering component functions supported by the data receiving side (such as the number of physical queues, the number of registers used for reordering, and the reordering component structure type). For example, a reordering component that supports two physical queues can only support dividing the traffic into two flow segments within the round-trip time (RTT) time to meet the message line speed reordering requirements, that is, it supports flow segment level reordering, which is not restricted here.

[0094] In some embodiments, for the data sending node or the second network node, when it sends or forwards a service message based on a determined first load balancing policy set, the service message may also carry second information, and the second information is used to indicate the first load balancing policy set, so that subsequent network nodes can forward the service message according to the second information, so that the load balancing strategy adopted by the network node matches the message reordering capability of the data receiving side.

[0095] That is to say, when sending or forwarding business messages, the present application can add or encapsulate a tag (i.e., the second information) in the business message (such as the message header) for identifying the first set of load balancing strategies that are allowed to be used, so as to instruct the network node that subsequently forwards the business message to adopt a suitable load balancing mechanism for the received business message, such as a load balancing strategy that matches the message reordering capability of the data receiving side, thereby ensuring that when the data receiving side receives the business message, it has the corresponding business flow recovery capability (i.e., the message out-of-order reordering capability), thereby improving network transmission efficiency and ensuring the transmission quality of the business message.

[0096] In some embodiments, although the communication device that performs the second information encapsulation or addition operation can be any communication node that performs the service transmission, in order to ensure that each communication device that forwards the service message can adopt a suitable load balancing mechanism as much as possible, therefore, in this embodiment, the encapsulation or addition operation of the second information needs to be performed before the load balancing strategy function of all network nodes is executed, that is, Figure 6a As shown, in this embodiment, the communication device that performs the second information adding or encapsulating operation may be a data sending node at encapsulation position 1, or an edge device (such as a gateway node) at encapsulation position 2.

[0097] In some embodiments, the second information may be encapsulated or added to the header of the service message. For example, taking the IPv6 header as an example, the IPv6 header may be extended to carry the second information, such as by carrying the second information in the source address (SIP) field of the IPv6, the hop-by-hop (HBH) option extension header, or the flags field of the segment routing header (SRH) header, or in a separate segment identifier (SID) field, without limitation. For example, taking the service message as an SRv6 message, SRv6 technology is a popular technology and development trend. It can not only provide flexible path and local processing function definition, but also provide flexible message expansion capabilities. In the SRv6 message header, the field that can be used to carry the second information can be as follows: Figure 6b As shown. Considering that the source IPv6 address has 128 bits, and the general prefix field only occupies 64 bits to meet the needs of the entire network planning, the second information can be carried by using the bits in the source IPv6 address (such as Figure 6b Nb_flag shown), for example, 64 bits and 65 bits can be specified to carry the second information.

[0098] The Hop-by-Hop extension header field is a flexible extension method provided by IPv6 to implement the definition of hop-by-hop information. Hop-by-Hop provides an optional (Option) extension method, which can flexibly carry the second information (such as Figure 6b The Nb_flag shown in FIG. 4 is a block diagram of an IPv6 protocol, and the option is carried in the Hop-by-Hop extension header so that it can be parsed by every router that supports IPv6.

[0099] For SRv6 packets, the flags field in the SRH header has 8 bits, and 2 bits can be used to carry the second information (such as Figure 6b Optionally, if the remaining bits of the flags in the SRH header are insufficient, one bit may be borrowed to indicate that the current SRH header carries the Nb_flag SID, and the required second information may be carried through the Nb-flag SID.

[0100] Similar to the SRv6 message, for a Multiprotocol Label Switching (MPLS) message, the type of information carried in the inner label may be indicated based on a guide label and an extended guide label definition in the MPLS message, such as the information type being the second information.

[0101] In some embodiments, in addition to encapsulating the second information according to the aforementioned encapsulation method for encapsulation position 1 and encapsulation position 2, encapsulation of the second information may also be omitted. In this case, the field corresponding to the second information may be a default value or may not exist. In this case, when the second information is not encapsulated in the service message, the network node receiving the service message may adopt a default load balancing policy to forward the service message, or may not perform load balancing processing, without limitation herein.

[0102] In some embodiments, in addition to the aforementioned encapsulation of the second information, the aforementioned step S220 may be implemented differently depending on the type of communication device executing the method embodiment 200 of the present application. This is described below in conjunction with implementation 1 and implementation 2.

[0103] Implementation 1 Assuming that the data sending node sends the service message based on the first load balancing policy set, then after determining the first load balancing policy set, the data sending node can extend the tag field, such as the nb_flag tag field, in the service message to be sent to carry the second information indicating the first load balancing policy set.

[0104] Optionally, the second information may include one or more bits for indicating load balancing mechanisms of different granularities. For example, when the second information includes two bits and is used to indicate a fine-grained load balancing mechanism, the second information may be as follows.

[0105] If the second information=00, it can be used to indicate that load balancing is not performed, that is, the first load balancing set includes not performing load balancing or the first load balancing set is an empty set.

[0106] If the second information = 01, it can be used to indicate that only flow-level load balancing is allowed, that is, the first load balancing set includes flow-level load balancing.

[0107] If the second information=10, it can be used to indicate that flow segment level load balancing and flow level load balancing are allowed, that is, the first load balancing set includes flow segment level load balancing and flow level load balancing.

[0108] If the second information = 11, it can be used to indicate that packet-level load balancing, flow segment-level load balancing and flow-level load balancing are allowed, that is, the first load balancing set includes packet-level load balancing, flow segment-level load balancing and flow-level load balancing.

[0109] In some embodiments, in addition to extending the tag field in the service message to be sent to carry the second information, the length of the tag field may be increased, such as by adding one or more bits, so as to further indicate relevant information about each policy in the first load balancing set while indicating the first load balancing policy set through the second information. For example, when the first load balancing set includes a flow segment-level load balancing policy, the size information of the flow segment may be further indicated; for another example, when the first load balancing set includes a data packet-level load balancing policy, the size information of the data packet may be further indicated, etc., and this is not limited here.

[0110] It can be understood that the packaging or adding method of the second information can be referred to the above description and will not be repeated here.

[0111] Implementation 2 Assuming that the second network node sends service packets based on the first load balancing policy set, then, after determining the first load balancing policy set, the second network node may, when receiving the service packet from the data sending node, add the second information to the service packet and forward the service packet based on the first load balancing policy set. In other words, after determining the first load balancing policy set, the second network node, in addition to adding or encapsulating the second information to the received service packet to instruct subsequent network nodes to perform load balancing according to the second information, also needs to forward the service packet according to the load balancing policy in the first load balancing policy set.

[0112] The way in which the second network node encapsulates the second information is similar to the way in which the data sending node in the aforementioned implementation method 1 encapsulates the second information, and will not be repeated here.

[0113] In some embodiments, considering that the first load balancing policy set determined by the data sending node matches the message reordering capability of the data receiving node but does not match the message reordering capability of the second network node, and the receiving end performs message reordering by the second network node, then in this case, this embodiment also provides a second information modification mechanism to facilitate the second network node to modify the load balancing mechanism indication information in the received service message so that it matches the message reordering capability of the first network node.

[0114] That is, when the second network node forwards a service message based on the determined first load balancing policy set, after receiving the service message from the data sending side, if the service message carries third information, and the third information is used to indicate a second load balancing policy set that matches the out-of-order reordering capability of the data receiving node, the second network node may modify the third information carried in the service message to the second information based on the first load balancing policy set; and finally forward the service message based on the first load balancing policy set. The second load balancing policy set is determined by the data sending node and matches the message out-of-order reordering capability of the data receiving node.

[0115] In some embodiments, for any network node that forwards business messages, after receiving a business message from the data sending side, it can first determine whether the business message carries second information, and the second information is used to indicate the first load balancing policy set allowed to be used; and if the business message carries the second information, the business message is forwarded based on the first load balancing policy set.

[0116] The first load balancing policy set includes at least one load balancing policy allowed to be used when forwarding the service message, and each load balancing policy in the first load balancing policy set matches the message reordering capability of the data receiving side.

[0117] In some embodiments, the network node may forward the service packets based on the first load balancing policy set in various ways. For example, the network node may first determine a locally supported third load balancing policy set; then determine a target load balancing policy based on the intersection of the first load balancing policy set and the third load balancing policy set; and finally forward the service packets based on the target load balancing policy, thereby ensuring that the load balancing policy used matches the packet reordering capability of the data receiving side.

[0118] Optionally, the target load balancing strategy is any one in the intersection. That is, when the network node determines that the intersection includes multiple load balancing strategies, it can select any one from the multiple load balancing strategies as the target load balancing strategy.

[0119] Alternatively, the target load balancing policy is the load balancing policy with the highest priority in the intersection. The priority of the load balancing policy can be determined based on the data processing granularity corresponding to the load balancing policy. For example, a fine-grained load balancing policy has a higher priority than a coarse-grained load balancing policy, such as packet-level load balancing policy > flow-segment-level load balancing policy > flow-level load balancing policy > no load balancing policy.

[0120] Exemplarily, assuming that the network node only supports flow segment level load balancing strategy, that is, the third load balancing strategy set includes flow segment level load balancing strategy, and the second information indicates that the first load balancing strategy set includes data packet level load balancing strategy, flow segment level load balancing strategy and flow level load balancing strategy, then the network node can determine that the intersection of the first load balancing strategy set and the third load balancing strategy set is {flow segment level load balancing strategy, flow level load balancing strategy}, and then select one from the intersection as the target load balancing strategy to forward the service message, thereby ensuring that the load balancing strategy used matches the message out-of-order reordering capability of the data receiving side.

[0121] The reason why the intersection in the aforementioned example includes the flow-level load balancing policy is that when the network node supports the flow-segment-level load balancing policy, it is implicitly or implicitly indicated that the network node also supports the flow-level load balancing policy. In other words, when a network node currently supports a fine-grained load balancing policy, it is implicitly or implicitly indicated that it also supports a coarser-grained load balancing policy.

[0122] In some embodiments, if the network node determines that the service message does not carry the second information or the first load balancing policy set indicated by the second information is an empty set, the network node may forward the service message based on a predetermined method. The predetermined method may include not performing load balancing on the service message or adopting a flow-level load balancing policy, thereby avoiding or reducing the degree of out-of-order transmission of the service message and improving the transmission quality of the data.

[0123] In this embodiment, the proposed flexible load balancing mechanism based on the second information indication can help network nodes make correct load balancing decisions without the need to maintain the status of each flow, thereby improving network transmission efficiency and overall bandwidth utilization, and ensuring the transmission reliability of business messages.

[0124] Based on the description of the aforementioned method embodiment 200, for ease of understanding, the implementation process of the data transmission solution provided in this application is exemplarily introduced below with reference to examples, as follows.

[0125] Example 1 like Figure 7 As shown, assuming that the acquisition of the first information and the encapsulation of the second information are performed by the data sending node, the data transmission process provided in this example 1 is as follows.

[0126] Step S701: The data sending node obtains first information.

[0127] The first information is used to indicate at least one of the following a)-d).

[0128] a) Whether the data receiving side has the ability to reorder messages out of order.

[0129] b) The type of message reordering capability possessed by the data receiving side, the type of message reordering capability including at least one of supporting message-level reordering, supporting stream segment-level reordering, and supporting data packet-level reordering.

[0130] c) Traffic characteristics corresponding to the service message.

[0131] d) Path characteristics corresponding to the business message.

[0132] Step S702: The data sending node determines a first load balancing policy set according to the first information.

[0133] Step S703: The data sending node determines second information according to the first load balancing policy set, and encapsulates the second information in a message header of the service message.

[0134] The second information is used to indicate the first load balancing policy set.

[0135] Step S704: The data sending node sends the service message carrying the second information.

[0136] Step S705: When any network node in the service transmission path receives a service message, it extracts the second information from the service message.

[0137] Step S706: The network node extracts a third load balancing policy set supported locally.

[0138] Step S707: The network node determines the intersection of the first load balancing policy set and the third load balancing policy set.

[0139] In step S708, the network node sorts the load balancing policies in the intersection from fine to coarse (ie, priority), such as data packet level load balancing policy > flow segment level load balancing policy > flow level load balancing policy > no load balancing.

[0140] Step S709 : The network node selects the load balancing strategy with the highest priority in the intersection as the target load balancing strategy.

[0141] Step S710: The network node forwards the service message based on the target load balancing policy.

[0142] The implementation process of each step in this Example 1 can refer to the relevant description in the aforementioned method embodiment 200, and achieve the same or corresponding technical effects. In addition, this Example 1 may include but is not limited to the aforementioned steps S701-S710, and may include more or fewer steps than the aforementioned steps S701-S710.

[0143] Example 2 Let's denote the data sending node as host1, the data receiving nodes as host2, host3, and host4, and the network node forwarding service packets (e.g., flow1, flow2, and flow3) as the router. Host2 does not have the packet reordering capability, host3 has flowlet-level reordering capability, and host4 has flow-level reordering capability (also known as packet-level reordering capability). Host1 has obtained the packet reordering capability of the corresponding data receiving nodes (e.g., host2, host3, and host4) for flows 1, 2, and 3 through signaling interaction.

[0144] Next, assume that the network is configured as Figure 8aAs shown in the example, routers 1, 4, 5, and 7 have ECMP capabilities, meaning they support level-level load balancing policies or flow-level load balancing. Router 2 has flowlet-level load balancing capabilities (this example does not specify the specific processing method). Router 3 has packet-level load balancing capabilities, such as packet spraying (the specific spraying method is not specified). Therefore, when host 1 sends three service packets (flow 1, flow 2, and flow 3), if the second information (hereinafter referred to as nb_flag) is identified by two bits, the nb_flag corresponding to flow 1 can be "01", the nb_flag corresponding to flow 2 can be "10", and the nb_flag corresponding to flow 3 can be "11". That is, when host 1 sends flow 1, it can encapsulate nb_flag = 01 in the packet header of flow 1's service packet. When sending flow 2, it can encapsulate nb_flag = 10 in the packet header of flow 2's service packet. When sending flow 3, it can encapsulate nb_flag = 11 in the packet header of flow 3's service packet. Among them, "00" is used to indicate that no load balancing is performed, "01" is used to indicate that only flow-level load balancing is allowed, "10" is used to indicate that flow segment-level load balancing and flow-level load balancing are allowed, and "11" is used to indicate that packet-level load balancing, flow segment-level load balancing, and flow-level load balancing are allowed.

[0145] Based on this, during the transmission of flow1, flow2, and flow3, each router processes the message as follows.

[0146] For router1, since it only supports ECMP load balancing, when router1 receives flow1, flow2, and flow3, it can parse the nb_flag field of flow1, flow2, and flow3 messages respectively to determine that ECMP load balancing (i.e., flow-level load balancing) is allowed for all three service flows. Therefore, Router1 can perform a hash operation on the headers of the three service messages respectively and assume that flow1 and flow2 are sent to router2, and flow3 is sent to router3.

[0147] For router2, considering that it supports flowlet load balancing, when Router2 receives flow1, since the nb_flag (nb_flag=01) carried in the flow1 service message indicates that only ECMP load balancing is allowed, the flow1 message header is hashed and it is assumed that flow1 is sent to router4.

[0148] In addition, when router2 receives the flow2 message, it parses the nb_flag=10 carried in the message header of the flow2 business message, which allows flowlet load balancing. Then, the flow2 message can be shared and sent according to the flowlet load balancing mechanism, such as sending some flowlets to router4 and some flowlets to router5.

[0149] For router3, considering that it supports packet spraying load balancing, when Router3 receives flow3 message, it can parse and obtain nb_flag=11, which allows Router3 to perform packet spraying on flow3. Therefore, router3 can use the packet spraying mechanism to spray part of flow3 message directly to router6 and part to router7.

[0150] Routers 4 through 7 support only standard ECMP load balancing. Therefore, upon receiving a flow, they parse the nb-flag field in the flow's service message and use ECMP based on the result. Based on the routing entry, each router has only one route to the destination address, which is not detailed here.

[0151] For host2~host4, when they receive flow service messages, they can reorder them based on the service flow identifier (ID) and / or message sequence number. Since the degree of message disorder is controlled by the data transmission solution provided by this application (i.e., the flexible load balancing mechanism), the receiving end can restore the service message without unnecessary retransmission, thereby ensuring the overall transmission performance of the load balancing mechanism.

[0152] Example 3 Different from Example 2, in Example 3, since the first network node on the data receiving side (such as Figure 8b The router8 and router9 shown in FIG. 1 have the ability to rearrange data in an out-of-order manner, so the second network node on the data sending side (such as Figure 8b The router 1 shown in FIG. 2 and the first network node on the data receiving side negotiate the message reordering capability, and the second network node on the data sending side (such as router 1) determines and encapsulates the second information.

[0153] For example, router1 can obtain information such as the packet reordering capabilities of routers 8 and 9 through signaling interaction, and whether the traffic receiving end (such as host 2, host 3, and host 4) is connected to router 8 or router 9 (determined, for example, based on the destination IP address of the packet). When router1 receives service packets (such as flow 1, flow 2, and flow 3) from host 1, it can parse and match the received packets based on the information obtained during the interaction phase (such as the packet reordering capabilities of routers 8 and 9 and IP network segment information) to determine the second information corresponding to each flow service packet, namely nb_flag.

[0154] Assuming that router8 has the ability to reorder flows at the flowlet level and router9 has the ability to reorder flows at the flow level, the negotiation phase determines that flow1 and flow2 can be load balanced at the flowlet level, while flow3 can be load balanced by packet spraying.

[0155] Based on this, when service packets (such as flow1, flow2, and flow3) are sent from host1, the nb_flag is not encapsulated. Instead, router1 encapsulates the nb_flag for each flow based on the negotiation result. For example, nb_flag = 10 can be encapsulated for flow1 and flow2 packets, and nb_flag = 11 can be encapsulated for flow3 packets.

[0156] Router2 performs flowlet load balancing on flow1 and flow2 based on the nb_flag information carried by flow1 and flow2 (for example, nb_flag = 10).

[0157] Router3 performs packet spraying load balancing on flow3 based on the nb_flag information (such as nb_flag = 11) carried in the received flow3.

[0158] Router8 performs out-of-order detection and reordering on the received flow1 and flow2 service packets, and delivers the reordered flow1 to host2 and the reordered flow2 to host3. Router9 also performs out-of-order reordering on the received flow3 service packets and delivers the reordered flow3 to host4.

[0159] Example 3 Compared with Example 2 and Example 3, in Example 4, the network configuration is as follows: Figure 8cAs shown in the figure, assuming that the time interval between the flow segments of flow3 is greater than the path delay difference, host1 encapsulates the second information when sending the flow3 service message, such as nb_flag=10, host2 has the flowlet flow-level reordering capability, host3 does not have the reordering capability, router8 has the flowlet reordering capability, and router9 has the packet-level reordering capability.

[0160] When Host1 sends flow3 packets, it encapsulates nb_flag = 10. Router1 determines nb_flag = 11 based on Router9's out-of-order reordering capability. Therefore, it can modify nb_flag in flow3 packets to nb_flag = 11. For flow1 and flow2, Router1 can encapsulate nb_flag = 10 in both flows1 and flow2.

[0161] When flows 1 and 2 reach router 8, because router 8 has the flowlet reordering capability and flow 1 carries nb_flag = 10, router 8 can deliver flow 1 packets directly to host 2 without reordering them. It can also reorder flow 2 packets before delivering them to host 3. Since router 8 only reorders flow 2 packets, it can reduce the pressure on the gateway.

[0162] When flow3 reaches router9, router9 has the ability to reorder packets at the packet level and flow3 carries nb_flag=11, so router9 can reorder flow3 at the packet level and then deliver it to host4.

[0163] It can be understood that the process of determining the second information and the process of each router determining the load balancing strategy to be used in the above-mentioned Examples 2-3 can refer to the relevant description in the above-mentioned method embodiment 200. To avoid repetition, they will not be repeated here.

[0164] Figure 9 A flow chart of a data transmission method 900 provided in an embodiment of the present application is shown. The method 900 can be executed by a communication device (such as a network node that forwards service messages). In other words, the method 900 can be executed by software or hardware installed in the communication device. Figure 9 As shown, the method 900 may include but is not limited to the following steps.

[0165] Step S910: Receive a service message from the data sending side.

[0166] Step S920: Determine whether the service message carries second information, where the second information is used to indicate a first load balancing policy set that is allowed to be used.

[0167] Step S930: forward the service message based on the first load balancing policy set.

[0168] The first load balancing policy set includes at least one load balancing policy allowed to be used when forwarding the service message, and each load balancing policy in the first load balancing policy set matches the message reordering capability of the data receiving side.

[0169] In some embodiments, forwarding the service message based on the first load balancing policy set includes: determining a third load balancing policy set supported locally; determining a target load balancing policy based on the intersection of the first load balancing policy set and the third load balancing policy set; and forwarding the service message based on the target load balancing policy.

[0170] In some embodiments, the target load balancing strategy is any one of the intersections; or, the target load balancing strategy is a load balancing strategy with the highest priority in the intersection.

[0171] In some embodiments, the first load balancing policy set includes at least one of the following: executing or not executing the load balancing policy; allowing execution of a specific type of load balancing policy; wherein the specific type of load balancing policy includes at least one of flow-level load balancing, packet-level load balancing, and flow-segment-level load balancing.

[0172] In some embodiments, the method also includes: determining that the business message does not carry the second information or the first load balancing policy set indicated by the second information is an empty set; forwarding the business message based on a predetermined method; wherein the predetermined method includes any one of the following: not performing load balancing processing on the business message; adopting a flow-level load balancing strategy.

[0173] It can be understood that each step in the present method embodiment 900 has the same or corresponding technical features as the aforementioned method embodiment 200. Therefore, the implementation process of each step in the present method embodiment 900 can refer to the relevant description in the aforementioned method embodiment 200, and achieve the same or corresponding technical effects. To avoid repetition, it will not be repeated here.

[0174] Figure 10A structural schematic diagram of a data transmission device 1000 provided in an embodiment of the present application is shown, and the device 1000 includes: a processing module 1010, used to determine a first load balancing policy set; a transmission module 1020, used to send or forward business messages based on the first load balancing policy set; wherein, the first load balancing policy set includes at least one load balancing policy allowed to be used when forwarding the business message, and each load balancing policy in the first load balancing policy set matches the message out-of-order reordering capability of the data receiving side.

[0175] In some embodiments, the data receiving side includes a data receiving node and / or a first network node, and the first network node is a network node located at the data receiving node side.

[0176] In some embodiments, determining the first load balancing policy set includes: obtaining first information; determining the first load balancing policy set based on the first information; wherein the first information is used to indicate at least one of the following: whether the data receiving side has the ability to reorder messages; the type of message reordering capability possessed by the data receiving side, the type of message reordering capability including supporting at least one of message-level reordering, supporting flow segment-level reordering, and supporting data packet-level reordering; traffic characteristics corresponding to the business message; and path characteristics corresponding to the business message.

[0177] In some embodiments, when the data transmission device 1000 is applied to a data sending node, obtaining the first information includes at least one of the following: receiving a first message from a data receiving node, the first message is used to establish a network connection between the data sending node and the data receiving node, and the first message carries the first information; requesting or querying the first information of the data receiving node from a second network node, the second network node is a network node located on the side of the data sending node; requesting or querying the first information of the data receiving node from a central control device.

[0178] In some embodiments, when the data transmission device 1000 is applied to the second network node for execution, obtaining the first information includes: receiving a flooding message from the first network node, the flooding message including the first information; wherein the first network node is a network node located on the data receiving node side, and the second network node is a network node located on the data sending node side.

[0179] In some embodiments, the service message carries second information, and the second information is used to indicate the first load balancing policy set.

[0180] In some embodiments, forwarding the service message based on the first load balancing policy set includes: receiving the service message from the data sending node; adding the second information to the service message; and forwarding the service message based on the first load balancing policy set.

[0181] In some embodiments, the forwarding of the business message based on the first load balancing policy set includes: receiving the business message from the data sending node, the business message carrying third information, and the third information is used to indicate the second load balancing policy set; based on the first load balancing policy set, modifying the third information carried in the business message to the second information; and forwarding the business message based on the first load balancing policy set.

[0182] In some embodiments, the first load balancing policy set and / or the second load balancing policy set includes any of the following: executing or not executing the load balancing policy; allowing execution of a specific type of load balancing policy; wherein the specific type of load balancing policy includes at least one of flow-level load balancing, packet-level load balancing, and flow-segment-level load balancing.

[0183] The device 1000 provided in the embodiment of the present application can execute the various methods described in the method embodiment 200 above, and realize the functions and beneficial effects of the various methods described in the method embodiment above, which will not be repeated here.

[0184] Figure 11 A structural schematic diagram of a data transmission device 1100 provided in an embodiment of the present application is shown, and the device 1100 includes: a transmission module 1110, used to receive a business message from a data sending side; a processing module 1120, used to determine whether the business message carries second information, and the second information is used to indicate a first load balancing policy set that is allowed to be used; the transmission module 1110 is also used to forward the business message based on the first load balancing policy set; wherein the first load balancing policy set includes at least one load balancing policy allowed to be used when forwarding the business message, and each load balancing policy in the first load balancing policy set matches the message out-of-order reordering capability of the data receiving side.

[0185] In some embodiments, forwarding the service message based on the first load balancing policy set includes: determining a third load balancing policy set supported locally; determining a target load balancing policy based on the intersection of the first load balancing policy set and the third load balancing policy set; and forwarding the service message based on the target load balancing policy.

[0186] In some embodiments, the target load balancing strategy is any one of the intersections; or, the target load balancing strategy is a load balancing strategy with the highest priority in the intersection.

[0187] In some embodiments, the first load balancing policy set includes at least one of the following: executing or not executing the load balancing policy; allowing execution of a specific type of load balancing policy; wherein the specific type of load balancing policy includes at least one of flow-level load balancing, packet-level load balancing, and flow-segment-level load balancing.

[0188] In some embodiments, the processing module 1120 is also used to: determine that the business message does not carry the second information or the first load balancing policy set indicated by the second information is an empty set; and forward the business message based on a predetermined method; wherein the predetermined method includes any one of the following: not performing load balancing processing on the business message; adopting a flow-level load balancing strategy.

[0189] The device 1100 provided in the embodiment of the present application can execute the various methods described in the method embodiment 900 above, and realize the functions and beneficial effects of the various methods described in the method embodiment above, which will not be repeated here.

[0190] Figure 12 A schematic diagram of the hardware structure of a communication device implementing the embodiments of the present application is shown. Referring to this diagram, at the hardware level, the communication device includes a processor and, optionally, an internal bus, a network interface, and memory. The memory may include internal memory, such as high-speed random-access memory (RAM), and may also include non-volatile memory, such as at least one disk drive. Of course, the communication device may also include hardware required for other services.

[0191] The processor, network interface, and memory can be interconnected via an internal bus, such as an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus. These buses can be categorized as address buses, data buses, and control buses. For ease of illustration, the diagram uses only one bidirectional arrow, but this does not imply a single bus or type of bus.

[0192] The memory is used to store programs. Specifically, the program may include program code, which includes computer operating instructions. The memory may include internal memory and non-volatile memory, and provides instructions and data to the processor.

[0193] The processor reads the corresponding computer program from the non-volatile memory into the internal memory and then runs it, forming a device for locating the specified user at the logical level. The processor executes the program stored in the memory and is specifically used to perform: Figure 2 or Figure 3 or Figure 9 The methods disclosed in the illustrated embodiments implement the functions and beneficial effects of the various methods described in the foregoing method embodiments, which will not be described in detail here.

[0194] The above application Figure 2 or Figure 3 or Figure 9 The methods disclosed in the illustrated embodiments can be applied to or implemented by a processor. The processor may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be performed by hardware integrated logic circuits within the processor or by software instructions. The above processor can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. The methods, steps, and logic block diagrams disclosed in the embodiments of this application can be implemented or executed. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules within the decoding processor. The software module can be located in a storage medium well-known in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. The storage medium is located in the memory, and the processor reads the information in the memory and, in conjunction with its hardware, completes the steps of the above method.

[0195] The communication device can also execute the methods described in the above method embodiments and realize the functions and beneficial effects of the methods described in the above method embodiments, which will not be repeated here.

[0196] Of course, in addition to software implementation, the communication device of this application does not exclude other implementation methods, such as logic devices or a combination of software and hardware, etc. That is to say, the execution subject of the following processing flow is not limited to each logic unit, but can also be hardware or logic devices.

[0197] The embodiment of the present application further provides a computer-readable storage medium, wherein the computer-readable storage medium stores one or more programs, which, when executed by a communication device including multiple application programs, enable the communication device to execute Figure 2 or Figure 3 or Figure 9 The methods disclosed in the illustrated embodiments implement the functions and beneficial effects of the various methods described in the foregoing method embodiments, which will not be described in detail here.

[0198] The computer-readable storage medium includes a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.

[0199] The present application also provides a computer program product, which includes a computer program stored on a non-transitory computer-readable storage medium. The computer program includes program instructions. When the program instructions are executed by a computer, the following process is implemented: Figure 2 or Figure 3 or Figure 9 The methods disclosed in the illustrated embodiments implement the functions and beneficial effects of the various methods described in the foregoing method embodiments, which will not be described in detail here.

[0200] Computer-readable storage media include permanent and non-permanent, removable and non-removable media that can implement information storage by any method or technology. Information can be computer-readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer-readable storage media does not include transitory media such as modulated data signals and carrier waves.

[0201] In short, the above description is only a preferred embodiment of the present application and is not intended to limit the scope of protection of the present application. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present application shall be included in the scope of protection of the present application.

[0202] The systems, devices, modules, or units described in the above embodiments may be implemented by computer chips or entities, or by products having certain functions. A typical implementation device is a computer. Specifically, the computer may be, for example, a personal computer, a laptop computer, a cellular phone, a camera phone, a smartphone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.

[0203] It should also be noted that the terms "comprises," "includes," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, commodity, or apparatus that includes a series of elements includes not only those elements but also other elements not explicitly listed, or includes elements inherent to such process, method, commodity, or apparatus. In the absence of further limitations, an element defined by the phrase "comprises a ..." does not exclude the presence of other identical elements in the process, method, commodity, or apparatus that includes the element.

[0204] The various embodiments in this specification are described in a progressive manner. Similar parts between the various embodiments can be referred to in conjunction with each other. Each embodiment focuses on the differences between the other embodiments. In particular, the system embodiments are generally similar to the method embodiments, so the description is relatively simple. For relevant parts, refer to the description of the method embodiments.

Claims

1. A data transmission method, comprising: Determining a first load balancing policy set; Sending or forwarding service messages based on the first load balancing policy set; The first load balancing policy set includes at least one load balancing policy allowed to be used when forwarding the service message, and each load balancing policy in the first load balancing policy set matches the message reordering capability of the data receiving side.

2. The method according to claim 1, characterized in that The data receiving side includes a data receiving node and / or a first network node, and the first network node is a network node located at the data receiving node side.

3. The method according to claim 1, characterized in that The determining of the first load balancing strategy set includes: Obtaining first information; Determine the first load balancing strategy set according to the first information; The first information is used to indicate at least one of the following: Whether the data receiving side has the ability to reorder messages out of order; The type of message reordering capability possessed by the data receiving side, the type of message reordering capability including at least one of supporting message-level reordering, supporting flow segment-level reordering, and supporting data packet-level reordering; Traffic characteristics corresponding to the service message; The path characteristics corresponding to the service message.

4. The method according to claim 3, characterized in that In a case where the data transmission method is performed by a data sending node, the obtaining of the first information includes at least one of the following: receiving a first message from a data receiving node, where the first message is used to establish a network connection between the data sending node and the data receiving node, and the first message carries the first information; Requesting or querying the first information of the data receiving node from a second network node, where the second network node is a network node located at a side of the data sending node; Request or query the central control device for the first information of the data receiving node.

5. The method according to claim 3, characterized in that In a case where the data transmission method is performed by the second network node, the obtaining the first information includes: receiving a flooding message from a first network node, where the flooding message includes the first information; The first network node is a network node located at the data receiving node side, and the second network node is a network node located at the data sending node side.

6. The method according to claim 1, characterized in that The service message carries second information, and the second information is used to indicate the first load balancing policy set.

7. The method according to claim 6, characterized in that The forwarding of the service message based on the first load balancing policy set includes: Receiving the service message from the data sending node; Adding the second information to the service message; The service message is forwarded based on the first load balancing policy set.

8. The method according to claim 6, characterized in that The forwarding of the service message based on the first load balancing policy set includes: receiving the service message from the data sending node, where the service message carries third information, where the third information is used to indicate a second load balancing policy set, where each load balancing policy in the second load balancing policy set matches a message out-of-order reordering capability of the data receiving node; Modifying the third information carried in the service message into the second information based on the first load balancing policy set, where each load balancing policy in the first load balancing policy set indicated by the second information matches the message reordering capability of the first network node; The service message is forwarded based on the first load balancing policy set.

9. The method according to any one of claims 1 to 8, characterized in that The first load balancing policy set and / or the second load balancing policy set include any one of the following: Execute or not execute load balancing strategy; Allows execution of a specific type of load balancing strategy; wherein the specific type of load balancing strategy includes at least one of flow-level load balancing, packet-level load balancing, and flow segment-level load balancing.

10. A data transmission method, comprising: Receive business messages from the data sending side; Determining that the service message carries second information, where the second information is used to indicate a first load balancing policy set that is allowed to be used; Forwarding the service message based on the first load balancing policy set; The first load balancing policy set includes at least one load balancing policy allowed to be used when forwarding the service message, and each load balancing policy in the first load balancing policy set matches the message reordering capability of the data receiving side.

11. The method according to claim 10, characterized in that The forwarding the service message based on the first load balancing policy set includes: Determining a third set of load balancing strategies supported locally; Determining a target load balancing strategy according to the intersection of the first load balancing strategy set and the third load balancing strategy set; The service message is forwarded based on the target load balancing strategy.

12. The method according to claim 11, characterized in that The target load balancing strategy is any one of the intersections; Alternatively, the target load balancing strategy is a load balancing strategy with the highest priority in the intersection.

13. The method according to any one of claims 10 to 12, characterized in that The first load balancing strategy set includes at least one of the following: Execute or not execute load balancing strategy; Allows execution of a specific type of load balancing strategy; wherein the specific type of load balancing strategy includes at least one of flow-level load balancing, packet-level load balancing, and flow segment-level load balancing.

14. The method according to claim 10, characterized in that The method further comprises: Determining that the service message does not carry the second information or the first load balancing policy set indicated by the second information is an empty set; The service message is forwarded based on a predetermined method, wherein the predetermined method includes any one of the following: No load balancing is performed on the service message; Adopt flow-level load balancing strategy.

15. A communication device, characterized in that: The method comprises a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the computer program implements the steps of the method according to any one of claims 1 to 14 when executed by the processor.

16. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, which, when executed by a processor, implements the steps of the method according to any one of claims 1 to 14.