Network load balancing control method, device, equipment and storage medium

By sending path probe request and response messages between network devices, determining the link path weight based on the RTT value, and using SRv6 message encapsulation for multi-path traffic distribution, the problem of traffic congestion in the flow-by-flow load balancing mechanism is solved, thereby improving network performance.

CN119135611BActive Publication Date: 2026-05-05CHINA MOBILE COMM LTD RES INST +1
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
CHINA MOBILE COMM LTD RES INST
Filing Date
2023-06-12
Publication Date
2026-05-05

AI Technical Summary

Technical Problem

In existing technologies, flow-based load balancing mechanisms cannot effectively prevent traffic congestion caused by statically hashing elephant flows and mouse flows onto the same link, thus preventing network performance from being improved.

Method used

By sending path probe request messages and receiving path probe response messages, the weight value of the link path is determined based on the RTT value, and the service messages are allocated to the corresponding link paths in proportion. SRv6 message encapsulation is used for multi-path traffic splitting and transmission, and the link path weight value is dynamically updated to optimize network traffic scheduling.

Benefits of technology

It achieves load balancing across multiple paths in a single stream, improves the utilization of link paths, optimizes the uniformity of network traffic scheduling, effectively avoids traffic congestion, and enhances overall network performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119135611B_ABST
    Figure CN119135611B_ABST
Patent Text Reader

Abstract

This application discloses a network load balancing control method, apparatus, device, and storage medium. The method includes: a first network device sending a path probe request message to a second network device; receiving multiple path probe response messages returned by the second network device; determining the weight value of each link path based on the round-trip time (RTT) value of each path probe response message; and proportionally allocating service packets to the corresponding link paths and sending them to the second network device based on the weight values ​​of each link path. In this way, service packets can be proportionally allocated to the corresponding link paths and sent to the second network device based on the weight values ​​of each link path, thereby realizing a single-stream multi-path load balancing mechanism. Furthermore, by distributing service packets through multiple paths, it is beneficial to improve the utilization rate of link paths in the network, optimize the uniformity of network traffic scheduling, effectively avoid traffic congestion, and thus improve the overall network performance.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of network transmission technology, and in particular to a control method, apparatus, device and storage medium for network load balancing. Background Technology

[0002] In related technologies, lossless RDMA (Remote Direct Memory Access) networks need to meet requirements such as low latency, zero packet loss, and high throughput. Ensuring zero packet loss requires minimizing congestion. Solving the congestion problem caused by uneven network traffic scheduling is one of the key elements in ensuring lossless networks. Therefore, it is urgent to optimize network traffic scheduling in lossless networks to meet their performance requirements. Summary of the Invention

[0003] In view of this, embodiments of this application provide a network load balancing control method, apparatus, device, and storage medium to effectively improve the overall network performance.

[0004] The technical solution of this application embodiment is implemented as follows:

[0005] This application provides a network load balancing control method, applied to a first network device, including:

[0006] Send a path detection request message to the second network device;

[0007] Receive multiple path probe response messages returned by the second network device, wherein each path probe response message corresponds to a link path connecting the first network device and the second network device, and each path probe response message carries the network addresses of each node device along the link path;

[0008] Based on the RTT (round-trip time) value of each path probe response message, the weight value of each link path is determined.

[0009] Based on the weight values ​​of each link path, service packets are proportionally allocated to the corresponding link paths and sent to the second network device.

[0010] In the above scheme, determining the weight value of each link path based on the RTT value of each path probe response message includes:

[0011] The weight value of each link path is determined based on the proportion of the RTT value of each path probe response message in the sum of the RTT values ​​of the multiple path probe response messages.

[0012] The weight value is negatively correlated with the ratio value.

[0013] In the above scheme, the network address carried in the path probing response message is an IPv6 (Internet Protocol Version 6) address, and the method further includes:

[0014] Extract the IPv6 addresses of all node devices carried in each of the path probe response messages;

[0015] Based on the IPv6 addresses of the node devices along each of the aforementioned link paths, generate the corresponding SRv6 (Segment Routing IPv6) SRH (Segment Routing Header) extension header.

[0016] The step of proportionally allocating service packets to the corresponding link paths and sending them to the second network device includes:

[0017] The service message is divided into data packets according to the weight value of each link path, and the divided data packets are encapsulated into SRv6 messages by selecting the corresponding SRH extension header and sending them to the second network device. The SRH extension header of each SRv6 message corresponds one-to-one with the link path.

