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

By obtaining the available link bandwidth and the sending end transmission rate and adjusting the sending end transmission rate, the problem of poor congestion control caused by increasing the sending rate without packet loss in the prior art is solved, and more effective link congestion control is achieved.

CN119629129AActive Publication Date: 2025-03-14CHINA MOBILE COMM LTD RES INST +1

Patent Information

Application Number
CN202411261311.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-10
Publication Date
2025-03-14
Estimated Expiration
2044-09-10

AI Technical Summary

Technical Problem

The existing congestion control method can easily increase the transmission rate without packet loss, resulting in poor congestion control effect.

Method used

By obtaining the first available bandwidth of the link and the first transmission rate of the transmitter, the second transmission rate of the transmitter is determined, and the control of the transmission rate by the available bandwidth of the link is taken into account, so as to avoid increasing the transmission rate without reason.

Benefits of technology

Effectively reduce link congestion, improve congestion control effect, and ensure that the transmission rate matches the available bandwidth of the link.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119629129A_ABST
    Figure CN119629129A_ABST
Patent Text Reader

Abstract

The invention provides a congestion control method and device, electronic equipment and a computer readable storage medium, and the method comprises the steps: obtaining a first available bandwidth of a link and a first transmission rate of a transmitting end, the link being a link between the transmitting end and a receiving end; according to the first available bandwidth and the first sending rate, a second sending rate of the sending end is determined, and the moment corresponding to the second sending rate is located after the moment corresponding to the first sending rate. Thus, not only is the sending rate of the sending end considered, but also the available bandwidth of the link between the sending end and the receiving end is considered, the sending rate of the sending end is controlled, congestion control is achieved, the situation that the sending rate is continuously increased to inject flow into a network under the condition that packet loss does not occur at the sending end can be avoided, link congestion is reduced, and the service life of the network is prolonged. And the congestion control effect is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

[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 (that is, the rate at which data packets are sent) or the congestion window size.

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

[0004] The embodiments of the present application provide a congestion control method, device and electronic device to solve the problem of poor congestion control effect in the prior art.

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

[0006] In a first aspect, an embodiment of the present application provides a congestion control method, which is applied to a sending end, and the method includes:

[0007] Acquire a first available bandwidth of a link and a first sending rate of the sending end, wherein the link is a link between the sending end and the receiving end;

[0008] A second sending rate of the transmitter is determined according to the first available bandwidth and the first sending rate, wherein a time corresponding to the second sending rate is later than a time corresponding to the first sending rate.

[0009] In a second aspect, an embodiment of the present application provides a congestion control method, which is applied to a receiving end, and the method includes:

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

[0011] In a third aspect, an embodiment of the present application provides a congestion control device, applied to a sending end, the device comprising:

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

[0013] The first determining module is used to determine a second sending rate of the transmitting end according to the first available bandwidth and the first sending rate, wherein a time corresponding to the second sending rate is later than a time corresponding to the first sending rate.

[0014] In a fourth aspect, an embodiment of the present application provides a congestion control device, applied to a receiving end, the device comprising:

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

[0016] In a fifth aspect, an embodiment of the present application provides an electronic device, including a transceiver and a processor.

[0017] The processor is configured to:

[0018] Acquire a first available bandwidth of a link and a first sending rate of the sending end, wherein the link is a link between the sending end and the receiving end;

[0019] A second sending rate of the transmitter is determined according to the first available bandwidth and the first sending rate, wherein a time corresponding to the second sending rate is later than a time corresponding to the first sending rate.

[0020] In a sixth aspect, an embodiment of the present application provides an electronic device, including a transceiver and a processor.

[0021] The processor is configured to:

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

[0023] In the seventh aspect, an embodiment of the present application provides an electronic device, comprising: 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, the steps of the congestion control method described in the first aspect are implemented, or the steps of the congestion control method described in the second aspect are implemented.

[0024] In an eighth aspect, an embodiment of the present application provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps of the congestion control method described in the first aspect are implemented, or the steps of the congestion control method described in the second aspect are implemented.

[0025] In a ninth aspect, an embodiment of the present application provides a computer program product, comprising computer instructions, which implement the steps of the above method when executed by a processor.

[0026] In this embodiment, during the congestion control process, the first available bandwidth and the first sending rate of the sender can be used to perform congestion control, that is, the first available bandwidth and the first sending rate can be used to determine the second sending rate of the sender, which not only takes into account the sending rate of the sender, but also takes into account the available bandwidth of the link between the sender and the receiver, and controls the sending rate of the sender to achieve congestion control. This can avoid the situation where the sender continuously increases the sending rate to inject traffic into the network when no packet loss occurs, reduces link congestion, and improves the congestion control effect. BRIEF DESCRIPTION OF THE DRAWINGS

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

[0028] Figure 1 This is one of the flow charts of a congestion control method provided in an embodiment of the present application;

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

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

[0031] Figure 4 It is a schematic diagram of the HPCC congestion control algorithm;

[0032] Figure 5This is the third flowchart of a congestion control method provided in an embodiment of the present application;

[0033] Figure 6 is a schematic diagram of a method for measuring available bandwidth provided in an embodiment of the present application;

[0034] Figure 7 is a schematic diagram of measuring available bandwidth through Advanced ECN provided in an embodiment of the present application;

[0035] Figure 8 It is a structural diagram of the AECN header provided in an embodiment of the present application;

[0036] Fig. 9 It is one of the structural schematic diagrams of a congestion control device provided in an embodiment of the present application;

[0037] Fig.10 This is the second structural schematic diagram of a congestion control device provided in an embodiment of the present application;

[0038] Fig.11 This is one of the structural schematic diagrams of an electronic device provided in an embodiment of the present application;

[0039] Fig.12 This is the second structural schematic diagram of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0040] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

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

[0042] Step 101: Acquire a first available bandwidth of a link and a first sending rate of a sending end, where the link is a link between a sending end and a receiving end.

[0043] The available bandwidth (ABW) of a link may refer to the unused / usable bandwidth on the link, which may characterize the available transmission capacity on the link, etc. The first available bandwidth may be understood as the latest available bandwidth obtained for the link. The sending rate of the sender may be understood as the rate at which the sender sends data packets, and the first sending rate of the sender may 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 moment is the first moment, then the first sending rate is the sending rate at the first moment.

[0044] Step 102: Determine a second sending rate of the transmitting end according to the first available bandwidth and the first sending rate, wherein the time corresponding to the second sending rate is later than the time corresponding to the first sending rate.

[0045] In this embodiment, the first available bandwidth and the first transmission rate of the transmitter can be used to determine the second transmission rate after the moment corresponding to the first transmission rate, which can also be understood as the next transmission rate. In addition, after determining the second transmission rate, the second transmission rate can be output for next use. In the subsequent process of sending data packets by the transmitter, data packets can be sent according to the second transmission rate. In addition, it should be noted that, exemplarily, after obtaining the first available bandwidth of the link and the first transmission rate of the transmitter, the transmission window size and / or the congestion window size can also be determined according to the first available bandwidth and the first transmission rate to achieve congestion control, and the data packets can be sent according to the transmission window size and / or the congestion window size to reduce the occurrence of congestion. That is, it can be understood that in the embodiment of the present application, at least one of the second transmission rate, the transmission window size and the congestion window size of the transmitter can be determined according to the first available bandwidth and the first transmission rate, that is, at least one of the transmission rate, the transmission window size and the congestion window size of the transmitter can be controlled to achieve congestion control and reduce the occurrence of congestion.

