Load balancing method based on adaptive adjustment and related equipment

By calculating the time difference value and adaptive adjustment timeout value in the data sending queue, the problem of existing load balancing methods slow response when network congestion is solved, achieving more efficient load balancing and better network utilization.

CN119865461AActive Publication Date: 2025-04-22湖南工商大学
View PDF 11 Cites 0 Cited by

Patent Information

Application Number
CN202510348114.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-24
Publication Date
2025-04-22
Estimated Expiration
2045-03-24

AI Technical Summary

Technical Problem

The existing load balancing method is difficult to respond quickly and alleviate congestion when the network is congested, resulting in impairment of transmission performance and low rationality.

Method used

By obtaining the arrival time of the target packet arrival data sending queue, and compute the time difference between the arrival time of the previous packet. When the time difference is greater than the timeout value, the packet is rerouted to other queues; when the time difference is less than or equal to the timeout value, the timeout value is adaptively adjusted according to the packet status to achieve more accurate load balancing.

Benefits of technology

The real-time and accuracy of the timeout value are improved, and packet rerouting is carried out through accurate timeout value, which improves the rationality of packet allocation, thereby improving the overall throughput of the data sending end and effectively improving the rationality of load balancing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119865461A_ABST
    Figure CN119865461A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of load balancing, and provides a load balancing method based on adaptive adjustment and related equipment. The method comprises the following steps: acquiring the arrival time of a target data packet arriving at a data sending queue of a data sending end at the current moment, and acquiring the arrival time of each other data packet in the data sending queue; calculating the time difference between the arrival time of the last data packet of the target data packet in the data sending queue and the arrival time of the target data packet; when the time difference value is greater than the timeout value of the previous moment of the current moment, rerouting the target data packet to other data sending queues of the data sending end; and when the time difference is smaller than or equal to the timeout value of the previous moment of the current moment, adaptively adjusting the timeout value according to all the data packets in the data sending queue to obtain the timeout value of the current moment. According to the method, the reasonability of load balancing can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of load balancing, and in particular to a load balancing method based on adaptive adjustment and related equipment. Background Art

[0002] Traditional data center load balancing solutions can be divided into three categories according to the rerouting granularity: flow-level, packet-level, and flowlet-level. As the most representative flow-level load balancing solution, equal-cost multi-path routing (ECMP) distributes data flows to different transmission paths through a hash algorithm. However, network throughput will drop severely when hash conflicts occur, resulting in suboptimal overall network utilization. Packet-level related load balancing solutions use data packets as units and distribute them to various paths to maximize the utilization of network bandwidth. However, in link failures or asymmetric topology networks, packet-level load balancing solutions are prone to out-of-order problems, resulting in unnecessary retransmissions and longer flow completion times. The flowlet-level load balancing solution takes advantage of the burstiness of traffic and sets a sufficiently large timeout value ( , Flow Timeout Value), such as 2 times the round-trip time (RTT), a data flow is divided into multiple flowlets. Specifically, when the time interval between data packets transmitted by a data flow exceeds the above When the data flow is divided into multiple flowlets, the subsequent data packets are rerouted to other paths for transmission. If the time is set large enough, this method will not only avoid packet disorder problems, but also outperform the other two load balancing schemes in terms of throughput and network utilization when there are many flowlets.

[0003] Although the current Flowlet-level load balancing solution has a relatively good load balancing effect, it also has limitations. Most Flowlet-level load balancing solutions use fixed , or simply decreases in size according to the amount of data sent (such as the HalfLife solution), but cannot actively reroute based on the data flow transmission status and network congestion status. When network congestion occurs, it is difficult to respond quickly and alleviate congestion, which damages transmission performance. It can be seen that the current load balancing method has the problem of low rationality of load balancing. Summary of the invention

[0004] The present application provides a load balancing method based on adaptive adjustment and related equipment, which can solve the problem of low rationality of load balancing.