[0018] The method in the above scheme further includes:

[0019] Based on the multiple path probe response messages, path probe information representing the reachable link paths between the first network device and the second network device is constructed.

[0020] The method in the above scheme further includes:

[0021] The path probe request message is sent to the second network device at a set interval.

[0022] Based on the path probe response message returned by the second network device, the path probe information and the weight values ​​of each link path are updated.

[0023] In the above scheme, the path detection information includes a status identifier corresponding to each link path. The status identifier includes a first identifier indicating that the link path is reachable and a second identifier indicating that the link path is unreachable. Updating the path detection information includes:

[0024] If it is determined that there is at least one unreachable link path, then the status identifier of the at least one link path is updated to the second identifier.

[0025] In the above scheme, updating the weight values ​​of each link path includes:

[0026] For the RTT value of the path probe response message of the link path with the status identifier of the first identifier, determine the weight value of each link path with the status identifier of the first identifier.

[0027] This application embodiment also provides a network load balancing control device, applied to a first network device, including:

[0028] The probe request module is used to send path probe request messages to the second network device;

[0029] The receiving module is configured to receive multiple path probe response messages returned by the second network device, wherein each path probe response message corresponds to a link path connecting the first network device and the second network device, and each path probe response message carries the network addresses of each node device along the link path.

[0030] The weight determination module is used to determine the weight value of each link path based on the RTT value of the path probe response message.

[0031] The service processing module is used to allocate service packets to the corresponding link paths according to the weight values ​​of each link path and send them to the second network device.

[0032] This application provides a first network device, including: a processor and a memory for storing a computer program that can run on the processor, wherein the processor executes the steps of the method described in this application when running the computer program.

[0033] This application also provides a computer storage medium storing a computer program, which, when executed by a processor, implements the steps of the method described in this application.

[0034] The technical solution provided in this application embodiment involves a first network device sending a path probe request message to a second network device; receiving multiple path probe response messages returned by the second network device, wherein each path probe response message corresponds to a link path connecting the first network device and the second network device, and each path probe response message carries the network addresses of each node device along the link path; determining the weight value of each link path based on the round-trip time (RTT) value of each path probe response message; and proportionally allocating service packets to the corresponding link paths and sending them to the second network device based on the weight values ​​of each link path. In this way, service packets can be proportionally allocated to the corresponding link paths and sent to the second network device based on the weight values ​​of each link path, thereby realizing a single-stream multi-path load balancing mechanism. Furthermore, by distributing service packets through multiple paths, the utilization rate of link paths in the network is improved, the uniformity of network traffic scheduling is optimized, traffic congestion is effectively avoided, and overall network performance is improved. Attached Figure Description

[0035] Figure 1 This is a schematic diagram illustrating the principle of switching between the primary and backup links in a flow-based load balancing mechanism in related technologies.

[0036] Figure 2 This is a schematic diagram illustrating the application of a flow-based load balancing mechanism in related technologies.

[0037] Figure 3 This is a flowchart illustrating the network load balancing control method according to an embodiment of this application.

[0038] Figure 4 This is a schematic diagram illustrating the principle of converting path detection information into an SRv6 SRH extension header in the application example of this application.

[0039] Figure 5 This is a schematic diagram of the structure of an SRv6 message in the application example of this application;

[0040] Figure 6 This is a schematic diagram illustrating the principle of SRv6 message transmission in the application example of this application;

[0041] Figure 7 This is a schematic diagram of the network load balancing control device according to an embodiment of this application;

[0042] Figure 8 This is a schematic diagram of the network device according to an embodiment of this application. Detailed Implementation

[0043] The present application will now be described in further detail with reference to the accompanying drawings and embodiments.

[0044] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the application.

[0045] Related RDMA lossless networks generally adopt the RC (Reliable Connection) mode, making flow-based load balancing mechanisms a major research direction for solving uneven network traffic scheduling. For example, traffic scheduling between server network cards and switches uses ECMP (Equal-Cost Multi-Path routing), a flow-based load balancing mechanism. When using ECMP load balancing, the network card uses the packet's five-tuple (source IP, destination IP, source port number, destination port number, protocol number) as a hash factor to generate a HASH-KEY value using a HASH algorithm. Then, based on the HASH-KEY value, it selects a member link in the load-sharing links to forward the packet. When the five-tuples are the same, the network card will always choose the same next-hop address as before to send the packet. When the five-tuples are different, the network card will choose a relatively idle path for forwarding.

