Congestion control method and device, electronic equipment and computer readable storage medium

By obtaining the available bandwidth and transmission rate of the link, the second transmission rate of the sending end is determined, which solves the congestion problem caused by increasing the rate when there is no packet loss in the existing congestion control method, and achieves more effective congestion control.

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

Patent Information

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

AI Technical Summary

Technical Problem

Existing congestion control methods tend to increase the transmission rate or congestion window size when there is no packet loss in the network, resulting in poor congestion control performance.

Method used

By obtaining the available bandwidth of the link and the sending rate of the sender, a second sending rate of the sender is determined. The sending rate is controlled with regard to the available bandwidth of the link to avoid increasing traffic when there is no packet loss.

Benefits of technology

It effectively reduces link congestion, improves congestion control, and avoids injecting traffic into the network by increasing the sending rate when no packet loss occurs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119629129B_ABST
    Figure CN119629129B_ABST
Patent Text Reader

Abstract

This application provides a congestion control method, apparatus, electronic device, and computer-readable storage medium. The method includes obtaining a first available bandwidth of a link and a first transmission rate of a transmitter, wherein the link is a link between the transmitter and a receiver; determining a second transmission rate of the transmitter based on the first available bandwidth and the first transmission rate, wherein the time corresponding to the second transmission rate is after the time corresponding to the first transmission rate. In this way, not only the transmission rate of the transmitter is considered, but also the available bandwidth of the link between the transmitter and the receiver is taken into account, thereby controlling the transmission rate of the transmitter to achieve congestion control. This can prevent the transmitter from continuously increasing its transmission rate and injecting traffic into the network without packet loss, reducing link congestion and improving the congestion control effect.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a congestion control method, apparatus, electronic device, and computer-readable storage medium. Background Technology

[0002] With the development of Internet communication technology, the requirements for communication performance are getting higher and higher. Congestion control is a common way to improve communication performance. The main point of congestion control is how to control the sending rate (i.e. the rate at which data packets are sent) or the congestion window size.

[0003] Currently, the commonly used congestion control method is based on packet loss. However, when there is no packet loss in the network, this method will continuously increase the sending rate or the congestion window size to inject traffic into the network, which can easily lead to poor congestion control. Summary of the Invention

[0004] This application provides a congestion control method, apparatus, and electronic device to address the problem of poor performance in existing congestion control systems.

[0005] To solve the above-mentioned technical problems, this application is implemented as follows:

[0006] In a first aspect, embodiments of this application provide a congestion control method applied at a transmitting end, the method comprising:

[0007] The first available bandwidth of the link and the first transmission rate of the sending end are obtained, wherein the link is the link between the sending end and the receiving end;

[0008] Based on the first available bandwidth and the first transmission rate, a second transmission rate of the transmitting end is determined, wherein the time corresponding to the second transmission rate is after the time corresponding to the first transmission rate.

[0009] Secondly, embodiments of this application provide a congestion control method applied at a receiving end, the method comprising:

[0010] A first response data packet is sent to the sending end. The first response data packet carries an available bandwidth indication field. The available bandwidth indication field is used to indicate the first available bandwidth of the link between the sending end and the receiving end. The first available bandwidth is the minimum available bandwidth among the available bandwidths of multiple nodes included in the link. The multiple nodes include the sending end and intermediate nodes located between the sending end and the receiving end.

[0011] Thirdly, embodiments of this application provide a congestion control device applied at a transmitting end, the device comprising:

[0012] The first acquisition module is used to acquire the first available bandwidth of the link and the first transmission rate of the sending end, wherein the link is the link between the sending end and the receiving end;

[0013] The first determining module is configured to determine the second transmission rate of the transmitting end based on the first available bandwidth and the first transmission rate, wherein the time corresponding to the second transmission rate is after the time corresponding to the first transmission rate.

[0014] Fourthly, embodiments of this application provide a congestion control device applied at a receiving end, the device comprising:

[0015] The sending module is configured to send a first response data packet to the sending end. The first response data packet carries an available bandwidth indication field. The available bandwidth indication field is used to indicate the first available bandwidth of the link between the sending end and the receiving end. The first available bandwidth is the minimum available bandwidth among the available bandwidths of multiple nodes included in the link. The multiple nodes include the sending end and intermediate nodes located between the sending end and the receiving end.

[0016] Fifthly, embodiments of this application provide an electronic device, including a transceiver and a processor.

[0017] The processor is used for:

[0018] The first available bandwidth of the link and the first transmission rate of the sending end are obtained, wherein the link is the link between the sending end and the receiving end;

[0019] Based on the first available bandwidth and the first transmission rate, a second transmission rate of the transmitting end is determined, wherein the time corresponding to the second transmission rate is after the time corresponding to the first transmission rate.

[0020] Sixthly, embodiments of this application provide an electronic device, including a transceiver and a processor.

[0021] The processor is used for:

[0022] A first response data packet is sent to the sending end. The first response data packet carries an available bandwidth indication field. The available bandwidth indication field is used to indicate the first available bandwidth of the link between the sending end and the receiving end. The first available bandwidth is the minimum available bandwidth among the available bandwidths of multiple nodes included in the link. The multiple nodes include the sending end and intermediate nodes located between the sending end and the receiving end.

[0023] In a seventh aspect, embodiments of this application provide an electronic device, including: a processor, a memory, and a program stored in the memory and executable on the processor, wherein when the program is executed by the processor, it implements the steps of the congestion control method described in the first aspect, or implements the steps of the congestion control method described in the second aspect.

[0024] Eighthly, embodiments of this application provide a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps of the congestion control method described in the first aspect, or implements the steps of the congestion control method described in the second aspect.

[0025] Ninthly, embodiments of this application provide a computer program product, including computer instructions, which, when executed by a processor, implement the steps of the method described above.

[0026] In this embodiment, during congestion control, the first available bandwidth and the first transmission rate of the sending end can be used for congestion control. That is, the second transmission rate of the sending end can be determined using the first available bandwidth and the first transmission rate. This not only considers the transmission rate of the sending end, but also the available bandwidth of the link between the sending end and the receiving end. By controlling the transmission rate of the sending end, congestion control can be achieved. This can prevent the sending end from continuously increasing the transmission rate and injecting traffic into the network when there is no packet loss, thereby reducing link congestion and improving the congestion control effect. Attached Figure Description

[0027] To more clearly illustrate the technical solutions of the embodiments of this application, the drawings used in the description of the embodiments of this application will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0028] Figure 1 This is one of the flowcharts of a congestion control method provided in the embodiments of this application;

[0029] Figure 2 This is a second flowchart of a congestion control method provided in an embodiment of this application;

[0030] Figure 3 This is a schematic diagram of a BBR congestion control algorithm;

[0031] Figure 4 This is a schematic diagram of an HPCC congestion control algorithm;

[0032] Figure 5This is the third flowchart of a congestion control method provided in the embodiments of this application;

[0033] Figure 6 This is a schematic diagram of an available bandwidth measurement method provided in an embodiment of this application;

[0034] Figure 7 This is a schematic diagram of measuring available bandwidth using Advanced ECN, provided in an embodiment of this application.

[0035] Figure 8 This is a diagram of the AECN header structure provided in an embodiment of this application;

[0036] Figure 9 This is one of the structural schematic diagrams of a congestion control device provided in the embodiments of this application;

[0037] Figure 10 This is a second schematic diagram of the structure of a congestion control device provided in the embodiments of this application;

[0038] Figure 11 This is one of the structural schematic diagrams of an electronic device provided in the embodiments of this application;

[0039] Figure 12 This is a second schematic diagram of the structure of an electronic device provided in the embodiments of this application. Detailed Implementation

[0040] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0041] See Figure 1 , Figure 1 This is a flowchart of a congestion control method provided in an embodiment of this application, which can be applied to the sending end. For example... Figure 1 As shown, the congestion control method provided in this embodiment includes the following steps:

[0042] Step 101: Obtain the first available bandwidth of the link and the first transmission rate of the sender. The link is the link between the sender and the receiver.

[0043] The available bandwidth (ABW) of a link refers to the unused / usable bandwidth on that link, characterizing its available transmission capacity. The first available bandwidth can be understood as the latest available bandwidth obtained for that link. The sending rate of the sender can be understood as the rate at which the sender transmits data packets. The first sending rate of the sender can be the sending rate of the sender at the current moment (i.e., the current system time of the sender when executing step 101), i.e., the current sending rate. For example, if the current system time is the first moment, then the first sending rate is the sending rate at the first moment.

[0044] Step 102: Determine the second transmission rate of the sending end based on the first available bandwidth and the first transmission rate. The time corresponding to the second transmission rate is after the time corresponding to the first transmission rate.

[0045] In this embodiment, a second transmission rate, which occurs after the time corresponding to the first transmission rate, can be determined using the first available bandwidth and the first transmission rate of the sending end. This can also be understood as the next transmission rate. Furthermore, after determining the second transmission rate, it can be output for future use. During subsequent data packet transmission, the sending end can transmit data packets according to the second transmission rate. Additionally, it should be noted that, exemplarily, after obtaining the first available bandwidth of the link and the first transmission rate of the sending end, the transmission window size and / or congestion window size can be determined based on the first available bandwidth and the first transmission rate to achieve congestion control. Subsequently, data packets can be transmitted according to the transmission window size and / or congestion window size to reduce congestion. In other words, this embodiment can determine at least one of the second transmission rate, transmission window size, and congestion window size of the sending end based on the first available bandwidth and the first transmission rate, thereby controlling at least one of the transmission rate, transmission window size, and congestion window size of the sending end to achieve congestion control and reduce congestion.

[0046] In this embodiment, during congestion control, the first available bandwidth and the first transmission rate of the sending end can be used for congestion control. That is, the second transmission rate of the sending end can be determined using the first available bandwidth and the first transmission rate. This not only considers the transmission rate of the sending end, but also the available bandwidth of the link between the sending end and the receiving end. By controlling the transmission rate of the sending end, congestion control can be achieved. This can prevent the sending end from continuously increasing the transmission rate and injecting traffic into the network when there is no packet loss, thereby reducing link congestion and improving the congestion control effect.

[0047] In some embodiments, determining the second transmission rate of the transmitter based on the first available bandwidth and the first transmission rate includes at least one of the following:

