Congestion window adjustment method and system based on time delay change

Adjusting the congestion window by calculating the delay gradient changes in BBR, the problem of BBR poor throughput when competing with Cubic is solved, achieving more efficient data transmission and bandwidth fairness.

CN119449718AActive Publication Date: 2025-02-14CHINA MOBILE COMM LTD RES INST +3
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202411757464.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-03
Publication Date
2025-02-14
Estimated Expiration
2044-12-03

Smart Images

  • Figure CN119449718A_ABST
    Figure CN119449718A_ABST
Patent Text Reader

Abstract

The invention provides a congestion window adjustment method and system based on time delay change, and relates to the technical field of network communication. The congestion window adjusting method comprises the following steps of: acquiring the time delay gradient change of a current window every round trip time RTT, calculating a compensation value of the congestion window according to the time delay gradient change, and adjusting the size of the congestion window by using the compensation value. Specifically, when packet loss occurs, the size of a window is reduced, and the influence of fairness in coexistence with Cubic and random packet loss on throughput is considered while the window is reduced. The influence of time delay jitter on the size of a congestion window is reduced, and when smaller time delay is detected, the size of the window is kept unchanged. Compared with a traditional BBR algorithm, the method has the advantages that the throughput of the algorithm in coexistence with the Cubic flow is greatly improved, and the data transmission efficiency in a wide area network is improved. And fairness is considered, and bandwidth can be shared fairly with Cubic. And window adjustment is performed by using the time delay gradient, so that the response speed and the convergence speed are high.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of network communication technology, and in particular to a congestion window adjustment method and system based on delay variation. Background Art

[0002] Commonly used congestion control algorithms in the current Internet include CUBIC and BBR. CUBIC is a traditional congestion control algorithm that determines congestion based on packet loss and then performs congestion control; BBR is a new congestion control algorithm based on congestion itself rather than packet loss or delay. It needs to measure bottleneck bandwidth and round-trip transmission time to determine congestion and then perform congestion control.

[0003] Cubic has the following problems:

[0004] (1) Overreaction to packet loss causes Cubic throughput to be severely affected when random packet loss occurs;

[0005] (2) It is easy to cause the buffer of the forwarding device to expand, increasing the delay.