[0046] like Figure 1 As shown, when link1 fails, the routes on link1 will quickly converge via IGP (Interior Gateway Protocol) and select a new link (such as link2) to re-forward traffic. When link1 recovers, since link1 has the highest priority, the network interface card will reselect link1 to send data. This achieves the switchback from the backup link to the primary link.

[0047] However, the aforementioned flow-based load balancing mechanism is essentially a single-flow, single-path traffic scheduling method. While this scheduling method is simple in principle, it lacks a mechanism to consider whether the path itself is congested. In actual business applications, although the flow hash is uniform, the load on each equivalent link is not uniform, resulting in the inability to improve overall network performance.

[0048] For data packets with the same 5-tuple characteristic field, because their HASH-KEY values ​​are identical, they will be forwarded through the same member link. This can easily lead to multiple flows being hashed onto the same path, causing link overload, excessive load on a physical link, or even congestion resulting in packet loss. Figure 2As shown, although flow2 utilizes ECMP to distribute 30G bandwidth traffic across different links for forwarding, it failed to consider the presence of an "elephant flow" on one member link during link selection, leading to congestion. Simultaneously, other links had lighter loads and low bandwidth utilization. In data centers with high-performance computing and distributed storage applications, both latency-sensitive "mouse flows" and high-bandwidth throughput "elephant flows" may coexist. When both "elephant flows" and "mouse flows" are statically hashed onto the same link, the "elephant flow" can cause congestion, crowding out the "mouse flows" and resulting in a severe performance degradation.

[0049] Based on this, in various embodiments of this application, a network load balancing control method based on a single-flow multi-path load sharing mechanism is provided. Its load balancing performance is significantly better than the aforementioned flow-based load sharing mechanism. It can effectively avoid the traffic congestion caused by the static hashing of elephant flows and mouse flows onto the same link, thereby truly meeting the performance requirements of low latency, zero packet loss and high throughput.

[0050] like Figure 3 As shown in the figure, this application provides a network load balancing control method applied to a first network device. The control method includes:

[0051] Step 301: Send a path detection request message to the second network device.

[0052] Here, the first network device can be the sending network card, and the second network device can be the receiving network card.

[0053] For example, the first network device sends a path probe request message with the destination address being the network address of the second network device. The path probe request message carries a probe tag. Node devices along the way determine that it is a path probe request message based on the probe tag, then add their own network address to the path probe request message, and look up all outgoing interfaces that lead to the destination address of the path probe request message in the routing table, and send the path probe request message from these interfaces until it is sent to the second network device.

[0054] Step 302: Receive multiple path probe response messages returned by the second network device, wherein each path probe response message corresponds to a link path connecting the first network device and the second network device, and each path probe response message carries the network addresses of each node device along the link path.

[0055] It is understandable that after receiving the path probe request messages transmitted through the aforementioned multiple interfaces, the second network device can return each path probe request message (i.e., path probe response message) to the first network device along the original path. In this way, the first network device will receive path probe response messages for all reachable paths.

[0056] It is understandable that each path probe response message corresponds to a link path, and each path probe response message carries the network addresses of the node devices along that link path.

[0057] Step 303: Determine the weight value of each link path based on the RTT value of each path probe response message.

[0058] Here, the first network device can determine the weight value of the corresponding link path based on the RTT value of the response packets of each path probe. In this way, the traffic weight of each link path can be intelligently allocated, thereby improving the control effect of load balancing.

[0059] For example, the first network device can calculate the RTT value based on the timestamp recorded in the header of the path probe response message, which indicates the time of origin of the path probe request message and the time of arrival of the path probe response message. The RTT value is equal to the arrival time minus the origination time.

[0060] For example, determining the weight value of each link path based on the RTT value of each path probe response message includes:

[0061] The weight value of each link path is determined based on the proportion of the RTT value of each path probe response message in the sum of the RTT values ​​of the multiple path probe response messages.

[0062] The weight value is negatively correlated with the ratio value.