[0005] In a first aspect, an embodiment of the present application provides a load balancing method based on adaptive adjustment, the load balancing method comprising: Obtain the arrival time of the target data packet at the data transmission queue of the data transmission end at the current moment, and obtain the arrival time of each other data packet in the data transmission queue; Calculate the time difference between the arrival time of the previous data packet of the target data packet in the data transmission queue and the arrival time of the target data packet; When the time difference is greater than the timeout value of the previous moment of the current moment, the target data packet is rerouted to other data sending queues of the data sending end; the timeout value is used to describe the congestion status of the data sending queue; When the time difference is less than or equal to the timeout value of the previous moment of the current moment, the timeout value is adaptively adjusted according to all data packets in the data transmission queue to obtain the timeout value of the current moment; when the next moment of the current moment arrives, load balancing is performed according to the timeout value of the current moment.

[0006] Optionally, the timeout value is adaptively adjusted according to all data packets in the data transmission queue to obtain the timeout value at the current moment, including: Calculate the length change value of all data sending queues at the data sending end; Calculate the queue growth gradient index based on the length change value; Respectively for At each moment of time, if at a certain moment, the number of data packets in the data transmission queue where the target data packet is located Greater than the queue congestion threshold , then the data is sent to the queue All packets are regarded as congested packets; The moment is the current moment; Calculate the congestion index of the data sending queue based on the congested data packets corresponding to all times; The timeout value at the current moment is calculated based on the queue growth gradient index and the congestion index.

[0007] Optionally, the length change values ​​of all data sending queues of the data sending end are calculated, including: By formula: Calculate the length change ; in, Indicates the number of data sending queues at the data sending end. Indicated in The receiving rate of the data sending queue at a certain moment, Indicated in The sending rate of the data sending queue at a certain moment.

[0008] Optionally, the queue growth gradient index is calculated based on the length change value, including: By formula: Calculate the queue growth gradient index ; in, Indicates the maximum queue length.

[0009] Optionally, the congestion index of the data transmission queue is calculated based on the congested data packets corresponding to all times, including: By formula: ; Calculate the congestion index of the data sending queue ; in, Indicates the mean number of congested packets at the current moment, Indicates the average number of congested packets at the previous moment of the current moment, represents the weight, Indicates the number of congested data packets in the data sending queue at the current moment. Indicates the total number of data packets in the data sending queue at the current moment.

[0010] Optionally, the timeout value at the current moment is calculated based on the queue growth gradient index and the congestion index, including: By formula: Calculate the timeout value at the current moment ; in, Indicates the initial timeout value, represents the coefficient, Indicates the round-trip latency of the data sending queue.

[0011] Optionally, after the step of rerouting the target data packet to other data transmission queues of the data transmission end when the time difference is greater than the timeout value of the previous moment of the current moment, the load balancing method further includes: Set the current timeout value as the initial timeout value.

[0012] In a second aspect, an embodiment of the present application provides a load balancing device based on adaptive adjustment, including: An acquisition module, used to acquire the arrival time of the target data packet at the data transmission queue of the data transmission end at the current moment, and acquire the arrival time of each other data packet in the data transmission queue; A calculation module, used for calculating the time difference between the arrival time of the previous data packet of the target data packet in the data transmission queue and the arrival time of the target data packet; The rerouting module is used to reroute the target data packet to other data transmission queues of the data transmission end when the time difference is greater than the timeout value of the previous moment of the current moment; the timeout value is used to describe the congestion status of the data transmission queue; The adaptive adjustment module is used to adaptively adjust the timeout value according to all data packets in the data transmission queue to obtain the timeout value of the current moment when the time difference is less than or equal to the timeout value of the previous moment of the current moment; when the next moment of the current moment arrives, load balancing is performed according to the timeout value of the current moment.

[0013] In a third aspect, an embodiment of the present application provides a terminal device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the above-mentioned load balancing method based on adaptive adjustment when executing the above-mentioned computer program.

[0014] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, it implements the above-mentioned load balancing method based on adaptive adjustment.

[0015] The above solution of the present application has the following beneficial effects: In an embodiment of the present application, by obtaining the arrival time of the target data packet at the data transmission queue of the data transmission end at the current moment, and obtaining the arrival time of each other data packet in the data transmission queue, and then calculating the time difference between the arrival time of the previous data packet of the target data packet in the data transmission queue and the arrival time of the target data packet, and then when the time difference is greater than the timeout value of the previous moment of the current moment, the target data packet is rerouted to other data transmission queues of the data transmission end, and when the time difference is less than or equal to the timeout value of the previous moment of the current moment, the timeout value is adaptively adjusted according to all data packets in the data transmission queue to obtain the timeout value of the current moment. Among them, adjusting the timeout value according to the status of the data packet in the data transmission queue can improve the real-time and accuracy of the timeout value, and rerouting the data packet according to the accurate timeout value can improve the rationality of data packet allocation, thereby improving the overall throughput of the data transmission end and effectively improving the rationality of load balancing.

