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

By determining the link path weight value based on the RTT value in the RDMA lossless network and allocating service messages, the single-stream multi-path load sharing mechanism and SRv6 message delivery are adopted, which solves the congestion problem caused by uneven traffic scheduling and realizes network performance Improvement and flow uniformity optimization.

CN119135611AActive Publication Date: 2024-12-13CHINA MOBILE COMM LTD RES INST +1
View PDF 10 Cites 0 Cited by

Patent Information

Application Number
CN202310689375.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-06-12
Publication Date
2024-12-13
Estimated Expiration
2043-06-12

AI Technical Summary

Technical Problem

In the prior art, the congestion problem caused by uneven traffic scheduling of RDMA lossless networks cannot be effectively solved, resulting in the inability to improve network performance and cannot meet the requirements of low latency, zero packet loss and high throughput.

Method used

By sending a path detection request message, receiving and analyzing the RTT value in the response message, determining the weight value of the link path, and allocating the service message to the corresponding link path based on the weight value, using a single-stream multi-path load sharing mechanism, Generate SRv6 messages to realize multi-path shunt delivery, optimize the uniformity of network traffic scheduling, and avoid traffic congestion.

Benefits of technology

It effectively avoids traffic congestion, improves the overall network performance, meets the performance requirements of low latency, zero packet loss and high throughput, and improves the utilization rate and load balancing effect of link paths.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119135611A_ABST
    Figure CN119135611A_ABST
Patent Text Reader

Abstract

The invention discloses a network load balancing control method and device, equipment and a storage medium. The method comprises the following steps: a first network device sends a path detection request message to a second network device; receiving a plurality of path detection response messages returned by the second network equipment; determining a weight value of each link path based on a round trip time (RTT) value of each path detection response message; and based on the weight value of each link path, distributing the service message to the corresponding link path in proportion and sending the service message to the second network equipment. Thus, based on the weight value of each link path, the service message can be proportionally allocated to the corresponding link path and sent to the second network device, a single-flow multi-path load sharing mechanism is further realized, and the service message is shunted and transmitted through multiple paths, so that the utilization rate of the link paths in the network is improved, and the network performance is improved. The uniformity of network traffic scheduling is optimized, traffic congestion is effectively avoided, and the overall performance of the network is further improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of network transmission technology, and in particular to a control method, device, equipment and storage medium for network load balancing. Background Art

[0002] In related technologies, RDMA (Remote Direct Memory Access) lossless networks need to meet requirements such as low latency, zero packet loss, and high throughput. To ensure zero packet loss, congestion must be avoided as much as possible. Solving the congestion problem caused by uneven network traffic scheduling is one of the key elements to ensure a lossless network. Therefore, it is urgent to optimize the network traffic scheduling of lossless networks to meet the network performance requirements of lossless networks. Summary of the invention

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

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

[0005] The embodiment of the present application provides a method for controlling network load balancing, which is applied to a first network device and includes:

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

[0007] receiving a plurality of path detection response messages returned by the second network device, wherein each of the path detection response messages corresponds to a link path connecting the first network device and the second network device, and each of the path detection response messages carries a network address of each node device along the link path;

[0008] Determine a weight value of each link path based on the RTT (round-trip time) value of each path detection response message;

[0009] Based on the weight value of each link path, the service message is proportionally distributed to the corresponding link path 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 detection response message includes:

[0011] Determine a weight value of each of the link paths based on a ratio of the RTT value of each of the path detection response messages to the sum of the RTT values ​​of the multiple path detection response messages;

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

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

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

[0015] Generate a corresponding SRv6 (Segment Routing IPv6, based on the segment routing of Internet Protocol version 6) SRH (Segment Routing Header) extension header based on the IPv6 address of the node device along each of the link paths;

[0016] The allocating the service message to the corresponding link path in proportion and sending the service message to the second network device includes:

[0017] The service message is divided into data packets in proportion based on the weight value of each link path, and the divided data packets are selected with corresponding SRH extension headers, encapsulated into SRv6 messages and sent to the second network device, wherein the SRH extension headers of each SRv6 message correspond one-to-one to the link path.

[0018] In the above scheme, the method further includes:

[0019] Path detection information indicating a link path reachable between the first network device and the second network device is constructed based on the multiple path detection response messages.

[0020] In the above scheme, the method further includes:

[0021] Sending the path detection request message to the second network device based on a set interval duration;

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

[0023] In the above solution, the path detection information includes a state identifier corresponding to each link path, the state identifier includes 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:

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

[0025] In the above solution, updating the weight value of each link path includes:

[0026] According to the RTT value of the path detection response message of the link path whose state identifier is the first identifier, the weight value of each link path whose state identifier is the first identifier is determined.

[0027] The embodiment of the present application further provides a control device for network load balancing, which is applied to a first network device and includes:

[0028] A detection request module, used for sending a path detection request message to the second network device;

[0029] A receiving module, configured to receive multiple path detection response messages returned by the second network device, wherein each of the path detection response messages corresponds to a link path connecting the first network device and the second network device, and each of the path detection response messages carries a network address of each node device along the link path;

[0030] A weight determination module, used to determine the weight value of each link path based on the RTT value of each path detection response message;

[0031] The service processing module is used to distribute the service message to the corresponding link path in proportion based on the weight value of each link path and send it to the second network device.

[0032] An embodiment of the present application further provides a first network device, comprising: a processor and a memory for storing a computer program that can be run on the processor, wherein the processor executes the steps of the method described in the embodiment of the present application when running the computer program.

[0033] The embodiment of the present application further provides a computer storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps of the method described in the embodiment of the present application are implemented.

[0034] The technical solution provided by the embodiment of the present application is that the first network device sends a path detection request message to the second network device; receives multiple path detection response messages returned by the second network device, wherein each path detection response message corresponds to a link path connecting the first network device and the second network device, and each path detection response message carries the network address of each node device along the link path; based on the round-trip time RTT value of each path detection response message, the weight value of each link path is determined; based on the weight value of each link path, the service message is proportionally allocated to the corresponding link path and sent to the second network device. In this way, based on the weight value of each link path, the service message can be proportionally allocated to the corresponding link path and sent to the second network device, thereby realizing a single-stream multi-path load sharing mechanism, and the service message is transmitted through multi-path diversion, which is conducive to improving the utilization rate of the link path in the network, optimizing the uniformity of network traffic scheduling, effectively avoiding traffic congestion, and thus improving the overall performance of the network. BRIEF DESCRIPTION OF THE DRAWINGS

[0035] Figure 1 A schematic diagram of the principle of switching between a primary link and a backup link in a flow-by-flow load sharing mechanism in the related art;

[0036] Figure 2 It is a schematic diagram of the application of a flow-based load sharing mechanism in the related technology;

[0037] Figure 3 A flowchart of a method for controlling network load balancing according to an embodiment of the present application;

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

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

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

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

[0042] Figure 8 This is a schematic diagram of the structure of the network device according to an embodiment of the present application. DETAILED DESCRIPTION

[0043] The present application is further described in detail below in conjunction with the accompanying drawings and embodiments.

[0044] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as those commonly understood by those skilled in the art to which this application belongs. The terms used herein in the specification of this application are only for the purpose of describing specific embodiments and are not intended to limit this application.

[0045] The relevant RDMA lossless network generally adopts the RC (Reliable Connection) mode, making the flow-based load sharing mechanism the main research direction for solving the uneven scheduling of network traffic. For example, the traffic scheduling between the server network card and the switch adopts the flow-based load sharing mechanism ECMP (Equal-Cost Multi-Path routing). When using ECMP load sharing, the network card will use the five-tuple of the data packet (source IP, destination IP, source port number, destination port number, protocol number) as the hash factor, generate the HASH-KEY value through the HASH algorithm, and then select a member link in the load sharing link according to the HASH-KEY value to forward the data packet. When the five-tuple is the same, the network card will always choose the same next hop address as the last time to send the message. When the five-tuple is different, the network card will select a relatively idle path for forwarding.

[0046] like Figure 1 As shown in the figure, when link1 fails, the original route on link1 will quickly converge through IGP (Interior Gateway Protocol) and select a new link (such as link2) to re-forward traffic. When link1 returns to normal, since link1 has the highest priority, the network card will re-select link1 to send data. In this way, switching back from the backup link to the main link is achieved.