[0048] If the first transmission rate is greater than or equal to the first available bandwidth, the first available bandwidth is determined as the second transmission rate of the transmitting end;

[0049] If the first transmission rate is less than the first available bandwidth, a third transmission rate is calculated based on the first transmission rate, and the third transmission rate is greater than the first transmission rate; based on the first available bandwidth and the third transmission rate, a second transmission rate of the transmitting end is determined.

[0050] In this embodiment, when the first transmission rate is greater than or equal to the first available bandwidth, it indicates that the first transmission rate exceeds or is comparable to the available bandwidth of the link. In this case, the first available bandwidth can be directly used as the second transmission rate of the sending end. That is, the second transmission rate at a time after the time corresponding to the first transmission rate can be less than or equal to the first transmission rate, and it can be ensured that the second transmission rate does not exceed the first available bandwidth. In this way, the sending end can send data packets based on the second transmission rate, reducing the occurrence of congestion. When the first transmission rate is less than the first available bandwidth, it indicates that the first transmission rate has not yet reached the available bandwidth of the link. A third transmission rate greater than the first transmission rate can be calculated based on the first transmission rate. This can be understood as increasing the first transmission rate to obtain the third transmission rate, and then determining the second transmission rate of the sending end based on the first available bandwidth and the third transmission rate, thereby controlling the transmission rate of the sending end to reduce the occurrence of congestion. In addition, to reduce the occurrence of congestion on the link, the determined second transmission rate is, for example, less than or equal to the first available bandwidth. Additionally, for example, when the first transmission rate is greater than or equal to the first available bandwidth, the transmission window size and / or congestion window size of the transmitter can be reduced; when the first transmission rate is less than the first available bandwidth, the transmission window size and / or congestion window size of the transmitter can be increased, etc.

[0051] Additionally, it should be noted that there are multiple ways to calculate the third transmission rate based on the first transmission rate so that the obtained third transmission rate is greater than the first transmission rate. This application does not impose specific limitations on these methods. For example, in one example, the third transmission rate can be M times the first transmission rate, where M is greater than 1. The value of M can be set in advance according to requirements or historical experience, and is not specifically limited. For example, M can be 2, etc.

[0052] In this embodiment, the first transmission rate can be compared with the first available bandwidth. Different methods are used to determine the second transmission rate depending on the comparison results, improving the flexibility of determining the second transmission rate. Simultaneously, when the first transmission rate is greater than or equal to the first available bandwidth, the first available bandwidth is directly used as the second transmission rate of the sending end, preventing the second transmission rate from exceeding the first available bandwidth and thus reducing congestion. When the first transmission rate is less than the first available bandwidth, a third transmission rate greater than the first transmission rate is first obtained based on the first transmission rate, effectively increasing the transmission rate. Then, the increased third transmission rate and the first available bandwidth are used to determine the second transmission rate of the sending end, thus controlling the transmission rate of the sending end to reduce congestion.

[0053] In some embodiments, determining the second transmission rate of the transmitter based on the first available bandwidth and the third transmission rate includes at least one of the following:

[0054] If the third transmission rate is greater than or equal to the first available bandwidth, the first available bandwidth is determined as the second transmission rate;

[0055] If the third transmission rate is less than the first available bandwidth, the third transmission rate is determined as the second transmission rate.

[0056] In this embodiment, a third transmission rate can be compared with a first available bandwidth. Depending on the comparison results, different methods are used to determine the second transmission rate, improving the flexibility of its determination. Simultaneously, when the third transmission rate is greater than or equal to the first available bandwidth, the first available bandwidth is directly used as the sender's second transmission rate, preventing the sender's second transmission rate from exceeding the first available bandwidth and thus reducing congestion. When the third transmission rate is less than the first available bandwidth, the calculated third transmission rate can be determined as the sender's second transmission rate, enabling control of the sender's transmission rate to reduce congestion.

[0057] In addition, in some embodiments, when the third transmission rate is less than the first available bandwidth, after determining the third transmission rate as the second transmission rate, the process can return to obtaining the first available bandwidth of the link and the first transmission rate of the transmitting end. The step of determining the second transmission rate of the transmitting end based on the first available bandwidth and the first transmission rate is executed repeatedly until the second transmission rate reaches the first available bandwidth (that is, the first available bandwidth is determined as the second transmission rate), then the loop stops, and when the second transmission rate is the first available bandwidth, the process enters the stable transmission phase.

[0058] In some embodiments, after determining the second transmission rate of the transmitter based on the first available bandwidth and the first transmission rate, the method further includes:

[0059] Upon receiving an acknowledgment data packet carrying the second available bandwidth of the link from the receiving end, the fourth transmission rate of the sending end is determined based on the second transmission rate and the second available bandwidth. The time corresponding to the fourth transmission rate is after the time corresponding to the second transmission rate.

[0060] In essence, the sending end sends a data packet to the receiving end and waits for the receiving end's acknowledgment (ACK). After receiving the data packet, the receiving end can return a corresponding acknowledgment (ACK) data packet to the sending end, indicating that the sent data packet has been received correctly. That is, every time the receiving end receives a data packet from the sending end, it can return a corresponding acknowledgment data packet to the sending end. And every time the sending end sends a data packet to the receiving end, assuming no packet loss occurs, it can receive the corresponding acknowledgment data packet returned by the receiving end.

[0061] After determining the second transmission rate, the sending end can transmit data packets based on the second transmission rate. Upon receiving an acknowledgment data packet from the receiving end carrying the second available bandwidth of the link, the sending end can determine its fourth transmission rate based on the second transmission rate and the second available bandwidth. Alternatively, exemplarily, the fourth transmission rate can be output for future use. It should be noted that the available bandwidth of the link may change over time. The acknowledgment data may carry the latest available bandwidth of the link. The second available bandwidth is the available bandwidth of the link obtained after the first available bandwidth. The second available bandwidth and the first available bandwidth may be different or the same (this can be understood as the available bandwidth of the link not changing). At the current moment, the sending end's transmission rate is the second transmission rate. Therefore, the fourth transmission rate of the sending end can be determined based on the second transmission rate and the second available bandwidth. Afterward, the sending end can transmit data packets, etc., based on the fourth transmission rate. It should be noted that the current moment is constantly updated over time. The steps in this embodiment are steps after determining the second transmission rate; therefore, the current moment in this embodiment is different from the current moment corresponding to step 101 above.

[0062] Additionally, it should be noted that, exemplarily, after determining the first available bandwidth as the sender's second transmission rate, upon receiving an acknowledgment data packet carrying the link's second available bandwidth from the receiver, the sender's fourth transmission rate is determined based on the second transmission rate and the second available bandwidth. It can be understood that after determining the first available bandwidth as the sender's second transmission rate, the sender can subsequently transmit data packets based on the second transmission rate, entering a stable transmission phase. During this stable transmission phase, upon receiving an acknowledgment data packet carrying the link's second available bandwidth, the sender can adjust its next transmission rate based on the second transmission rate and the second available bandwidth, thus determining the sender's fourth transmission rate. The sender can then subsequently transmit data packets based on this fourth transmission rate.

[0063] Additionally, for example, when a response data packet carrying the second available bandwidth of the link is received from the receiving end, the sending window size and / or congestion window size of the sending end can be adjusted according to the second sending rate and the second available bandwidth. For instance, if the second sending rate is greater than or equal to the second available bandwidth, the sending window size and / or congestion window size can be reduced; if the second sending rate is less than the second available bandwidth, the sending window size and / or congestion window size can be increased, etc., to improve the congestion control effect.

[0064] In this embodiment, upon receiving new available bandwidth, the transmission rate after that moment can be determined based on the current transmission rate (second transmission rate) and the new available bandwidth, i.e., the fourth transmission rate is determined. This achieves the adjustment of the transmission rate at the sending end to adapt to the available bandwidth of the current link and reduce link congestion.

[0065] In some embodiments, determining a fourth transmission rate for the transmitter based on a second transmission rate and a second available bandwidth includes at least one of the following:

[0066] If the absolute difference between the second transmission rate and the second available bandwidth is greater than the preset rate, and if the second transmission rate is greater than the second available bandwidth, a fourth transmission rate is obtained according to the first rate adjustment method and the second transmission rate. The fourth transmission rate is less than the second transmission rate. If the second transmission rate is less than the second available bandwidth, a fourth transmission rate is obtained according to the second rate adjustment method and the second transmission rate. The fourth transmission rate is greater than the second transmission rate.

[0067] If the absolute difference between the second transmission rate and the second available bandwidth is less than or equal to the preset rate, and if the second transmission rate is greater than the second available bandwidth, a fourth transmission rate is obtained according to the third rate adjustment method and the second transmission rate. The fourth transmission rate is less than the second transmission rate. If the second transmission rate is less than the second available bandwidth, a fourth transmission rate is obtained according to the fourth rate adjustment method and the second transmission rate. The fourth transmission rate is greater than the second transmission rate.

[0068] It should be noted that the first and third rate adjustment methods are rate reduction methods. For example, the adjustment range of the first rate adjustment method is greater than that of the third rate adjustment method. For instance, the first rate adjustment method can be, but is not limited to, an exponential reduction method, such as the fourth transmission rate being 1 / a times the second transmission rate, where a > 1. Similarly, the third rate adjustment method can be, but is not limited to, a linear reduction method, such as the fourth transmission rate being the second transmission rate minus b, where b > 0.

[0069] The second and fourth rate adjustment methods are rate increase methods. For example, the adjustment range of the second rate adjustment method is greater than that of the fourth rate adjustment method. The second rate adjustment method can be, but is not limited to, an exponential increase method. For example, the fourth transmission rate can be a times the second transmission rate. Alternatively, the fourth rate adjustment method can be, but is not limited to, a linear increase method. For instance, the fourth transmission rate can be the second transmission rate plus b, etc.

[0070] In this embodiment, under different circumstances, different rate adjustment methods can be adopted based on the second transmission rate to obtain the fourth transmission rate, thereby controlling the transmission rate of the transmitting end, improving the rate control effect, and thus improving the congestion control effect.

[0071] In some embodiments, the method further includes at least one of the following:

[0072] Upon receiving a response data packet carrying the second available bandwidth of the link from the receiving end, the packet loss rate of the sending end is detected; if the packet loss rate is greater than a preset packet loss rate threshold, the second or fourth sending rate is reduced, and data packets are sent at the reduced fourth sending rate within a preset time period.

[0073] Upon receiving a congestion notification message from a network device, the second or fourth transmission rate is reduced, and data packets are transmitted at the reduced second or fourth transmission rate within a preset time period.

[0074] It should be noted that, since the sending end may not have determined the fourth transmission rate when the packet loss rate exceeds the preset packet loss rate threshold, and the sending end is sending data packets based on the second transmission rate, the second transmission rate is reduced when the packet loss rate exceeds the preset packet loss rate threshold. Alternatively, the fourth transmission rate may have already been determined when the packet loss rate exceeds the preset packet loss rate threshold, and the sending end is sending data packets at the fourth transmission rate. In this case, the fourth transmission rate is reduced when the packet loss rate exceeds the preset packet loss rate threshold. The preset packet loss rate threshold can be set in advance according to actual needs or historical experience; this embodiment does not impose specific limitations. For example, the preset packet loss rate threshold can be set to 2%. Furthermore, it should be noted that, exemplarily, detecting the packet loss rate of the sending end can be detecting the packet loss rate of the sending end within a predetermined time period before the first moment. This predetermined time period can be set in advance according to actual needs or historical experience and is not specifically limited. The first moment can be the moment when the receiving end sends an acknowledgment data packet carrying the second available bandwidth of the link, etc. In addition, the preset duration can be set in advance according to actual needs or historical experience. This embodiment does not make specific limitations. For example, the preset duration can be the round-trip time (RTT) closest to the second moment, and the second moment can be the moment when the second transmission rate or the fourth transmission rate is reduced.

[0075] In addition, in this embodiment, besides the sending end actively reducing the transmission rate by detecting the packet loss rate, the sending end can also passively reduce the transmission rate. That is, if the network device supports the Explicit Congestion Notification (ECN) flag and the sending end and the network have enabled the ECN function, the network device can send a Congestion Notification Message (CNP) to the sending end to cause the sending end to reduce the second or fourth transmission rate. The sending end reduces the second or fourth transmission rate upon receiving the CNP from the network device. Furthermore, for example, if the packet loss rate exceeds a preset packet loss rate threshold, the congestion window size and / or transmission window size of the sending end can also be reduced.

[0076] In one example, reducing the second transmission rate can be done by reducing it by c times, and reducing the fourth transmission rate can also be done by reducing it by c times, where c is greater than 0 and less than 1. c can be preset based on actual needs or historical experience and does not need to be specifically set; for example, c can be 0.5, etc.

[0077] In this embodiment, if the packet loss rate exceeds a preset packet loss rate threshold, the sending end can reduce its sending rate and maintain the reduced sending rate for a preset duration. Alternatively, if the sending end receives a congestion notification message from a network device, it can reduce its sending rate to improve the flexibility of controlling the sending rate.

[0078] In some embodiments, after transmitting data packets at a reduced second transmission rate or a reduced fourth transmission rate within a preset time period, the method further includes:

[0079] Repeat the following steps until the sixth transmission rate at the sending end is calculated a preset number of times, then determine the third available bandwidth of the link as the sixth transmission rate:

[0080] Upon receiving a response data packet from the receiving end carrying the third available bandwidth of the link, the fifth transmission rate of the sending end is obtained.

[0081] Calculate the sixth transmission rate of the sending end based on the fifth transmission rate and the third available bandwidth.

[0082] In other words, after maintaining the reduced second or fourth transmission rate for a preset duration, a rate recovery phase can begin. During this phase, the steps of obtaining the fifth transmission rate and calculating the sixth transmission rate can be repeated until the sixth transmission rate is calculated a preset number of times. Once the sixth transmission rate has been calculated a preset number of times, the third available bandwidth of the link is determined as the sixth transmission rate. It should be noted that the execution time varies between different rounds of these steps, the third available bandwidth carried is the latest available bandwidth of the link, and the obtained fifth transmission rate is the latest current transmission rate of the sending end. Furthermore, it should be noted that the sixth transmission rate is calculated once for each received acknowledgment data packet carrying the third available bandwidth. After each calculation of the sixth transmission rate, the sending end can send data packets based on the latest calculated sixth transmission rate.

[0083] In this implementation, by repeating the above steps, the transmission rate of the sending end can be controlled based on the fifth transmission rate of the sending end and the latest available bandwidth of the link, i.e., the third available bandwidth. That is, the latest available bandwidth of the link is taken into account in the process of controlling the transmission rate. In this way, the occurrence of link congestion can be reduced and the congestion control effect can be improved.

[0084] In some embodiments, calculating the sixth transmission rate of the transmitter based on the fifth transmission rate and the third available bandwidth includes:

[0085] The average of the fifth transmission rate and the third available bandwidth is determined as the sixth transmission rate.

[0086] It should be noted that there are multiple ways to calculate the sixth transmission rate of the sending end based on the fifth transmission rate and the third available bandwidth, and no specific method is limited. For example, in this embodiment, the average of the fifth transmission rate and the third available bandwidth can be used as the sixth transmission rate during the calculation process. This allows the transmission rate to gradually approach the available bandwidth, enabling the sending end to send data packets at a transmission rate close to the available bandwidth. In this way, under congestion control, while reducing the occurrence of congestion, the data transmission rate is ensured as much as possible.

[0087] In some embodiments, obtaining the first available bandwidth of the link includes:

[0088] Determine the available bandwidth at the sending end;

[0089] Send the first data packet, which carries the available bandwidth of the sender;

[0090] The receiver receives a first response data packet sent by the receiving end. The first response data packet carries an available bandwidth indication field. The available bandwidth indication field is used to indicate the first available bandwidth of the link. The first available bandwidth is the minimum available bandwidth among the available bandwidths of multiple nodes included in the link. The multiple nodes include the sending end and intermediate nodes located between the sending end and the receiving end.

[0091] Understandably, the first response data is the response data packet corresponding to the first data packet. During congestion control, the available bandwidth of the link can be measured. During this measurement, the sending end (sending node) can determine its own available bandwidth and then send a first data packet carrying the sending end's available bandwidth to the receiving end. There may be intermediate nodes (e.g., switches, routers) between the sending and receiving ends; that is, the first data packet is transmitted to the receiving end through an intermediate node. After receiving the first data packet, the intermediate node can determine its own available bandwidth and compare it with the available bandwidth in the first data packet. If the intermediate node's available bandwidth is less than the available bandwidth in the first data packet, the intermediate node updates the available bandwidth in the first data packet to the smaller of its own available bandwidth and the available bandwidth in the first data packet. The updated first data packet is then transmitted to the receiving end. Upon receiving it, the receiving end can return first response data to the sending end, which may carry an available bandwidth indication field indicating the first available bandwidth of the link. The first available bandwidth is the minimum available bandwidth among the multiple nodes included in the link. Additionally, it should be noted that if the available bandwidth of an intermediate node is greater than or equal to the available bandwidth of the sender, the available bandwidth in the first data packet will not be updated.

[0092] Additionally, it should be noted that when there are at least two intermediate nodes, the sending end transmits the first data packet to the receiving end through at least two intermediate nodes in sequence. The intermediate node closest to the sending end among the at least two intermediate nodes can be called the first intermediate node, the second closest intermediate node can be called the second intermediate node, and so on. The first intermediate node closest to the sending end receives the first data packet sent by the sending end. The first intermediate node compares its available bandwidth with the available bandwidth in the first data packet. If the available bandwidth of the first intermediate node is less than the available bandwidth of the sending end, the first intermediate node updates the available bandwidth in the first data packet to the available bandwidth of the first intermediate node, that is, updates it to the smaller of the available bandwidth of the first intermediate node and the available bandwidth of the sending end, and then transmits the first data packet with the updated available bandwidth to the next intermediate node, that is, the second intermediate node. If the available bandwidth of the first intermediate node is greater than or equal to the available bandwidth of the sending end, the first intermediate node does not update the available bandwidth in the first data packet and transmits the first data packet to the second intermediate node.

[0093] The second intermediate node compares its available bandwidth with the available bandwidth in the first data packet it received. If the second intermediate node's available bandwidth is less than the available bandwidth in the first data packet it received, the second intermediate node updates the available bandwidth in the first data packet, that is, it updates the available bandwidth in the received first data packet to the smaller of the second intermediate node's available bandwidth and the available bandwidth in the received first data packet. If there is a next intermediate node after the second intermediate node, the second intermediate node transmits the first data packet with the updated available bandwidth to the next intermediate node, that is, the third intermediate node. If the second intermediate node's available bandwidth is greater than or equal to the available bandwidth in the first data packet it received, it does not update the available bandwidth in the first data packet it received. If there is a next intermediate node after the second intermediate node, the second intermediate node transmits the first data packet it received from the first intermediate node to the third intermediate node.

[0094] The processing of the third intermediate node is similar to that of the second intermediate node, except that the third intermediate node receives the first data packet from the second intermediate node, while the second intermediate node receives the first data packet from the first intermediate node. This process continues until at least one of the last intermediate nodes (the one closest to the receiver) receives the first data packet sent by its predecessor. The available bandwidth of this data packet is compared with the available bandwidth of the last intermediate node. If the available bandwidth of the last intermediate node is less than the available bandwidth in the first data packet it received, the available bandwidth in the received data packet is updated to the available bandwidth of the last intermediate node. The last intermediate node then transmits the updated first data packet to the receiver (the target node). The updated first data packet includes the available bandwidth of the sender and the minimum available bandwidth of the intermediate nodes. If the available bandwidth of the last intermediate node is greater than or equal to the available bandwidth in the first data packet it received, the available bandwidth in the received data packet is not updated, and the last intermediate node transmits the received first data packet to the receiver. The available bandwidth in the first data packet sent by the last intermediate node to the receiver is the minimum available bandwidth between the available bandwidth of the sender and the available bandwidth of the intermediate node located between the sender and the receiver.

[0095] After receiving the first data packet sent by the last intermediate node, the receiving end can parse the available bandwidth in the received first data packet. The parsed available bandwidth is the first available bandwidth of the link, which is the minimum bandwidth among the available bandwidths of the sending end and the intermediate nodes. Then, it returns a first acknowledgment data packet to the sending end, which carries the parsed first available bandwidth of the link.