[0046] In this embodiment, during the congestion control process, the first available bandwidth and the first sending rate of the sender can be used to perform congestion control, that is, the first available bandwidth and the first sending rate can be used to determine the second sending rate of the sender, which not only takes into account the sending rate of the sender, but also takes into account the available bandwidth of the link between the sender and the receiver, and controls the sending rate of the sender to achieve congestion control. This can avoid the situation where the sender continuously increases the sending rate to inject traffic into the network when no packet loss occurs, reduces link congestion, and improves the congestion control effect.

[0047] In some embodiments, determining the second sending rate of the transmitting end according to the first available bandwidth and the first sending rate includes at least one of the following:

[0048] When the first sending rate is greater than or equal to the first available bandwidth, determining the first available bandwidth as the second sending rate of the sending end;

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

[0050] In this embodiment, when the first transmission rate is greater than or equal to the first available bandwidth, it means that the first transmission rate exceeds the available bandwidth of the link or is equivalent 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 transmitter, that is, the second transmission rate determined at the moment after the moment 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, so that the subsequent transmitter can send data packets based on the second transmission rate, etc., to reduce the occurrence of congestion. When the first transmission rate is less than the first available bandwidth, it means that the first transmission rate has not reached the available bandwidth of the link. According to the first transmission rate, a third transmission rate greater than the first transmission rate can be calculated. It can be understood that the first transmission rate is increased to obtain the third transmission rate, and then the second transmission rate of the transmitter is determined according to the first available bandwidth and the third transmission rate, so as to realize the control of the transmission rate of the transmitter to reduce the occurrence of congestion. In addition, in order to reduce the occurrence of congestion in the link, the second transmission rate determined is less than or equal to the first available bandwidth. In addition, exemplarily, when the first sending rate is greater than or equal to the first available bandwidth, the sending window size and / or the congestion window size of the sending end may also be reduced; when the first sending rate is less than the first available bandwidth, the sending window size and / or the congestion window size of the sending end may also be increased, etc.

[0051] In addition, it should be noted that there are many ways to calculate the third sending rate based on the first sending rate so that the obtained third sending rate is greater than the first sending rate. The embodiments of the present application do not make specific limitations. For example, in one example, the third sending rate can be M times the first sending rate, and M is greater than 1. The value of M can be set in advance based on demand or historical experience, and is not specifically limited. For example, M can be 2, etc.

[0052] That is, in this embodiment, the first transmission rate can be compared with the first available bandwidth. In the case of different comparison results, different methods are used to determine the second transmission rate, thereby improving the flexibility of determining the second transmission rate. At the same time, in the case where 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 transmitter to avoid the second transmission rate of the transmitter exceeding the first available bandwidth, thereby reducing the occurrence of congestion. In the case where 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, that is, the transmission rate is increased, and then the second transmission rate of the transmitter is determined by using the third transmission rate with the increased transmission rate and the first available bandwidth, thereby realizing the control of the transmission rate of the transmitter to reduce the occurrence of congestion.

[0053] In some embodiments, determining the second sending rate of the transmitting end according to the first available bandwidth and the third sending rate includes at least one of the following:

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

[0055] When 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, the third transmission rate can be compared with the first available bandwidth. In the case of different comparison results, different methods are used to determine the second transmission rate, thereby improving the flexibility of determining the second transmission rate. At the same time, when the third 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 transmitter to avoid the second transmission rate of the transmitter exceeding the first available bandwidth, thereby reducing congestion. When the third transmission rate is less than the first available bandwidth, the calculated third transmission rate can be determined as the second transmission rate of the transmitter, thereby realizing the control of the transmission rate of the transmitter and reducing congestion.

[0057] In addition, in some embodiments, when the third sending rate is less than the first available bandwidth, after the third sending rate is determined as the second sending rate, the process may return to obtaining the first available bandwidth of the link and the first sending rate of the sending end, and the step of determining the second sending rate of the sending end based on the first available bandwidth and the first sending rate is executed in a loop until the second sending rate reaches the first available bandwidth (that is, the first available bandwidth is determined as the second sending rate), and the loop is stopped. When the second sending rate is the first available bandwidth, the stable sending stage is entered.

[0058] In some embodiments, after determining the second sending rate of the sending end according to the first available bandwidth and the first sending rate, the method further includes:

[0059] When receiving a response data packet carrying the second available bandwidth of the link from the receiving end, the fourth sending rate of the sending end is determined according to the second sending rate and the second available bandwidth, and the time corresponding to the fourth sending rate is after the time corresponding to the second sending rate.

[0060] It can be understood that the sender sends a data packet to the receiver and waits for the receiver's confirmation (ACK). After receiving the data packet, the receiver can return a corresponding response data packet to the sender, which can also be called a confirmation (ACK) data packet, indicating that the data packet sent has been received correctly. That is, every time the receiver receives a data packet sent by the sender, it can return a corresponding response data packet to the sender. Every time the sender sends a data packet to the receiver, if no packet loss occurs, the receiver can receive the corresponding response data packet returned by the receiver.

[0061] After the transmitting end determines the second transmission rate, the transmitting end can transmit data packets based on the second transmission rate. When the transmitting end receives the response data packet sent by the receiving end and carrying the second available bandwidth of the link, the transmitting end can determine the fourth transmission rate of the transmitting end according to the second transmission rate and the second available bandwidth. In addition, illustratively, the fourth transmission rate can be output for next use. It should be noted that, as time goes by, the available bandwidth of the link may change, and the response data can carry the latest available bandwidth of the current link. The second available bandwidth is the available bandwidth of the link obtained after the first available bandwidth. The second available bandwidth can be different from or the same as the first available bandwidth (this situation can be understood as the available bandwidth of the link has not changed). At the current moment, the transmission rate of the transmitting end is the second transmission rate. Therefore, the fourth transmission rate of the transmitting end can be determined according to the second transmission rate and the second available bandwidth. After that, the transmitting end can transmit data packets based on the fourth transmission rate. It should be noted that, as time goes by, the current moment is constantly updated. 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 the above step 101.

[0062] In addition, it should be noted that, illustratively, after the first available bandwidth is determined as the second transmission rate of the transmitter, when a response data packet carrying the second available bandwidth of the link sent by the receiving end is received, the fourth transmission rate of the transmitter is determined according to the second transmission rate and the second available bandwidth. It can be understood that after the first available bandwidth is determined as the second transmission rate of the transmitter, the transmitter can subsequently send data packets based on the second transmission rate, and the transmitter enters a stable transmission phase. In the stable transmission phase, after receiving a response data packet of the second available bandwidth of the current link, the next transmission rate of the transmitter can be adjusted according to the second transmission rate and the second available bandwidth, that is, the fourth transmission rate of the transmitter is determined, and the transmitter can subsequently send data packets based on the fourth transmission rate.

[0063] In addition, exemplarily, 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 the congestion window size of the sending end can also be adjusted according to the second sending rate and the second available bandwidth. For example, when the second sending rate is greater than or equal to the second available bandwidth, the sending window size and / or the congestion window size can be adjusted to a smaller size; when the second sending rate is less than the second available bandwidth, the sending window size and / or the congestion window size can be adjusted to a larger size, etc., so as to improve the congestion control effect.

[0064] That is, in this embodiment, when a new available bandwidth is received, the sending rate after this moment can be determined based on the sending rate at the current moment (the second sending rate) and the new available bandwidth, that is, the fourth sending rate can be determined, that is, the sending rate of the sending end is adjusted to adapt to the available bandwidth of the current link and reduce link congestion.