[0063] Here, the negative correlation between weight and proportion means that the weight decreases as the proportion increases. In an application example, assume that the first network device receives m path probe response messages, the RTT value of the i-th path probe response message is ti, and the sum of the RTT values ​​of the m path probe response messages is t_total, where i∈(1,m), and m is a natural number greater than 1. Then, the weight value Ωi of the link path corresponding to the i-th path probe response message can be expressed as Ωi=1-(ti / t_total). In this way, the weight value of each link path can be determined based on the RTT value of the path probe response message.

[0064] Step 304: Based on the weight value of each link path, the service packets are proportionally allocated to the corresponding link paths and sent to the second network device.

[0065] Here, since the first network device has determined the weight value of each link path based on the aforementioned step 303, it can use a packet-by-packet load balancing method to distribute the data packets of the service message to the corresponding link path according to the weight value of each link path and send them to the second network device. In this way, a single-stream multi-path load balancing mechanism is realized, and the service message is transmitted through multi-path distribution, which helps to improve the utilization rate of the link path in the network, optimize the uniformity of network traffic scheduling, effectively avoid traffic congestion, and thus improve the overall network performance.

[0066] It should be noted that the control method in this application adopts a load balancing mechanism based on single-stream multi-path. Compared with the load balancing mechanism based on per-stream, it can effectively address the traffic congestion caused by statically hashing elephant streams and mouse streams onto the same link, thereby truly meeting performance requirements such as low latency, zero packet loss, and high throughput.

[0067] For example, the network address carried in the path detection response message is an IPv6 address, and the method further includes:

[0068] Extract the IPv6 addresses of all node devices carried in each of the path probe response messages;

[0069] Based on the IPv6 addresses of the node devices along each of the aforementioned link paths, generate the corresponding SRv6 SRH extension header;

[0070] The step of proportionally allocating service packets to the corresponding link paths and sending them to the second network device includes:

[0071] The service message is divided into data packets according to the weight value of each link path, and the divided data packets are encapsulated into SRv6 messages by selecting the corresponding SRH extension header and sending them to the second network device. The SRH extension header of each SRv6 message corresponds one-to-one with the link path.

[0072] Understandably, after receiving a service packet, the first network device can slice the service packet into fixed-length or variable-length segments. For example, it can use MTU (Maximum Transmission Unit) slicing and allocate the number of data packets in a corresponding proportion according to the weight value of each link path. That is, the data packets after MTU slicing are distributed to each link path proportionally, and before forwarding the data packets, the packet header is encapsulated based on the SRH extension header corresponding to the link path, and the packet is encapsulated into an SRv6 message and sent to the second network device. This realizes multi-path diversion and transmission of service packets, effectively avoiding traffic congestion.

[0073] It should be noted that SRv6 is a segment routing transmission technology based on IPv6 data plane forwarding. The source node specifies the path for the service packet and converts the path into an ordered list of segments encapsulated in the SRH extension header. The intermediate nodes of the path only need to forward according to the path specified in the SRH extension header, which simplifies the network and has good scalability.

[0074] In one application example, assume that the set of IPv6 addresses of the node devices along the m-th link path is pathm = {SID[n], SID[n-1], ..., SID[0]}, and the relationship between pathm and the SRv6 SRH extension header is as follows: Figure 4 As shown.

[0075] For example, an SRv6 message with an SRv6 SRH extension header corresponding to the link path to which the data packet was sent is added to the data packet, such as... Figure 5 As shown.

[0076] Reference Figure 4 and Figure 6 In SRv6 packets, the IPv6 destination address field is a constantly changing field, and its value is determined by the Segment Left locator field and the Segment List function field. For example, when Segment Left points to an active field Segment List[2], the IPv6 address of Segment List[2] needs to be copied to the IPv6 destination address field, the IPv6 routing table is looked up for forwarding, and at the same time, Segment Left is updated and decremented. Then the pointer is biased towards the new active field. When the Segment Left field is reduced to 0, it indicates that the SRv6 packet has been passed to the destination node. The destination node pops up the SRH extension header and then performs the next step of processing on the packet.

[0077] For example, when the first network device distributes service packets proportionally to each link path for transmission, it can also assign sequence numbers to the data packets of each link path. In this way, after receiving the SRv6 message, the second network device can deseal the message and reassemble it in out of order based on the sequence number of the data packet to restore the service message. The service message is then uploaded to the application, network card, or CPU (central processing unit) for processing to meet the subsequent service message processing requirements.

[0078] Exemplarily, the control method in this application embodiment further includes:

[0079] Based on the multiple path probe response messages, path probe information representing the reachable link paths between the first network device and the second network device is constructed.

[0080] In one application example, the first network device can build a path detection information maintenance table, which stores path detection information for each link between the first network device and the second network device, such as the set of IPv6 addresses of the node devices along the link path.

[0081] Understandably, the first network device can quickly construct the SRv6 SRH extension header corresponding to the link path based on the aforementioned path detection information.

[0082] Exemplarily, the control method in this application embodiment further includes:

[0083] The path probe request message is sent to the second network device at a set interval.

[0084] Based on the path probe response message returned by the second network device, the path probe information and the weight values ​​of each link path are updated.

[0085] Understandably, the first network device can periodically send path probe request messages to the second network device. In this way, the path probe information and the weight values ​​of each link path can be dynamically updated, which is beneficial for continuous optimization and improvement of network performance.

[0086] For example, the path detection information includes a status identifier corresponding to each link path, the status identifier including a first identifier indicating that the link path is reachable and a second identifier indicating that the link path is unreachable, and updating the path detection information includes:

[0087] If it is determined that there is at least one unreachable link path, then the status identifier of the at least one link path is updated to the second identifier.

[0088] In one application example, the path detection information maintenance table also includes a status flag for the path detection information. If the link path is unreachable, the status flag can be set to idle; if the link path is reachable, the status flag can be set to active.

[0089] For example, after the first network device sends a path probe request message, if it determines that the historical link path has not received a path probe response message within a set time period, then it sets the status flag of the path probe information of that link path to idle.

[0090] For example, updating the weight values ​​of each of the aforementioned link paths includes:

[0091] For the RTT value of the path probe response message of the link path with the status identifier of the first identifier, determine the weight value of each link path with the status identifier of the first identifier.

[0092] Understandably, the first network device only updates the weight values ​​of links with a status of "active". That is, when the first network device performs multi-path forwarding of service packets, it deletes links with a status of "idle" (i.e. cancels the load balancing qualification of the link path), updates the weight values ​​of each reachable link path based on the latest RTT value, divides the service packets into data packets according to the weight values ​​of each link path, selects the corresponding SRH extension header for the divided data packets, encapsulates them into SRv6 packets, and sends them to the second network device. In this way, the dynamic updating of the weight values ​​of the link paths and the dynamic allocation of load balancing per packet are realized, which helps to effectively ensure the overall performance of the network.

[0093] To implement the method of the embodiments of this application, the embodiments of this application also provide a network load balancing control device, which corresponds to the network load balancing control method described above. The steps in the embodiments of the network load balancing control method are also fully applicable to the embodiments of the network load balancing control device.

[0094] The network load balancing control device is applied to the first network device, such as... Figure 7 As shown, the network load balancing control device includes: a probe request module 701, a receiving module 702, a weight determination module 703, and a service processing module 704. The probe request module 701 sends path probe request messages to the second network device; the receiving module 702 receives multiple path probe response messages returned by the second network device, wherein each path probe response message corresponds to a link path connecting the first network device and the second network device, and each path probe response message carries the network addresses of each node device along the link path; the weight determination module 703 determines the weight value of each link path based on the RTT value of each path probe response message; the service processing module 704 allocates service messages proportionally to the corresponding link paths and sends them to the second network device based on the weight values ​​of each link path.

[0095] In some embodiments, the weight determination module 703 determines the weight value of each link path based on the RTT value of each path probe response message, including:

[0096] The weight value of each link path is determined based on the proportion of the RTT value of each path probe response message in the sum of the RTT values ​​of the multiple path probe response messages.

[0097] The weight value is negatively correlated with the ratio value.

[0098] In some embodiments, the network address carried in the path detection response message is an IPv6 address, and the service processing module 704 is further configured to:

[0099] Extract the IPv6 addresses of all node devices carried in each of the path probe response messages;

[0100] Based on the IPv6 addresses of the node devices along each of the aforementioned link paths, generate the corresponding SRv6 SRH extension header;

[0101] The step of proportionally allocating service packets to the corresponding link paths and sending them to the second network device includes:

[0102] The service message is divided into data packets according to the weight value of each link path, and the divided data packets are encapsulated into SRv6 messages by selecting the corresponding SRH extension header and sending them to the second network device. The SRH extension header of each SRv6 message corresponds one-to-one with the link path.