[0047] However, the above-mentioned flow-based load sharing mechanism is essentially a single-flow single-path traffic scheduling method. Although this scheduling method is simple to implement in principle, it lacks a mechanism to consider whether the path itself is congested. In actual business, although the flow hash is uniform, the load of each equivalent link is not uniform, resulting in the failure to improve the overall network performance.

[0048] For packets with the same five-tuple characteristic fields, since their HASH-KEY values ​​are the same, the same member link will be selected for forwarding. It is easy for multiple flows to be hashed to the same path, resulting in link overload, causing a certain physical link to be overloaded, and even congestion leading to packet discard. Figure 2As shown in the figure, although flow2 applies the ECMP function to distribute the traffic of 30G bandwidth to different links for forwarding, it does not take into account the elephant flow that already exists on a member link when selecting the link, resulting in congestion. At the same time, the load of other links is light and the bandwidth utilization is low. In data centers under high-performance computing and distributed storage application scenarios, there will be both latency-sensitive mouse flows and large-bandwidth throughput elephant flows. When the elephant flow and the mouse flow are statically hashed to the same link, the elephant flow will be congested and squeeze out the mouse flow, resulting in a serious degradation of application performance.

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

[0050] like Figure 3 As shown, an embodiment of the present application provides a control method for network load balancing, which is applied to a first network device. The control method includes:

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

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

[0053] Exemplarily, a first network device sends a path detection request message whose destination address is the network address of a second network device. The path detection request message carries a detection tag. A node device along the way determines that it is a path detection request message based on the detection tag, then adds its own network address to the path detection request message, and searches the routing table for all outbound interfaces that reach the destination address of the path detection request message, and sends the path detection request message from these interfaces until it is sent to the second network device.

[0054] Step 302, receiving multiple path detection response messages returned by the second network device, wherein each of the path detection response messages corresponds to a link path connecting the first network device and the second network device, and each of the path detection response messages carries the network address of each node device along the link path.

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

[0056] It can be understood that each path detection response message corresponds to a link path, and each path detection response message carries the network address of each node device along the link path.

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

[0058] Here, the first network device can determine the weight value of the corresponding link path based on the RTT value of each path detection response message, so that the traffic weight of each link path can be intelligently allocated to improve the control effect of load balancing.

[0059] Exemplarily, the first network device may calculate the RTT value based on the sending time of the path detection request message and the arrival time of the path detection response message recorded by the timestamp in the message header of the path detection response message, where RRT value=arrival time-sending time.

[0060] Exemplarily, determining the weight value of each link path based on the RTT value of each path detection response message includes:

[0061] Determine a weight value of each of the link paths based on a ratio of the RTT value of each of the path detection response messages to the sum of the RTT values ​​of the multiple path detection response messages;

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

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

[0064] Step 304: Based on the weight value of each link path, distribute the service message to the corresponding link path in proportion and send it 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, a packet-by-packet load sharing method can be adopted based on the weight value of each link path, and the data packets of the business message are proportionally allocated to the corresponding link paths according to the weight value of each link path and sent to the second network device. In this way, a single-stream multi-path load sharing mechanism is implemented, and the business message is transmitted through multi-path diversion, which is conducive to improving the utilization rate of the link paths in the network, optimizing the uniformity of network traffic scheduling, effectively avoiding traffic congestion, and thus improving the overall network performance.

[0066] It should be noted that the control method of the embodiment of the present application adopts a load sharing mechanism based on single-flow multi-path. Compared with the load sharing mechanism based on flow by flow, it can effectively eliminate the defect of traffic congestion caused by static hashing of elephant flow and mouse flow to the same link, thereby effectively meeting the performance requirements such as low latency, zero packet loss and high throughput.

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

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

[0069] Generate a corresponding SRv6 SRH extension header based on the IPv6 address of the node device along each of the link paths;

[0070] The allocating the service message to the corresponding link path in proportion and sending the service message to the second network device includes:

[0071] The service message is divided into data packets in proportion based on the weight value of each link path, and the divided data packets are selected with corresponding SRH extension headers, encapsulated into SRv6 messages and sent to the second network device, wherein the SRH extension headers of each SRv6 message correspond one-to-one to the link path.