[0065] In some embodiments, determining a fourth sending rate of the transmitting end according to the second sending rate and the second available bandwidth includes at least one of the following:

[0066] In the case where 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, a 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, a 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;

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

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

[0069] The second rate adjustment mode and the fourth rate adjustment mode are rate increasing modes. For example, the adjustment amplitude of the second rate adjustment mode is greater than the amplitude of the fourth rate adjustment mode. The second rate adjustment mode may be, but is not limited to, an exponential increasing mode. For example, the fourth transmission rate may be a times the second transmission rate. For example, the fourth rate adjustment mode may be, but is not limited to, a linear increasing mode. For example, the fourth transmission rate may be the second transmission rate plus b.

[0070] In this embodiment, in different situations, based on the second sending rate, different rate adjustment methods can be used to obtain a fourth sending rate, thereby realizing control of the sending rate of the sending end, thereby improving the rate control effect and thus improving the congestion control effect.

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

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

[0073] When receiving a congestion notification message sent by the network device, the second sending rate or the fourth sending rate is reduced, and data packets are sent at the reduced second sending rate or the reduced fourth sending rate within a preset time period.

[0074] It should be noted that, since the packet loss rate satisfies the condition that it is greater than the preset packet loss rate threshold, the transmitting end may not have determined the fourth transmission rate, and the transmitting end sends data packets based on the second transmission rate. In this way, when the packet loss rate is greater than the preset packet loss rate threshold, the second transmission rate is reduced. When the packet loss rate satisfies the condition that it is greater than the preset packet loss rate threshold, the fourth transmission rate may have been determined, and the transmitting end sends data packets at the fourth transmission rate. In this way, when the packet loss rate is greater than the preset packet loss rate threshold, the fourth transmission rate is reduced. The preset packet loss rate threshold can be set in advance according to actual needs or historical experience, and this embodiment does not make specific limitations. For example, the preset packet loss rate threshold can be set to 2%. It should also be noted that, illustratively, detecting the packet loss rate of the transmitting end can be detecting the packet loss rate of the transmitting end within a predetermined time period before the first moment. The predetermined time period here 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 response data packet carrying the second available bandwidth of the link sent by the receiving end is received, etc. In addition, the preset duration can be set in advance according to actual needs or historical experience, and this embodiment does not make any specific limitations. For example, by way of example, the preset duration can be the round-trip time (RTT) closest to the second moment, and the second moment can be the moment at which the second sending rate or the fourth sending rate is reduced.

[0075] In addition, in this embodiment, in addition to the above-mentioned sending end actively reducing the sending rate by detecting the packet loss rate, the sending end may also passively reduce the sending rate, that is, the network device supports the explicit congestion notification (ECN) flag, and the sending end and the network enable the ECN function, then the network device may send a congestion notification message (CNP) to the sending end, so that the sending end reduces the second sending rate or the fourth sending rate, and the sending end reduces the second sending rate or the fourth sending rate when receiving the CNP sent by the network device. In addition, illustratively, when the packet loss rate exceeds the preset packet loss rate threshold, the congestion window size and / or the sending window size of the sending end may also be reduced.

[0076] In one example, reducing the second transmission rate may be reducing the second transmission rate by c times, and reducing the fourth transmission rate may be reducing the fourth transmission rate by c times, where c is greater than 0 and less than 1. c may be set in advance according to actual needs or historical experience, and no specific setting is made. For example, c may be 0.5, etc.

[0077] In this embodiment, when the packet loss rate of the sending end exceeds a preset packet loss rate threshold, the sending end can reduce the sending rate of the sending end and continue to use the reduced sending rate for a preset period of time. The sending end can also reduce the sending rate of the sending end when the sending end receives a congestion notification message sent by a network device, so as to increase the flexibility of controlling the sending rate of the sending end.

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

[0079] The following steps are executed in a loop until the number of calculations of the sixth sending rate of the sending end reaches a preset number, and the third available bandwidth of the link is determined as the sixth sending rate:

[0080] Upon receiving a response data packet sent by the receiving end and carrying the third available bandwidth of the link, acquiring a fifth sending rate of the sending end;

[0081] A sixth sending rate of the sending end is calculated according to the fifth sending rate and the third available bandwidth.

[0082] That is, after the reduced second transmission rate or the reduced fourth transmission rate continues for a preset period of time, the rate recovery phase can be entered. In the recovery phase, the steps of obtaining the fifth transmission rate and calculating the sixth transmission rate can be cyclically executed until the calculation times of the sixth transmission rate reach the preset times. When the calculation times of the sixth transmission rate reach the preset times, the third available bandwidth of the link is determined as the sixth transmission rate. In addition, it should be noted that in each cyclic execution of the above steps, the execution time corresponding to different rounds is different, the third available bandwidth carried is the latest available bandwidth of the link, and the fifth transmission rate obtained is the latest current transmission rate of the transmitter. In addition, it should be noted that each time a response data packet carrying the third available bandwidth is received, the sixth transmission rate is calculated once. After each calculation of the sixth transmission rate, the transmitter can send data packets based on the latest calculated sixth transmission rate.

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

[0084] In some embodiments, calculating a sixth sending rate of the transmitting end according to the fifth sending rate and the third available bandwidth includes:

[0085] An average value of the fifth sending rate and the third available bandwidth is determined as a sixth sending rate.

[0086] It should be noted that there are multiple ways to calculate the sixth sending rate of the transmitter based on the fifth sending rate and the third available bandwidth, and there are no specific limitations. For example, in the present embodiment, during the calculation of the sixth sending rate, the average of the fifth sending rate and the third available bandwidth may be used as the sixth sending rate, so that the sending rate can gradually approach the available bandwidth, so that the transmitter can send data packets at a sending rate close to the available bandwidth. In this way, under the condition of congestion control, the occurrence of congestion can be reduced and the data transmission rate can be ensured as much as possible.

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

[0088] Determine the available bandwidth at the sender;

[0089] Sending a first data packet, where the first data packet carries the available bandwidth of the sending end;

[0090] A first response data packet sent by a receiving end is received, the first response data packet carries an available bandwidth indication field, the available bandwidth indication field is used to indicate a 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 a sending end and an intermediate node located between the sending end and the receiving end.

[0091] It can be understood that the first response data is a response data packet corresponding to the first data packet. In the process of congestion control, the available bandwidth of the link can be measured. In the process of measuring the available bandwidth of the link, the sender (sending node) can determine its own available bandwidth, and then send the first data packet carrying the available bandwidth of the sender to the receiving end. There may be an intermediate node (for example, a switch, a router, etc.) between the sender and the receiving end, that is, the first data packet is transmitted to the receiving end through the intermediate node, and after the intermediate node receives the first data packet, it can determine the available bandwidth of the intermediate node itself, and compare the available bandwidth of the intermediate node with the available bandwidth in the first data packet. If the available bandwidth of the intermediate node is less than the available bandwidth in the first data packet, the intermediate node updates the available bandwidth in the first data packet, updates the available bandwidth in the first data packet to the available bandwidth of the intermediate node, that is, updates to the smaller of the available bandwidth of the intermediate node and the available bandwidth in the first data packet, and transmits the first data packet with the updated available bandwidth to the receiving end. After receiving, the receiving end can return the first response data to the sender, which can carry the available bandwidth indication field indicating the first available bandwidth of the link, and the first available bandwidth is the minimum available bandwidth among the available bandwidths of multiple nodes included in the link. In addition, it should be noted that if the available bandwidth of the intermediate node is greater than or equal to the available bandwidth of the sending end, the available bandwidth in the first data packet is not updated.