[0006] Before the birth of BBR, mainstream TCP congestion control algorithms were all designed based on packet loss. This assumption can be traced back to the 1980s and 1990s, when link bandwidth and memory capacity were measured in Mbps and KB respectively, and link quality (by today's standards) was also very poor.

[0007] More than three decades later, both physical capacities have increased by at least six orders of magnitude, and link quality is no longer the same. In particular, in modern infrastructure, packet loss and latency do not necessarily indicate network congestion, so the original assumption is no longer valid. Starting from this fundamental problem, Google's network team (based on previous work) designed and implemented a new congestion control algorithm based on congestion itself rather than packet loss or latency, abbreviated as BBR.

[0008] In simple terms, BBR calculates the actual delivery rate through the RTT information in the ACK and the number of bytes sent, and then adjusts the client's subsequent sending rate based on the latter, maximizing the transmission bandwidth and minimizing the transmission delay by maintaining a reasonable amount of inflight data. In addition, it runs entirely on the sending end, without requiring changes to the protocol, receiving end, or network, so it is relatively easy to implement.

[0009] BBR throughput is not affected by random packet loss, but it is easily squeezed when competing with Cubic when the buffer of the forwarding device (switch or router) is large. We believe that this is mainly because BBR does not respond to the increase in latency in a timely manner, making it difficult to compete with Cubic traffic for bandwidth.

[0010] The BBR congestion window is calculated as follows, where bw is the maximum bandwidth sample within 10 RTTs, and rtt is the minimum delay sample within 10 seconds (the rtt is also called RT Prop , that is, the minimum delay of the optical / electrical signal from end A (transmitting end) to end B (receiving end) (actually it is 2 times the delay because it is a round trip), which depends on the physical distance).

[0011] cwnd=2 ∗bw ∗rtt

[0012] The RTT estimation method causes BBR to be unable to respond to the increase in latency in a timely manner. In the worst case, it takes 10 seconds for the current RTT estimate to expire.

[0013] When BBR traffic competes with Cubic traffic, Cubic traffic will gradually fill up the buffer of the switch / router, causing an increase in latency. BBR cannot respond to this in time, resulting in its congestion window being much smaller than Cubic, and throughput being gradually squeezed. Throughput squeezing will further cause BBR's bandwidth sample value to become smaller and smaller, and the reduction in bw will further reduce BBR's congestion window.

[0014] Figure 1 Shows how the congestion window and throughput change over time when a BBR flow competes with a Cubic flow.

[0015] When the delay increases, BBR can only wait for 10 seconds for the current delay estimate to expire before obtaining a more accurate delay estimate. In addition, although waiting for 10 seconds can detect a more accurate delay value, the bandwidth sample value decreases due to the previous time when competing with Cubic, and the bandwidth estimate bw decreases, resulting in the size of the congestion window still being much smaller than Cubic.

[0016] Therefore, how to solve the problem of poor throughput of BBR when competing with Cubic without squeezing the traffic of Cubic is what this application needs to solve. Summary of the invention

[0017] Purpose of the invention: To propose a congestion window adjustment method based on delay variation, and further propose a system for implementing the method, so as to solve the above-mentioned problems existing in the prior art.

[0018] The present invention proposes a congestion window adjustment method based on delay variation, the main ideas of which are as follows:

[0019] The delay gradient change of the current window is obtained every round-trip delay RTT, and the compensation value ExtraGain of the congestion window is calculated according to the delay gradient change, and the size of the congestion window is adjusted using the compensation value ExtraGain.

[0020] As an optional method, the congestion window compensation value ExtraGain is calculated according to the delay gradient change. The calculation formula is as follows:

[0021]

[0022] In the formula, , , They are the maximum delay within the current RTT time, the maximum delay within the previous RTT time, and the current RTT estimate.

[0023] As an optional method, when packet loss is detected, the compensation value ExtraGain is halved;

[0024] When the delay gradient is positive, it means that the delay is increasing, and ExtraGain becomes larger;

[0025] When the delay gradient is negative, it means that the delay is decreasing. At this time, ExtraGain decreases until it reaches 0, and the congestion window decreases accordingly.

[0026] As an optional method, the compensation value ExtraGain is used to adjust the size of the congestion window to (2+ExtraGain)∗BDP, where BDP represents the sum of the bit data that can be stored in the entire physical link without the router cache:

[0027]

[0028] In the formula, BtlBw is the bottleneck bandwidth in the link. Among the several links from A to B, the bandwidth of the slowest link is used as the bottleneck bandwidth; RTprop is the time required for a packet to go back and forth in the link when there is no queuing and no packet loss in the link, that is, the minimum value of the round-trip delay RTT.

[0029] As an optional method, the congestion window adjustment method is used to improve the BBRv1 version. The steps are as follows:

[0030] For the target monitoring link, after receiving the ACK message, record the sending time and receiving time of the message, and calculate the round-trip delay RTT based on the sending time and receiving time;

[0031] If the cache of the forwarding device on the link is larger than the first predetermined value and there is competition for cubic flows, the round-trip delay RTT increases, and the data is sent according to the previous RTprop and updated after the first predetermined time.

[0032] As the round-trip delay (RTT) increases, the compensation value (ExtraGain) increases synchronously, and the congestion window becomes larger synchronously, thereby grabbing more bandwidth for the BBR flow.

[0033] As an optional method: when the Cubic stream exits, the data in the switch buffer is gradually emptied, and the RTT decreases. At this time, the compensation value ExtraGain first decreases to 1 and then decreases to 0;

[0034] After the Cubic stream exits, it returns to the standard BBR mode.

[0035] In addition, the present invention also proposes a congestion window adjustment system based on delay changes, the system includes at least one execution module; the execution module obtains the delay gradient change of the current window every round-trip delay RTT, and calculates the compensation value ExtraGain of the congestion window according to the delay gradient change, and uses the compensation value ExtraGain to adjust the size of the congestion window; the execution module can automatically execute the above-mentioned congestion window adjustment method based on delay changes.

[0036] In addition, the present invention also provides an electronic device, the electronic device comprising:

[0037] one or more processors;

[0038] a memory for storing processor executable program code;

[0039] The processor is configured to execute program code to implement the above-mentioned congestion window adjustment method based on delay variation.

[0040] In addition, the present invention also proposes a computer-readable storage medium. When the instructions in the computer-readable storage medium are executed by a processor of an electronic device, the electronic device can execute the above-mentioned congestion window adjustment method based on delay variation.

[0041] The above disclosed congestion window adjustment method based on delay variation can be embedded in a terminal device, such as a user terminal or a server, in the form of software.

[0042] Compared with the traditional BBR algorithm, the congestion window adjustment method based on delay change proposed in this application has at least the following beneficial effects:

[0043] (1) The throughput of the algorithm is greatly improved when it coexists with Cubic streams, which improves the data transmission efficiency in the wide area network.

[0044] (2) Fairness is taken into consideration and bandwidth can be shared fairly with Cubic.

[0045] (3) Use time-delay gradient to adjust the window, which has fast response speed and fast convergence speed. BRIEF DESCRIPTION OF THE DRAWINGS

[0046] Figure 1 This is a graph of the changes in congestion window and throughput over time when a traditional algorithm BBR and a Cubic flow compete.

[0047] Figure 2 It is a performance diagram of the operation of the improved algorithm dBBR and related technologies of the present invention tested on a real machine.

[0048] Figure 3 This is a graph showing how the throughput changes over time when an improved algorithm dBBR and a Cubic stream compete. DETAILED DESCRIPTION

[0049] In the following description, a large number of specific details are provided to provide a more thorough understanding of the present invention. However, it is apparent to those skilled in the art that the present invention can be implemented without one or more of these details. In other examples, in order to avoid confusion with the present invention, some technical features known in the art are not described.

[0050] The present embodiment discloses a congestion control algorithm for improving data transmission throughput over a wide area network, which can be used for data express services over a wide area network to improve transmission efficiency. The invention is based on the BBR congestion control algorithm, and is optimized for the difficulty of BBR to compete with Cubic under large buffers. The invention uses the delay gradient to timely adjust the congestion window size of BBR, and considers the fairness of coexistence with Cubic, and makes timely adjustments when packet loss occurs to avoid squeezing the throughput of the Cubic stream. Every RTT time, the current delay gradient value is calculated, and the value is used to adjust the size of the congestion window. Whenever packet loss occurs, the window size is reduced. The reduction takes into account both fairness when coexisting with Cubic and the impact of random packet loss on throughput. Reduce the impact of delay jitter on the congestion window size, and when a smaller delay is detected, the window size will be kept unchanged.

[0051] The following is an example of an embodiment to illustrate the specific details of the congestion window adjustment method based on delay variation. Before the specific description, in order to avoid ambiguity, some professional terms appearing in the embodiment are first explained:

[0052] BBR (Bottleneck Bandwidth and Round-trip propagation time, congestion control based on bottleneck bandwidth and round-trip transmission time);

[0053] RTT (round-trip time);

[0054] Bw (Bandwidth, bandwidth);

[0055] Cwnd (Congestion Window, congestion window);

[0056] BDP (Bandwidth Delay Product).

[0057] Currently, there are three versions of BBR. We mainly describe the improvements made on BBRv1. Similar mechanisms can also be applied to BBRv2 and BBRv3.

[0058] In the mechanism of the present invention, the compensation value of a window is calculated according to the change of the delay gradient, specifically:

[0059] , , They are the maximum delay within the current RTT time, the maximum delay within the previous RTT time, and the current RTT estimate. ExtraGain is calculated according to the following formula:

[0060] (1)

[0061] The original BBR congestion window calculation method is 2 ∗ BDP, which is modified to

[0062] (2+ExtraGain)∗BDP (2)

[0063] When packet loss is detected, ExtraGain is halved to correspond to the halving of the window when Cubic encounters packet loss, avoiding being too aggressive.

[0064] When the delay gradient is positive, it means that the delay is increasing, and ExtraGain becomes larger; when the delay gradient is negative, it means that the delay is decreasing, and ExtraGain becomes smaller.

[0065] Note: BDP is the sum of the bits (BIT) data that can be stored in the entire physical link (excluding router cache), BDP = BtlBw*RTprop, that is, the aforementioned bw ∗rtt. Among them, BtlBw is the bottleneck bandwidth. In the link from A to B, its bandwidth depends on the bandwidth of the slowest link.

[0066] The traditional BBR process is as follows, when the RTT becomes larger:

[0067] (1) Continuously measure bandwidth and RTT. After receiving an ACK message, calculate the RTT of the message. For example, you can record the sending time and receiving time of the message, and calculate the RTT based on the sending time and receiving time. BBR uses the minimum RTT value measured in 10 seconds as the estimated value, and calculates the bandwidth in the past period of time. The maximum bandwidth measured within 10 RTTs is used as the estimated value of the bandwidth, and the product of the bandwidth estimate and the delay estimate is used as the estimated value of the link BDP.

[0068] (2) If there are more caches on the forwarding devices on the path and there is competition from cubic flows, the latency will increase. However, the standard BBR flow uses the minimum RTT value of the past 10 seconds as the estimated RTT value. Therefore, BBR will not respond to the received large latency samples for the time being, and will still calculate the congestion window according to the previous RTT estimate. It will not be updated until 10 seconds later when the ProbeRTT phase is entered, and the response is relatively slow. At the same time, because the congestion window is much smaller than the cubic flow, the throughput of BBR is affected, resulting in a smaller measured bandwidth value, which further reduces the congestion window.

[0069] The process of BBR in the present invention is as follows, when the RTT becomes larger:

[0070] (1) Continuously measure bandwidth and RTT. After receiving an ACK message, calculate the RTT of the message. For example, you can record the sending time and receiving time of the message, and calculate the RTT based on the sending time and receiving time. The minimum measured RTT will be recorded. At the same time, the bandwidth is calculated, and the maximum measured bandwidth will also be recorded (standard BBR process).

[0071] (2) If there are more forwarding devices with cache on the path and there is competition among cubic flows, the latency will increase. The BBR flow of the present invention is still sent according to the previously estimated RTprop and can only be updated after 10 seconds. However, the change in RTT will cause the ExtraGain to increase (refer to the above formula 1).

[0072] (3) As ExtraGain increases, the congestion window will increase (refer to Formula 2 above). A larger congestion window will be beneficial to bandwidth preemption of BBR flows.

[0073] (4) In addition, when packet loss is detected, ExtraGain is halved to correspond to the halving of the window when Cubic encounters packet loss, avoiding being too aggressive.

[0074] (5) When the RTT becomes smaller, ExtraGain will become smaller until it reaches 0, and the window will become smaller accordingly to avoid being too aggressive.

[0075] For example, suppose that the round-trip delay of a link is 30 milliseconds. When only one BBR flow is running, the RTT samples obtained by BBR are basically 30 milliseconds. At this time, the estimated RTT value of BBR is 30 milliseconds. At this time, when a cubic flow is added, it will start to accumulate data packets in the switch buffer, causing an increase in the round-trip delay. Suppose that the link delay rises to 120 milliseconds after one RTT (that is, there is 3 * BDP data accumulated in the switch buffer).

[0076] Standard BBR still uses 2 * BDP as the current congestion window size. At this time, at most 1 * BDP of data in the switch buffer is sent by the BBR flow, and the remaining 2 * BDP of data is sent by Cubic. Therefore, the throughput ratio of BBR flow and Cubic flow is theoretically 1:2.

[0077] The BBR in the present invention calculates ExtraGain = (120 - 30) / 30 = 3 according to formula (1), and then calculates the congestion window size as 5 * BDP according to formula (2). Since the data accumulation in the switch is 3 * BDP, the size of the congestion window ensures that the throughput will not be squeezed by Cubic.

[0078] When the Cubic flow exits, the data in the switch buffer is gradually drained and the latency decreases. Assuming that the first RTT time delay after the Cubic flow exits is reduced to 60 milliseconds and the second RTT time delay is reduced to 30 milliseconds, according to formula (1), the value of ExtraGain will first decrease to 1 and then decrease to 0. After the Cubic flow exits, it returns to the standard BBR mode.

[0079] The operating performance of the present invention (the improved algorithm is called dBBR) and related technologies is tested on a real machine, such as Figure 2 As shown. Figure 2 It can be seen that compared with the BBR algorithm and the latest technology, the throughput of the present invention is improved by about 2 to 5 times.

[0080] Figure 3 Shows the throughput variation over time when a dBBR and a Cubic stream compete.

[0081] The improved algorithm dBBR adjusts the size of the congestion window more quickly according to the change of the delay gradient, so that it can obtain a throughput close to that of Cubic, and has a fast convergence speed; at the same time, the present invention takes into account the fairness of Cubic, and reduces the speed in time when packet loss occurs, and has good fairness.

[0082] The above embodiments can be implemented in whole or in part by software, hardware, firmware or any other combination. When implemented by software, the above embodiments can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions or computer programs. When the computer instructions or computer programs are loaded or executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from one website site, computer, server or data center to another website site, computer, server or data center by wired (e.g., infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that contains one or more available media sets. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium. The semiconductor medium can be a solid-state hard disk.

[0083] It should be understood that in the various embodiments of the present application, the size of the serial numbers of the above-mentioned processes does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0084] In the several embodiments provided in the present application, it should be understood that the disclosed system can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

[0085] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0086] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.