[0072] It can be understood that after the first network device receives the service message, it can perform fixed-length or variable-length slices on the service message, for example, using MTU (Maximum Transmission Unit) slicing, and allocate a corresponding proportion of the number of data packets according to the weight value of each link path, that is, the data packets after MTU slicing are proportionally distributed to each link path, and before forwarding the data packet, the packet header is encapsulated based on the SRH extension header corresponding to the link path, and encapsulated into an SRv6 message and sent to the second network device, thereby realizing multi-path diversion and delivery of the service message, and 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 message and converts the path into an ordered segment list and encapsulates it into the SRH extension header. The intermediate nodes of the path only need to forward according to the path specified in the SRH extension header, making the network simpler and with good scalability.

[0074] In an application example, it is assumed that the IPv6 address set pathm of the node device passing through the mth link path = {SID[n], SID[n-1], ..., SID[0]}, and the relationship between pathm and the SRv6 SRH extension header is as follows: Figure 4 shown.

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

[0076] Reference Figure 4 and Figure 6 In the SRv6 message, 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], it is necessary to copy the IPv6 address of Segment List[2] to the IPv6 destination address field, search the IPv6 routing table for forwarding, and update and decrement Segment Left at the same time, and then move the pointer to the new active field. When the Segment Left field is reduced to 0, it indicates that the SRv6 message is delivered to the destination node, and the destination node pops up the SRH extension header and then processes the message.

[0077] Exemplarily, when the first network device distributes the service message to each link path in proportion for sending, 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 unpacks the message and can reassemble the data packet in a disorderly order based on the sequence number of the data packet to restore the service message and upload the service message to the application, network card or CPU (central processing unit) for processing to meet the subsequent processing requirements of the service message.

[0078] Exemplarily, the control method of the embodiment of the present application further includes:

[0079] Path detection information indicating a link path reachable between the first network device and the second network device is constructed based on the multiple path detection response messages.

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

[0081] It is understandable that 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 of the embodiment of the present application further includes:

[0083] Sending the path detection request message to the second network device based on a set interval duration;

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

[0085] It is understandable that the first network device may periodically send a path detection request message to the second network device, so that the path detection information and the weight value of each link path may be dynamically updated, which is conducive to continuous optimization and improvement of network performance.

[0086] Exemplarily, the path detection information includes a state identifier corresponding to each link path, the state identifier includes 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 link path that is unreachable, the state identifier of the at least one link path is updated to the second identifier.

[0088] In an application example, the path detection information maintenance table also includes a status flag of 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] Exemplarily, after the first network device sends a path detection request message, if it is determined that the historical link path has not received a path detection response message within a set time period, the state flag of the path detection information of the link path is set to idle.

[0090] Exemplarily, updating the weight value of each link path includes:

[0091] According to the RTT value of the path detection response message of the link path whose state identifier is the first identifier, the weight value of each link path whose state identifier is the first identifier is determined.

[0092] It can be understood that the first network device only updates the respective weight values ​​for the link paths with the status mark of active, that is, when the first network device performs multi-path forwarding on the service message, it deletes the link path with the status mark of idle (that is, cancels the load sharing qualification of the link path), and based on the latest RTT value, updates the weight values ​​of the link paths reachable by each path, and then divides the service message into data packets in proportion based on the weight values ​​of each link path, and selects the corresponding SRH extension header for the divided data packets, encapsulates them into SRv6 messages and sends them to the second network device. In this way, the dynamic update of the weight value of the link path and the dynamic allocation of load sharing on a packet-by-packet basis are realized, which is conducive to effectively ensuring the overall performance of the network.

[0093] In order to implement the method of the embodiment of the present application, the embodiment of the present application also provides a control device for network load balancing, which corresponds to the above-mentioned control method for network load balancing, and each step in the above-mentioned control method embodiment of network load balancing is also fully applicable to the embodiment of the control device for network load balancing.