[0092] In addition, it should be noted that, when the number of intermediate nodes is at least two, the sender transmits the first data packet to the receiver through at least two intermediate nodes in sequence. The intermediate node closest to the sender among the at least two intermediate nodes can be called the first intermediate node, and the intermediate node with the second closest distance can be called the second intermediate node, and so on. The first intermediate node closest to the sender among the at least two intermediate nodes receives the first data packet sent by the sender. The first intermediate node compares the available bandwidth of the first intermediate node 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 sender, the first intermediate node updates the available bandwidth in the first data packet, updates the available bandwidth in the first data packet to the available bandwidth of the first intermediate node, that is, updates to the smaller of the available bandwidth of the first intermediate node and the available bandwidth of the sender, and 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 sender, 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 the available bandwidth of the second intermediate node with the available bandwidth in the first data packet received by the second intermediate node; if the available bandwidth of the second intermediate node is less than the available bandwidth in the first data packet received by the second intermediate node, the second intermediate node updates the available bandwidth in the first data packet, that is, updates the available bandwidth in the received first data packet to the available bandwidth of the second intermediate node, that is, updates to the smaller of the available bandwidth of the second intermediate node 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 after the second intermediate node updates the available bandwidth to the next intermediate node, that is, the third intermediate node; if the available bandwidth of the second intermediate node is greater than or equal to the available bandwidth in the first data packet received by the second intermediate node, the available bandwidth in the first data packet received by the second intermediate node is not updated; if there is a next intermediate node after the second intermediate node, the second intermediate node transmits the first data packet 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 first data packet received by the third intermediate node is received from the second intermediate node, while the first data packet received by the second intermediate node is received from the first intermediate node, which will not be described in detail. The process is repeated until the last intermediate node (i.e., the intermediate node closest to the receiving end) among at least two nodes receives the first data packet sent by its previous intermediate node, and compares the available bandwidth therein 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 receives, the available bandwidth in the first data packet it receives is updated to the available bandwidth of the last intermediate node, and the last intermediate node transmits the updated first data packet to the receiving end (i.e., the target node). The first data packet updated by the last intermediate node includes the available bandwidth of the sending end and the minimum available bandwidth in the available bandwidth of the intermediate node; if the available bandwidth of the last intermediate node is greater than or equal to the available bandwidth in the first data packet it receives, the available bandwidth in the first data packet it receives is not updated, and the last intermediate node transmits the first data packet it receives to the receiving end. The available bandwidth in the first data packet sent by the last intermediate node to the receiving end is the minimum available bandwidth between the available bandwidth of the sending end and the available bandwidth of the intermediate nodes located between the sending end and the receiving end.

[0095] After receiving the first data packet sent by the last intermediate node, the receiving end can parse the available bandwidth in the first data packet it receives, and the available bandwidth obtained by parsing can be used to obtain the first available bandwidth of the link, that is, the minimum bandwidth among the available bandwidths of the sending end and the intermediate node. Then, the first response data packet is returned to the sending end, which can carry 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 sender. After receiving the first response data packet, the sender can parse the first available bandwidth of the link therein, and determine the second sending rate of the sender through the first available bandwidth, thereby realizing the control of the sending rate of the sender. Since the first available bandwidth of the link is the minimum available bandwidth among the available bandwidths of multiple nodes included in the link, the sending rate of the sender can be controlled through the first available bandwidth, thereby reducing the occurrence of link congestion.

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

[0098] Among them, the flow size of the export end of the sending end can represent the bandwidth occupied by the export end of the sending end. The bandwidth of the export end of the sending end minus the first reserved bandwidth and then minus the flow size of the export end of the sending end can obtain the available bandwidth of the sending end. In addition, it should be noted that the first reserved ratio can be set in advance according to actual needs or historical experience, etc., without specific limitation. For example, by way of example, the first reserved ratio can be 5%. In this embodiment, in the process of determining the available bandwidth of the node, a certain bandwidth can be reserved to deal with situations such as rat flow and burst flow.