[0016] Other beneficial effects of the present application will be described in detail in the subsequent specific implementation section. BRIEF DESCRIPTION OF THE DRAWINGS

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

[0018] Figure 1 A flow chart of a load balancing method based on adaptive adjustment provided in one embodiment of the present application; Figure 2 A timeout value curve diagram provided for an embodiment of the present application; Figure 3 A schematic diagram of the structure of a load balancing device based on adaptive adjustment provided in one embodiment of the present application; Figure 4 A schematic diagram of the structure of a terminal device provided in one embodiment of the present application. DETAILED DESCRIPTION

[0019] In the following description, specific details such as specific system structures, technologies, etc. are provided for the purpose of illustration rather than limitation, so as to provide a thorough understanding of the embodiments of the present application. However, it should be clear to those skilled in the art that the present application may also be implemented in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted to prevent unnecessary details from obstructing the description of the present application.

[0020] It should be understood that when used in the present specification and the appended claims, the term "comprising" indicates the presence of described features, wholes, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, wholes, steps, operations, elements, components and / or combinations thereof.

[0021] It should also be understood that the term “and / or” used in the specification and appended claims refers to any and all possible combinations of one or more of the associated listed items, and includes these combinations.

[0022] As used in the specification and appended claims of this application, the term "if" can be interpreted as "when" or "uponce" or "in response to determining" or "in response to detecting", depending on the context. Similarly, the phrase "if it is determined" or "if [described condition or event] is detected" can be interpreted as meaning "uponce it is determined" or "in response to determining" or "uponce [described condition or event] is detected" or "in response to detecting [described condition or event]", depending on the context.

[0023] In addition, in the description of the present application specification and the appended claims, the terms "first", "second", "third", etc. are only used to distinguish the descriptions and cannot be understood as indicating or implying relative importance.

[0024] References to "one embodiment" or "some embodiments" etc. described in the specification of this application mean that one or more embodiments of the present application include specific features, structures or characteristics described in conjunction with the embodiment. Therefore, the statements "in one embodiment", "in some embodiments", "in some other embodiments", "in some other embodiments", etc. that appear in different places in this specification do not necessarily refer to the same embodiment, but mean "one or more but not all embodiments", unless otherwise specifically emphasized in other ways. The terms "including", "comprising", "having" and their variations all mean "including but not limited to", unless otherwise specifically emphasized in other ways.

[0025] In view of the low rationality of the existing load balancing, the embodiment of the present application provides a load balancing method based on adaptive adjustment, which obtains the arrival time of the target data packet at the data transmission queue of the data transmission end at the current moment, obtains the arrival time of each other data packet in the data transmission queue, and then calculates the time difference between the arrival time of the previous data packet of the target data packet in the data transmission queue and the arrival time of the target data packet, and then when the time difference is greater than the timeout value of the previous moment of the current moment, the target data packet is rerouted to other data transmission queues of the data transmission end, and when the time difference is less than or equal to the timeout value of the previous moment of the current moment, the timeout value is adaptively adjusted according to all the data packets in the data transmission queue to obtain the timeout value of the current moment. Among them, adjusting the timeout value according to the status of the data packet in the data transmission queue can improve the real-time and accuracy of the timeout value, and rerouting the data packet according to the accurate timeout value can improve the rationality of data packet allocation, thereby improving the overall throughput of the data transmission end and effectively improving the rationality of load balancing.

[0026] Next, an exemplary description is given of the load balancing method based on adaptive adjustment provided in this application.

[0027] like Figure 1 As shown, the load balancing method based on adaptive adjustment provided by the present application includes the following steps: Step 11, obtaining the arrival time of the target data packet at the data transmission queue of the data transmission end at the current moment, and obtaining the arrival time of each other data packet in the data transmission queue.