[0094] The network load balancing control device is applied to a first network device, such as Figure 7 As shown, the control device for network load balancing includes: a detection request module 701, a receiving module 702, a weight determination module 703 and a service processing module 704. The detection request module 701 is used to send a path detection request message to the second network device; the receiving module 702 is used to receive multiple path detection response messages returned by the second network device, wherein each of the path detection response messages corresponds to a link path connecting the first network device and the second network device, and each of the path detection response messages carries the network address of each node device along the link path; the weight determination module 703 is used to determine the weight value of each link path based on the RTT value of each path detection response message; the service processing module 704 is used to distribute the service message to the corresponding link path in proportion and send it to the second network device based on the weight value 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 detection response message, including:

[0096] Determine a weight value of each of the link paths based on a ratio of the RTT value of each of the path detection response messages to the sum of the RTT values ​​of the multiple path detection response messages;

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

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

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

[0100] Generate a corresponding SRv6 SRH extension header based on the IPv6 address of the node device along each of the link paths;

[0101] The allocating the service message to the corresponding link path in proportion and sending the service message to the second network device includes:

[0102] The service message is divided into data packets in proportion based on the weight value of each link path, and the divided data packets are selected with corresponding SRH extension headers, encapsulated into SRv6 messages and sent to the second network device, wherein the SRH extension headers of each SRv6 message correspond one-to-one to the link path.

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

[0104] Path detection information indicating a link path reachable between the first network device and the second network device is constructed based on the multiple path detection response messages.

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

[0106] In some embodiments, the path detection information includes a state identifier corresponding to each link path, the state identifier includes 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 link path that is unreachable, the state identifier of the at least one link path is updated to the second identifier.

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

[0109] According to the RTT value of the path detection response message of the link path whose state identifier is the first identifier, the weight value of each link path whose state identifier is the first identifier is determined.

[0110] In actual application, the detection request module 701, the receiving module 702, the weight determination module 703 and the service processing module 704 can be implemented by a 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 control device for network load balancing provided in the above embodiment only uses the division of the above program modules as an example when performing network load balancing control. In actual applications, the above processing can be assigned to different program modules as needed, that is, the internal structure of the device is divided into different program modules to complete all or part of the processing described above. In addition, the control device for network load balancing provided in the above embodiment and the control method embodiment for network load balancing belong to the same concept. The specific implementation process is detailed in the method embodiment and will not be repeated here.

[0112] Based on the hardware implementation of the above program module and in order to implement the method of the embodiment of the present application, the embodiment of the present application further provides a network device. The network device (ie the aforementioned first network device) can be a sending end network card. Figure 8 Only an exemplary structure of the network device is shown, not all structures, and can be implemented as needed. Figure 8 Partial or complete structure shown.

[0113] like Figure 8 As shown, the network device 800 provided in the embodiment of the present application 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 through a bus system 805. It can be understood that the bus system 805 is used to realize the connection and communication between these components. In addition to the data bus, the bus system 805 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, in Figure 8 Various buses are labeled as bus system 805 .

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

[0115] The memory 802 in the embodiment of the present application 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 control method of network load balancing disclosed in the embodiment of the present application can be applied to the processor 801, or implemented by the processor 801. The processor 801 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the control method of network load balancing can be completed by the hardware integrated logic circuit or software instructions in the processor 801. The above-mentioned processor 801 can be a general-purpose processor, a digital signal processor (DSP, DigitalSignal Processor), or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc. The processor 801 can implement or execute the various methods, steps and logic block diagrams disclosed in the embodiment of the present application. The general-purpose processor can be a microprocessor or any conventional processor, etc. In combination with the steps of the method disclosed in the embodiment of the present application, it can be directly embodied as a hardware decoding processor to execute, or it can be executed by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium, which is located in the memory 802. The processor 801 reads the information in the memory 802 and completes the steps of the control method of network load balancing provided in the embodiment of the present application in combination with its hardware.

[0117] In an exemplary embodiment, the network device may be implemented by one or more application specific integrated circuits (ASIC), DSP, programmable logic device (PLD), complex programmable logic device (CPLD), field programmable gate array (FPGA), general processor, controller, microcontroller (MCU), microprocessor, or other electronic components to execute the aforementioned method.