[0087] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application can be essentially or partly embodied in the form of a software product that contributes to the prior art. The computer software product is stored in a storage medium and includes several instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the methods described in the various embodiments of the present application. The aforementioned storage media include: various media that can store program codes, such as USB flash drives, mobile hard disks, read-only memories (ROM), random access memories (RAM), magnetic disks or optical disks.

[0088] As described above, although the present invention has been shown and described with reference to specific preferred embodiments, it should not be construed as limiting the present invention itself. Various changes may be made to it in form and detail without departing from the spirit and scope of the present invention as defined in the appended claims.

Claims

1. A congestion window adjustment method based on delay variation, characterized in that: The delay gradient change of the current window is obtained every round-trip delay RTT, and the compensation value ExtraGain of the congestion window is calculated according to the delay gradient change, and the size of the congestion window is adjusted using the compensation value ExtraGain.

2. The congestion window adjustment method based on delay variation according to claim 1, characterized in that: The congestion window compensation value ExtraGain is calculated based on the delay gradient change. The calculation formula is as follows: ; In the formula, , , They are the maximum delay within the current RTT time, the maximum delay within the previous RTT time, and the current RTT estimate.

3. The congestion window adjustment method based on delay variation according to claim 2, characterized in that: When packet loss is detected, the compensation value ExtraGain is halved.