[0103] In some embodiments, the weight determination module 703 is further configured to:

[0104] Based on the multiple path probe response messages, path probe information representing the reachable link paths between the first network device and the second network device is constructed.

[0105] In some embodiments, the probe request module 701 is further configured to send the path probe request message to the second network device based on a set interval; the weight determination module 703 is further configured to update the path probe information and the weight value of each link path based on the path probe response message returned by the second network device.

[0106] In some embodiments, the path detection information includes a status identifier corresponding to each link path, the status identifier including a first identifier indicating that the link path is reachable and a second identifier indicating that the link path is unreachable, and updating the path detection information includes:

[0107] If it is determined that there is at least one unreachable link path, then the status identifier of the at least one link path is updated to the second identifier.

[0108] In some embodiments, updating the weight values ​​of each link path includes:

[0109] For the RTT value of the path probe response message of the link path with the status identifier of the first identifier, determine the weight value of each link path with the status identifier of the first identifier.

[0110] In practical applications, the probe request module 701, the receiving module 702, the weight determination module 703, and the service processing module 704 can be implemented by the processor in the first network device. Of course, the processor needs to run the computer program in the memory to implement its functions.

[0111] It should be noted that the network load balancing control device provided in the above embodiments is only illustrated by the division of the above program modules when performing network load balancing control. In actual applications, the above processing can be distributed to different program modules as needed, that is, the internal structure of the device can be divided into different program modules to complete all or part of the processing described above. In addition, the network load balancing control device and the network load balancing control method embodiments provided in the above embodiments belong to the same concept, and the specific implementation process can be found in the method embodiments, which will not be repeated here.

[0112] Based on the hardware implementation of the above-described program modules, and in order to implement the method of this application embodiment, this application embodiment also provides a network device. This network device (i.e., the aforementioned first network device) can be a transmitting network interface card (NIC). Figure 8 This is only an exemplary structure of the network device, not the entire structure; implementation is possible as needed. Figure 8 The structure shown may be part or all of the structure.

[0113] like Figure 8 As shown, the network device 800 provided in this embodiment includes at least one processor 801, a memory 802, a user interface 803, and at least one network interface 804. The various components in the network device 800 are coupled together via a bus system 805. It can be understood that the bus system 805 is used to implement communication between these components. In addition to a data bus, the bus system 805 also includes a power bus, a control bus, and a status signal bus. However, for clarity, in... Figure 8 The general labeled all buses as Bus System 805.

[0114] The user interface 803 may include a monitor, keyboard, mouse, trackball, click wheel, buttons, touchpad, or touch screen.

[0115] The memory 802 in this embodiment is used to store various types of data to support the operation of the network device. Examples of such data include any computer program used to operate on the network device.

[0116] The network load balancing control method disclosed in this application embodiment can be applied to, or implemented by, processor 801. Processor 801 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the network load balancing control method can be completed by integrated logic circuits in the hardware of processor 801 or by instructions in software form. The processor 801 can be a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. Processor 801 can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. A general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in the embodiments of this application can be directly manifested as execution by a hardware decoding processor, or execution by a combination of hardware and software modules in the decoding processor. The software modules can be located in a storage medium, specifically memory 802. Processor 801 reads information from memory 802 and, in conjunction with its hardware, completes the steps of the network load balancing control method provided in the embodiments of this application.

[0117] In an exemplary embodiment, the network device may be implemented by one or more application-specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers (MCUs), microprocessors, or other electronic components to perform the aforementioned methods.

[0118] It is understood that memory 802 can be volatile memory or non-volatile memory, or both. Non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), ferromagnetic random access memory (FRAM), flash memory, magnetic surface memory, optical disc, or compact disc read-only memory (CD-ROM); magnetic surface memory can be disk storage or magnetic tape storage. Volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), Synchronous Static Random Access Memory (SSRAM), Dynamic Random Access Memory (DRAM), Synchronous Dynamic Random Access Memory (SDRAM), Double Data Rate Synchronous Dynamic Random Access Memory (DDRSDRAM), Enhanced Synchronous Dynamic Random Access Memory (ESDRAM), SyncLink Dynamic Random Access Memory (SLDRAM), and Direct Rambus Random Access Memory (DRRAM).The memories described in the embodiments of this application are intended to include, but are not limited to, these and any other suitable types of memories.