[0096] In this embodiment, the first available bandwidth of the link can be carried in the first response data packet and sent to the sending end. After receiving the first response data packet, the sending end can parse the first available bandwidth of the link in it, and determine the second transmission rate of the sending end through the first available bandwidth, thereby realizing the control of the transmission rate of the sending end. Since the first available bandwidth of the link is the minimum available bandwidth among the available bandwidths of the multiple nodes included in the link, controlling the transmission rate of the sending end through the first available bandwidth can reduce the occurrence of link congestion.

[0097] In some embodiments, the available bandwidth of the transmitter is the first target bandwidth minus the traffic size of the transmitter's egress end, the first target bandwidth is the bandwidth of the transmitter's egress end minus the first reserved bandwidth, and the first reserved bandwidth is the product of the transmitter's first preset reserved ratio and the bandwidth of the transmitter's egress end.

[0098] The traffic volume at the sending end's egress point represents the bandwidth already occupied by the sending end's egress point. Subtracting the first reserved bandwidth and then the traffic volume at the sending end's egress point from the egress bandwidth yields the available bandwidth of the sending end. Furthermore, it should be noted that the first reserved ratio can be set in advance based on actual needs or historical experience, and is not specifically limited. For example, the first reserved ratio can be 5%. In this embodiment, a certain amount of bandwidth can be reserved during the determination of the node's available bandwidth to cope with situations such as rat traffic and sudden bursts of traffic.

[0099] In some embodiments, for each of the multiple nodes, the available bandwidth of the node is the target bandwidth of the node minus the traffic volume at the node's egress point; the target bandwidth of the node is the bandwidth at the node's egress point minus the reserved bandwidth of the node; and the reserved bandwidth of the node is the product of the node's preset reserved ratio and the bandwidth at the node's egress point. It should be noted that the preset reserved ratios for different nodes may be the same or different.

[0100] It should be noted that the target bandwidth of the sending end is the first target bandwidth mentioned above, the reserved bandwidth of the sending end is the first reserved bandwidth mentioned above, and the preset reserved ratio of the sending end is the first preset reserved ratio mentioned above.

[0101] See Figure 2 , Figure 2 This is a flowchart of a congestion control method provided in an embodiment of this application, applied at the receiving end, such as... Figure 2 As shown, the congestion control method provided in this embodiment includes the following steps:

[0102] Step 201: Send a first response data packet to the sending end. The first response data packet carries an available bandwidth indication field. The available bandwidth indication field is used to indicate the first available bandwidth of the link between the sending end and the receiving end. The first available bandwidth is the minimum available bandwidth among the available bandwidths of multiple nodes included in the link. The multiple nodes include the sending end and intermediate nodes located between the sending end and the receiving end.

[0103] For example, sending a first response data packet to the sending end may include: upon receiving a first data packet forwarded by an intermediate node or upon receiving a data packet updated by the intermediate node with the available bandwidth in the first data packet, sending a first response data packet to the sending end. The first data packet is sent by the sending end and may carry the available bandwidth of the sending end. It should be noted that updating the available bandwidth in the first data packet by the intermediate node means updating the available bandwidth in the first data packet to the minimum available bandwidth among the available bandwidths of multiple nodes. The specific process of the intermediate node updating the available bandwidth in the first data packet has been described in the above method embodiment applied to the sending end and will not be repeated here. If the updated first data packet is received, the receiving end parses the available bandwidth in the received first data packet to obtain the available bandwidth of the link and sends a first response data packet to the sending end, which carries the available bandwidth of the link. If the available bandwidth of the sender is the smallest among the available bandwidths of multiple nodes, the intermediate node does not update the available bandwidth in the first data packet, but forwards the first data packet to the sender. The available bandwidth in the first data packet is the available bandwidth of the link, which is also the available bandwidth of the sender. When the receiver receives the first data packet forwarded by the intermediate node, it parses the available bandwidth in the first data packet and sends a first response data packet to the sender, which carries the available bandwidth of the link.

[0104] In some embodiments, the available bandwidth of the transmitter is the first target bandwidth minus the traffic size of the transmitter's egress end, the first target bandwidth is the bandwidth of the transmitter's egress end minus the first reserved bandwidth, and the first reserved bandwidth is the product of the transmitter's first preset reserved ratio and the bandwidth of the transmitter's egress end.

[0105] In some embodiments, before sending the first response data packet to the sender, the method further includes: determining the available bandwidth at the receiver.

[0106] For example, the available bandwidth of the receiving end is the second target bandwidth minus the traffic size of the receiving end's output end. The second target bandwidth is the bandwidth of the receiving end's output end minus the second reserved bandwidth. The second reserved bandwidth is the product of the receiving end's second preset reserved ratio and the receiving end's output bandwidth.

[0107] Additionally, it should be noted that the second reservation ratio can be set in advance based on actual needs or historical experience, without specific limitations. The preset reservation ratios for different nodes can be the same or different. For example, the second reservation ratio and the first reservation ratio can be the same, such as both being 5%.

[0108] In some embodiments, for each of the multiple nodes, the available bandwidth of the node is the target bandwidth of the node minus the traffic volume at the node's egress point; the target bandwidth of the node is the bandwidth at the node's egress point minus the reserved bandwidth of the node; and the reserved bandwidth of the node is the product of the node's preset reserved ratio and the bandwidth at the node's egress point. It should be noted that the preset reserved ratios for different nodes may be the same or different.

[0109] It should be noted that the target bandwidth of the receiving end is the second target bandwidth mentioned above, the reserved bandwidth of the receiving end is the second reserved bandwidth mentioned above, and the preset reserved ratio of the receiving end is the second preset reserved ratio mentioned above.

[0110] The process of the above method will be specifically described below with some specific embodiments.

[0111] Introduction to related technologies:

[0112] The RENO-type congestion control algorithm is one of the congestion control algorithms in the Transmission Control Protocol (TCP). It is a packet loss-based congestion control algorithm that controls the packet sending rate based on received acknowledgment (ACK) packets. It adjusts the congestion window to control the sending rate and uses packet loss as a congestion control signal for network congestion control. It features slow start, congestion avoidance, fast retransmission, and fast recovery. The CUBIC (cubic function) congestion control algorithm is a typical RENO-type congestion control algorithm and is currently the default congestion control algorithm for most operating systems. It uses a cubic function as the congestion window growth function in the congestion avoidance phase to improve network bandwidth utilization.

[0113] The BBR (Bottleneck Bandwidth and Round-trip Propagation Time) congestion control algorithm primarily achieves high bandwidth utilization and low transmission latency by periodically probing the bottleneck bandwidth (bandwidth and delay) of the link and adjusting the size of the congestion window based on this information. Figure 3As shown, BBR mainly consists of four phases: Startup, Drain, Probe Bandwidth, and Probe RTT. The Startup phase is similar to the slow start process of CUBIC, exponentially increasing the congestion window size after one round-trip time (RTT) until three consecutive probes show that the instantaneous bandwidth is less than 1.25 times the current bottleneck bandwidth, at which point it enters the Drain state. The current sending rate during Drain is 0.35 times the detected bottleneck bandwidth, clearing the backlog of packets on the link. BBR spends most of its time in the ProbeBW (Bandwidth Probing) state, which cycles every 8 RTTs, including 6 stationary periods, 1 probe period, and 1 drain period. During the stationary period, the packet sending rate equals the detected bottleneck bandwidth; during the probe period, the packet sending rate equals BLTBW (bottleneck bandwidth) * 1.25, increasing the sending rate to probe for more available bandwidth on the link; during the drain period, the packet sending rate equals BLTBW * 0.75, clearing the backlog of packets caused by the probe period. Additionally, Figure 3 In the middle, ProbeRTT is the delayed detection phase.

[0114] HPCC (High-Speed ​​TCP) is a congestion control algorithm for high-speed networks. It uses in-band measurement techniques to assess network congestion, control the amount of data packets in transit, achieve rapid convergence of transmission rates, reduce transmission latency, fully utilize network bandwidth, and avoid network congestion. HPCC is a sender-driven congestion control framework. Figure 4 As shown, a packet-by-packet acknowledgment (ACK) is used, meaning that each data packet sent by the sender receives an ACK from the receiver. During the propagation of the data packet from the sender to the receiver, each switch along the path uses the INT (In-band Network Telemetry) function of its switching ASIC to insert metadata, reporting the current load at the packet's egress port, including timestamps, queue lengths, transmitted bytes, and link bandwidth capacity. When the receiver receives a data packet, it sends all the metadata recorded by the switch to the sender via an ACK. The sender then uses the ACK with network load information to determine how to adjust its traffic.

[0115] However, packet loss-based congestion control algorithms, such as CUBIC and new RENO, continuously increase the congestion window size and inject traffic into the network when there is no packet loss. This can lead to buffer bloat and low overall network bandwidth utilization. The BBR congestion control algorithm probes available network bandwidth by periodically increasing the sending rate (probe cycle) and decreasing the sending rate (drain cycle). Increasing the sending rate during the probe cycle can cause buffer bloat and network congestion. Furthermore, a Probe Bandwidth cycle requires eight cycles, resulting in slow convergence when network paths and bandwidth change abruptly, making it unsuitable for complex network environments. HPCC utilizes in-band telemetry to collect richer congestion signals in the network, enabling more accurate decisions in controlling network congestion and achieving fast convergence. However, HPCC uses an additional mode of in-band telemetry. In this additional mode, as packets traverse the network, it accumulates data from each switch, increasing the packet size. This increase in packet size can cause problems, such as exceeding the Maximum Transmission Unit (MTU), making it unsuitable for internet use. Another point to note is that each sender needs to repeatedly calculate to obtain bottleneck information, even if they share the same path.

[0116] This application provides a congestion control method. The sender (sender end) detects the available bandwidth of the receiver's (receiver's) link while sending data packets. Intermediate nodes in the link (network nodes such as routers and switches) compare the available bandwidth of their outgoing port with the available bandwidth carried in the data packet. If the bandwidth is less than the available bandwidth in the data packet, the available bandwidth in the data packet is updated and forwarded to the next hop. Upon receiving the data packet, the receiver parses the available bandwidth of the link and assembles it into an acknowledgment message, returning it to the sender. The sender adjusts the data packet transmission rate based on the available bandwidth in the received ACK, including stages such as slow start, stable transmission, and fast recovery. This method can quickly and accurately obtain the available bandwidth of the link and adjust the data packet transmission rate according to the available bandwidth, achieving rapid convergence of the transmission rate, reducing transmission latency, fully utilizing network bandwidth, and avoiding network congestion.