[0118] It can be understood that the memory 802 can be a volatile memory or a non-volatile memory, and can also include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a magnetic random access memory (FRAM), a flash memory, a magnetic surface memory, an optical disk, or a compact disc read-only memory (CD-ROM); the magnetic surface memory can be a disk memory or a tape memory. The volatile memory can be a random access memory (RAM), which is used as an external cache. By way of example and 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), synchronous link dynamic random access memory (SLDRAM, SyncLink Dynamic Random Access Memory), and direct RAM bus random access memory (DRRAM, Direct Rambus Random Access Memory).The memories described in the embodiments of the present application are intended to include, but are not limited to, these and any other suitable types of memories.

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

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

[0121] In addition, the technical solutions described in the embodiments of the present application can be combined arbitrarily without conflict.

[0122] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

Claims

1. A method for controlling network load balancing, characterized in that: Applied to a first network device, comprising: Sending a path detection request message to the second network device; receiving a plurality of path detection response messages returned by the second network device, wherein each of the path detection response messages corresponds to a link path connecting the first network device and the second network device, and each of the path detection response messages carries a network address of each node device along the link path; Determine a weight value of each link path based on the round trip time (RTT) value of each path detection response message; Based on the weight value of each link path, the service message is proportionally distributed to the corresponding link path and sent to the second network device.

2. The method according to claim 1, characterized in that The determining the weight value of each link path based on the RTT value of each path detection response message includes: Determine a weight value of each of the link paths based on a ratio of the RTT value of each of the path detection response messages to the sum of the RTT values ​​of the multiple path detection response messages; The weight value is negatively correlated with the ratio value.

3. The method according to claim 1, characterized in that The network address carried by the path detection response message is an IPv6 address, and the method further includes: Extracting the IPv6 addresses of all node devices carried in each of the path detection response messages; Generate a corresponding SRv6 segment routing header (SRH) extension header based on the IPv6 address of the node device along each link path; The allocating the service message to the corresponding link path in proportion and sending the service message to the second network device includes: The service message is divided into data packets in proportion based on the weight value of each link path, and the divided data packets are selected with corresponding SRH extension headers, encapsulated into SRv6 messages and sent to the second network device, wherein the SRH extension headers of each SRv6 message correspond one-to-one to the link path.

4. The method according to claim 1, characterized in that: The method further comprises: Path detection information indicating a link path reachable between the first network device and the second network device is constructed based on the multiple path detection response messages.

5. The method according to claim 4, characterized in that The method further comprises: Sending the path detection request message to the second network device based on a set interval duration; Based on the received path detection response message returned by the second network device, the path detection information and the weight value of each link path are updated.

6. The method according to claim 5, characterized in that The path detection information includes a state identifier corresponding to each link path, the state identifier includes 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: If it is determined that there is at least one link path that is unreachable, the state identifier of the at least one link path is updated to the second identifier.

7. The method according to claim 6, characterized in that Updating the weight value of each link path includes: According to the RTT value of the path detection response message of the link path whose state identifier is the first identifier, the weight value of each link path whose state identifier is the first identifier is determined.

8. A network load balancing control device, characterized in that: Applied to a first network device, comprising: A detection request module, used for sending a path detection request message to the second network device; A receiving module, configured to receive multiple path detection response messages returned by the second network device, wherein each of the path detection response messages corresponds to a link path connecting the first network device and the second network device, and each of the path detection response messages carries a network address of each node device along the link path; A weight determination module, used to determine the weight value of each link path based on the RTT value of each path detection response message; The service processing module is used to distribute the service message to the corresponding link path in proportion based on the weight value of each link path and send it to the second network device.

9. A first network device, characterized in that: include: A processor and a memory for storing a computer program that can be executed on the processor, wherein: The processor is used to execute the steps of the method according to any one of claims 1 to 7 when running a computer program.

10. A computer storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.

Citation Information

Patent Citations

  • Multipath load balancing method based on service awareness

    CN103685054A

  • Routing method for hybrid topologic structure data center, path detection mechanism and message processing mechanism

    CN104038418A

  • DDoS filtering method based on SDN network architecture

    CN105871773A

  • Method and device for balancing network outbound load

    CN106534301A

  • Flow control method and device for hybrid SDN network

    CN111147387A