4. The congestion window adjustment method based on delay variation according to claim 2, characterized in that: When the delay gradient is positive, it means that the delay is increasing, and ExtraGain becomes larger; When the delay gradient is negative, it means that the delay is decreasing. At this time, ExtraGain decreases until it reaches 0, and the congestion window decreases accordingly.

5. The congestion window adjustment method based on delay variation according to claim 2, characterized in that: Use the compensation value ExtraGain to adjust the size of the congestion window to (2+ExtraGain)∗BDP; The BDP represents the sum of the bits that can be stored in the entire physical link without the router cache: ; In the formula, BtlBw is the bottleneck bandwidth in the link. Among the several links from A to B, the bandwidth of the slowest link is used as the bottleneck bandwidth; RTprop is the time required for a packet to go back and forth in the link when there is no queuing and no packet loss in the link, that is, the minimum value of the round-trip delay RTT.

6. The congestion window adjustment method based on delay variation according to any one of claims 1 to 5, characterized in that: The congestion window adjustment method is used to improve the BBRv1 version. The steps are as follows: For the target monitoring link, after receiving the ACK message, record the sending time and receiving time of the message, and calculate the round-trip delay RTT based on the sending time and receiving time; If the cache of the forwarding device on the link is larger than the first predetermined value and there is competition for cubic flows, the round-trip delay RTT increases, and the data is sent according to the previous RTprop and updated after the first predetermined time. As the round-trip delay (RTT) increases, the compensation value (ExtraGain) increases synchronously, and the congestion window becomes larger synchronously, thereby grabbing more bandwidth for the BBR flow.

