Load balancing method, apparatus, and load balancing packet forwarding method
By determining the load balancing information of N deterministic paths and adjusting the latency of the tail node through the controller, the problem of wasted bandwidth and throughput loss in lightly loaded paths in lossless networks is solved, and load balancing and orderly packet transmission are achieved.
Patent Information
- Application Number
- PCT/CN2025/079376
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-07-17
- Filing Date
- 2025-02-26
- Publication Date
- 2026-01-22
AI Technical Summary
Existing technologies struggle to achieve load balancing in lossless networks, especially in deterministic networks, where there is a problem of wasted bandwidth or loss of throughput due to lightly loaded paths.
The controller determines the load balancing information of N deterministic paths based on load balancing constraints and sends it to the head node using BGP or PCEP protocols. The head node forwards the load balancing messages, and the tail node adjusts the delay based on the delay difference to ensure orderly message transmission.
It achieves load balancing in lossless networks while ensuring multi-path determinism and orderly packet transmission, solving the problems of bandwidth waste and throughput loss when paths are lightly loaded.
Smart Images

Figure CN2025079376_22012026_PF_FP_ABST
Abstract
Description
Load balancing methods, devices, and load balancing packet forwarding methods
[0001] Cross-references to related applications
[0002] This disclosure is based on and claims priority to Chinese patent application CN202410961057.1, filed on July 17, 2024, entitled “Load Balancing Method, Apparatus and Load Balancing Message Forwarding Method”, and incorporates the entire contents of that patent application by reference. Technical Field
[0003] This disclosure relates to the field of wireless communication technology, and more specifically, to a load balancing method, apparatus, and load balancing message forwarding method. Background Technology
[0004] When deterministic networking technology is applied to wide-area lossless networks to support intelligent computing services, the service flow is dominated by large-scale traffic. To achieve ultra-high bandwidth utilization and low latency, load balancing is required. This refers to network nodes distributing the load (traffic) across multiple links during traffic forwarding, achieving zero packet loss, zero latency, and zero throughput loss when multiple paths exist in the network. Currently proposed load balancing methods include Equal-Cost Multi-Path routing (ECMP), which achieves load balancing and link backup, and is the most commonly used load balancing algorithm. ECMP uses a five-tuple of traffic for hash load balancing and is suitable for scenarios with a large number of flow links. Packet-based ECMP balancing theoretically offers the best balance, but in practice, it suffers from numerous out-of-order issues at the receiving end. Network-Scale Load Balancing (NSLB) uses a controller for centralized load balancing path planning, which can also improve service carrying efficiency to some extent. However, both of the above-mentioned flow-based load balancing mechanisms have problems. For example, if the number of elephant flows is limited, some paths will be underloaded, resulting in wasted bandwidth and requiring improved bandwidth utilization. If elephant flows demand excessive bandwidth, but network paths have some bandwidth available, it may lead to planning failures or throughput loss.
[0005] For a single large data flow, the controller should be allowed to plan and distribute it across different paths. Sub-flow flowlet load balancing can distribute large data flow packets across different paths, relying on the correct configuration of the time interval between sub-flows (GAP value) to achieve load balancing. However, since global path-level latency information in the network is unknown, the GAP value cannot be accurately configured. In wide-area deterministic networks, when load balancing a large data flow across multiple paths, deterministic network QoS imposes additional constraints on load balancing, namely, maintaining end-to-end determinism.
[0006] No solution has yet been proposed for the problem of how to achieve load balancing using deterministic networks in lossless networks. Summary of the Invention
[0007] This disclosure provides a load balancing method, apparatus, and load balancing packet forwarding method to at least address the problem in the related art of how to achieve load balancing using a deterministic network in a lossless network.
[0008] According to one embodiment of this disclosure, a load balancing method is provided, applied to a controller. The method includes: determining load balancing information for N deterministic paths based on load balancing constraints, wherein N is a positive integer greater than 1; and sending the load balancing information to a head node, wherein the load balancing information is used to instruct the head node to forward load balancing packets.
[0009] According to another embodiment of this disclosure, a load balancing packet forwarding method is provided, applied to a first node. The method includes: receiving load balancing information of N deterministic paths issued by a controller, wherein the load balancing information of the N deterministic paths is determined by the controller based on load balancing constraints, and N is a positive integer greater than 1; and forwarding load balancing packets according to the load balancing information of the N deterministic paths.
[0010] According to another embodiment of this disclosure, a load balancing packet forwarding method is provided, applied to a tail node. The method includes: receiving a service packet carrying load balancing information forwarded by the head node through N deterministic paths; obtaining the delay difference of the N deterministic paths based on the load balancing information in the service packet; and adjusting the delay based on the delay difference.
[0011] According to yet another embodiment of this disclosure, a computer program product is also provided, including computer program instructions, wherein the computer program instructions cause a computer to perform the steps in any of the above method embodiments.
[0012] According to yet another embodiment of this disclosure, a computer-readable storage medium is also provided, wherein a computer program is stored therein, wherein the computer program is configured to perform the steps in any of the above method embodiments when executed.
[0013] According to yet another embodiment of this disclosure, an electronic device is also provided, including a memory and a processor, wherein the memory stores a computer program and the processor is configured to run the computer program to perform the steps in any of the above method embodiments. Attached Figure Description
[0014] Figure 1 is a hardware structure block diagram of a computer device for load balancing and load balancing packet forwarding methods according to an embodiment of this disclosure;
[0015] Figure 2 is a flowchart of a load balancing method according to an embodiment of the present disclosure;
[0016] Figure 3 is a flowchart of a load balancing packet forwarding method according to an embodiment of the present disclosure;
[0017] Figure 4 is a flowchart of a load balancing packet forwarding method according to an embodiment of the present disclosure;
[0018] Figure 5 is a schematic diagram of a protocol extension format according to an embodiment of the present disclosure;
[0019] Figure 6 is a schematic diagram of a protocol extension format according to an embodiment of the present disclosure;
[0020] Figure 7 is a schematic diagram of deterministic multipath delay adjustment according to an embodiment of the present disclosure;
[0021] Figure 8 is a second schematic diagram of deterministic multipath delay adjustment according to an embodiment of the present disclosure;
[0022] Figure 9 is a flowchart of a deterministic multipath load balancing process according to an embodiment of the present disclosure;
[0023] Figure 10 is a schematic diagram of a deterministic multipath load balancing network according to an embodiment of the present disclosure;
[0024] Figure 11 is a block diagram of a load balancing device according to an embodiment of the present disclosure. Detailed Implementation
[0025] The embodiments of this disclosure will be described in detail below with reference to the accompanying drawings and examples.
[0026] It should be noted that the terms "first," "second," etc., in the specification, claims, and drawings of this disclosure are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence.
[0027] The methods and embodiments provided in this disclosure can be executed in a computer device or similar computing device. Taking a computer device as an example, FIG1 is a hardware structure block diagram of a computer device for load balancing and load balancing packet forwarding methods according to embodiments of this disclosure. As shown in FIG1, the computer device may include one or more (only one is shown in FIG1) processors 102 (processor 102 may include, but is not limited to, processing devices such as microprocessors MCUs or programmable logic devices) and a memory 104 for storing data. The computer device may also include a transmission device 106 for communication functions and an input / output device 108. It will be understood by those skilled in the art that the structure shown in FIG1 is only illustrative and does not limit the structure of the computer device. For example, the computer device may also include more or fewer components than shown in FIG1, or have a different configuration than shown in FIG1.
[0028] The memory 104 can be used to store computer programs, such as application software programs and modules, like the computer programs corresponding to the load balancing and load balancing packet forwarding methods in this embodiment. The processor 102 executes various functional applications and single-board matching by running the computer programs stored in the memory 104, thus implementing the methods described above. The memory 104 may include high-speed random access memory and non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some instances, the memory 104 may further include memory remotely located relative to the processor 102, and these remote memories can be connected to computer devices via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.
[0029] The transmission device 106 is used to receive or send data via a network. Specific examples of the network described above may include a wireless network provided by a communication provider for the computer equipment. In one example, the transmission device 106 includes a Network Interface Controller (NIC), which can connect to other network devices via a base station to communicate with the Internet. In another example, the transmission device 106 may be a Radio Frequency (RF) module used for wireless communication with the Internet.
[0030] This embodiment provides a load balancing method running on the aforementioned computer device. Figure 2 is a flowchart of the load balancing method according to an embodiment of this disclosure. As shown in Figure 2, the method is applied to a controller, and the process includes the following steps:
[0031] Step S202: Determine the load balancing information of N deterministic paths based on the load balancing constraints, where N is a positive integer greater than 1.
[0032] Step S204: Send the load balancing information to the first node, wherein the load balancing information is used to instruct the first node to forward load balancing packets.
[0033] Through the above steps S202 to S204, the problem of how to achieve load balancing in a lossless network using a deterministic network can be solved. Based on the load balancing constraints, the load balancing information of N deterministic paths is determined, and the load balancing information is used to achieve load balancing of traffic packets, ensuring the deterministic capability of multi-path while ensuring the orderly transmission of packets.
[0034] In this embodiment of the disclosure, step S202 may specifically include:
[0035] Load balancing information for N deterministic paths is determined from M deterministic paths based on delay difference constraints and bandwidth constraints. The load balancing constraints include delay difference constraints and bandwidth constraints. The load balancing information includes at least the path information and bandwidth balancing ratio of the N deterministic paths, where M is a positive integer greater than or equal to N.
[0036] In one embodiment, the available bandwidth and path delay of M deterministic paths are determined respectively; N deterministic paths are selected from the M deterministic paths whose sum of available bandwidth satisfies the bandwidth equalization constraint and whose delay difference between any two deterministic paths satisfies the delay difference constraint.
[0037] In one embodiment, the load balancing information includes at least one of the following: path forwarding information and bandwidth balancing ratio of N deterministic paths, the sum of link delays of the paths, the upper bound of the path delay budget, and the path selection strategy adopted by the packet.
[0038] In this embodiment of the disclosure, step S204 may specifically include: sending load balancing information to the head node via BGP or PCEP protocol, wherein the load balancing information includes general load balancing information and single-path load balancing information.
[0039] In one embodiment, sending the load balancing information to the first node via the BGP or PCEP protocol may specifically include: carrying general load balancing information by extending the Deterministic Multi-path Load Balance Sub-TLV, wherein the general load balancing information includes at least: the upper bound of the path delay budget and routing strategy for N deterministic paths.
[0040] In one embodiment, the load balancing general information is indicated by the Flags of the Deterministic Multi-path Load Balance Sub-TLV, wherein setting the D bit indicates that all paths in the Segment List under the Candidate Path are disjoint paths; the Policy of the Deterministic Multi-path Load Balance Sub-TLV indicates the path selection strategy adopted by the packet; and the Multi-path Delay Budget of the Deterministic Multi-path Load Balance Sub-TLV indicates the upper bound of the path delay budget.
[0041] In another embodiment, sending the load balancing information to the first node via the BGP or PCEP protocol may further include: carrying the single-path load balancing information via an extended Deterministic Path Delay Sub-TLV, wherein the single-path load balancing information includes at least: the path information and bandwidth balancing ratio of the N deterministic paths.
[0042] In one embodiment, the Traffic Class of the Deterministic Path Delay Sub-TLV indicates the path selection strategy adopted by the packet; the Path Delay of the Deterministic Path Delay Sub-TLV indicates the sum of the link delays of the path, wherein the load balancing information further includes: the sum of the link delays of the path, and the path selection strategy adopted by the packet.
[0043] This embodiment provides a load balancing packet forwarding method running on the aforementioned computer device. Figure 3 is a flowchart of the load balancing packet forwarding method according to an embodiment of this disclosure. As shown in Figure 3, applied to the head node, the method includes:
[0044] Step S302: Receive load balancing information for N deterministic paths sent by the controller, where N is a positive integer greater than 1;
[0045] Step S304: Forward load balancing packets based on the load balancing information of the N deterministic paths.
[0046] Through the above steps S302 to S304, the problem of how to achieve load balancing in a lossless network using a deterministic network can be solved. Based on the controller determining the load balancing information according to the load balancing constraints, the message forwarding is carried out, ensuring both multi-path determinism and orderly message transmission.
[0047] In this embodiment of the disclosure, step S304 may specifically include:
[0048] S3041, Encapsulate service packets based on the load balancing information of N deterministic paths;
[0049] S3042 forwards the service message to the tail node through N deterministic paths.
[0050] In one embodiment, the load balancing information may include at least: path information and bandwidth balancing ratio of N deterministic paths.
[0051] In one embodiment, the load balancing information further includes: the sum of link delays of the path, the path selection strategy adopted by the packet, the upper bound of the path delay budget, the cumulative path delay, the packet sending timestamp, and the initial delay difference, wherein the initial value of the cumulative path delay is the sum of the link delays of the path.
[0052] This embodiment provides a load balancing packet forwarding method running on the aforementioned computer device. Figure 4 is a flowchart of the load balancing packet forwarding method according to an embodiment of this disclosure. As shown in Figure 4, the method is applied to the tail node and includes:
[0053] Step S402: Receive service packets carrying load balancing information forwarded by the first node through N deterministic paths;
[0054] Step S404: Determine the latency difference of N deterministic paths based on the load balancing information in the service message;
[0055] Step S406: Adjust the delay based on the delay difference.
[0056] Through the above steps S402 to S406, the problem of how to achieve load balancing in a lossless network using a deterministic network can be solved. Based on the controller determining the load balancing information according to the load balancing constraints, the message forwarding is performed. While ensuring the deterministic capability of multipath, the orderly transmission of messages is also guaranteed. Furthermore, by adjusting the delay difference determined by the load balancing information, the orderly reception of service messages can be guaranteed.
[0057] In this embodiment of the disclosure, step S404 may specifically include:
[0058] S4041, Obtain the upper bound of the path delay budget for N deterministic paths based on the load balancing information in the service message;
[0059] S4042, the difference between the upper bound of the path delay budget and the actual delay for N deterministic paths is the delay difference.
[0060] In one embodiment, step S4041 may specifically include: obtaining the path delay budget upper bound of the N deterministic paths from a pre-maintained mapping table of path IDs and path delay budget upper bounds, based on the path IDs carried in the service message; or extracting the path delay budget upper bound of the N deterministic paths from the service message.
[0061] The controller calculates multiple deterministic paths and their load balancing information based on constraints such as service multipath latency differences and bandwidth burden. These deterministic multipaths require zero packet loss, guaranteed bandwidth, deterministic latency, and low jitter. The controller's path calculation specifically includes:
[0062] (1) Path Delay Difference Constraint: The time difference between the two paths calculated by the controller is within a certain range. This delay difference can be configured by the user or reported to the controller by the forwarding node. The controller calculates the deterministic delay of the path from the source node exit to the destination node entry for each of the two paths. Specifically, according to deterministic network technology, the formula for calculating the precise delay from the source PE exit to the destination PE entry is: Path delay = Link portion + Node portion = Sum of link delays + Sum of node-reduced delays = Sum of link delays + (Exit time slot - Entry time slot) * T. Where T represents the size of the periodic template window. The jitter of each path is 2T, so the delay difference between the two paths is the maximum delay of one path minus the minimum delay of the other path. For example, for any two paths calculated by the controller, if the delay of the first path Path1 is 100 + 20T and the delay of the other path Path2 is 50 + 30T, where T = 10us, then the maximum possible delay difference between the two paths is 50 + 310 - 100 - 190 = 70us.
[0063] (2) If multiple paths used for load sharing are not allowed to intersect, the path calculation algorithm includes:
[0064] Using a bandwidth load balancing algorithm, select N paths with the lightest bandwidth load. For these N paths, calculate their available bandwidth and latency. Take M paths from the set and determine the latency difference and available bandwidth of the M paths. If the latency difference is within the constraint range and the sum of the bandwidths meets the requirements, the path calculation is successful. Otherwise, reselect and calculate in a loop until successful.
[0065] (3) If the two paths used for load sharing are allowed to intersect, the path calculation algorithm includes:
[0066] According to the bandwidth load balancing algorithm, select N paths with the lightest bandwidth load; calculate the latency of these N paths; for example, from the set of N paths, take the 1st and 2nd, the 1st and 3rd, the 2nd and 3rd, the 1st and 4th, and the 2nd and 4th paths in sequence and calculate them cyclically until successful; for the path pairs taken from the set, compare the latency difference between the two paths. If the latency difference is within the constraint range, continue; otherwise, calculate other path pairs; calculate the available bandwidth of the first path. When calculating the available bandwidth of the second path, the available bandwidth of the first path should be deducted from the remaining bandwidth of the intersecting links; if the available bandwidth of the second path is greater than a certain threshold (paths with too little remaining bandwidth do not participate in load sharing), the path calculation fails, and other path pairs are calculated; otherwise, the path calculation succeeds.
[0067] If the two paths have different loads, different load balancing strategies can be used. The prerequisite is that the remaining bandwidth of each path is greater than or equal to the traffic load allocated to that path.
[0068] Strategy 1: Distribute the load evenly, for example, if two paths are calculated, each should account for 50%;
[0069] Strategy 2: Allocate bandwidth according to the proportion of available bandwidth. For example, if Path 1 has 7G of available bandwidth and Path 2 has 3G of available bandwidth, Path 1 and Path 2 can be allocated 70% and 30% respectively.
[0070] The controller then sends the calculated deterministic multipath and its load balancing information to the first node.
[0071] The deterministic multipath and load balancing information issued by the controller includes, but is not limited to: deterministic multipath information, bandwidth load ratio of different paths, sum of link delays of paths, path selection strategy used in indication messages, and upper bound of path delay budget.
[0072] Before the controller calculates the path, the tail node needs to report the delay difference constraint to the controller as the basis for path calculation.
[0073] The controller sends messages to the head node via southbound interface protocols such as Border Gateway Protocol / Path Computation Element Protocol (BGP / PCEP). When using BGP / PCEP to send deterministic multipath SR policies, the SR policies sent via BGP Update or PCEP Association messages carry deterministic multipath load balancing information. Specific extensions include:
[0074] Figure 5 is a schematic diagram of the protocol extension format according to an embodiment of the present disclosure. As shown in Figure 5, the extended Deterministic Multi-path Load Balance Sub-TLV is used to carry general information on multi-path load balancing. ype: 8 bits, used to indicate the type of the sub-TLV.
[0075] Length: 8 bits, used to represent the length of this sub-TLV.
[0076] Flags: 8 bits, used to indicate the deterministic multipath correlation characteristics of this Candidate Path. A set D bit indicates that all Segment List paths under this Candidate Path are disjoint paths.
[0077] Policy: 8 bits, used to represent the load balancing routing strategy.
[0078] Multi-paths Delay Budget is used to indicate the delay budget (upper bound) for multi-paths.
[0079] Figure 6 is a schematic diagram of the protocol extension format according to an embodiment of this disclosure. As shown in Figure 6, the extended Deterministic Path Delay Sub-TLV is used to carry single-path load balancing bandwidth and message path delay information, etc. Type: 8 bits, used to indicate the type of the sub-TLV.
[0080] Length: 8 bits, used to represent the length of this sub-TLV.
[0081] Traffic Class: 16 bits, used to indicate the traffic scheduling priority of the candidate path. When deterministic flow is introduced into SR Policy, it can associate the priority field carried in the packet header (DSCP in the IP header, TC in the MPLS header) with the Traffic Class to select a candidate path that meets the latency requirements.
[0082] Path Delay, 32 bits, is used to indicate the path delay experienced by the message. The initial value is the sum of the path link delays issued by the controller.
[0083] Load Weight, 32 bits, is used to indicate the bandwidth carrying ratio of this path.
[0084] In one embodiment, after receiving a service message, the first node encapsulates the load balancing information into the message and load balances the service flow on multiple deterministic paths according to different bandwidth weights and time delays.
[0085] Forwarding plane packet encapsulation extensions include, but are not limited to: end-to-end timestamp; upper bound of delay budget; cumulative delay, indicating the actual delay experienced by the node, with an initial value of the sum of link delays issued by the controller; and delay difference, which is the upper bound of delay budget minus the cumulative delay.
[0086] The latency difference for obtaining the packet path forwarding includes, but is not limited to:
[0087] The message sent by the first node carries the cumulative path delay. The initial value is the sum of the delays of all links on the path. The intermediate nodes timestamp the inbound and outbound packets to obtain the intermediate node delay, add it to the cumulative delay, and forward it to the tail node in sequence. This method can be used to measure the precise delay of a packet on a deterministic path. By subtracting the precise delay from the upper bound of the delay budget, the delay difference of the path can be obtained.
[0088] The message sent by the first node carries a message sending timestamp. When it reaches the tail node, the relative delay of the message can be obtained by subtracting the arrival timestamp from the sending timestamp. By subtracting the relative delay from the upper bound of the delay budget, the delay difference of the path can be obtained.
[0089] The first node carries the initial delay difference in the message, which is the sum of the link delays, i.e., the upper bound of the delay budget minus the initial delay. The intermediate nodes timestamp the inbound and outbound messages, calculate the node delay, and subtract the node delay from the delay difference to obtain the updated delay difference. The updated delay difference is carried when the message is sent and forwarded to the tail node in sequence, so that the delay difference of the path can be obtained.
[0090] In one embodiment, after receiving a message, the intermediate node updates the delay difference information in the message and forwards it according to the deterministic path;
[0091] Finally, after receiving the message, the tail node adjusts the delay according to the delay difference of different paths and receives the traffic messages in an orderly manner.
[0092] Figure 7 is a schematic diagram of deterministic multipath delay adjustment according to an embodiment of the present disclosure. As shown in Figure 7, a multipath buffer / delay adjustment device is added to the tail node to balance the delay difference of multiple paths, so that after the packets arriving from different paths are sent out by the delay adjustment device, the actual delay of multiple paths is the same.
[0093] The delay adjustment device adjusts the delay difference, and the controller sends the path ID and delay upper bound to the tail node. The delay upper bound is the delay upper bound of all sub-paths. In the example above, this means 50 + 31T = 360µs (T = 10µs). A table is added to maintain this information, as shown in Table 1.
[0094] Table 1
[0095] Figure 8 is a second schematic diagram of deterministic multipath delay adjustment according to an embodiment of the present disclosure. As shown in Figure 8, when a message arrives, the upper limit of the delay is obtained by looking up the table above based on the path ID carried in the message. The actual delay experienced on the path is extracted from the message. Then the delay difference is: upper limit of delay - actual delay. The device then applies an adjustment value of <upper limit of delay - actual delay> to the message.
[0096] This disclosure utilizes a deterministic multi-path approach to achieve load balancing, termed Deterministic Multi-path Load Balancing (DMLB). The controller calculates multiple deterministic paths based on service requirements, their respective bandwidth ratios, and delay budget upper bounds, and sends these calculations to the first node. The first node performs load balancing traffic forwarding across these deterministic paths using different bandwidth weights and delays. The tail node receives packets and adjusts the delay based on the delay differences between different paths, ensuring ordered reception of traffic packets. This method leverages the deterministic guarantee of delay jitter in a deterministic network to provide multiple deterministic paths for traffic packet load balancing. While ensuring multi-path determinism, it also guarantees ordered packet transmission, resolving out-of-order issues at the receiving end. The specific steps are divided into control plane and forwarding plane processes.
[0097] Figure 9 is a flowchart of a deterministic multipath load balancing process according to an embodiment of the present disclosure. As shown in Figure 9, it includes:
[0098] S901, the controller calculates multiple deterministic paths and their load balancing information based on constraints such as service multipath delay difference and bandwidth burden, that is, the controller's method and strategy for calculating deterministic multipaths;
[0099] In S902, the controller sends the calculated deterministic multipath and its load balancing information to the head node via the southbound interface protocol. Extended load balancing information includes, but is not limited to, deterministic multipath information, bandwidth load ratios for different paths, sum of link delays for each path, path selection strategy used in the message, and upper bounds of path delay budgets. Deterministic multipath load balancing information is carried in the SR Policy sent via BGP Update or PCEP Association messages. An extended Deterministic Multi-path Load Balance Sub-TLV is proposed to carry general multipath load balancing information, and an extended Deterministic Path Delay Sub-TLV is proposed to carry single-path load balancing bandwidth and delay information.
[0100] S903: After receiving a service message, the first node encapsulates load balancing information into the message and performs load balancing traffic scheduling on multiple deterministic paths. The message expands the load sharing information, including but not limited to, end-to-end timestamp, latency budget upper bound, cumulative latency, path latency difference, etc.
[0101] S904: After receiving the message, the intermediate node updates the delay difference information in the message and forwards it according to the deterministic path.
[0102] S905: After receiving a message, the tail node adjusts the delay according to the delay difference of different paths and receives traffic messages in an orderly manner.
[0103] In one embodiment, a delay adjustment device is added to the tail node side to adjust the delay and achieve consistency of multi-path delay.
[0104] Figure 10 is a schematic diagram of a deterministic multipath load balancing network according to an embodiment of the present disclosure. As shown in Figure 10, in the deterministic multipath load balancing network, service flows are forwarded through the deterministic network. Since the flow exhibits elephant flow characteristics and the service requires low latency and packet loss-free forwarding, the deterministic network technology (Deterministic Networking, or DetNet for short) is a source routing technology-Multi-Protocol Label Switching (Segment Routing-Multi-Protocol Label Switching, or SR-MPLS for short) network, providing multiple paths for load balancing forwarding. The specific implementation of load sharing using the deterministic multipath method includes:
[0105] The user sends a service request to the controller, with a service rate of 10 Gbit / s and a latency requirement of 100 ms. The controller calculates N deterministic paths based on the service requirements. The upper bound of the multi-path delay budget is End-to-end Multi-path Delay Budget = 100 ms, for example, N = 3. Each path uses a queuing mechanism with a cycle-specific queuing and forwarding (CSQF) period of T = 10 μs. Each path is non-intersecting. The upper bound of the delay for the first path, Deterministic Path Delay-1, is 90 ms ± 20 T, with a bandwidth capacity of 2 Gbps. The delay for the second path, Deterministic Path Delay-2, is 50 ms ± 30 T, with a bandwidth capacity of 3 Gbps. The delay for the third path, Deterministic Path Delay-3, is 80 ms ± 10 T, with a bandwidth capacity of 5 Gbps.
[0106] The controller sends the calculated deterministic multi-path and its load balancing information to the head node via the southbound interface protocol. It carries the deterministic multi-path load balancing information in the SR Policy sent via BGP Update or PCEP Association messages. It extends the Deterministic Multi-path Load Balance Sub-TLV to carry information such as the upper bound of the delay budget for multi-paths, routing strategies, and whether paths intersect. It also extends the Deterministic Path Delay Sub-TLV to carry information such as the bandwidth ratio of a single path and path delay.
[0107] After receiving the message, the first node load balances the traffic flow across multiple deterministic paths according to different bandwidth weights (20%, 30%, 50%) and time delays. The message carries accumulated delay or timestamp information and is forwarded to the tail node. After receiving the message, the tail node uses the End-to-end Multi-paths Delay Budget to obtain the delay difference of each path and adjusts the damper delay according to the delay difference of different paths to achieve orderly reception of traffic messages.
[0108] The control plane calculates deterministic multipaths, as shown in Figure 10. A user sends a service request to the controller, with a service rate of 10 Gbit / s and a latency requirement of 100 ms. The controller calculates the deterministic multipath from the first node H to the last node E, specifically including: obtaining the latency difference constraint information of the last node (<20 ms) before path calculation; and selecting N=3 paths with the lightest bandwidth load based on the service requirements and a bandwidth load balancing algorithm, requiring the paths to be non-intersecting, with an upper bound of End-to-end Multipath Delay Budget of 100 ms.
[0109] For these three paths, calculate their available bandwidth and latency. Using the CSQF queue mechanism with a period of T = 10µs, and applying the latency calculation formula (sum of link latency + (egress time slot - ingress time slot) * T), obtain the latency and bandwidth of the three paths. The upper bound of the latency for the first path, Deterministic Path Delay-1, is 90ms ± 20T, with a bandwidth capacity of 2G. The latency for the second path, Deterministic Path Delay-2, is 50ms ± 30T, with a bandwidth capacity of 3G. The latency for the third path, Deterministic Path Delay-3, is 80ms ± 10T, with a bandwidth capacity of 5G. Determine the latency difference and available bandwidth of the three paths. The latency difference is within the 20ms constraint, and the sum of the bandwidths meets the 10G requirement, indicating successful path calculation.
[0110] As shown in Figure 10, the controller distributes deterministic multipath SR policies based on BGP / PCEP. The controller sends SR policies carrying deterministic paths to edge nodes H in the DetNet network via the BGP / PCEP protocol, reserving deterministic multipaths and resources from H to E. These deterministic multipaths carry load balancing information, and DetNet performs deterministic forwarding based on the SR policy. Specifically, this includes:
[0111] The controller sends a BGP UPDATE / PCEP Association message to the DetNet edge node H via the BGP protocol to configure the SR Policy and its Candidate Path. This includes three Segment Lists. The deterministic path carries the Deterministic Multi-path Load Balance Sub-TLV in the Candidate Path Sub-TLV, which carries information such as the upper bound of the multi-path latency budget (100ms), routing strategy, and path non-intersection. At the same time, the Segment List Sub-TLV carries the Deterministic Path Delay Sub-TLV, which carries the bandwidth ratio and path latency of a single path. The upper bound of the latency for the first path, Deterministic Path Delay-1, is 90ms±20T, with a bandwidth ratio of 20%. The latency for the second path, Deterministic Path Delay-2, is 50ms±30T, with a bandwidth ratio of 30%. The latency for the third path, Deterministic Path Delay-3, is 80ms±10T, with a bandwidth ratio of 50%.
[0112] The deterministic multipath pseudocode issued by SR Policy is as follows:
[0113] As shown in Figure 10, the first node load balances and schedules the service flow on multiple deterministic paths according to different bandwidth weights and time delay differences, and forwards it to the tail node.
[0114] When DetNet network nodes are not synchronized in time, obtaining the deterministic path delay difference specifically includes: the first node carries the upper bound of the delay budget and the cumulative delay (initially the sum of the link delays) in the message and forwards it to the intermediate node; the intermediate node timestamps the inbound and outbound messages and sequentially adds the node delays to the cumulative delay message and carries it hop by hop; after receiving the message, the tail node uses the upper bound of the delay budget - the cumulative delay to obtain the delay difference of each path.
[0115] When DetNet network nodes are not synchronized in time, obtaining the deterministic path delay difference specifically includes: the first node carries the initial delay difference in the packet, that is, the upper bound of the delay budget minus the initial sum of the link delays, and forwards it to the intermediate node; the intermediate node timestamps the packet's inbound and outbound points, calculates the node delay, and carries the updated delay difference when sending the packet, that is, the upper bound of the delay budget minus the initial sum of the link delays minus the node delay, and continues to forward it; after receiving the packet, the tail node obtains the delay difference of each path through the data carried in the packet.
[0116] When the first and last nodes of the DetNet network are synchronized in time, obtaining the deterministic path delay difference specifically includes: the first node timestamps the packet at the packet exit, and the packet carries the timestamp and the upper bound of the path delay information, and forwards it to the intermediate node; the intermediate node transmits the timestamp information transparently; after receiving the packet, the last node timestamps the packet entry, and uses the entry timestamp and the exit timestamp obtained in the packet to obtain the actual cumulative path delay; the delay difference of each path is obtained by subtracting the actual cumulative delay from the upper bound of the delay budget.
[0117] This disclosure also provides a load balancing device. FIG11 is a block diagram of a load balancing device according to an embodiment of this disclosure. As shown in FIG11, the device is applied to a controller and includes:
[0118] The determination module 112 is configured to determine the load balancing information of N deterministic paths based on load balancing constraints, where N is a positive integer greater than 1.
[0119] The sending module 114 is configured to send the load balancing information to the first node, wherein the load balancing information is used to instruct the first node to forward load balancing messages.
[0120] This disclosure also provides a computer program product, including computer program instructions, wherein the computer program instructions cause a computer to implement the steps in any of the above method embodiments.
[0121] Embodiments of this disclosure also provide a computer-readable storage medium storing a computer program configured to perform the steps in any of the above method embodiments when executed.
[0122] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard disk, magnetic disk, or optical disk.
[0123] Embodiments of this disclosure also provide an electronic device including a memory and a processor, the memory storing a computer program and the processor being configured to run the computer program to perform the steps in any of the above method embodiments.
[0124] In one exemplary embodiment, the electronic device may further include a transmission device and an input / output device, wherein the transmission device is connected to the processor and the input / output device is connected to the processor.
[0125] Specific examples in this embodiment can be found in the examples described in the above embodiments and exemplary implementations, and will not be repeated here.
[0126] It is obvious to those skilled in the art that the modules or steps of this disclosure described above can be implemented using general-purpose computing devices. They can be centralized on a single computing device or distributed across a network of multiple computing devices. They can be implemented using computer-executable program code, and thus can be stored in a storage device for execution by a computing device. In some cases, the steps shown or described can be performed in a different order than those presented herein, or they can be fabricated as separate integrated circuit modules, or multiple modules or steps can be fabricated as a single integrated circuit module. Thus, this disclosure is not limited to any particular combination of hardware and software.
[0127] The above description is merely a preferred embodiment of this disclosure and is not intended to limit this disclosure. Various modifications and variations can be made to this disclosure by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the principles of this disclosure should be included within the scope of protection of this disclosure.
Claims
1. A load balancing method applied to a controller, the method comprising: determining load balancing information of N deterministic paths based on load balancing constraints, wherein N is a positive integer greater than 1; sending the load balancing information to a head node, wherein the load balancing information is used to instruct the head node to forward load balancing packets.
2. The method of claim 1, wherein, determining load balancing information of N deterministic paths based on load balancing constraints comprises: the load balancing constraints include a delay difference constraint and a bandwidth constraint; determining the load balancing information of the N deterministic paths from M deterministic paths based on the delay difference constraint and the bandwidth constraint, wherein the load balancing information at least includes path information of the N deterministic paths and a bandwidth balancing ratio, and M is a positive integer greater than or equal to N.
3. The method of claim 2, wherein, determining the load balancing information of the N deterministic paths from M deterministic paths based on the delay difference constraint and the bandwidth constraint comprises: determining available bandwidth and path delay of the M deterministic paths respectively; selecting the N deterministic paths from the M deterministic paths, wherein the sum of available bandwidths of the N deterministic paths satisfies the bandwidth balancing constraint, and the delay difference of each two deterministic paths satisfies the delay difference constraint. 4.The method of claim 1, wherein the load balancing information includes at least one of the following: path forwarding information of the N deterministic paths and the bandwidth balancing ratio, the sum of link delays of the paths, the upper bound of path delay budget, and a path selection strategy adopted by the packets.
5. The method of claim 1, wherein, sending the load balancing information to the head node comprises: sending the load balancing information to the head node through a BGP protocol or a PCEP protocol. 6.The method of claim 5, wherein the load balancing information includes load balancing general information and single-path load balancing information.
7. The method of claim 6, wherein, sending the load balancing information to the head node through a BGP protocol or a PCEP protocol comprises: carrying the load balancing general information through an extended Deterministic Multi-path Load Balance Sub-TLV, wherein the load balancing general information at least includes the upper bound of path delay budget and a routing strategy of the N deterministic paths.
8. The method of claim 7, wherein, The method further comprises: indicating the load balancing general information through Flags of the Deterministic Multi-path Load Balance Sub-TLV, wherein the D bit is set to indicate that the paths of all Segment Lists under the Candidate Path are disjoint paths; indicating a path selection strategy adopted by the packets through Policy of the Deterministic Multi-path Load Balance Sub-TLV. The Multi-paths Delay Budget of the Deterministic Multi-path Load Balance Sub-TLV indicates an upper bound of path delay budget.
9. The method of claim 4, wherein, The sending of the load balancing information to the head node through the BGP protocol or the PCEP protocol comprises: The single-path load balancing information is carried through extension of the Deterministic Path Delay Sub-TLV, wherein the single-path load balancing information at least comprises path information of the N deterministic paths and a bandwidth balancing ratio.
10. The method of claim 9, wherein, The method further comprises: The Traffic Class of the Deterministic Path Delay Sub-TLV indicates a path selection strategy adopted by the message; The Path Delay of the Deterministic Path Delay Sub-TLV indicates a sum of link delays of the path, wherein the load balancing information further comprises the sum of link delays of the path and the path selection strategy adopted by the message.
11. A load balancing message forwarding method applied to a head node, the method comprising: receiving load balancing information of N deterministic paths issued by a controller, wherein N is a positive integer greater than 1; performing load balancing message forwarding according to the load balancing information of the N deterministic paths.
12. The method of claim 11, wherein, The performing of load balancing message forwarding according to the load balancing information of the N deterministic paths comprises: encapsulating a service message according to the load balancing information of the N deterministic paths; forwarding the service message to a tail node through the N deterministic paths.
13. The method according to claim 12, wherein the load balancing information at least comprises path information of the N deterministic paths and a bandwidth balancing ratio.
14. The method according to claim 13, wherein the load balancing information further comprises a sum of link delays of the path, a path selection strategy adopted by the message, an upper bound of path delay budget of the path, a cumulative path delay of the path, a message sending timestamp and an initial delay difference; an initial value of the cumulative path delay is the sum of link delays of the path.
15. A load balancing message forwarding method applied to a tail node, the method comprising: receiving a service message carrying load balancing information forwarded by a head node through N deterministic paths; determining a delay difference of the N deterministic paths according to the load balancing information in the service message; performing delay adjustment according to the delay difference.
16. The method of claim 15, wherein, The determining of the delay difference of the N deterministic paths according to the load balancing information in the service message comprises: obtaining an upper bound of path delay budget of the N deterministic paths according to the load balancing information in the service message; determining a difference between the upper bound of path delay budget of the N deterministic paths and an actual delay as the delay difference.
17. The method of claim 16, wherein, The obtaining of the upper bound of path delay budget of the N deterministic paths according to the load balancing information in the service message comprises: obtaining the path delay budget upper bound values of the N deterministic paths according to the path ID carried in the service packet from a mapping table of the path ID and the path delay budget upper bound values of the paths in advance; or extracting the path delay budget upper bound values of the N deterministic paths from the service packet. 18.A load balancing apparatus applied to a controller, the apparatus comprising: a determining module configured to determine load balancing information of N deterministic paths based on constraint conditions of load balancing, wherein N is a positive integer greater than 1; a sending module configured to send the load balancing information to a first node, wherein the load balancing information is used to instruct the first node to forward a load balancing packet.
19. A computer-readable storage medium having stored therein a computer program, wherein, The computer program is configured to execute the method in any one of claims 1-10, 11-14, and 15-17 when running. 20.An electronic device comprising a memory and a processor, wherein the memory stores a computer program, and the processor is configured to execute the computer program to perform the method in any one of claims 1-10, 11-14, and 15-17. 21.A computer program product comprising a computer program, wherein the computer program is executed by a processor to implement the steps of the method in any one of claims 1-10, 11-14, and 15-17.
Citation Information
Patent Citations
Load balancing method, device and system, network and storage medium
CN112398749A
Deterministic flow forwarding method and device, storage medium and electronic device
CN115665024A
Apparatus and method for load balancing
CN116547956A
Information processing method, device, and storage medium
WO2024140374A1