[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 size of the node's egress port, the target bandwidth of the node is the bandwidth of the node's egress port minus the reserved bandwidth of the node, and the reserved bandwidth of the node is the product of the preset reserved ratio of the node and the bandwidth of the node's egress port. It should be noted that the preset reserved ratios of 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, the reserved bandwidth of the sending end is the first reserved bandwidth, and the preset reserved ratio of the sending end is the first preset reserved ratio.

[0101] See also Figure 2 , Figure 2 is a flow chart of a congestion control method provided in an embodiment of the present application, which is applied to a 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 a 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 between the sending end and the receiving end.

[0103] Exemplarily, sending a first response data packet to the sending end may include: sending a first response data packet to the sending end when receiving a first data packet forwarded by an intermediate node or receiving a data packet after the intermediate node updates the available bandwidth in the first data packet. The first data packet is sent by the sending end, which may carry the available bandwidth of the sending end. It should be noted that the intermediate node updates the available bandwidth in the first data packet, that is, updates 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-mentioned 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 first data packet it receives, and can obtain the available bandwidth of the link, and sends the 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, and forwards the first data packet to the sender. The available bandwidth in the first data packet is the available bandwidth of the link, that is, the available bandwidth of the sender. When the receiving end receives the first data packet forwarded by the intermediate node, the receiving end 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 sending end is the first target bandwidth minus the traffic size of the sending end's egress end, the first target bandwidth is the bandwidth of the sending end's egress end minus the first reserved bandwidth, and the first reserved bandwidth is the product of the first preset reserved ratio of the sending end and the bandwidth of the sending end's egress end.

[0105] In some embodiments, before sending the first response data packet to the sending end, the method further includes: determining the available bandwidth of the receiving end.

[0106] Exemplarily, the available bandwidth of the receiving end is the second target bandwidth minus the traffic size of the outlet of the receiving end, the second target bandwidth is the bandwidth of the outlet of the receiving end minus the second reserved bandwidth, and the second reserved bandwidth is the product of the second preset reserved ratio of the receiving end and the bandwidth of the outlet of the receiving end.

[0107] In addition, it should be noted that the second reserved ratio can be set in advance according to actual needs or historical experience, etc., without specific limitation. The preset reserved ratios of different nodes may be the same or different. For example, illustratively, the second reserved ratio may be the same as the first reserved ratio, for example, both may be 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 size of the node's egress port, the target bandwidth of the node is the bandwidth of the node's egress port minus the reserved bandwidth of the node, and the reserved bandwidth of the node is the product of the preset reserved ratio of the node and the bandwidth of the node's egress port. It should be noted that the preset reserved ratios of 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, the reserved bandwidth of the receiving end is the second reserved bandwidth, and the preset reserved ratio of the receiving end is the second preset reserved ratio.

[0110] The process of the above method is described in detail below with reference to some specific embodiments.

[0111] Introduction of related technologies:

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

[0113] The BBR (Bottleneck Bandwidth and Round-trip propagation time) congestion control algorithm mainly detects the bottleneck bandwidth (bandwidth and delay) of the link periodically and adjusts the size of the congestion window based on this information to achieve a higher bandwidth utilization and lower transmission delay. Figure 3As shown, BBR mainly consists of four stages: Startup, Drain, Probe Bandwidth, and Probe RTT. The Startup stage is similar to the slow start process of CUBIC. After a round-trip delay RTT, the congestion window size increases exponentially until the instant bandwidth is less than 1.25 times the current bottleneck bandwidth for three consecutive detections, and then it enters the Drain state. The current Drain sending rate is 0.35 times the detected bottleneck bandwidth, and the backlog of data packets on the link is drained. BBR is in the ProbeBW (bandwidth detection) state most of the time. The ProbeBW state cycles with a period of 8 RTTs, including 6 stable periods, 1 detection period, and 1 draining period. The packet sending rate in the stable period is equal to the detected bottleneck bandwidth; the packet sending rate in the detection period is equal to BltBW (bottleneck bandwidth)*1.25, increasing the sending rate to detect whether the link has more available bandwidth; the packet sending rate in the draining period is equal to BltBW*0.75, draining the backlog of data packets caused by the detection period. In addition, Figure 3 ProbeRTT is the delay detection phase.

[0114] HPCC (High-Speed ​​TCP) is a congestion control algorithm for high-speed networks. It uses in-band measurement technology to obtain the network congestion status, control the amount of data packets in flight in the network, achieve rapid convergence of the sending rate, reduce transmission delay, make full use of network bandwidth and avoid network congestion. HPCC is a sender-driven congestion control framework. Figure 4 As shown in the figure, packet-by-packet confirmation is adopted, that is, each data packet sent by the sender (sender / transmitter) will be confirmed by the receiver (receiver / receiving end). In the process of data packets propagating from the sender to the receiver, each switch on the path will use the INT (In-band Network Telemetry) function of its switching ASIC (application-specific integrated circuit) to insert some metadata to report the current load of the data packet outbound port, including timestamp, queue length, transmission bytes, and link bandwidth capacity. When the receiver receives the data packet, it sends all the metadata recorded by the switch to the sender through ACK. The sender then decides how to adjust its traffic based on the ACK with network load information.

[0115] However, packet loss-based congestion control algorithms, such as CUBIC and new RENO, will continuously increase the congestion window size and inject traffic into the network when there is no packet loss in the network, which will lead to problems such as bufferbloat and low overall network bandwidth utilization. The BBR congestion control algorithm detects the available bandwidth of the network by periodically increasing the sending rate (probe cycle) and reducing the sending rate (drain cycle). Increasing the sending rate during the probe cycle may cause buffer bloat and network congestion; and a Probe Bandwidth cycle requires 8 cycles. When there are sudden changes in network paths, bandwidth, etc., the convergence rate is slow and cannot adapt well to complex network environments. HPCC collects richer congestion signals in the network by utilizing in-band telemetry technology, and can make more accurate decisions in controlling network congestion and fast convergence. However, HPCC uses an additional mode of in-band telemetry. In the additional mode, when the data packet traverses the network, it accumulates data from each switch, thereby increasing the size of the data packet. This increase in data packet size may cause some problems, such as exceeding the maximum transmission unit (MTU) size, which makes it unsuitable for use on the Internet. Another thing to note is that each sender needs to repeat the calculation to obtain the bottleneck information, even if they share the same path.

[0116] The embodiment of the present application provides a congestion control method, in which the sender (transmitting end) detects the available bandwidth of the link of the receiving end (receiving end) while sending a data packet, and the intermediate node (network node such as a router and a switch) in the link compares the available bandwidth of the node's egress port with the available bandwidth carried in the data packet. If it 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. After receiving the data packet, the receiving end parses out the available bandwidth of the link and assembles it into a response message and returns it to the sender. The sender adjusts the sending rate of the data packet according to the available bandwidth in the received ACK, including slow start, stable sending and fast recovery stages. The method of this embodiment can quickly and accurately obtain the available bandwidth of the link, and adjust the sending rate of the data packet according to the available bandwidth, which can achieve rapid convergence of the sending rate, reduce transmission delay, make full use of network bandwidth and avoid network congestion.

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

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

[0119] (1) When the data packet transmission starts, the congestion window is initialized to 1 maximum segment size (MSS), and the sender starts sending data according to the congestion window size, or sends data packets at a sending rate of 1 MSS / RTT;

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

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

[0122] (4) Exponentially increase the current sending rate (for example, current sending rate * 2):

[0123] In the slow start process in TCP, the sender takes the minimum value of the congestion window and the announcement window as the upper limit of sending. The congestion window is the flow control used by the sender, and the announcement window is the flow control used by the receiver. The sender sends a data packet at the beginning and then waits for ACK. When the ACK packet is received, the congestion window increases from 1 to 2, which means that 2 data packets can be sent. When these 2 ACK packets are received, the congestion window increases to 4, which means that 4 data packets can be sent. When these 4 ACK packets are received, the congestion window increases to 8:

[0124] At the beginning, 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 sending rate calculated in step (4) with the available bandwidth of the link. If the next sending rate is less than the available bandwidth of the link, output the next sending rate and return to continue execution. Otherwise, execute step (6) and output the next sending rate equal to the available bandwidth of the link. The sender enters the stable sending stage.

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

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

[0131] (1) receiving 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 parsing the available bandwidth of the current link;

[0132] (2) Compare the current sending rate with the parsed available bandwidth. When the absolute difference is within a certain range (for example, less than a preset rate, which can be preset without specific limitation, and can be set to 0.5*current sending rate, etc.), a linear increase or decrease method can be used for adjustment. For example, if the current sending rate is greater than the available bandwidth, a linear decrease can be used; if the current sending rate is less than the available bandwidth, a linear increase can be used. When the absolute difference exceeds a certain range (for example, greater than the preset rate), an exponential increase or decrease can be used. For example, if the current sending rate is greater than the available bandwidth, an exponential decrease can be used; if the current sending rate is less than the available bandwidth, an exponential increase can be used.

[0133] 3. When packet loss occurs on the link, the sending rate or congestion window size can be reduced according to the packet loss rate and last for a period of time. For example, when the packet loss rate exceeds the preset packet loss rate threshold (for example, 2%), the current sending rate is reduced by 0.5 times and lasts for 1 RTT, and then the fast recovery phase is entered; or the network supports the ECN flag, and the ECN function is enabled in the sender and the network, then the sending rate is reduced or the congestion window size is reduced according to the received CNP message, for example, the current sending rate is reduced by 0.5 times and lasts for 1 RTT, and then the fast recovery phase is entered;

[0134] Fast recovery phase: Calculate the next sending rate according to the following formula:

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

[0136] R next Indicates the next sending rate, R curr Indicates the current sending rate, R target Indicates the target sending rate, that is, the measured available bandwidth of the link;

[0137] In the recovery phase, the sending rate recovery calculation may be performed cyclically for a preset number of times, that is, the next sending rate is calculated according to the formula for a preset number of times (eg, 5 times), and then the available bandwidth of the link is used as the next sending rate.

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

[0139] 1. The sending node (i.e., the sending end) needs to obtain the available bandwidth of the node's outbound port, assemble a link available bandwidth detection packet (detection message format) with an AECN message header, and then send an available bandwidth detection packet (available bandwidth detection data packet) to the destination node (receiving end), which carries the available bandwidth of the sending node;

[0140] 2. The intermediate network device (intermediate node) identifies the available bandwidth detection action according to the AECN message header, compares the available bandwidth of the node's egress port (exit port) with the available bandwidth in the available bandwidth detection packet, and if the available bandwidth of the node is smaller than the available bandwidth in the available bandwidth detection packet, updates the available bandwidth in the available bandwidth detection packet to the available bandwidth of the node and forwards the updated available bandwidth detection packet to the next node, otherwise directly forwards the available bandwidth detection packet to the next node, and each intermediate network device performs similar operations until the last intermediate network device forwards the available bandwidth detection packet or the updated available bandwidth detection packet to the destination node;

[0141] The calculation of the available bandwidth of a node can refer to the following method:

[0142] ABW = BTR*B;

[0143] B is the bandwidth of the outbound interface of the node, T is the traffic volume of the outbound interface, and R is the reserved bandwidth ratio. For example, 5% is reserved to deal with rat flow and burst flow.

[0144] 3. After receiving the available bandwidth detection 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 for subsequent sending rate control to reduce congestion.

[0146] For example, Figure 7As shown, the intermediate nodes between the sender (Sender) and the receiver include Router 1 and Router 2 (Router 2), the link between the sender and Router 1 is Link 1 (Link-1), the link between Router 1 and Router 2 is Link 2 (Link-2), and the link between Router 2 and the receiver is Link 3 (Link-3). The sender sends a data packet (carrying the available bandwidth of the sender) and can use the AECN command (AECN Command) and the initial congestion information (Congestion Info) to mark the data packet. The data packet reaches Router1 through Link-1. Router1 compares the available bandwidth of Router1 with the available bandwidth in the data packet. If the available bandwidth of Router1 is less than the available bandwidth in the data packet, the available bandwidth in the data packet is updated to the available bandwidth of Router1 and then forwarded to Router2 through Link-2. After Router2 receives the data packet forwarded by Router1, Router2 compares the available bandwidth of Router2 with the available bandwidth in the received data packet (which is the available bandwidth of Router1 at this time). If the available bandwidth of Router2 is less than the available bandwidth in the data packet, that is, if the available bandwidth of Router2 is less than the available bandwidth of Router1, the available bandwidth in the data packet is updated to the available bandwidth of Router2 and then forwarded to the receiving end through Link-3. The receiving end parses the available bandwidth in the data packet sent by Router2 (which is the available bandwidth of Router2 at this time) to obtain the available bandwidth of the link between the sending end and the receiving end, and then sends a response data packet to the sending end, which carries the available bandwidth of the link.

[0147] In the embodiment of the present application, the detection message format is: the AECN header is encapsulated in the IPv6 extension header, such as SRH (segment routing header), hop-by-hop option header, etc. The AECN header structure is as follows Figure 8 As shown,

[0148] Flags: 8-bit field. Bit 7 of the flag indicates that the congestion information is customized and is only used in limited areas, such as data center networks. If bit 7 is 0, the congestion information type is a bitmap;

[0149] Congestion information type: specifies the 24-bit mapping of the current congestion information data. As shown in Table 1, the supported congestion information data are listed. It should be noted that multiple congestion information data may coexist in one data packet;

[0150] Table 1

[0151]

[0152] Congestion information data: A variable length field containing congestion information data. The router must update this field based on the local load status.

[0153] Flag: 8-bit field, the 5th bit can be defined to identify the measured available bandwidth, and the length of the available bandwidth is 8 bytes. The operation Min function of the intermediate node compares the available bandwidth of the current node with the available bandwidth in the data packet, and takes the smaller value to replace the available bandwidth in the data packet.

[0154] It should also be noted that: to ensure fairness in the allocation of available bandwidth, a hop-by-hop bandwidth allocation mechanism can be used. Intermediate nodes can allocate bandwidth to each flow fairly or according to priority, and can reserve part of the bandwidth to ensure the entry of rat flows or later flows.

[0155] Through the congestion control scheme of the present application, the congestion control effect can be improved, and a delay-sensitive, throughput-sensitive, and traditional traffic optimization forwarding solution is provided. Compared with the prior art, the present proposal adds a throughput-sensitive queue, which can meet the different requirements of the buffer queue and ECN threshold value in scenarios such as low-latency mouse flow and high-throughput elephant flow. In addition, compared with the L4S (Low Latency, Low Loss, and Scalable Throughput) dual-queue technology in the prior art, which only provides isolation of DCTCP (Data Center TCP, a TCP for a data center network) and traditional TCP traffic based on CUBIC, it cannot solve the scenario where multiple data flows with different congestion controls coexist, such as traffic using CUBIC, BBR, and DCTCP with different congestion controls. The proposal of the embodiment of the present application can solve the friendly coexistence of three different congestion algorithms and has a wider applicability.

[0156] like Fig. 9 As shown, Fig. 9 is a structural diagram of a congestion control device provided in an embodiment of the present application, which can be applied to a sending end, such as Fig. 9 As shown, the congestion control device 900 includes:

[0157] A first acquisition module 901 is used to acquire a first available bandwidth of a link and a first transmission rate of a transmitting end, where the link is a link between a transmitting end and a receiving end;

[0158] The first determining module 902 is used to determine a second sending rate of the transmitting end according to the first available bandwidth and the first sending rate, wherein the time corresponding to the second sending rate is later than the time corresponding to the first sending rate.

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

[0160] A first determining unit, configured to determine the first available bandwidth as a second sending rate of the sending end when the first sending rate is greater than or equal to the first available bandwidth;

[0161] The second determination unit is used to calculate a third sending rate based on the first sending rate when the first sending rate is less than the first available bandwidth, and the third sending rate is greater than the first sending rate; and determine the second sending rate of the sending end based on the first available bandwidth and the third sending rate.

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

[0163] A first determining subunit, configured to determine the first available bandwidth as a second sending rate when the third sending rate is greater than or equal to the first available bandwidth;

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

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

[0166] The second determination module is used to determine the fourth sending rate of the sending end according to the second sending rate and the second available bandwidth when receiving a response data packet sent by the receiving end and carrying the second available bandwidth of the link, and the time corresponding to the fourth sending rate is after the time corresponding to the second sending rate.

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

[0168] a third determining unit, configured to, when an absolute difference between the second transmission rate and the second available bandwidth is greater than a preset rate, obtain a fourth transmission rate according to the first rate adjustment mode and the second transmission rate if the second transmission rate is greater than the second available bandwidth, the fourth transmission rate being less than the second transmission rate; and, if the second transmission rate is less than the second available bandwidth, obtain a fourth transmission rate according to the second rate adjustment mode and the second transmission rate, the fourth transmission rate being greater than the second transmission rate;

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

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

[0171] The first processing module is configured to detect a packet loss rate of the sending end when a response data packet carrying the second available bandwidth of the link is received from the receiving end; when the packet loss rate is greater than a preset packet loss rate threshold, reduce the second sending rate or the fourth sending rate, and send data packets at the reduced fourth sending rate or the reduced fourth sending rate within a preset time period;

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

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

[0174] The third determining module is configured to cyclically execute the following steps until the number of calculations of the sixth sending rate of the transmitting end reaches a preset number, and determine the third available bandwidth of the link as the sixth sending rate:

[0175] Upon receiving a response data packet sent by the receiving end and carrying the third available bandwidth of the link, acquiring a fifth sending rate of the sending end;

[0176] A sixth sending rate of the sending end is calculated according to the fifth sending rate and the third available bandwidth.

[0177] In some embodiments, calculating a sixth sending rate of the transmitting end according to the fifth sending rate and the third available bandwidth includes:

[0178] An average value of the fifth sending rate and the third available bandwidth is determined as a sixth sending rate.

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

[0180] A fifth determining unit, configured to determine an available bandwidth of a transmitting end;

[0181] A first sending unit, configured to send a first data packet, where the first data packet carries an available bandwidth of a sending end;

[0182] A first receiving unit is used to receive a first response data packet sent by a receiving end, the first response data packet carries an available bandwidth indication field, the available bandwidth indication field is used to indicate a 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 a sending end and an intermediate node located between the sending end and the receiving end.

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

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

[0185] See also Fig.10 , Fig.10 is a structural diagram of a congestion control device provided in an embodiment of the present application, which can be applied to a receiving end, such as Fig.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 a 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, and the multiple nodes include the sending end and an intermediate node located between the sending end and the receiving end.

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

[0188] The congestion control device 1000 provided in this embodiment is capable of implementing each process of each embodiment of the above-mentioned congestion control method applied to the receiving end. The technical features correspond one to one and can achieve the same technical effect. To avoid repetition, they will not be described here.

[0189] An embodiment of the present 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, the various processes of the above-mentioned congestion control method embodiment applied to the sending end are implemented, and the same technical effect can be achieved. To avoid repetition, it will not be repeated here.

[0190] For details, see Fig.11 An embodiment of the present application further provides an electronic device, which may be a transmitting end, and 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] Acquire a first available bandwidth of a link and a first sending rate of a sending end, where the link is a link between a sending end and a receiving end;