7. The congestion window adjustment method based on delay variation according to claim 6, characterized in that: When the Cubic flow exits, the data in the switch buffer is gradually emptied, and the RTT decreases. At this time, the compensation value ExtraGain first decreases to 1 and then decreases to 0; After the Cubic stream exits, it returns to the standard BBR mode.

8. A congestion window adjustment system based on delay variation, characterized in that: comprising at least one execution module; The execution module obtains the delay gradient change of the current window every round-trip delay RTT, calculates the compensation value ExtraGain of the congestion window according to the delay gradient change, and adjusts the size of the congestion window using the compensation value ExtraGain; The execution module can automatically execute the congestion window adjustment method based on delay variation as described in any one of claims 1 to 7.

9. An electronic device, characterized in that: The electronic device comprises: one or more processors; a memory for storing program code executable by the processor; The processor is configured to execute the program code to implement the congestion window adjustment method based on delay variation as described in any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that: When the instructions in the computer-readable storage medium are executed by a processor of an electronic device, the electronic device is enabled to execute the congestion window adjustment method based on delay variation as described in any one of claims 1 to 7.

Citation Information

Patent Citations

  • Configurable low-delay congestion control method and system for mobile cellular network

    CN113747498A

  • Congestion control method, device and equipment

    CN117749710A

  • Congestion control

    US20180131613A1

  • Network Congestion Control In Sub-Round Trip Time

    US20230336490A1