[0117] like Figure 5 As shown, the specific flow of the congestion control method provided in this application embodiment is as follows:

[0118] 1. In the startup phase (slow start phase), the available bandwidth of the link is obtained hop-by-hop with each data packet. Based on the available bandwidth and the current sending rate, the next sending rate, sending window, or congestion window size is determined. The specific process is as follows:

[0119] (1) When data packets are started to be transmitted, the congestion window is initialized to the size of 1 maximum segment (MSS), and the sender starts to send data according to the size of the congestion window, or sends data packets at a rate of 1MSS / RTT.

[0120] (2) After receiving the response data packet, the available bandwidth of the link is parsed out;

[0121] (3) Compare the current transmission rate with the available bandwidth of the link. If the current transmission rate is less than the available bandwidth of the link, then perform the following step (4) to calculate the next transmission rate. Otherwise, perform the following step (6) to make the next transmission rate equal to the available bandwidth of the link and output it. The sending end enters the stable transmission stage.

[0122] (4) Exponentially increase the current sending rate (e.g., current sending rate * 2):

[0123] In TCP's slow start process, the sender uses the minimum of the congestion window and the advertised window as its maximum sending limit. The congestion window is used for flow control by the sender, while the advertised window is used by the receiver. The sender initially sends one data packet and then waits for an ACK. When it receives the ACK packet, the congestion window increases from 1 to 2, allowing it to send 2 data packets. When it receives these 2 ACK packets, the congestion window increases to 4, allowing it to send 4 data packets. When it receives these 4 ACK packets, the congestion window increases to 8.

[0124] Initially, cwnd (congestion window) = 1;

[0125] After 1 RTT ---> cwnd = 2 * 1 = 2;

[0126] After 2 RTTs ---> cwnd = 2 * 2 = 4;

[0127] After 3 RTTs, cwnd = 4 * 2 = 8;

[0128] (5) Compare the next transmission rate calculated in step (4) with the available bandwidth of the link. If the next transmission rate is less than the available bandwidth of the link, output the next transmission rate and return to continue execution. Otherwise, execute step (6) to output the next transmission rate equal to the available bandwidth of the link, and the sending end enters the stable transmission stage.

[0129] (6) The next transmission rate is equal to the available bandwidth of the link and is output, and the sending end enters the stable transmission phase.

[0130] 2. During the stable transmission phase, after receiving a data packet containing the available bandwidth of the current link, it is compared with the current transmission rate. Based on the difference, different strategies are used to adjust the transmission rate for the next transmission. The specific process is as follows:

[0131] (1) Receive a data packet with the available bandwidth of the current link, such as an ACK data packet with the available bandwidth of the current link, and parse out the available bandwidth of the current link.

[0132] (2) Compare the current transmission rate with the available bandwidth. If the absolute difference is within a certain range (e.g., less than a preset rate, which can be pre-set without specific limitation; for example, it can be set to 0.5 * the current transmission rate), a linear increase or decrease method can be used for adjustment. For instance, if the current transmission rate is greater than the available bandwidth, a linear decrease can be used; if the current transmission rate is less than the available bandwidth, a linear increase can be used. If the absolute difference exceeds a certain range (e.g., greater than the preset rate), an exponential increase or decrease can be used. For instance, if the current transmission rate is greater than the available bandwidth, an exponential decrease can be used; if the current transmission rate is less than the available bandwidth, an exponential increase can be used.

[0133] 3. When packet loss occurs in the link, the sending rate or the congestion window size can be reduced according to the packet loss rate and maintained for a period of time. For example, if the packet loss rate exceeds the preset packet loss rate threshold (e.g., 2%), the current sending rate can be reduced by 0.5 times for 1 RTT, and then the fast recovery phase can be entered. Alternatively, if the network supports the ECN flag and the sending end and the network have enabled the ECN function, the sending rate or the congestion window size can be reduced according to the received CNP packets, for example, by reducing the current sending rate by 0.5 times for 1 RTT, and then the fast recovery phase can be entered.

[0134] Fast recovery phase: Calculate the next transmission rate using the following formula:

[0135] R next =(R curr +R target ) / 2;

[0136] R next R represents the next transmission rate. curr R represents the current transmission rate. target This represents the target transmission rate, which is the measured available bandwidth of the link.

[0137] During the recovery phase, the transmission rate recovery calculation can be performed cyclically a preset number of times. That is, the next transmission rate is calculated according to the formula for a preset number of times (e.g., 5 times). After that, the available bandwidth of the link is used as the next transmission rate.

[0138] In addition, this embodiment also provides a method for measuring available bandwidth. The Evolved Explicit Congestion Notification (AECN) measures the available bandwidth, and then adjusts the transmission rate or window size, such as... Figure 6 As shown, the process is as follows:

[0139] 1. The sending node (i.e. the sender) needs to obtain the available bandwidth of its own output port, assemble a link available bandwidth probe packet (probe packet format) with an AECN packet header, and then send the available bandwidth probe packet (available bandwidth probe data packet) to the destination node (receiver), which carries the available bandwidth of the sending node;

[0140] 2. Intermediate network devices (intermediate nodes) identify the available bandwidth probe action based on the AECN packet header, compare the available bandwidth of their own outgoing port (egress end) with the available bandwidth in the available bandwidth probe packet. If the available bandwidth of their own node is smaller than the available bandwidth in the available bandwidth probe packet, they update the available bandwidth in the available bandwidth probe packet to the available bandwidth of their own node and forward the updated available bandwidth probe packet to the next node. Otherwise, they directly forward the available bandwidth probe packet to the next node. Each intermediate network device performs a similar operation until the last intermediate network device forwards the available bandwidth probe packet or the updated available bandwidth probe packet to the destination node.

[0141] The available bandwidth of a node can be calculated using the following method:

[0142] ABW = BTR * B;

[0143] B is the bandwidth of the outgoing interface of the node, T is the traffic size of the outgoing interface, and R is the reserved bandwidth ratio, such as reserving 5% to deal with rat flow and burst flow.

[0144] 3. After receiving the available bandwidth probe packet, the destination node parses the available bandwidth in it to obtain the available bandwidth of the link, constructs an available bandwidth response data packet, and then sends it to the sending node;

[0145] 4. The sending node receives and parses the available bandwidth response data packet to obtain the available bandwidth of the link, so as to facilitate subsequent transmission rate control and reduce congestion.