[0193] A second sending rate of the sending end is determined according to the first available bandwidth and the first sending rate, and the time corresponding to the second sending rate is later than the time corresponding to the first sending rate.

[0194] In some embodiments, the processor 1105 is specifically configured to:

[0195] When the first sending rate is greater than or equal to the first available bandwidth, determining the first available bandwidth as the second sending rate of the sending end;

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

[0197] In some embodiments, the processor 1105 is specifically configured to:

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

[0199] When 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] When receiving a response data packet carrying the second available bandwidth of the link from the receiving end, the fourth sending rate of the sending end is determined according to the second sending rate and the second available bandwidth, and the time corresponding to the fourth sending rate is after the time corresponding to the second sending rate.

[0202] In some embodiments, the processor 1105 is specifically configured to:

[0203] In the case where 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, a 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, a 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;

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

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

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

[0207] When receiving a congestion notification message sent by the network device, the second sending rate or the fourth sending rate is reduced, and data packets are sent at the reduced second sending rate or the reduced fourth sending rate within a preset time period.

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

[0209] The following steps are executed in a loop until the number of calculations of the sixth sending rate of the sending end reaches a preset number, and the third available bandwidth of the link is determined as the sixth sending rate:

[0210] Upon receiving a response data packet sent by the receiving end and carrying the third available bandwidth of the link, acquiring a fifth sending rate of the sending end;