[0028] The above-mentioned data sending end may be an upstream switch, etc. The data sending end has multiple data sending queues, and each data sending queue sends a data packet to a data receiving end (such as a downstream switch, etc.) through a corresponding data sending link.

[0029] It should be noted that, for the target data packet, the time when it arrives at the data transmission queue is the current time, and the corresponding arrival time is the time corresponding to the current time, such as 8 o'clock. The data packets in the data transmission queue are data packets that are retained in the data transmission queue and are waiting for transmission.

[0030] Step 12, calculating the time difference between the arrival time of the previous data packet of the target data packet in the data transmission queue and the arrival time of the target data packet.

[0031] Specifically, the arrival time of the previous data packet of the target data packet in the data transmission queue is subtracted from the arrival time of the target data packet to obtain a time difference value.

[0032] Exemplarily, the arrival time of the target data packet is 8 o'clock, and in the data transmission queue, the arrival time of the previous data packet of the target data packet is 8:10, so the time difference is 10 minutes.

[0033] Step 13: When the time difference is greater than the timeout value of the previous moment between the current moment, the target data packet is rerouted to other data sending queues of the data sending end.

[0034] The above timeout value is used to describe the congestion status of the data transmission queue. After the target data packet is rerouted, the timeout value at the current moment is set as the initial timeout value.

[0035] It should be noted that when the target data packet is rerouted to other data sending queues of the data sending end, the target data packet can be rerouted according to the queue length of other data sending queues, and the target data packet can be rerouted to the data sending queue with the shortest queue length at the current moment to achieve load balancing.

[0036] Step 14: When the time difference is less than or equal to the timeout value at the previous moment of the current moment, the timeout value is adaptively adjusted according to all the data packets in the data transmission queue to obtain the timeout value at the current moment.

[0037] When the next time of the current time arrives, load balancing is performed based on the timeout value of the current time.

[0038] In some embodiments of the present application, when the time difference is less than or equal to the timeout value at the previous moment of the current moment, only the timeout value of the data transmission queue needs to be adaptively adjusted, and there is no need to reroute the data packets. The data packets in the data transmission queue are transmitted in sequence. The above-mentioned step of adaptively adjusting the timeout value according to all the data packets in the data transmission queue to obtain the timeout value at the current moment includes: The first step is to calculate the length change value of all data sending queues at the data sending end.

[0039] Specifically, through the formula: Calculate the length change .

[0040] in, Indicates the number of data sending queues at the data sending end. Indicated in The receiving rate of the data sending queue at a certain moment, Indicated in The sending rate of the data sending queue at a certain moment.

[0041] The second step is to calculate the queue growth gradient index based on the length change value.

[0042] Specifically, through the formula: Calculate the queue growth gradient index .

[0043] in, Indicates the maximum queue length.

[0044] The third step is to At each moment of time, if at a certain moment, the number of data packets in the data transmission queue where the target data packet is located Greater than the queue congestion threshold , then the data is sent to the queue All packets are regarded as congested packets.

[0045] No. The moment is the current moment, and the value of T is set according to the actual data sending status of the data sending end, such as T=8.

[0046] Exemplarily, at the first moment, there are 8 data packets in the data transmission queue, and the queue congestion threshold is 5, then the last 3 data packets are regarded as congested data packets.

[0047] The fourth step is to calculate the congestion index of the data sending queue based on the congested data packets corresponding to all times.

[0048] Specifically, through the formula: ; Calculate the congestion index of the data sending queue ; in, Indicates the mean number of congested packets at the current moment, Indicates the average number of congested packets at the previous moment of the current moment, represents the weight, Indicates the number of congested data packets in the data sending queue at the current moment. Indicates the total number of data packets in the data sending queue at the current moment.

[0049] Step 5: Calculate the timeout value at the current moment according to the queue growth gradient index and the congestion index.

[0050] Specifically, through the formula: Calculate the timeout value at the current moment .

[0051] in, Indicates the initial timeout value, represents the coefficient, Indicates the round-trip latency of the data sending queue.