[0146] For example, such as Figure 7As shown, the intermediate nodes between the sender and receiver include Router1 and Router2. The link between the sender and Router1 is Link-1, the link between Router1 and Router2 is Link-2, and the link between Router2 and receiver is Link-3. The sender sends data packets (carrying the sender's available bandwidth) and can use AECN commands and initial congestion information to mark the data packets. The data packet arrives at Router1 via Link-1. Router1 compares its available bandwidth with the available bandwidth in the data packet. If Router1's available bandwidth is less than the available bandwidth in the data packet, it updates the available bandwidth in the data packet to Router1's available bandwidth and forwards it to Router2 via Link-2. After receiving the data packet forwarded by Router1, Router2 compares its available bandwidth with the available bandwidth in the received data packet (which is now Router1's available bandwidth). If Router2's available bandwidth is less than the available bandwidth in the data packet (i.e., if Router2's available bandwidth is less than Router1's available bandwidth), it updates the available bandwidth in the data packet to Router2's available bandwidth and forwards it to the receiving end via Link-3. The receiving end parses the available bandwidth in the data packet sent by Router2 (which is now Router2's available bandwidth) to obtain the available bandwidth of the link between the sending end and the receiving end. Then, it sends an acknowledgment data packet to the sending end, which carries the available bandwidth of that link.

[0147] In this embodiment, the probe message format is as follows: the AECN header is encapsulated in an IPv6 extension header, such as SRH (Segmentation Routing Header), hop-by-hop options header, etc. The AECN header structure is as follows: Figure 8 As shown, where,

[0148] Flags: An 8-bit field. The 7th bit of the flag indicates that the congestion information is custom-defined and used only in limited domains, such as data center networks. If bit 7 is 0, the congestion information type is bitmap.

[0149] Congestion Information Type: Specifies the 24-bit mapping of the current congestion information data. Table 1 lists the supported congestion information data. It should be noted that multiple congestion information data may coexist in a single data packet;

[0150] Table 1

[0151]

[0152] Congestion information data: This includes a variable-length field for congestion information data, which the router must update based on the local load status.

[0153] Flags: An 8-bit field where the 5th bit can be defined to identify the measured available bandwidth. The available bandwidth is 8 bytes long. The intermediate node's operation, the Min function, compares the current node's available bandwidth with the available bandwidth in the data packet, replacing the available bandwidth in the data packet with the smaller value.

[0154] Additionally, it should be noted that to ensure the fairness of available bandwidth allocation, a hop-by-hop bandwidth allocation mechanism can be used. Intermediate nodes can allocate bandwidth for each traffic flow fairly or according to priority, and a portion of the bandwidth can be reserved to ensure the entry of rat streams or subsequent traffic.

[0155] This application's congestion control scheme improves congestion control effectiveness and provides a latency-sensitive, throughput-sensitive, and traditional traffic optimization and forwarding solution. Compared with existing technologies, this proposal adds a throughput-sensitive queue, which can meet the different requirements of buffer queues and ECN threshold values ​​in scenarios such as low-latency mouse flow and high-throughput elephant flow. Furthermore, unlike existing technologies where L4S (Low Latency, Low Loss, and Scalable Throughput) dual-queue technology only provides isolation between DCTCP (Data Center TCP) and traditional TCP traffic based on CUBIC, failing to address scenarios where data traffic using different congestion control methods coexists (e.g., traffic using CUBIC, BBR, and DCTCP), the proposal in this application's embodiments can achieve a friendly coexistence of three different congestion control algorithms, thus having broader applicability.

[0156] like Figure 9 As shown, Figure 9 This is a schematic diagram of a congestion control device provided in an embodiment of this application, which can be applied to the transmitting end, such as... Figure 9 As shown, the congestion control device 900 includes:

[0157] The first acquisition module 901 is used to acquire the first available bandwidth of the link and the first transmission rate of the sending end, wherein the link is the link between the sending end and the receiving end.

[0158] The first determining module 902 is used to determine the second transmission rate of the transmitting end based on the first available bandwidth and the first transmission rate, wherein the time corresponding to the second transmission rate is located after the time corresponding to the first transmission rate.

[0159] In some embodiments, the first determining module 902 includes at least one of the following:

[0160] The first determining unit is configured to determine the first available bandwidth as the second transmission rate of the transmitting end when the first transmission rate is greater than or equal to the first available bandwidth.

[0161] The second determining unit is configured to, when the first transmission rate is less than the first available bandwidth, calculate a third transmission rate based on the first transmission rate, wherein the third transmission rate is greater than the first transmission rate; and determine a second transmission rate of the transmitting end based on the first available bandwidth and the third transmission rate.

[0162] In some embodiments, the second determining unit includes at least one of the following:

[0163] The first determining subunit is used to determine the first available bandwidth as the second transmission rate when the third transmission rate is greater than or equal to the first available bandwidth.

[0164] The second determining subunit is used to determine the third transmission rate as the second transmission rate when the third transmission rate is less than the first available bandwidth.

[0165] In some embodiments, the apparatus further includes:

[0166] The second determining module is used to determine the fourth transmission rate of the sending end based on the second transmission rate and the second available bandwidth when receiving an acknowledgment data packet carrying the second available bandwidth of the link sent by the receiving end. The time corresponding to the fourth transmission rate is located after the time corresponding to the second transmission rate.

[0167] In some embodiments, the second determining module includes at least one of the following:

[0168] The third determining unit is used to determine the fourth transmission rate according to the first rate adjustment method and the second transmission rate when the absolute difference between the second transmission rate and the second available bandwidth is greater than the preset rate. If the second transmission rate is greater than the second available bandwidth, the fourth transmission rate is less than the second transmission rate. If the second transmission rate is less than the second available bandwidth, the fourth transmission rate is determined according to the second rate adjustment method and the second transmission rate. The fourth transmission rate is greater than the second transmission rate.

[0169] The fourth determining unit is used to determine the fourth transmission rate according to the third rate adjustment method and the second transmission rate when the absolute difference between the second transmission rate and the second available bandwidth is less than or equal to the preset rate. If the second transmission rate is greater than the second available bandwidth, the fourth transmission rate is obtained according to the fourth rate adjustment method and the second transmission rate. The fourth transmission rate is less than the second transmission rate. If the second transmission rate is less than the second available bandwidth, the fourth transmission rate is obtained according to the fourth rate adjustment method and the second transmission rate. The fourth transmission rate is greater than the second transmission rate.

[0170] In some embodiments, the apparatus further includes at least one of the following:

[0171] The first processing module is used to detect the packet loss rate of the sending end when it receives a response data packet carrying the second available bandwidth of the link sent by the receiving end; if the packet loss rate is greater than a preset packet loss rate threshold, reduce the second or fourth sending rate, and send the data packet at the reduced fourth sending rate within a preset time period.

[0172] The second processing module is used to reduce the second or fourth transmission rate when it receives a congestion notification message from a network device, and to send data packets at the reduced second or fourth transmission rate within a preset time period.

[0173] In some embodiments, the apparatus further includes:

[0174] The third determining module is used to repeatedly execute the following steps until the sixth transmission rate at the sending end is calculated a preset number of times, and then the third available bandwidth of the link is determined as the sixth transmission rate:

[0175] Upon receiving a response data packet from the receiving end carrying the third available bandwidth of the link, the fifth transmission rate of the sending end is obtained.

[0176] Calculate the sixth transmission rate of the sending end based on the fifth transmission rate and the third available bandwidth.

[0177] In some embodiments, calculating the sixth transmission rate of the transmitter based on the fifth transmission rate and the third available bandwidth includes:

[0178] The average of the fifth transmission rate and the third available bandwidth is determined as the sixth transmission rate.

[0179] In some embodiments, the first acquisition module includes:

[0180] The fifth determining unit is used to determine the available bandwidth at the transmitting end;

[0181] The first sending unit is used to send a first data packet, which carries the available bandwidth of the sending end;

[0182] The first receiving unit is used to receive a first response data packet sent by the receiving end. The first response data packet carries an available bandwidth indication field, which is used to indicate the first available bandwidth of the link. The first available bandwidth is the minimum available bandwidth among the available bandwidths of multiple nodes included in the link. The multiple nodes include the sending end and an intermediate node located between the sending end and the receiving end.

[0183] In some embodiments, the available bandwidth of the transmitter is the first target bandwidth minus the traffic size of the transmitter's egress end, the first target bandwidth is the bandwidth of the transmitter's egress end minus the first reserved bandwidth, and the first reserved bandwidth is the product of the transmitter's first preset reserved ratio and the bandwidth of the transmitter's egress end.

[0184] The congestion control device 900 provided in this embodiment can implement each process of the above-described congestion control method applied to the transmitting end. The technical features are one-to-one and can achieve the same technical effect. To avoid repetition, it will not be described again here.

[0185] See Figure 10 , Figure 10 This is a schematic diagram of a congestion control device provided in an embodiment of this application, which can be applied to a receiving end, such as... Figure 10 As shown, the congestion control device 1000 includes:

[0186] The sending module 1001 is used to send a first response data packet to the sending end. The first response data packet carries an available bandwidth indication field. The available bandwidth indication field is used to indicate the first available bandwidth of the link between the sending end and the receiving end. The first available bandwidth is the minimum available bandwidth among the available bandwidths of multiple nodes included in the link. The multiple nodes include the sending end and intermediate nodes located between the sending end and the receiving end.

[0187] In some embodiments, the available bandwidth of the transmitter is the first target bandwidth minus the traffic size of the transmitter's egress end, the first target bandwidth is the bandwidth of the transmitter's egress end minus the first reserved bandwidth, and the first reserved bandwidth is the product of the transmitter's first preset reserved ratio and the bandwidth of the transmitter's egress end.

[0188] The congestion control device 1000 provided in this embodiment can implement the various processes of the above-described congestion control method applied to the receiving end. The technical features are one-to-one and can achieve the same technical effect. To avoid repetition, it will not be described again here.

[0189] This application also provides an electronic device, including: a processor, a memory, and a program stored in the memory and executable on the processor. When the program is executed by the processor, it implements the various processes of the above-described congestion control method embodiments applied to the sending end and achieves the same technical effect. To avoid repetition, it will not be described again here.

[0190] For details, see Figure 11 This application also provides an electronic device, which can be a transmitter. The electronic device includes a bus 1101, a transceiver 1102, an antenna 1103, a bus interface 1104, a processor 1105, and a memory 1106.

[0191] The processor 1105 is used for:

[0192] Obtain the first available bandwidth of the link and the first transmission rate of the sender, where the link is the link between the sender and the receiver;

[0193] Based on the first available bandwidth and the first transmission rate, the second transmission rate of the transmitting end is determined, and the time corresponding to the second transmission rate is after the time corresponding to the first transmission rate.

[0194] In some embodiments, processor 1105 is specifically used for at least one of the following:

[0195] If the first transmission rate is greater than or equal to the first available bandwidth, the first available bandwidth is determined as the second transmission rate of the transmitting end;

[0196] If the first transmission rate is less than the first available bandwidth, a third transmission rate is calculated based on the first transmission rate, and the third transmission rate is greater than the first transmission rate; based on the first available bandwidth and the third transmission rate, a second transmission rate of the transmitting end is determined.

[0197] In some embodiments, processor 1105 is specifically used for at least one of the following:

[0198] If the third transmission rate is greater than or equal to the first available bandwidth, the first available bandwidth is determined as the second transmission rate;

[0199] If the third transmission rate is less than the first available bandwidth, the third transmission rate is determined as the second transmission rate.

[0200] In some embodiments, the processor 1105 is further configured to:

[0201] Upon receiving an acknowledgment data packet carrying the second available bandwidth of the link from the receiving end, the fourth transmission rate of the sending end is determined based on the second transmission rate and the second available bandwidth. The time corresponding to the fourth transmission rate is after the time corresponding to the second transmission rate.

[0202] In some embodiments, processor 1105 is specifically used for at least one of the following:

[0203] If the absolute difference between the second transmission rate and the second available bandwidth is greater than the preset rate, and if the second transmission rate is greater than the second available bandwidth, a fourth transmission rate is obtained according to the first rate adjustment method and the second transmission rate. The fourth transmission rate is less than the second transmission rate. If the second transmission rate is less than the second available bandwidth, a fourth transmission rate is obtained according to the second rate adjustment method and the second transmission rate. The fourth transmission rate is greater than the second transmission rate.

[0204] If the absolute difference between the second transmission rate and the second available bandwidth is less than or equal to the preset rate, and if the second transmission rate is greater than the second available bandwidth, a fourth transmission rate is obtained according to the third rate adjustment method and the second transmission rate. The fourth transmission rate is less than the second transmission rate. If the second transmission rate is less than the second available bandwidth, a fourth transmission rate is obtained according to the fourth rate adjustment method and the second transmission rate. The fourth transmission rate is greater than the second transmission rate.

[0205] In some embodiments, the processor 1105 is further configured to perform at least one of the following:

[0206] Upon receiving a response data packet carrying the second available bandwidth of the link from the receiving end, the packet loss rate of the sending end is detected; if the packet loss rate is greater than a preset packet loss rate threshold, the second or fourth sending rate is reduced, and data packets are sent at the reduced fourth sending rate within a preset time period.

[0207] Upon receiving a congestion notification message from a network device, the second or fourth transmission rate is reduced, and data packets are transmitted at the reduced second or fourth transmission rate within a preset time period.

[0208] In some embodiments, the processor 1105 is further configured to:

[0209] Repeat the following steps until the sixth transmission rate at the sending end is calculated a preset number of times, then determine the third available bandwidth of the link as the sixth transmission rate:

[0210] Upon receiving a response data packet from the receiving end carrying the third available bandwidth of the link, the fifth transmission rate of the sending end is obtained.

[0211] Calculate the sixth transmission rate of the sending end based on the fifth transmission rate and the third available bandwidth.

[0212] In some embodiments, calculating the sixth transmission rate of the transmitter based on the fifth transmission rate and the third available bandwidth includes:

[0213] The average of the fifth transmission rate and the third available bandwidth is determined as the sixth transmission rate.

[0214] In some embodiments, the processor 1105 is specifically used for:

[0215] Determine the available bandwidth at the sending end;

[0216] Send the first data packet, which carries the available bandwidth of the sender;

[0217] The receiver receives a first response data packet sent by the receiving end. The first response data packet carries an available bandwidth indication field. The available bandwidth indication field is used to indicate the first available bandwidth of the link. The first available bandwidth is the minimum available bandwidth among the available bandwidths of multiple nodes included in the link. The multiple nodes include the sending end and intermediate nodes located between the sending end and the receiving end.

[0218] In some embodiments, the available bandwidth of the transmitter is the first target bandwidth minus the traffic size of the transmitter's egress end, the first target bandwidth is the bandwidth of the transmitter's egress end minus the first reserved bandwidth, and the first reserved bandwidth is the product of the transmitter's first preset reserved ratio and the bandwidth of the transmitter's egress end.

[0219] exist Figure 11 In this document, a bus architecture (represented by bus 1101) is used. Bus 1101 may include any number of interconnected buses and bridges, linking various circuits including one or more processors represented by processor 1105 and memory represented by memory 1106. Bus 1101 may also link various other circuits such as peripheral devices, voltage regulators, and power management circuits, which are well known in the art and therefore will not be described further herein. Bus interface 1104 provides an interface between bus 1101 and transceiver 1102. Transceiver 1102 may be a single element or multiple elements, such as multiple receivers and transmitters, providing a unit for communicating with various other devices over a transmission medium. Data processed by processor 1105 is transmitted over a wireless medium via antenna 1103, which further receives data and transmits it to processor 1105.

[0220] Processor 1105 is responsible for managing bus 1101 and general processing, and can also provide various functions, including timing, peripheral interface, voltage regulation, power management, and other control functions. Memory 1106 can be used to store data used by processor 1105 during operation.

[0221] Optionally, the processor 1105 can be a CPU, ASIC, FPGA, or CPLD.

[0222] The processing of the electronic device provided in this embodiment can realize the various processes of the above-described congestion control method applied to the transmitting end. The technical features are one-to-one and can achieve the same technical effect. To avoid repetition, they will not be described again here.

[0223] This application also provides a computer-readable storage medium storing a computer program. When executed by a processor, this computer program implements the various processes of the congestion control method embodiments applied to the transmitting end described above, and achieves the same technical effects. To avoid repetition, it will not be described again here. The computer-readable storage medium may be a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, etc.

[0224] This application also provides an electronic device, including: a processor, a memory, and a program stored in the memory and executable on the processor. When the program is executed by the processor, it implements the various processes of the above-described congestion control method embodiments applied to the receiving end and achieves the same technical effect. To avoid repetition, it will not be described again here.

[0225] For details, see Figure 12 As shown in the figure, this application embodiment also provides an electronic device, which can be a receiving end. The electronic device includes a bus 1201, a transceiver 1202, an antenna 1203, a bus interface 1204, a processor 1205, and a memory 1206.

[0226] The processor 1205 is used for:

[0227] A first response data packet is sent to the sending end. The first response data packet carries an available bandwidth indication field. The available bandwidth indication field is used to indicate the first available bandwidth of the link between the sending end and the receiving end. The first available bandwidth is the minimum available bandwidth among the available bandwidths of multiple nodes included in the link. The multiple nodes include the sending end and intermediate nodes located between the sending end and the receiving end.

[0228] In some embodiments, the available bandwidth of the transmitter is the first target bandwidth minus the traffic size of the transmitter's egress end, the first target bandwidth is the bandwidth of the transmitter's egress end minus the first reserved bandwidth, and the first reserved bandwidth is the product of the transmitter's first preset reserved ratio and the bandwidth of the transmitter's egress end.

[0229] exist Figure 12In this document, a bus architecture (represented by bus 1201) is used. Bus 1201 may include any number of interconnected buses and bridges, linking various circuits including one or more processors represented by processor 1205 and memory represented by memory 1206. Bus 1201 may also link various other circuits such as peripheral devices, voltage regulators, and power management circuits, which are well known in the art and therefore will not be described further herein. Bus interface 1204 provides an interface between bus 1201 and transceiver 1202. Transceiver 1202 may be a single element or multiple elements, such as multiple receivers and transmitters, providing a unit for communicating with various other devices over a transmission medium. Data processed by processor 1205 is transmitted over a wireless medium via antenna 1203, which further receives data and transmits it to processor 1205.

[0230] Processor 1205 is responsible for managing bus 1201 and general processing, and can also provide various functions, including timing, peripheral interface, voltage regulation, power management, and other control functions. Memory 1206 can be used to store data used by processor 1205 during operation.

[0231] Optionally, the processor 1205 can be a CPU, ASIC, FPGA, or CPLD.

[0232] The processing of the electronic device provided in this embodiment can realize the various processes of the above-described congestion control method applied to the receiving end. The technical features are one-to-one and can achieve the same technical effect. To avoid repetition, they will not be described again here.

[0233] This application also provides a computer-readable storage medium storing a computer program. When executed by a processor, this computer program implements the various processes of the congestion control method embodiments applied to the receiving end described above, and achieves the same technical effects. To avoid repetition, it will not be described again here. The computer-readable storage medium may be, for example, ROM, RAM, magnetic disk, or optical disk.

[0234] This application provides a computer program product, including computer instructions. When the computer instructions are executed by a processor, they implement the various processes of the method described in the embodiment. The technical features are one-to-one and can achieve the same technical effect. To avoid repetition, they will not be described again here.

[0235] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.

[0236] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes several instructions to cause a terminal (which may be a mobile phone, computer, server, air conditioner, or first network device, etc.) to execute the methods of the various embodiments of this application.

[0237] The embodiments of this application have been described above with reference to the accompanying drawings. However, this application is not limited to the specific embodiments described above. The specific embodiments described above are merely illustrative and not restrictive. Those skilled in the art can make many other forms under the guidance of this application without departing from the spirit and scope of the claims, and all of these forms are within the protection scope of this application.

Claims

1. A congestion control method, characterized in that, Applied to the sending end, the method includes: The first available bandwidth of the link and the first transmission rate of the sending end are obtained, wherein the link is the link between the sending end and the receiving end; Based on the first available bandwidth and the first transmission rate, the second transmission rate of the transmitting end is determined, and the time corresponding to the second transmission rate is after the time corresponding to the first transmission rate. After determining the second transmission rate of the transmitting end based on the first available bandwidth and the first transmission rate, the method further includes: Upon receiving a response data packet carrying the second available bandwidth of the link sent by the receiving end, a fourth transmission rate of the sending end is determined based on the second transmission rate and the second available bandwidth, wherein the time corresponding to the fourth transmission rate is after the time corresponding to the second transmission rate; Determining the fourth transmission rate of the transmitting end based on the second transmission rate and the second available bandwidth includes at least one of the following: If the absolute difference between the second transmission rate and the second available bandwidth is greater than the preset rate, and if the second transmission rate is greater than the second available bandwidth, the fourth transmission rate is obtained according to the first rate adjustment method and the second transmission rate, and the fourth transmission rate is less than the second transmission rate. If the second transmission rate is less than the second available bandwidth, the fourth transmission rate is obtained according to the second rate adjustment method and the second transmission rate, and the fourth transmission rate is greater than the second transmission rate. If the absolute difference between the second transmission rate and the second available bandwidth is less than or equal to the preset rate, and if the second transmission rate is greater than the second available bandwidth, the fourth transmission rate is obtained according to the third rate adjustment method and the second transmission rate, and the fourth transmission rate is less than the second transmission rate. If the second transmission rate is less than the second available bandwidth, the fourth transmission rate is obtained according to the fourth rate adjustment method and the second transmission rate, and the fourth transmission rate is greater than the second transmission rate.

2. The method according to claim 1, characterized in that, Determining the second transmission rate of the transmitting end based on the first available bandwidth and the first transmission rate includes at least one of the following: If the first transmission rate is greater than or equal to the first available bandwidth, the first available bandwidth is determined as the second transmission rate of the transmitting end; If the first transmission rate is less than the first available bandwidth, a third transmission rate is calculated based on the first transmission rate, wherein the third transmission rate is greater than the first transmission rate; and a second transmission rate of the transmitting end is determined based on the first available bandwidth and the third transmission rate.

3. The method according to claim 2, characterized in that, Determining the second transmission rate of the transmitting end based on the first available bandwidth and the third transmission rate includes at least one of the following: If the third transmission rate is greater than or equal to the first available bandwidth, the first available bandwidth is determined as the second transmission rate; If the third transmission rate is less than the first available bandwidth, the third transmission rate is determined to be the second transmission rate.

4. The method according to claim 1, characterized in that, The method further includes at least one of the following: Upon receiving a response data packet carrying the second available bandwidth of the link from the receiving end, the packet loss rate of the sending end is detected; If the packet loss rate is greater than a preset packet loss rate threshold, the second transmission rate or the fourth transmission rate is reduced, and data packets are transmitted at the reduced second transmission rate or the reduced fourth transmission rate within a preset time period. Upon receiving a congestion notification message from a network device, the second or fourth transmission rate is reduced, and data packets are transmitted at the reduced second or fourth transmission rate within a preset time period.

5. The method according to claim 4, characterized in that, After sending data packets at the reduced second or fourth sending rate within a preset time period, the method further includes: The following steps are repeated until the sixth transmission rate of the sending end is calculated a preset number of times, and then the third available bandwidth of the link is determined as the sixth transmission rate: Upon receiving a response data packet carrying the third available bandwidth of the link sent by the receiving end, the fifth transmission rate of the sending end is obtained; The sixth transmission rate of the transmitting end is calculated based on the fifth transmission rate and the third available bandwidth.

6. The method according to claim 5, characterized in that, The step of calculating the sixth transmission rate of the transmitting end based on the fifth transmission rate and the third available bandwidth includes: The average of the fifth transmission rate and the third available bandwidth is determined as the sixth transmission rate.

7. The method according to claim 1, characterized in that, The acquisition of the first available bandwidth of the link includes: Determine the available bandwidth at the transmitting end; Send a first data packet, the first data packet carrying the available bandwidth of the sending end; The receiver receives a first response data packet sent by the receiving end. The first response data packet carries an available bandwidth indication field. The available bandwidth indication field is used to indicate the first available bandwidth of the link. The first available bandwidth is the minimum available bandwidth among the available bandwidths of multiple nodes included in the link. The multiple nodes include the sending end and intermediate nodes located between the sending end and the receiving end.

8. The method according to claim 7, characterized in that, The available bandwidth of the transmitting end is the first target bandwidth minus the traffic volume of the transmitting end's output end. The first target bandwidth is the bandwidth of the transmitting end's output end minus the first reserved bandwidth. The first reserved bandwidth is the product of the transmitting end's first preset reserved ratio and the transmitting end's output bandwidth.

9. A congestion control method, characterized in that, Applied to the receiving end, the method includes: Send a first response data packet to the sending end. The first response data packet carries an available bandwidth indication field. The available bandwidth indication field is used to indicate the first available bandwidth of the link between the sending end and the receiving end. The first available bandwidth is the minimum available bandwidth among the available bandwidths of multiple nodes included in the link. The multiple nodes include the sending end and intermediate nodes located between the sending end and the receiving end. The method further includes: Send a response data packet carrying the second available bandwidth of the link to the sending end. The second available bandwidth is used to determine the fourth transmission rate of the sending end with the second transmission rate. The time corresponding to the fourth transmission rate is after the time corresponding to the second transmission rate. Wherein, if the absolute difference between the second transmission rate and the second available bandwidth is greater than a preset rate, and if the second transmission rate is greater than the second available bandwidth, the fourth transmission rate is obtained based on the first rate adjustment method and the second transmission rate, and the fourth transmission rate is less than the second transmission rate; if the second transmission rate is less than the second available bandwidth, the fourth transmission rate is obtained based on the second rate adjustment method and the second transmission rate, and the fourth transmission rate is greater than the second transmission rate; and / or If the absolute difference between the second transmission rate and the second available bandwidth is less than or equal to the preset rate, and if the second transmission rate is greater than the second available bandwidth, the fourth transmission rate is obtained according to the third rate adjustment method and the second transmission rate, and the fourth transmission rate is less than the second transmission rate. If the second transmission rate is less than the second available bandwidth, the fourth transmission rate is obtained according to the fourth rate adjustment method and the second transmission rate, and the fourth transmission rate is greater than the second transmission rate.

10. The method according to claim 9, characterized in that, The available bandwidth of the transmitting end is the first target bandwidth minus the traffic volume of the transmitting end's output end. The first target bandwidth is the bandwidth of the transmitting end's output end minus the first reserved bandwidth. The first reserved bandwidth is the product of the transmitting end's first preset reserved ratio and the transmitting end's output bandwidth.

11. A congestion control device, characterized in that, Applied to the transmitting end, the device includes: The first acquisition module is used to acquire the first available bandwidth of the link and the first transmission rate of the sending end, wherein the link is the link between the sending end and the receiving end; The first determining module is used to determine the second transmission rate of the transmitting end based on the first available bandwidth and the first transmission rate, wherein the time corresponding to the second transmission rate is after the time corresponding to the first transmission rate. The device further includes: The second determining module is used to determine the fourth transmission rate of the sending end based on the second transmission rate and the second available bandwidth when receiving a response data packet carrying the second available bandwidth of the link sent by the receiving end, wherein the time corresponding to the fourth transmission rate is after the time corresponding to the second transmission rate. The second determining module includes at least one of the following: The third determining unit is configured to, if the absolute difference between the second transmission rate and the second available bandwidth is greater than a preset rate, determine the fourth transmission rate according to the first rate adjustment method and the second transmission rate, wherein the fourth transmission rate is less than the second transmission rate, and if the second transmission rate is less than the second available bandwidth, determine the fourth transmission rate according to the second rate adjustment method and the second transmission rate, wherein the fourth transmission rate is greater than the second transmission rate. The fourth determining unit is configured to, when the absolute difference between the second transmission rate and the second available bandwidth is less than or equal to the preset rate, if the second transmission rate is greater than the second available bandwidth, determine the fourth transmission rate according to the third rate adjustment method and the second transmission rate, wherein the fourth transmission rate is less than the second transmission rate; if the second transmission rate is less than the second available bandwidth, determine the fourth transmission rate according to the fourth rate adjustment method and the second transmission rate, wherein the fourth transmission rate is greater than the second transmission rate.

12. A congestion control device, characterized in that, Applied to the receiving end, the device includes: A sending module is configured to send a first response data packet to a sending end. The first response data packet carries an available bandwidth indication field. The available bandwidth indication field is used to indicate the first available bandwidth of the link between the sending end and the receiving end. The first available bandwidth is the minimum available bandwidth among the available bandwidths of multiple nodes included in the link. The multiple nodes include the sending end and an intermediate node located between the sending end and the receiving end. The device is also used for: Send a response data packet carrying the second available bandwidth of the link to the sending end. The second available bandwidth is used to determine the fourth transmission rate of the sending end with the second transmission rate. The time corresponding to the fourth transmission rate is after the time corresponding to the second transmission rate. Wherein, if the absolute difference between the second transmission rate and the second available bandwidth is greater than a preset rate, and if the second transmission rate is greater than the second available bandwidth, the fourth transmission rate is obtained based on the first rate adjustment method and the second transmission rate, and the fourth transmission rate is less than the second transmission rate; if the second transmission rate is less than the second available bandwidth, the fourth transmission rate is obtained based on the second rate adjustment method and the second transmission rate, and the fourth transmission rate is greater than the second transmission rate; and / or If the absolute difference between the second transmission rate and the second available bandwidth is less than or equal to the preset rate, and if the second transmission rate is greater than the second available bandwidth, the fourth transmission rate is obtained according to the third rate adjustment method and the second transmission rate, and the fourth transmission rate is less than the second transmission rate. If the second transmission rate is less than the second available bandwidth, the fourth transmission rate is obtained according to the fourth rate adjustment method and the second transmission rate, and the fourth transmission rate is greater than the second transmission rate.

13. An electronic device, characterized in that, Including transceivers and processors, The processor is used for: The first available bandwidth of the link and the first transmission rate of the sending end are obtained, wherein the link is the link between the sending end and the receiving end; Based on the first available bandwidth and the first transmission rate, the second transmission rate of the transmitting end is determined, and the time corresponding to the second transmission rate is after the time corresponding to the first transmission rate. The processor is also used for: Upon receiving a response data packet carrying the second available bandwidth of the link sent by the receiving end, a fourth transmission rate of the sending end is determined based on the second transmission rate and the second available bandwidth, wherein the time corresponding to the fourth transmission rate is after the time corresponding to the second transmission rate; The processor is specifically used for at least one of the following: If the absolute difference between the second transmission rate and the second available bandwidth is greater than the preset rate, and if the second transmission rate is greater than the second available bandwidth, the fourth transmission rate is obtained according to the first rate adjustment method and the second transmission rate, and the fourth transmission rate is less than the second transmission rate. If the second transmission rate is less than the second available bandwidth, the fourth transmission rate is obtained according to the second rate adjustment method and the second transmission rate, and the fourth transmission rate is greater than the second transmission rate. If the absolute difference between the second transmission rate and the second available bandwidth is less than or equal to the preset rate, and if the second transmission rate is greater than the second available bandwidth, the fourth transmission rate is obtained according to the third rate adjustment method and the second transmission rate, and the fourth transmission rate is less than the second transmission rate. If the second transmission rate is less than the second available bandwidth, the fourth transmission rate is obtained according to the fourth rate adjustment method and the second transmission rate, and the fourth transmission rate is greater than the second transmission rate.

14. An electronic device, characterized in that, Including transceivers and processors, The processor is used for: Send a first response data packet to the sending end. The first response data packet carries an available bandwidth indication field. The available bandwidth indication field is used to indicate the first available bandwidth of the link between the sending end and the receiving end. The first available bandwidth is the minimum available bandwidth among the available bandwidths of multiple nodes included in the link. The multiple nodes include the sending end and intermediate nodes located between the sending end and the receiving end. The processor is also used for: Send a response data packet carrying the second available bandwidth of the link to the sending end. The second available bandwidth is used to determine the fourth transmission rate of the sending end with the second transmission rate. The time corresponding to the fourth transmission rate is after the time corresponding to the second transmission rate. Wherein, if the absolute difference between the second transmission rate and the second available bandwidth is greater than a preset rate, and if the second transmission rate is greater than the second available bandwidth, the fourth transmission rate is obtained based on the first rate adjustment method and the second transmission rate, and the fourth transmission rate is less than the second transmission rate; if the second transmission rate is less than the second available bandwidth, the fourth transmission rate is obtained based on the second rate adjustment method and the second transmission rate, and the fourth transmission rate is greater than the second transmission rate; and / or If the absolute difference between the second transmission rate and the second available bandwidth is less than or equal to the preset rate, and if the second transmission rate is greater than the second available bandwidth, the fourth transmission rate is obtained according to the third rate adjustment method and the second transmission rate, and the fourth transmission rate is less than the second transmission rate. If the second transmission rate is less than the second available bandwidth, the fourth transmission rate is obtained according to the fourth rate adjustment method and the second transmission rate, and the fourth transmission rate is greater than the second transmission rate.

15. An electronic device, characterized in that, include: A processor, a memory, and a program stored in the memory and executable on the processor, wherein the program, when executed by the processor, implements the steps of the method as claimed in any one of claims 1 to 8, or implements the steps of the method as claimed in any one of claims 9 to 10.

16. A computer-readable storage medium storing a computer program that, when executed by a processor, implements the steps of the method according to any one of claims 1-8, or implements the steps of the method according to any one of claims 9-10.

17. A computer program product, characterized in that, Includes computer instructions, which, when executed by a processor, implement the steps of the method as described in any one of claims 1-10.

Citation Information

Patent Citations

  • Sending method of data, sending end and communication system

    CN103067432A

  • Probe packet sending method and related equipment

    CN114501534A