[0211] A sixth sending rate of the sending end is calculated according to the fifth sending rate and the third available bandwidth.

[0212] In some embodiments, calculating a sixth sending rate of the transmitting end according to the fifth sending rate and the third available bandwidth includes:

[0213] An average value of the fifth sending rate and the third available bandwidth is determined as a sixth sending rate.

[0214] In some embodiments, the processor 1105 is specifically configured to:

[0215] Determine the available bandwidth at the sender;

[0216] Sending a first data packet, where the first data packet carries the available bandwidth of the sending end;

[0217] A first response data packet sent by a receiving end is received, the first response data packet carries an available bandwidth indication field, the available bandwidth indication field is used to indicate a 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 a sending end and an intermediate node located between the sending end and the receiving end.

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

[0219] exist Fig.11 In the embodiment, the bus architecture (represented by bus 1101) may include any number of interconnected buses and bridges, and bus 1101 links 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 peripherals, voltage regulators, and power management circuits, which are well known in the art and are therefore not further described herein. Bus interface 1104 provides an interface between bus 1101 and transceiver 1102. Transceiver 1102 may be one element or multiple elements, such as multiple receivers and transmitters, providing a unit for communicating with various other devices on a transmission medium. Data processed by processor 1105 is transmitted on a wireless medium via antenna 1103, and further, antenna 1103 also receives data and transmits the data to processor 1105.

[0220] The processor 1105 is responsible for managing the bus 1101 and general processing, and can also provide various functions, including timing, peripheral interfaces, voltage regulation, power management and other control functions. The memory 1106 can be used to store data used by the processor 1105 when performing operations.

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

[0222] The processing of the electronic device provided in this embodiment can implement each process of each embodiment of the above-mentioned congestion control method applied to the sending end. The technical features correspond one to one and can achieve the same technical effect. To avoid repetition, they will not be repeated here.

[0223] The embodiment of the present application also provides a computer-readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, each process of the congestion control method embodiment applied to the sender is implemented, and the same technical effect can be achieved. To avoid repetition, it is not repeated here. Among them, the computer-readable storage medium is, for example, a read-only memory (ROM), a random access memory (RAM), a disk or an optical disk, etc.

[0224] An embodiment of the present 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, the various processes of the above-mentioned congestion control method embodiment applied to the receiving end are implemented, and the same technical effect can be achieved. To avoid repetition, it will not be repeated here.

[0225] For details, see Fig.12 As shown, an embodiment of the present application further provides an electronic device, which may be a receiving end, and 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 a first available bandwidth of a 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.

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

[0229] exist Fig.12In the embodiment, the bus architecture (represented by bus 1201) may include any number of interconnected buses and bridges, and bus 1201 links 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 peripherals, voltage regulators, and power management circuits, which are well known in the art and are therefore not further described herein. Bus interface 1204 provides an interface between bus 1201 and transceiver 1202. Transceiver 1202 may be one element or multiple elements, such as multiple receivers and transmitters, providing a unit for communicating with various other devices on a transmission medium. Data processed by processor 1205 is transmitted on a wireless medium via antenna 1203, and further, antenna 1203 also receives data and transmits the data to processor 1205.

[0230] The processor 1205 is responsible for managing the bus 1201 and general processing, and can also provide various functions, including timing, peripheral interfaces, voltage regulation, power management and other control functions. The memory 1206 can be used to store data used by the processor 1205 when performing operations.

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

[0232] The processing of the electronic device provided in this embodiment can implement each process of each embodiment of the above-mentioned congestion control method applied to the receiving end. The technical features correspond one to one and can achieve the same technical effect. To avoid repetition, they will not be repeated here.

[0233] The embodiment of the present application also provides a computer-readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, each process of the above-mentioned congestion control method embodiment applied to the receiving end is implemented, and the same technical effect can be achieved. To avoid repetition, it is not repeated here. Among them, the computer-readable storage medium, such as ROM, RAM, disk or optical disk, etc.

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

[0235] It should be noted that, in this article, the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "comprises a ..." does not exclude the existence of other identical elements in the process, method, article or device including the element.

[0236] Through the description of the above implementation methods, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of software plus a necessary general hardware platform, and of course by hardware, but in many cases the former is a better implementation method. Based on such an understanding, the technical solution of the present application, or the part that contributes to the prior art, can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, a magnetic disk, or an optical disk), and includes a number of instructions for a terminal (which can be a mobile phone, a computer, a server, an air conditioner, or a first network device, etc.) to execute the methods of each embodiment of the present application.

[0237] The embodiments of the present application are described above in conjunction with the accompanying drawings, but the present application is not limited to the above-mentioned specific implementation methods. The above-mentioned specific implementation methods are merely illustrative and not restrictive. Under the guidance of the present application, ordinary technicians in this field can also make many forms without departing from the purpose of the present application and the scope of protection of the claims, all of which are within the protection of the present application.

Claims