[0052] It should be noted that at the next moment of the current moment, according to the process of step 13 to step 14, according to the timeout value of the current moment Load balancing is performed. At the time of starting load balancing, the timeout value is the initial timeout value. When the number of data packets in the data transmission queue is less than or equal to the congestion threshold, it means that the data transmission queue is not congested. At this time, the focus is on ensuring the efficiency and stability of network transmission. According to the above formula, the queue growth gradient index at this time and congestion index Both are close to 0, and the timeout value decays slowly, which can reduce the rerouting frequency of the non-congested data sending queue and avoid the data sending queue from switching quickly between multiple paths, which affects the transmission stability and transmission rate, thereby effectively reducing the overall traffic completion time.

[0053] In some embodiments of the present application, the relevant information of the data packet is recorded at the data sending end. Specifically, a hash calculation is performed on each data stream (i.e., a data sending queue, including multiple data packets to be sent) at the data sending end according to its source and destination IP addresses and source and destination port numbers to obtain the data stream number, which is recorded as , and As the primary key, create a data packet timetable at the data sending end. , )、Data Flow Timeout Table FTV( , ) and the packet number table numbers ( , , ).in Represents the time when the data packet arrives at the data sender; the queue length is counted in units of data packets. ,It should be noted that the length recorded here is the total length of all data flows in the queue, rather than the total length of a data flow in the queue; Indicates the actual number of packets marked as congested packets at the data sender; and The statistics are collected every RTT.

[0054] The above formula for calculating the timeout value shows that if the queue growth gradient index is large and the congestion index is high, then the two have a significant impact on the timeout value. The weight of the attenuation ratio is greater, and the timeout value The decay speed is faster. On the contrary, if the queue growth gradient index is small and the congestion index is small, it may mean that the data sender has encountered an instantaneous incast. The data sender can absorb and restore the original state in a short time. Therefore, the frequency of rerouting can be temporarily suspended for non-congested data flows, especially short flows, so that they can maintain efficient and stable transmission on the original path. The timeout value curve of adaptive adjustment is as follows: Figure 2 As shown in the figure, the horizontal axis represents the time at every round-trip delay (RTT), and the vertical axis represents the timeout value FTV at every round-trip delay (RTT). The upper and lower limits of the threshold and the benchmark value are marked. The dots represent the changes in FTV values ​​under this scheme, and the square dots represent the changes in FTV values ​​in the existing scheme.

[0055] It is worth mentioning that adjusting the timeout value according to the status of the data packets in the data sending queue can improve the real-time and accuracy of the timeout value. Rerouting the data packets according to the accurate timeout value can improve the rationality of data packet distribution, thereby improving the overall throughput of the data sending end and effectively improving the rationality of load balancing.

[0056] In addition, the method can quickly reduce the timeout value of the data sending queue, so that the congested data sending queue can quickly obtain the rerouting opportunity. At the same time, it can ensure the basic stability of the timeout value of the high-speed non-congested data sending queue, so that the non-congested data sending queue can quickly complete the transmission on the current path, thereby improving the overall transmission efficiency.

[0057] The following is an exemplary description of the load balancing device based on adaptive adjustment provided by the present application.

[0058] like Figure 3 As shown, the embodiment of the present application provides a load balancing device based on adaptive adjustment, and the load balancing device based on adaptive adjustment 300 includes: The acquisition module 301 is used to acquire the arrival time of the target data packet at the data transmission queue of the data transmission end at the current moment, and acquire the arrival time of each other data packet in the data transmission queue; The calculation module 302 is used to calculate the time difference between the arrival time of the previous data packet of the target data packet in the data transmission queue and the arrival time of the target data packet; The rerouting module 303 is used to reroute the target data packet to other data transmission queues of the data transmission end when the time difference is greater than the timeout value of the previous moment of the current moment; the timeout value is used to describe the congestion status of the data transmission queue; The adaptive adjustment module 304 is used to adaptively adjust the timeout value according to all data packets in the data transmission queue to obtain the timeout value of the current moment when the time difference is less than or equal to the timeout value of the previous moment of the current moment; when the next moment of the current moment arrives, load balancing is performed according to the timeout value of the current moment.

[0059] It should be noted that the information interaction, execution process, etc. between the above-mentioned devices / units are based on the same concept as the method embodiment of the present application. Their specific functions and technical effects can be found in the method embodiment part and will not be repeated here.