[0119] In an exemplary embodiment, this application also provides a computer storage medium, specifically a computer-readable storage medium, such as a memory 802 storing a computer program, which can be executed by a processor 801 of a network device to complete the steps described in the method of this application embodiment. The computer-readable storage medium can be a ROM, PROM, EPROM, EEPROM, Flash Memory, magnetic surface memory, optical disc, or CD-ROM, etc.

[0120] It should be noted that terms such as "first" and "second" are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence.

[0121] Furthermore, the technical solutions described in the embodiments of this application can be combined arbitrarily without conflict.

[0122] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A network load balancing control method, characterized in that, Applied to the first network device, including: Send a path detection request message to the second network device; Receive multiple path probe response messages returned by the second network device, wherein each path probe response message corresponds to a link path connecting the first network device and the second network device, and each path probe response message carries the network addresses of each node device along the link path; Based on the round-trip time (RTT) of each path probe response message, the weight value of each link path is determined. Based on the weight value of each link path, the service packets are proportionally allocated to the corresponding link paths and sent to the second network device; The network address carried in the path probing response message is an IPv6 address, and the method further includes: Extract the IPv6 addresses of all node devices carried in each of the path probe response messages; Based on the IPv6 addresses of the node devices along each of the aforementioned link paths, generate the corresponding SRv6 segment routing header and SRH extension header. The step of proportionally allocating service packets to the corresponding link paths and sending them to the second network device includes: The service message is divided into data packets according to the weight value of each link path, and the divided data packets are encapsulated into SRv6 messages by selecting the corresponding SRH extension header and sending them to the second network device. The SRH extension header of each SRv6 message corresponds one-to-one with the link path.

2. The method according to claim 1, characterized in that, The determination of the weight value of each link path based on the RTT value of each path probe response message includes: The weight value of each link path is determined based on the proportion of the RTT value of each path probe response message in the sum of the RTT values ​​of the multiple path probe response messages. The weight value is negatively correlated with the ratio value.

3. The method according to claim 1, characterized in that, The method further includes: Based on the multiple path probe response messages, path probe information representing the reachable link paths between the first network device and the second network device is constructed.

4. The method according to claim 3, characterized in that, The method further includes: The path detection request message is sent to the second network device at a set interval. Based on the path probe response message returned by the second network device, the path probe information and the weight values ​​of each link path are updated.

5. The method according to claim 4, characterized in that, The path detection information includes a status identifier corresponding to each link path. The status identifier includes a first identifier indicating that the link path is reachable and a second identifier indicating that the link path is unreachable. Updating the path detection information includes: If it is determined that there is at least one unreachable link path, then the status identifier of the at least one link path is updated to the second identifier.

6. The method according to claim 5, characterized in that, Update the weight values ​​of each of the aforementioned link paths, including: For the RTT value of the path probe response message of the link path with the status identifier of the first identifier, determine the weight value of each link path with the status identifier of the first identifier.

7. A network load balancing control device, characterized in that, Applied to the first network device, including: The probe request module is used to send path probe request messages to the second network device; The receiving module is configured to receive multiple path probe response messages returned by the second network device, wherein each path probe response message corresponds to a link path connecting the first network device and the second network device, and each path probe response message carries the network addresses of each node device along the link path. The weight determination module is used to determine the weight value of each link path based on the RTT value of the path probe response message. The service processing module is used to allocate service packets to the corresponding link paths according to the weight values ​​of each link path and send them to the second network device. The network address carried in the path probe response message is an IPv6 address; the service processing module is further configured to: extract the IPv6 addresses of all node devices carried in each of the path probe response messages; Based on the IPv6 addresses of the node devices along each of the aforementioned link paths, generate the corresponding SRv6 SRH extension header; The service processing module is specifically used to divide the service message into data packets according to the weight value of each link path, select the corresponding SRH extension header for the divided data packets, encapsulate them into SRv6 messages and send them to the second network device, wherein the SRH extension header of each SRv6 message corresponds one-to-one with the link path.

8. A first network device, characterized in that, include: A processor and memory for storing computer programs that can run on the processor, wherein, The processor, when running a computer program, performs the steps of the method according to any one of claims 1 to 6.

9. A computer storage medium storing a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Flow control method and device for hybrid SDN network

    CN111147387A

  • Load balancing method and device

    CN112825512A