1. A congestion control method, characterized in that: Applied to the sending end, the method includes: Acquire a first available bandwidth of a link and a first sending rate of the sending end, wherein the link is a link between the sending end and the receiving end; A second sending rate of the transmitter is determined according to the first available bandwidth and the first sending rate, wherein a time corresponding to the second sending rate is later than a time corresponding to the first sending rate.

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

3. The method according to claim 2, characterized in that The determining, according to the first available bandwidth and the third sending rate, the second sending rate of the sending end includes at least one of the following: When the third transmission rate is greater than or equal to the first available bandwidth, determining the first available bandwidth as the second transmission rate; In a case where the third sending rate is less than the first available bandwidth, the third sending rate is determined as the second sending rate.

4. The method according to any one of claims 1 to 3, characterized in that After determining the second sending rate of the transmitting end according to the first available bandwidth and the first sending rate, the method further includes: Upon receiving a response data packet sent by the receiving end and carrying the second available bandwidth of the link, a fourth sending rate of the sending end is determined based on the second sending rate and the second available bandwidth, and the time corresponding to the fourth sending rate is after the time corresponding to the second sending rate.

5. The method according to claim 4, characterized in that The determining, according to the second sending rate and the second available bandwidth, a fourth sending rate of the sending end includes at least one of the following: In the case where the absolute difference between the second transmission rate and the second available bandwidth is greater than a preset rate, if the second transmission rate is greater than the second available bandwidth, the fourth transmission rate is obtained according to the first rate adjustment mode 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 mode and the second transmission rate, and the fourth transmission rate is greater than the second transmission rate; When the absolute difference between the second sending rate and the second available bandwidth is less than or equal to the preset rate, if the second sending rate is greater than the second available bandwidth, the fourth sending rate is obtained according to the third rate adjustment method and the second sending rate, and the fourth sending rate is less than the second sending rate; if the second sending rate is less than the second available bandwidth, the fourth sending rate is obtained according to the fourth rate adjustment method and the second sending rate, and the fourth sending rate is greater than the second sending rate.

6. The method according to claim 5, characterized in that The method further comprises at least one of the following: Upon receiving a response data packet sent by the receiving end and carrying the second available bandwidth of the link, detecting a packet loss rate of the sending end; When the packet loss rate is greater than a preset packet loss rate threshold, reducing the second sending rate or the fourth sending rate, and sending data packets at the reduced fourth sending rate or the reduced fourth sending rate within a preset time period; When receiving a congestion notification message sent by a network device, the second sending rate or the fourth sending rate is reduced, and data packets are sent at the reduced second sending rate or the reduced fourth sending rate within a preset time period.

7. The method according to claim 6, characterized in that After sending the data packet at the reduced second sending rate or the reduced fourth sending rate within the preset time period, the method further includes: The following steps are executed in a loop until the number of calculations of the sixth sending rate of the sending end reaches a preset number, and the third available bandwidth of the link is determined as the sixth sending rate: Upon receiving a response data packet sent by the receiving end and carrying the third available bandwidth of the link, acquiring a fifth sending rate of the sending end; A sixth sending rate of the sending end is calculated according to the fifth sending rate and the third available bandwidth.

8. The method according to claim 7, characterized in that The calculating, according to the fifth sending rate and the third available bandwidth, a sixth sending rate of the sending end includes: An average value of the fifth sending rate and the third available bandwidth is determined as the sixth sending rate.

9. The method according to claim 1, characterized in that: The obtaining of the first available bandwidth of the link comprises: Determining the available bandwidth of the transmitting end; Sending a first data packet, where the first data packet carries the available bandwidth of the sending end; Receive 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 a 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.

10. The method according to claim 9, characterized in that The available bandwidth of the sending end is the first target bandwidth minus the traffic size of the egress end of the sending end, the first target bandwidth is the bandwidth of the egress end of the sending end minus the first reserved bandwidth, and the first reserved bandwidth is the product of the first preset reserved ratio of the sending end and the bandwidth of the egress end of the sending end.

11. A congestion control method, characterized in that: Applied to the receiving end, the method includes: A first response data packet is sent to a transmitting end, wherein the first response data packet carries an available bandwidth indication field, wherein the available bandwidth indication field is used to indicate a first available bandwidth of a link between the transmitting end and the receiving end, wherein the first available bandwidth is a minimum available bandwidth among available bandwidths of multiple nodes included in the link, wherein the multiple nodes include the transmitting end and an intermediate node located between the transmitting end and the receiving end.

12. The method according to claim 11, characterized in that The available bandwidth of the sending end is the first target bandwidth minus the traffic size of the egress end of the sending end, the first target bandwidth is the bandwidth of the egress end of the sending end minus the first reserved bandwidth, and the first reserved bandwidth is the product of the first preset reserved ratio of the sending end and the bandwidth of the egress end of the sending end.

13. A congestion control device, characterized in that: Applied to a transmitting end, the device comprises: A first acquisition module, used to acquire a first available bandwidth of a link and a first transmission rate of the transmitting end, wherein the link is a link between the transmitting end and the receiving end; The first determining module is used to determine a second sending rate of the transmitting end according to the first available bandwidth and the first sending rate, wherein a time corresponding to the second sending rate is later than a time corresponding to the first sending rate.

14. A congestion control device, characterized in that: Applied to a receiving end, the device comprises: A sending module is used to send a first response data packet to a sending end, wherein the first response data packet carries an available bandwidth indication field, and the available bandwidth indication field is used to indicate a first available bandwidth of a link between the sending end and the receiving end, wherein the first available bandwidth is a minimum available bandwidth among available bandwidths of multiple nodes included in the link, and the multiple nodes include the sending end and an intermediate node located between the sending end and the receiving end.

15. An electronic device, characterized in that: Including transceiver and processor, The processor is configured to: Acquire a first available bandwidth of a link and a first sending rate of a sending end, wherein the link is a link between the sending end and the receiving end; A second sending rate of the transmitter is determined according to the first available bandwidth and the first sending rate, wherein a time corresponding to the second sending rate is later than a time corresponding to the first sending rate.

16. An electronic device, characterized in that: Including transceiver and processor, The processor is configured to: A first response data packet is sent to a transmitting end, wherein the first response data packet carries an available bandwidth indication field, wherein the available bandwidth indication field is used to indicate a first available bandwidth of a link between the transmitting end and the receiving end, wherein the first available bandwidth is a minimum available bandwidth among available bandwidths of multiple nodes included in the link, wherein the multiple nodes include the transmitting end and an intermediate node located between the transmitting end and the receiving end.

17. An electronic device, characterized in that: include: 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, the program implements the steps of the method according to any one of claims 1 to 10, or implements the steps of the method according to any one of claims 11 to 12.

18. A computer-readable storage medium having a computer program stored thereon, wherein when the computer program is executed by a processor, the computer program implements the steps of the method described in any one of claims 1 to 10, or implements the steps of the method described in any one of claims 11 to 12.

19. A computer program product, characterized in that The method comprises computer instructions, which, when executed by a processor, implement the steps of the method according to any one of claims 1 to 12.

Citation Information

Patent Citations

  • Sending method of data, sending end and communication system

    CN103067432A

  • Transmission rate control method and device based on cross-data center network communication

    CN114401230A

  • Probe packet sending method and related equipment

    CN114501534A

  • Method, apparatus and system for controlling congestion

    WO2021098368A1

Cited By

  • Network card, network congestion control method and device, electronic equipment and storage medium

    CN120528846A

  • Congestion control method and apparatus, and electronic device and computer-readable storage medium

    WO2026056702A1