[0060] The technicians in the relevant field can clearly understand that for the convenience and simplicity of description, only the division of the above-mentioned functional units and modules is used as an example for illustration. In practical applications, the above-mentioned function allocation can be completed by different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiment can be integrated in a processing unit, or each unit can exist physically separately, or two or more units can be integrated in one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software functional units. In addition, the specific names of the functional units and modules are only for the convenience of distinguishing each other, and are not used to limit the scope of protection of this application. The specific working process of the units and modules in the above-mentioned system can refer to the corresponding process in the aforementioned method embodiment, which will not be repeated here.

[0061] like Figure 4 As shown, an embodiment of the present application provides a terminal device. The terminal device D10 of this embodiment includes: at least one processor D100 ( Figure 4 Only one processor is shown in the figure), a memory D101, and a computer program D102 stored in the memory D101 and executable on the at least one processor D100, wherein the processor D100 implements the steps of any of the above-mentioned method embodiments when executing the computer program D102.

[0062] Specifically, when the processor D100 executes the computer program D102, the arrival time of the target data packet at the data transmission queue of the data transmission end is obtained at the current moment, and the arrival time of each other data packet in the data transmission queue is obtained, and then the time difference between the arrival time of the previous data packet of the target data packet in the data transmission queue and the arrival time of the target data packet is calculated, and then when the time difference is greater than the timeout value of the previous moment of the current moment, the target data packet is rerouted to other data transmission queues of the data transmission end, and when the time difference is less than or equal to the timeout value of the previous moment of the current moment, the timeout value is adaptively adjusted according to all data packets in the data transmission queue to obtain the timeout value of the current moment. Among them, adjusting the timeout value according to the status of the data packet in the data transmission queue can improve the real-time and accuracy of the timeout value, and rerouting the data packet according to the accurate timeout value can improve the rationality of data packet allocation, thereby improving the overall throughput of the data transmission end and effectively improving the rationality of load balancing.

[0063] The processor D100 may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor or any conventional processor, etc.

[0064] In some embodiments, the memory D101 may be an internal storage unit of the terminal device D10, such as a hard disk or memory of the terminal device D10. In other embodiments, the memory D101 may also be an external storage device of the terminal device D10, such as a plug-in hard disk, a smart memory card (SMC, SmartMedia Card), a secure digital (SD, Secure Digital) card, a flash card (Flash Card), etc. equipped on the terminal device D10. Further, the memory D101 may also include both an internal storage unit of the terminal device D10 and an external storage device. The memory D101 is used to store an operating system, an application program, a boot loader (BootLoader), data, and other programs, such as the program code of the computer program, etc. The memory D101 may also be used to temporarily store data that has been output or is to be output.

[0065] An embodiment of the present application further provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps in the above-mentioned method embodiments can be implemented.

[0066] An embodiment of the present application provides a computer program product. When the computer program product runs on a terminal device, the terminal device can implement the steps in the above-mentioned method embodiments when executing the computer program product.

[0067] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the present application implements all or part of the processes in the above-mentioned embodiment method, which can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a computer-readable storage medium. When the computer program is executed by the processor, the steps of the above-mentioned method embodiments can be implemented. Among them, the computer program includes computer program code, and the computer program code can be in source code form, object code form, executable file or some intermediate form. The computer-readable medium may at least include: any entity or device that can carry the computer program code to the load balancing method device / terminal device based on adaptive adjustment, a recording medium, a computer memory, a read-only memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory), an electric carrier signal, a telecommunication signal, and a software distribution medium. For example, a USB flash drive, a mobile hard disk, a disk or an optical disk.

[0068] In the above embodiments, the description of each embodiment has its own emphasis. For parts that are not described or recorded in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

[0069] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0070] The above is a preferred embodiment of the present application. It should be pointed out that for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the principles described in the present application. These improvements and modifications should also be regarded as the scope of protection of the present application.

Claims

1. A load balancing method based on adaptive adjustment, characterized in that: include: Obtaining the arrival time of the target data packet at the data transmission queue of the data transmission end at the current moment, and obtaining the arrival time of each other data packet in the data transmission queue; Calculating the time difference between the arrival time of the previous data packet of the target data packet in the data transmission queue and the arrival time of the target data packet; When the time difference is greater than the timeout value of the previous moment of the current moment, the target data packet is rerouted to other data transmission queues of the data transmission end; the timeout value is used to describe the congestion status of the data transmission queue; When the time difference is less than or equal to the timeout value of the previous moment of the current moment, the timeout value is adaptively adjusted according to all data packets in the data sending queue to obtain the timeout value of the current moment; when the next moment of the current moment arrives, load balancing is performed according to the timeout value of the current moment.

2. The load balancing method according to claim 1, characterized in that: The adaptively adjusting the timeout value according to all the data packets in the data transmission queue to obtain the timeout value at the current moment includes: Calculate the length change value of all data sending queues of the data sending end; Calculate the queue growth gradient index according to the length change value; For At each moment of time, if at a moment, the number of data packets in the data transmission queue where the target data packet is located Greater than the queue congestion threshold , then the data is sent to the queue All packets are regarded as congested packets; The moment is the current moment; Calculate the congestion index of the data transmission queue based on the congested data packets corresponding to all times; The timeout value at the current moment is calculated according to the queue growth gradient index and the congestion index.

3. The load balancing method according to claim 2, characterized in that: The calculating the length change value of all data sending queues of the data sending end includes: By formula: Calculate the length change ; in, represents the number of data sending queues of the data sending end, Indicated in The receiving rate of the data sending queue at a certain moment, Indicated in The sending rate of the data sending queue at a certain moment.

4. The load balancing method according to claim 3, characterized in that: The calculating the queue growth gradient index according to the length change value includes: By formula: Calculate the queue growth gradient index ; in, Indicates the maximum queue length.

5. The load balancing method according to claim 4, characterized in that: The calculating the congestion index of the data transmission queue based on the congested data packets corresponding to all times includes: By formula: ; Calculate the congestion index of the data sending queue ; in, Indicates the mean number of congested packets at the current moment, Indicates the average number of congested packets at the previous moment of the current moment, represents the weight, Indicates the number of congested data packets in the data transmission queue at the current moment, Indicates the total number of data packets in the data sending queue at the current moment.

6. The load balancing method according to claim 5, characterized in that: The calculating the timeout value at the current moment according to the queue growth gradient index and the congestion index includes: By formula: Calculate the timeout value at the current moment ; in, Indicates the initial timeout value, represents the coefficient, Indicates the round-trip latency of the data sending queue.

7. The load balancing method according to claim 1, characterized in that: After the step of rerouting the target data packet to other data transmission queues of the data transmission end when the time difference is greater than the timeout value of the previous moment of the current moment, the load balancing method further includes: Set the current timeout value as the initial timeout value.

8. A load balancing device based on adaptive adjustment, characterized in that: include: An acquisition module, used to acquire the arrival time of the target data packet at the data transmission queue of the data transmission end at the current moment, and acquire the arrival time of each other data packet in the data transmission queue; A calculation module, used for calculating the time difference between the arrival time of the previous data packet of the target data packet in the data transmission queue and the arrival time of the target data packet; A rerouting module, used for rerouting the target data packet to other data transmission queues of the data transmission end when the time difference is greater than the timeout value of the previous moment of the current moment; the timeout value is used to describe the congestion status of the data transmission queue; An adaptive adjustment module is used to adaptively adjust the timeout value according to all data packets in the data sending queue to obtain the timeout value of the current moment when the time difference is less than or equal to the timeout value of the previous moment of the current moment; when the next moment of the current moment arrives, load balancing is performed according to the timeout value of the current moment.

9. A terminal device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the load balancing method based on adaptive adjustment as described in any one of claims 1 to 7 is implemented.

10. A computer-readable storage medium storing a computer program, characterized in that: When the computer program is executed by a processor, the load balancing method based on adaptive adjustment as described in any one of claims 1 to 7 is implemented.

Citation Information

Patent Citations

  • RTT-based congestion control method and device combined with proportional-integral-derivative control

    CN113364701A

  • Data center congestion control method and system based on path switching perception

    CN114679408A

  • Congestion control method applied to park network

    CN114979011A

  • Network congestion control method and device, equipment and storage medium

    CN116886622A

  • Load balancing method for RDMA network data transmission and related equipment

    CN118317366A