Congestion control method and apparatus, and electronic device and computer-readable storage medium
By obtaining the available bandwidth and transmission rate of the link, the second transmission rate of the sending end is determined, which solves the problem of poor congestion control effect caused by increasing the transmission rate when no packet loss occurs in the prior art, and achieves more effective congestion control.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-09-01
- Publication Date
- 2026-03-19
AI Technical Summary
Existing congestion control methods tend to increase the transmission rate or congestion window size when there is no packet loss in the network, resulting in poor congestion control performance.
By obtaining the first available bandwidth of the link and the first transmission rate of the sender, the second transmission rate of the sender is determined. The transmission rate is controlled by taking into account the available bandwidth of the link to avoid increasing traffic when there is no packet loss.
It effectively reduces link congestion, improves congestion control, and avoids injecting traffic into the network by increasing the sending rate when no packet loss occurs.
Smart Images

Figure CN2025118176_19032026_PF_FP_ABST
Abstract
Description
Congestion control method and device, electronic equipment and computer readable storage medium
[0001] Cross-reference to Related Applications
[0002] The present disclosure claims priority from Chinese Patent Application No. 202411261311.3 filed on September 10, 2024 in China, the content of which is incorporated herein by reference in its entirety. TECHNICAL FIELD
[0003] The present disclosure relates to the technical field of communication, and in particular to a congestion control method and device, electronic equipment and computer readable storage medium. BACKGROUND
[0004] With the development of Internet communication technology, the requirement for communication performance is also getting higher and higher, and congestion control is a common way to improve communication performance. The main point of congestion control is how to control the sending rate (i.e. the rate of sending data packets) or the size of the congestion window.
[0005] At present, the commonly used congestion control method is to control congestion based on packet loss. However, when there is no packet loss in the network, this method will continuously increase the sending rate or the size of the congestion window to inject traffic into the network, which can easily lead to poor congestion control effect. SUMMARY
[0006] Embodiments of the present disclosure provide a congestion control method, device and electronic equipment to solve the problem of poor congestion control effect.
[0007] To solve the above technical problems, the present disclosure is implemented as follows:
[0008] In a first aspect, embodiments of the present disclosure provide a congestion control method applied to a sending end, the method comprising:
[0009] obtaining a first available bandwidth of a link and a first sending rate of the sending end, the link being a link between the sending end and a receiving end;
[0010] determining a second sending rate of the sending end according to the first available bandwidth and the first sending rate, the second sending rate corresponding to a time point after a time point corresponding to the first sending rate.
[0011] In a second aspect, embodiments of the present disclosure provide a congestion control method applied to a receiving end, the method comprising:
[0012] The first response data packet is sent to the sending end, and 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 a minimum available bandwidth in available bandwidths of multiple nodes included in the link, and the multiple nodes include the sending end and intermediate nodes between the sending end and the receiving end.
[0013] In a third aspect, an embodiment of the present disclosure provides a congestion control device, applied to a sending end, and the device comprises:
[0014] The first acquisition module is configured to acquire a first available bandwidth of a link and a first sending rate of the sending end, the link being a link between the sending end and a receiving end.
[0015] The first determination module is configured to determine a second sending rate of the sending end according to the first available bandwidth and the first sending rate, the second sending rate corresponding to a time point after a time point corresponding to the first sending rate.
[0016] In a fourth aspect, an embodiment of the present disclosure provides a congestion control device, applied to a receiving end, and the device comprises:
[0017] The sending module is configured to send a first response data packet to a sending end, and the first response data packet carries an available bandwidth indication field, the available bandwidth indication field being used to indicate a first available bandwidth of a link between the sending end and the receiving end, the first available bandwidth being a minimum available bandwidth in available bandwidths of multiple nodes included in the link, and the multiple nodes including the sending end and intermediate nodes between the sending end and the receiving end.
[0018] In a fifth aspect, an embodiment of the present disclosure provides an electronic device, comprising a transceiver and a processor,
[0019] The processor is configured to:
[0020] acquire a first available bandwidth of a link and a first sending rate of the sending end, the link being a link between the sending end and a receiving end;
[0021] determine a second sending rate of the sending end according to the first available bandwidth and the first sending rate, the second sending rate corresponding to a time point after a time point corresponding to the first sending rate.
[0022] In a sixth aspect, an embodiment of the present disclosure provides an electronic device, comprising a transceiver and a processor,
[0023] The processor is configured to:
[0024] sending a first response data packet to the sending end, the first response data packet carrying a available bandwidth indication field, the available bandwidth indication field being used to indicate a first available bandwidth of a link between the sending end and the receiving end, the first available bandwidth being a minimum available bandwidth among available bandwidths of a plurality of nodes included in the link, the plurality of nodes including the sending end and intermediate nodes between the sending end and the receiving end.
[0025] In a seventh aspect, an electronic device is provided, which includes 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 steps of the congestion control method according to the first aspect or the steps of the congestion control method according to the second aspect are implemented.
[0026] In an eighth aspect, a computer-readable storage medium is provided, which stores a computer program. When the computer program is executed by a processor, the steps of the congestion control method according to the first aspect or the steps of the congestion control method according to the second aspect are implemented.
[0027] In a ninth aspect, a computer program product is provided, which includes computer instructions. When the computer instructions are executed by a processor, the steps of the above method are implemented.
[0028] In the embodiment, in the congestion control process, the first available bandwidth and the first sending rate of the sending end are used for congestion control, i.e., the second sending rate of the sending end is determined by using the first available bandwidth and the first sending rate, not only the sending rate of the sending end is 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, the congestion control is implemented, the situation that the sending end continuously increases the sending rate to inject traffic into the network without packet loss is avoided, the link congestion is reduced, and the congestion control effect is improved. BRIEF DESCRIPTION OF DRAWINGS
[0029] In order to more clearly illustrate the technical solutions of the embodiments of the present disclosure, the drawings needed to be used in the description of the embodiments of the present disclosure will be briefly introduced. Obviously, the drawings in the following description are only some embodiments of the present disclosure, and other drawings can be obtained by those skilled in the art without creative labor.
[0030] FIG. 1 is a flowchart of one of the congestion control methods according to the embodiments of the present disclosure;
[0031] FIG. 2 is a flowchart of another of the congestion control methods according to the embodiments of the present disclosure;
[0032] FIG. 3 is a schematic diagram of a BBR congestion control algorithm;
[0033] FIG. 4 is a schematic diagram of a HPCC congestion control algorithm;
[0034] FIG. 5 is a flowchart of a third congestion control method according to an embodiment of the present disclosure;
[0035] FIG. 6 is a schematic diagram of a method for measuring available bandwidth according to an embodiment of the present disclosure;
[0036] FIG. 7 is a schematic diagram of a method for measuring available bandwidth by using Advanced ECN according to an embodiment of the present disclosure;
[0037] FIG. 8 is a schematic diagram of an AECN header according to an embodiment of the present disclosure;
[0038] FIG. 9 is a schematic diagram of a congestion control device according to an embodiment of the present disclosure;
[0039] FIG. 10 is a schematic diagram of a congestion control device according to an embodiment of the present disclosure;
[0040] FIG. 11 is a schematic diagram of an electronic device according to an embodiment of the present disclosure;
[0041] FIG. 12 is a schematic diagram of an electronic device according to an embodiment of the present disclosure. DETAILED DESCRIPTION
[0042] The technical solutions in the embodiments of the present disclosure will be described clearly and completely below with reference to the drawings in the embodiments of the present disclosure. Obviously, the described embodiments are only part of the embodiments of the present disclosure, rather than all the embodiments of the present disclosure. Based on the embodiments in the present disclosure, all other embodiments obtained by those skilled in the art without any creative work fall within the scope of protection of the present disclosure.
[0043] Referring to FIG. 1, FIG. 1 is a flowchart of a congestion control method according to an embodiment of the present disclosure, which can be applied to a sending end. As shown in FIG. 1, the congestion control method provided by the present embodiment includes the following steps:
[0044] Step 101: obtaining a first available bandwidth of a link and a first sending rate of the sending end, the link being a link between the sending end and a receiving end.
[0045] The available bandwidth (ABW) of a link can refer to the bandwidth that is not used / available for use on the link, and can represent the transmission capability available on the link. The first available bandwidth can be understood as the latest available bandwidth of the link. The sending rate of the sending end can be understood as the rate at which the sending end sends data packets, and the first sending rate of the sending end can be the sending rate of the sending end at the current time (i.e., the current system time of the sending end when step 101 is performed), i.e., the current sending rate. For example, if the current system time is the first time, the first sending rate is the sending rate at the first time.
[0046] Step 102: According to the first available bandwidth and the first sending rate, determine the second sending rate of the sending end, and the time corresponding to the second sending rate is after the time corresponding to the first sending rate.
[0047] In this embodiment, the first available bandwidth and the first sending rate of the sending end can be used to determine the second sending rate after the time corresponding to the first sending rate, which can also be understood as the next sending rate. In addition, after determining the second sending rate, the second sending rate can be output for subsequent use. During the subsequent process of sending data packets by the sending end, the data packets can be sent at the second sending rate, and the like. In addition, it should be noted that, for example, after obtaining the first available bandwidth of the link and the first sending rate of the sending end, the sending window size and / or the congestion window size can also be determined according to the first available bandwidth and the first sending rate to achieve congestion control. Subsequently, the data packets can be sent according to the sending window size and / or the congestion window size, and the like, to reduce the occurrence of congestion. That is, it can be understood that, according to the first available bandwidth and the first sending rate, at least one of the second sending rate, the sending window size, and the congestion window size of the sending end can be determined, i.e., at least one of the sending rate, the sending window size, and the congestion window size of the sending end can be controlled to achieve congestion control and reduce the occurrence of congestion.
[0048] In this embodiment, during the process of congestion control, the first available bandwidth and the first sending rate of the sending end can be used for congestion control, i.e., the second sending rate of the sending end can be determined according to the first available bandwidth and the first sending rate. Not only the sending rate of the sending end is 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 to achieve congestion control, which can avoid the situation that the sending end continuously increases the sending rate to inject traffic into the network without packet loss, reduce link congestion, and improve the effect of congestion control.
[0049] In some embodiments, determining the second sending rate of the sending end according to the first available bandwidth and the first sending rate includes at least one of the following:
[0050] In a case where the first sending rate is greater than or equal to the first available bandwidth, the first available bandwidth is determined as the second sending rate of the sending end;
[0051] In a case where the first sending rate is less than the first available bandwidth, a third sending rate greater than the first sending rate is calculated according to the first sending rate, and the second sending rate of the sending end is determined according to the first available bandwidth and the third sending rate.
[0052] In the embodiment, in a case where the first sending rate is greater than or equal to the first available bandwidth, it indicates that the first sending rate exceeds or is equivalent to the available bandwidth of the link, in this case, the first available bandwidth can be directly used as the second sending rate of the sending end, that is, the second sending rate determined at a time after the time corresponding to the first sending rate can be less than or equal to the first sending rate, and it can be ensured that the second sending rate does not exceed the first available bandwidth, so that the sending end can send data packets and the like based on the second sending rate, and the occurrence of congestion is reduced. In a case where the first sending rate is less than the first available bandwidth, it indicates that the first sending rate has not reached the available bandwidth of the link, a third sending rate greater than the first sending rate can be calculated according to the first sending rate, that is, the first sending rate is adjusted to obtain the third sending rate, and then the second sending rate of the sending end is determined according to the first available bandwidth and the third sending rate, so as to control the sending rate of the sending end and reduce the occurrence of congestion. In addition, in order to reduce the occurrence of congestion of the link, the determined second sending rate is less than or equal to the first available bandwidth. In addition, in a case where 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 can also be reduced, and in a case where 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 can also be increased.
[0053] In addition, it should be noted that there are many ways to calculate the third sending rate greater than the first sending rate according to the first sending rate, which are not limited in the embodiments of the present disclosure. For example, in one example, the third sending rate can be M times the first sending rate, M is greater than 1, and the value of M can be set according to requirements or historical experience, which is not limited specifically, for example, M can be 2.
[0054] That is, in the embodiment, the first sending rate can be compared with the first available bandwidth, and the second sending rate is determined in different ways according to different comparison results, so as to improve the flexibility of determining the second sending rate, and at the same time, in the case that the first sending rate is greater than or equal to the first available bandwidth, the first available bandwidth is directly determined as the second sending rate of the sending end, so as to avoid that the second sending rate of the sending end exceeds the first available bandwidth, thereby reducing the occurrence of congestion. In the case that the first sending rate is less than the first available bandwidth, the third sending rate greater than the first sending rate is obtained according to the first sending rate, that is, the sending rate is improved, and then the third sending rate with improved sending rate and the first available bandwidth are used to determine the second sending rate of the sending end, so as to control the sending rate of the sending end and reduce the occurrence of congestion.
[0055] In some embodiments, the second sending rate of the sending end is determined according to the first available bandwidth and the third sending rate, including at least one of the following:
[0056] In the case that the third sending rate is greater than or equal to the first available bandwidth, the first available bandwidth is determined as the second sending rate;
[0057] In the case that the third sending rate is less than the first available bandwidth, the third sending rate is determined as the second sending rate.
[0058] In the embodiment, the third sending rate can be compared with the first available bandwidth, and the second sending rate is determined in different ways according to different comparison results, so as to improve the flexibility of determining the second sending rate, and at the same time, in the case that the third sending rate is greater than or equal to the first available bandwidth, the first available bandwidth is directly determined as the second sending rate of the sending end, so as to avoid that the second sending rate of the sending end exceeds the first available bandwidth, thereby reducing the occurrence of congestion. In the case that the third sending rate is less than the first available bandwidth, the calculated third sending rate can be determined as the second sending rate of the sending end, so as to control the sending rate of the sending end and reduce the occurrence of congestion.
[0059] In addition, in some embodiments, in the case that the third sending rate is less than the first available bandwidth, after the third sending rate is determined as the second sending rate, the steps of acquiring the first available bandwidth of the link and the first sending rate of the sending end, and determining the second sending rate of the sending end according to the first available bandwidth and the first sending rate can be 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. In the case that the second sending rate is the first available bandwidth, a stable sending stage is entered.
[0060] In some embodiments, after the second sending rate of the sending end is determined according to the first available bandwidth and the first sending rate, the method further includes:
[0061] In the case that the response data packet carrying the second available bandwidth of the link is received by the receiving end, a 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.
[0062] It can be understood that the sending end sends a data packet to the receiving end and waits for an acknowledgement (ACK) from the receiving end. After receiving the data packet, the receiving end returns a corresponding response data packet, which can also be referred to as an ACK data packet, to the sending end, indicating that the data packet sent by the sending end has been received without error. That is, the receiving end returns a corresponding response data packet to the sending end for each data packet sent by the sending end, and the sending end receives the corresponding response data packet returned by the receiving end for each data packet sent to the receiving end without packet loss.
[0063] After determining the second sending rate, the sending end can send data packets based on the second sending rate. In the case that the response data packet carrying the second available bandwidth of the link is received by the receiving end, the fourth sending rate of the sending end can be determined according to the second sending rate and the second available bandwidth. In addition, the fourth sending rate can be output for use next time. It should be noted that the available bandwidth of the link can change over time, and the latest available bandwidth of the link can be carried in the response data. The second available bandwidth is the available bandwidth of the link obtained after the first available bandwidth, and the second available bandwidth can be different from or the same as the first available bandwidth (in this case, it can be understood that the available bandwidth of the link has not changed). At the current time, the sending rate of the sending end is the second sending rate, and therefore, the fourth sending rate of the sending end can be determined according to the second sending rate and the second available bandwidth. Then, the sending end can send data packets based on the fourth sending rate, and the like. It should be noted that the current time is constantly updated over time, and the step in the present embodiment is after the determination of the second sending rate, and therefore, the current time in the present embodiment is different from the current time corresponding to the step 101 described above.
[0064] In addition, it should be noted that, for example, after the first available bandwidth is determined as the second sending rate of the sending end, in the case that the response data packet carrying the second available bandwidth of the link sent by the receiving end is received, the fourth sending rate of the sending end is determined according to the second sending rate and the second available bandwidth. It can be understood that after the first available bandwidth is determined as the second sending rate of the sending end, the sending end can subsequently send data packets based on the second sending rate, and the sending end enters a stable sending stage. In the stable sending stage, after the response data packet carrying the second available bandwidth of the current link is received, the next sending rate of the sending end can be adjusted according to the second sending rate and the second available bandwidth, that is, the fourth sending rate of the sending end is determined, and the sending end can subsequently send data packets based on the fourth sending rate.
[0065] In addition, for example, in the case that the response data packet carrying the second available bandwidth of the link sent by the receiving end is received, 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, such as, in the case that 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 be smaller, in the case that 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 be larger, and the like, so as to improve the congestion control effect.
[0066] That is, in the embodiment, in the case that the new available bandwidth is received, the sending rate after the current time (the second sending rate) and the new available bandwidth are used to determine the sending rate after the current time, that is, the fourth sending rate is determined, that is, the adjustment of the sending rate of the sending end is realized, so as to adapt to the available bandwidth of the current link and reduce the link congestion.
[0067] In some embodiments, the fourth sending rate of the sending end is determined according to the second sending rate and the second available bandwidth, including at least one of the following:
[0068] In the case that the absolute difference between the second sending rate and the second available bandwidth is greater than the preset rate, if the second sending rate is greater than the second available bandwidth, the fourth sending rate is obtained according to the first rate adjustment mode 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 second rate adjustment mode and the second sending rate, and the fourth sending rate is greater than the second sending rate;
[0069] In a case that an 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 a third rate adjustment mode 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 a fourth rate adjustment mode and the second sending rate, and the fourth sending rate is greater than the second sending rate.
[0070] It should be noted that the first rate adjustment mode and the third rate adjustment mode are rate decreasing modes, and for example, an adjustment range of the first rate adjustment mode is greater than that of the third rate adjustment mode, for example, the first rate adjustment mode can be but is not limited to an exponential decreasing mode, for example, the fourth sending rate can be 1 / a times of the second sending rate, and a>1. For example, the third rate adjustment mode can be but is not limited to a linear decreasing mode, for example, the fourth sending rate can be the second sending rate minus b, and b>0.
[0071] The second rate adjustment mode and the fourth rate adjustment mode are rate increasing modes, and for example, an adjustment range of the second rate adjustment mode is greater than that of the fourth rate adjustment mode, the second rate adjustment mode can be but is not limited to an exponential increasing mode, for example, the fourth sending rate can be a times of the second sending rate. For example, the fourth rate adjustment mode can be but is not limited to a linear increasing mode, for example, the fourth sending rate can be the second sending rate plus b.
[0072] In this embodiment, in different cases, different rate adjustment modes can be used to obtain the fourth sending rate based on the second sending rate, so as to control the sending rate of the sending end, and improve the rate control effect and the congestion control effect.
[0073] In some embodiments, the method further includes at least one of the following:
[0074] In a case that the response packet carrying the second available bandwidth of the link sent by the receiving end is received, the packet loss rate of the sending end is detected; in a case that the packet loss rate is greater than a preset packet loss rate threshold, the second sending rate or the fourth sending rate is reduced, and the data packet is sent at the reduced fourth sending rate or the reduced fourth sending rate within a preset time length.
[0075] In a case that the congestion notification message sent by the network device is received, the second sending rate or the fourth sending rate is reduced, and the data packet is sent at the reduced second sending rate or the reduced fourth sending rate within a preset time length.
[0076] It should be noted that, since the packet loss rate satisfies the condition of being greater than the preset packet loss rate threshold, the sending end may not have determined the fourth sending rate, and the sending end sends the data packet based on the second sending rate. Thus, in the case of the packet loss rate being greater than the preset packet loss rate threshold, the second sending rate is reduced. In the case of the packet loss rate satisfying the condition of being greater than the preset packet loss rate threshold, the fourth sending rate may have been determined, and the sending end sends the data packet at the fourth sending rate. Thus, in the case of the packet loss rate being greater than the preset packet loss rate threshold, the fourth sending rate is reduced. The preset packet loss rate threshold can be set in advance according to actual needs or historical experience, and the embodiment is not specifically limited, for example, the preset packet loss rate threshold can be set to 2%. In addition, it should be noted that, for example, detecting the packet loss rate of the sending end can be detecting the packet loss rate of the sending end within a predetermined time length before the first time. The predetermined time length can be set in advance according to actual needs or historical experience, and is not specifically limited. The first time can be the time at which the response packet carrying the second available bandwidth of the link sent by the receiving end is received, and the like. In addition, the preset time length can be set in advance according to actual needs or historical experience, and the embodiment is not specifically limited. For example, the preset time length can be the Round-Trip Time (RTT) closest to the second time. The second time can be the time at which the second sending rate or the fourth sending rate is reduced.
[0077] In addition, in the embodiment, in addition to the sending end actively reducing the sending rate by detecting the packet loss rate, the sending end can 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 can send a Congestion Notification Packet (CNP) to the sending end, so that the sending end reduces the second sending rate or the fourth sending rate. The sending end reduces the second sending rate or the fourth sending rate upon receiving the CNP sent by the network device. In addition, for example, in the case of the packet loss rate exceeding the preset packet loss rate threshold, the congestion window size and / or the sending window size of the sending end can also be reduced.
[0078] In one example, reducing the second sending rate can be reducing the second sending rate by c times, and reducing the fourth sending rate can be reducing the fourth sending rate by c times, where c is greater than 0 and less than 1. c can be set in advance according to actual needs or historical experience, and is not specifically limited. For example, c can be 0.5, and the like.
[0079] In the embodiment, the sending end can reduce the sending rate of the sending end when the packet loss rate exceeds the preset packet loss rate threshold, and continuously send data packets at the reduced sending rate for a preset time length. The sending end can also reduce the sending rate of the sending end when the sending end receives the congestion notification message sent by the network device, so as to improve the flexibility of the sending rate control of the sending end.
[0080] In some embodiments, after the data packets are sent at the reduced second sending rate or the reduced fourth sending rate for the preset time length, the method further includes:
[0081] The following steps are cyclically executed until the number of times of calculating the sixth sending rate of the sending end reaches a preset number of times, and the third available bandwidth of the link is determined as the sixth sending rate:
[0082] When the response data packet carrying the third available bandwidth of the link is received, the fifth sending rate of the sending end is obtained.
[0083] The sixth sending rate of the sending end is calculated according to the fifth sending rate and the third available bandwidth.
[0084] That is, after the reduced second sending rate or the reduced fourth sending rate is continuously sent for a preset time length, the rate recovery phase is entered, and the above-mentioned steps of obtaining the fifth sending rate and calculating the sixth sending rate are cyclically executed in the recovery phase until the number of times of calculating the sixth sending rate reaches a preset number of times. In the case where the number of times of calculating the sixth sending rate reaches the preset number of times, the third available bandwidth of the link is determined as the sixth sending rate. In addition, it should be noted that the execution time corresponding to different rounds is different during each cycle of executing the above-mentioned steps, and the third available bandwidth carried is the latest available bandwidth of the link, and the fifth sending rate obtained is the latest current sending rate of the sending end. In addition, it should be noted that the sixth sending rate is calculated once for each response data packet carrying the third available bandwidth, and the sending end can send data packets based on the latest calculated sixth sending rate after each calculation of the sixth sending rate.
[0085] In the embodiment, by cyclically executing the above-mentioned 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. In the process of controlling the sending rate, the latest available bandwidth of the link is considered, so that the occurrence of link congestion can be reduced and the congestion control effect can be improved.
[0086] In some embodiments, the sixth sending rate of the sending end is calculated according to the fifth sending rate and the third available bandwidth, including:
[0087] The average value of the fifth sending rate and the third available bandwidth is determined as the sixth sending rate.
[0088] It should be noted that there are various ways to calculate the sixth sending rate of the sending end according to the fifth sending rate and the third available bandwidth, which are not limited in particular. For example, in the embodiment, the average of the fifth sending rate and the third available bandwidth can be taken as the sixth sending rate in the process of calculating the sixth sending rate, so that the sending rate gradually approaches the available bandwidth, and the sending end can send data packets at a sending rate close to the available bandwidth, thereby ensuring the data transmission rate as much as possible in the case of congestion control and reducing the occurrence of congestion.
[0089] In some embodiments, the first available bandwidth of the link is obtained, including:
[0090] determining the available bandwidth of the sending end;
[0091] sending the first data packet, the first data packet carrying the available bandwidth of the sending end;
[0092] receiving the first response data packet sent by the receiving end, the first response data packet carrying an available bandwidth indication field, the available bandwidth indication field being used to indicate the first available bandwidth of the link, the first available bandwidth being the minimum available bandwidth among the available bandwidths of a plurality of nodes included in the link, the plurality of nodes including the sending end and intermediate nodes located between the sending end and the receiving end.
[0093] It can be understood that the first response data is the 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 sending end (sending node) can determine the available bandwidth of the sending end, and then send the first data packet carrying the available bandwidth of the sending end to the receiving end. There can be intermediate nodes (such as switches, routers, etc.) between the sending end and the receiving end, i.e., the first data packet is transmitted to the receiving end through the intermediate nodes. After the intermediate nodes receive the first data packet, the available bandwidth of the intermediate nodes can be determined, and the available bandwidth of the intermediate nodes is compared with the available bandwidth in the first data packet. If the available bandwidth of the intermediate nodes is smaller than the available bandwidth in the first data packet, the intermediate nodes update the available bandwidth in the first data packet, and update the available bandwidth in the first data packet to the available bandwidth of the intermediate nodes, i.e., to the smaller one of the available bandwidth of the intermediate nodes and the available bandwidth in the first data packet. The first data packet with the updated available bandwidth is transmitted to the receiving end. After the receiving end receives the first data packet, the first response data can be returned to the sending end, which carries the available bandwidth indication field indicating the first available bandwidth of the link, the first available bandwidth being the minimum available bandwidth among the available bandwidths of the plurality of nodes included in the link. In addition, it should be noted that if the available bandwidth of the intermediate nodes is greater than or equal to the available bandwidth of the sending end, the available bandwidth in the first data packet is not updated.
[0094] In addition, it should be noted that when the number of intermediate nodes is at least two, the sending end transmits the first data packet to the receiving end through at least two intermediate nodes in sequence. The intermediate node closest to the sending end among the at least two intermediate nodes can be referred to as the first intermediate node, the intermediate node second closest to the sending end can be referred to as the second intermediate node, and so on. The first intermediate node closest to the sending end receives the first data packet sent by the sending end. The first intermediate node compares 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 sending end, 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, to the smaller one of the available bandwidth of the first intermediate node and the available bandwidth of the sending end, 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 sending end, the first intermediate node does not update the available bandwidth in the first data packet and transmits the first data packet to the second intermediate node.
[0095] 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, to the smaller one 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 with the updated available bandwidth of the second intermediate node 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 second intermediate node does not update 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 received from the first intermediate node to the third intermediate node.
[0096] The third intermediate node processes in a similar manner to the second intermediate node, except that the first data packet received by the third intermediate node is received from the second intermediate node, and the first data packet received by the second intermediate node is received from the first intermediate node, which will not be described again. By analogy, the last intermediate node (i.e., the intermediate node closest to the receiving end) receives the first data packet sent by the previous intermediate node, compares the available bandwidth in the first data packet with the available bandwidth of the last intermediate node, and if the available bandwidth of the last intermediate node is less than the available bandwidth in the first data packet, updates the available bandwidth in the first data packet received 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 obtained by the last intermediate node includes the minimum available bandwidth of the available bandwidth of the sending end and 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, the available bandwidth in the first data packet received is not updated, and the last intermediate node transmits the first data packet received 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 of the available bandwidth of the sending end and the available bandwidth of the intermediate node located between the sending end and the receiving end.
[0097] 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 received, and the available bandwidth parsed is the first available bandwidth of the link, i.e., the minimum bandwidth of the available bandwidth of the sending end and the available bandwidth of the intermediate node. Then, a first response data packet is returned to the sending end, which can carry the parsed first available bandwidth of the link.
[0098] In this embodiment, the first available bandwidth of the link can be carried in the first response data packet sent to the sending end. After receiving the first response data packet, the sending end can parse the first available bandwidth of the link in the first response data packet, determine the second sending rate of the sending end through the first available bandwidth, and control the sending rate of the sending end. Since the first available bandwidth of the link is the minimum available bandwidth of the available bandwidth of the multiple nodes included in the link, the sending rate of the sending end can be controlled through the first available bandwidth, and the congestion of the link can be reduced.
[0099] In some embodiments, the available bandwidth of the sending end is the first target bandwidth minus the size of the traffic at 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.
[0100] The traffic size of the egress end of the sending end can represent the bandwidth occupied by the egress end of the sending end. The available bandwidth of the sending end can be obtained by subtracting the first reserved bandwidth and the traffic size of the egress end of the sending end from the bandwidth of the egress end of the sending end. In addition, it should be noted that the first reserved proportion can be set according to actual needs or historical experience, and is not limited specifically. For example, the first reserved proportion can be 5% by way of example. In this embodiment, a certain bandwidth can be reserved in the process of determining the available bandwidth of the node, so as to cope with the mouse flow, burst flow and the like.
[0101] In some embodiments, for each node in the plurality of nodes, the available bandwidth of the node is the target bandwidth of the node minus the traffic size of the egress end of the node, the target bandwidth of the node is the bandwidth of the egress end of the node minus the reserved bandwidth of the node, and the reserved bandwidth of the node is the preset reserved proportion of the node multiplied by the bandwidth of the egress end of the node. It should be noted that the preset reserved proportions of different nodes can be the same or different.
[0102] 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 proportion of the sending end is the first preset reserved proportion.
[0103] Referring to FIG. 2, FIG. 2 is a flowchart of a congestion control method provided by an embodiment of the present disclosure, applied to a receiving end. As shown in FIG. 2, the congestion control method provided by the embodiment includes the following steps:
[0104] In step 201, a first response data packet is sent to the sending end, the first response data packet carrying an available bandwidth indication field, the available bandwidth indication field being used to indicate a first available bandwidth of a link between the sending end and the receiving end, the first available bandwidth being the minimum available bandwidth among available bandwidths of a plurality of nodes included in the link, the plurality of nodes including the sending end and intermediate nodes between the sending end and the receiving end.
[0105] Exemplarily, the sending the first response data packet to the sending end can comprise: in a case that the first data packet forwarded by the intermediate node is received or a case that the data packet in which the available bandwidth in the first data packet is updated by the intermediate node is received, the first response data packet is sent to the sending end. The first data packet is sent by the sending end, and can carry the available bandwidth of the sending end. It needs to be noted that the updating of the available bandwidth in the first data packet by the intermediate node is that the available bandwidth in the first data packet is updated to the minimum available bandwidth in the available bandwidths of the plurality of nodes. The specific process of the updating of the available bandwidth in the first data packet by the intermediate node has been described in the method embodiment applied to the sending end, and will not be described here again. If the updated first data packet is received, the available bandwidth in the first data packet received by the receiving end is parsed, so that the available bandwidth of the link is obtained, and the first response data packet carrying the available bandwidth of the link is sent to the sending end. If the available bandwidth of the sending end is the minimum in the available bandwidths of the plurality of nodes, the intermediate node does not update the available bandwidth in the first data packet, and forwards the first data packet to the sending end. The available bandwidth in the first data packet is the available bandwidth of the link, that is, the available bandwidth of the sending end. In a case that the first data packet forwarded by the intermediate node is received, the available bandwidth in the first data packet is parsed, and the first response data packet carrying the available bandwidth of the link is sent to the sending end.
[0106] In some embodiments, the available bandwidth of the sending end is a first target bandwidth minus a traffic size of an egress end of the sending end, the first target bandwidth is a bandwidth of the egress end of the sending end minus a first reserved bandwidth, and the first reserved bandwidth is a product of a first preset reserved ratio of the sending end and the bandwidth of the egress end of the sending end.
[0107] In some embodiments, before the sending the first response data packet to the sending end, the method further comprises: determining an available bandwidth of the receiving end.
[0108] Exemplarily, the available bandwidth of the receiving end is a second target bandwidth minus a traffic size of an egress end of the receiving end, the second target bandwidth is a bandwidth of the egress end of the receiving end minus a second reserved bandwidth, and the second reserved bandwidth is a product of a second preset reserved ratio of the receiving end and the bandwidth of the egress end of the receiving end.
[0109] In addition, it needs to be noted that the second reserved ratio can be set according to actual needs or historical experience, and is not limited in specific. The preset reserved ratios of different nodes can be the same or different. For example, the second reserved ratio and the first reserved ratio can be the same, for example, both can be 5%.
[0110] In some embodiments, for each node in the plurality of nodes, the available bandwidth of the node is the target bandwidth of the node minus the traffic size of the egress side of the node, the target bandwidth of the node is the bandwidth of the egress side of the node minus the reserved bandwidth of the node, and the reserved bandwidth of the node is the preset reserved proportion of the node multiplied by the bandwidth of the egress side of the node. It should be noted that the preset reserved proportions of different nodes can be the same or different.
[0111] It should be noted that the target bandwidth of the receiving end is the second target bandwidth described above, the reserved bandwidth of the receiving end is the second reserved bandwidth described above, and the preset reserved proportion of the receiving end is the second preset reserved proportion described above.
[0112] The process of the above method will be specifically described below with some specific embodiments.
[0113] Introduction of related art:
[0114] The RENO type congestion control algorithm is one of the Transmission Control Protocol (TCP) congestion control algorithms, is a packet loss-based congestion control algorithm, controls the packet sending rate (sending rate) according to the received acknowledgement (ACK) data packet, controls the sending rate by adjusting the congestion window, uses packet loss as a congestion control signal for network congestion control, and has the characteristics of slow start, congestion avoidance, fast retransmission and fast recovery. The CUBIC (cubic function) congestion control algorithm is a typical RENO type congestion control algorithm, is currently the default congestion control algorithm of most operating systems, uses a cubic function (i.e. a cubic function) as the congestion window growth function in the congestion avoidance phase to improve the bandwidth utilization of the network.
[0115] The bottleneck bandwidth and round-trip propagation time (BBR) congestion control algorithm mainly detects the bottleneck bandwidth (bandwidth and delay) of the link by periodic probing, and adjusts the size of the congestion window according to this information, so as to achieve a higher bandwidth utilization and a lower transmission delay. As shown in FIG. 3, BBR mainly has four stages of Startup, Drain, Probe Bandwidth and Probe RTT. The Startup stage is similar to the slow start process of CUBIC, and the size of the congestion window is exponentially increased after one round-trip delay RTT, until the instantaneous bandwidth detected by three consecutive probes is less than 1.25 times the current bottleneck bandwidth, and enters the Drain state. The current sending rate of Drain is 0.35 times the detected bottleneck bandwidth, and the data packets accumulated in the link are emptied. BBR spends most of the time in the ProbeBW state, and ProbeBW state cycles and rolls with a period of 8 RTT, including 6 stable periods, 1 probe period and 1 emptying period. The packet sending rate of the stable period is equal to the detected bottleneck bandwidth; the packet sending rate of the probe period is equal to BltBW (bottleneck bandwidth) * 1.25, which increases the sending rate to detect whether there is more available bandwidth on the link; the packet sending rate of the emptying period is equal to BltBW * 0.75, which empties the accumulated data packets caused by the probe period. In addition, ProbeRTT in FIG. 3 is the delay detection stage.
[0116] HPCC (High-Speed TCP) is a congestion control algorithm for high-speed networks, which uses in-band measurement technology to obtain the congestion state of the network, controls the amount of data packets in the network, realizes fast convergence of the sending rate, reduces the transmission delay, fully utilizes the network bandwidth and avoids network congestion. HPCC is a sender-driven congestion control framework. As shown in FIG. 4, packet-by-packet acknowledgment is adopted, that is, each data packet sent by the sender is acknowledged by the receiver. During the process of data packet propagation from the sender to the receiver, each switch on the path will insert some metadata using its in-band network telemetry (INT) function of application-specific integrated circuit (ASIC), and report the current load of the data packet out port, including timestamp, queue length, transmission byte and link bandwidth capacity. When the receiver receives the data packet, it will send all the metadata recorded by the switch to the sender through ACK. Then the sender decides how to adjust its traffic according to the ACK with network load information.
[0117] However, the packet loss-based congestion control algorithms, such as CUBIC, new RENO, etc., will keep increasing the size of the congestion window when there is no packet loss in the network, which will inject traffic into the network, causing bufferbloat, low overall network bandwidth utilization, and other problems. The method of BBR congestion control algorithm to detect the available bandwidth of the network is to periodically increase the sending rate (probe period) and reduce the sending rate (empty period). The increase of the sending rate in the probe period may cause bufferbloat and network congestion. Moreover, one cycle of Probe Bandwidth requires 8 periods, and when the network path, bandwidth, etc. suddenly changes, the convergence rate is slow and cannot adapt to complex network environments well. HPCC can make more accurate decisions in controlling network congestion and fast convergence by collecting more abundant congestion signals in the network through in-band telemetry technology. 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 the size of the data packet can cause some problems, such as exceeding the size of the Maximum Transmission Unit (MTU), which makes it unsuitable for use on the Internet. Another thing to note is that each sender needs to repeatedly calculate to obtain bottleneck information, even if they share the same path.
[0118] The embodiments of the present disclosure provide a congestion control method. The sender (sending end) detects the available bandwidth of the link of the receiving end (receiving end) while sending data packets. The intermediate nodes (routers, switches, and other network nodes) in the link compare the available bandwidth of the out-port of the node with the available bandwidth size carried in the data packet, and if it is less than the available bandwidth in the data packet, update the available bandwidth in the data packet and forward it to the next hop. The receiving end parses the available bandwidth of the link after receiving the data packet, and assembles an acknowledgement message to return to the sending end. The sending end adjusts the sending rate of the data packet according to the available bandwidth in the received ACK, including the slow start, stable sending, and fast recovery stages. The embodiments of the method 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 fast convergence of the sending rate, reduce the transmission delay, fully utilize the network bandwidth, and avoid network congestion.
[0119] As shown in FIG. 5, the specific flow of the congestion control method provided by the embodiments of the present disclosure is as follows:
[0120] 1. Start-up phase (slow start phase), obtain the available bandwidth of the link hop by hop with the data packet, and determine the size of the next sending rate or sending window or congestion window according to the available bandwidth of the link and the current sending rate. The specific process is as follows:
[0121] (1) When starting to transmit data packets, the congestion window is initialized to 1 Maximum Segment Size (MSS) size, and the sender starts to send data according to the congestion window size or sends data packets at a rate of 1 MSS / RTT;
[0122] (2) After receiving the response data packet, the available bandwidth of the link is parsed;
[0123] (3) The current sending rate is compared with the available bandwidth of the link. If the current sending rate is less than the available bandwidth of the link, the following step (4) is executed. Otherwise, the following step (6) is executed. The next sending rate is equal to the available bandwidth of the link and is output, and the sender enters the stable sending phase.
[0124] (4) Exponentially increase the current sending rate (for example, the current sending rate * 2):
[0125] The slow start process in TCP takes the minimum of the congestion window and the advertised window as the upper limit of sending. The congestion window is the flow control used by the sender, and the advertised window is the flow control used by the receiver. The sender starts to send one data packet and then waits for an ACK. When the ACK data packet is received, the congestion window is increased from 1 to 2, that is, 2 data packets can be sent. When the 2 ACK data packets are received, the congestion window is increased to 4, that is, 4 data packets can be sent. When the 4 ACK data packets are received, the congestion window is increased to 8:
[0126] At the beginning, cwnd (congestion window) = 1;
[0127] After 1 RTT---> cwnd = 2 * 1 = 2;
[0128] After 2 RTT---> cwnd = 2 * 2 = 4;
[0129] After 3 RTT---> cwnd = 4 * 2 = 8;
[0130] (5) The next sending rate calculated in the above step (4) is compared with the available bandwidth of the link. If the next sending rate is less than the available bandwidth of the link, the next sending rate is output, and the execution can continue. Otherwise, step (6) is executed. The next sending rate is equal to the available bandwidth of the link and is output, and the sender enters the stable sending phase;
[0131] (6) The next sending rate is equal to the available bandwidth of the link and is output, and the sender enters the stable sending phase.
[0132] 2. Stable sending stage, after receiving the data packet with the available bandwidth of the current link, comparing with the current sending rate, according to the difference, using different strategies to adjust the next sending rate, the specific process is as follows:
[0133] (1) receiving the data packet with the available bandwidth of the current link, such as the ACK data packet with the available bandwidth of the current link, parsing the available bandwidth of the current link;
[0134] (2) comparing the current sending rate with the parsed available bandwidth, in the case of absolute difference within a certain range (for example, less than the preset rate, which can be preset, not specifically limited, for example, 0.5*current sending rate), linear increase or decrease method can be used, for example, if the current sending rate is greater than the available bandwidth, linear decrease can be used, if the current sending rate is less than the available bandwidth, linear increase can be used. In the case of absolute difference exceeding a certain range (for example, greater than the preset rate), exponential increase or decrease, for example, if the current sending rate is greater than the available bandwidth, exponential decrease can be used, if the current sending rate is less than the available bandwidth, exponential increase can be used.
[0135] 3. When the link appears packet loss, the sending rate or congestion window size can be reduced according to the packet loss rate, and lasts for a period of time, for example, if the packet loss rate exceeds the preset packet loss rate threshold (for example, 2%), the sending rate is reduced by 0.5 times the current sending rate, and lasts for 1 RTT, and then enters the fast recovery stage; It can also be that the network supports ECN flag, and the sending end and the network enable ECN function, then according to the received CNP message, the sending rate or congestion window size is reduced, for example, the sending rate is reduced by 0.5 times the current sending rate, and lasts for 1 RTT, and then enters the fast recovery stage;
[0136] Fast recovery stage: the next sending rate is calculated according to the following formula: next = (R curr + R target ) / 2;
[0137] R next represents the next sending rate, R curr represents the current sending rate, and R target represents the target sending rate, that is, the measured available bandwidth of the link.
[0138] In the recovery stage, the preset number of times of sending rate recovery calculation can be executed in a cycle, that is, the next sending rate is calculated according to the formula, and the preset number of times (for example, 5 times) is calculated, and then the available bandwidth of the link is used as the next sending rate.
[0139] In addition, in the embodiment, a method for measuring available bandwidth is also provided. An advanced explicit congestion notification (AECN) measures the size of available bandwidth, and then adjusts the sending rate or window size, as shown in FIG. 6. The process is as follows:
[0140] 1. The sending node (i.e., the sending end) needs to obtain the available bandwidth of the out port of the node, assembles a link available bandwidth probe packet (probe packet format) with an AECN packet header, and then sends the available bandwidth probe packet (available bandwidth probe data packet) to the destination node (receiving end), which carries the available bandwidth of the sending node.
[0141] 2. The intermediate network device (intermediate node) identifies the available bandwidth probe action according to the AECN packet header, compares the available bandwidth of the out port (outlet end) of the node with the available bandwidth in the available bandwidth probe packet, and if the available bandwidth of the node is smaller than the available bandwidth in the available bandwidth probe packet, updates the available bandwidth in the available bandwidth probe packet to the available bandwidth of the node and forwards the updated available bandwidth probe packet to the next node, otherwise directly forwards the available bandwidth probe packet to the next node. Each intermediate network device performs similar operations until the last intermediate network device forwards the available bandwidth probe packet or the updated available bandwidth probe packet to the destination node.
[0142] The calculation of the available bandwidth of the node can refer to the following method: ABW = B - T - R*B.
[0143] B is the bandwidth of the out interface through which the traffic passes the node, T is the traffic size of the out interface, and R is the reserved bandwidth ratio, such as reserving 5% for mouse flow and burst flow.
[0144] 3. After the destination node receives the available bandwidth probe packet, the available bandwidth in the available bandwidth probe packet is parsed, i.e., the available bandwidth of the link is obtained, and an available bandwidth response data packet is constructed and then sent to the sending node.
[0145] 4. The sending node receives and parses the available bandwidth response data packet, obtains the available bandwidth of the link, and then performs subsequent sending rate control to reduce congestion.
[0146] For example, as shown in FIG. 7, the intermediate nodes between the sender and the receiver include Router 1 and Router 2, the link between the sender and Router 1 is Link-1, the link between Router 1 and Router 2 is Link-2, and the link between Router 2 and the receiver is Link-3. The sender sends a data packet (carrying the available bandwidth of the sender) which can be marked with an AECN command and initial congestion information. The data packet reaches Router 1 through Link-1. Router 1 compares the available bandwidth of Router 1 with the available bandwidth in the data packet. If the available bandwidth of Router 1 is less than the available bandwidth in the data packet, the available bandwidth in the data packet is updated to the available bandwidth of Router 1, and the data packet is forwarded to Router 2 through Link-2. After receiving the data packet forwarded by Router 1, Router 2 compares the available bandwidth of Router 2 with the available bandwidth (which is the available bandwidth of Router 1 at this time) in the received data packet. If the available bandwidth of Router 2 is less than the available bandwidth in the data packet, i.e., if the available bandwidth of Router 2 is less than the available bandwidth of Router 1, the available bandwidth in the data packet is updated to the available bandwidth of Router 2, and the data packet is forwarded to the receiver through Link-3. The receiver parses the available bandwidth (which is the available bandwidth of Router 2 at this time) in the data packet sent by Router 2, and thus obtains the available bandwidth of the link between the sender and the receiver. Then, the receiver sends a response data packet to the sender, wherein the response data packet carries the available bandwidth of the link.
[0147] In the embodiments of the present disclosure, the format of the probe packet is that the AECN header is encapsulated in an IPv6 extension header, such as a Segment routing header (SRH), a hop-by-hop option header, or the like. The structure of the AECN header is shown in FIG. 8, wherein,
[0148] Flags: an 8-bit field. The 7th bit of the flags indicates that the congestion information is self-defined and is only used in a limited field, such as a data center network. If the 7th bit is 0, the type of the congestion information is a bitmap;
[0149] Congestion information type: specifies a 24-bit mapping of the current congestion information data. As shown in Table 1, supported congestion information data is listed. It should be noted that multiple congestion information data can coexist in one data packet;
[0150] Table 1
[0151] Congestion information data: includes a variable length field of congestion information data, which should be updated by the router according to the local load state;
[0152] Flag: 8-bit field, which can define the 5th bit to identify the measured available bandwidth, and the length of the available bandwidth is 8 bytes. The intermediate node operates the Min function to compare the available bandwidth of the current node with the available bandwidth in the data packet, and replaces the available bandwidth in the data packet with the smaller value.
[0153] In addition, it should be noted that: in order to ensure the fairness of the allocation of available bandwidth, the hop-by-hop bandwidth allocation mechanism can be used to ensure that the intermediate node can allocate the bandwidth of each flow fairly or according to the priority, and the method of reserving part of the bandwidth can be used to ensure the entry of the mouse flow or the later flow.
[0154] Through the congestion control scheme of the present disclosure, the congestion control effect can be improved, and a delay-sensitive, throughput-sensitive, and traditional flow optimization forwarding solution is provided. Compared with the prior art, the present application increases the throughput-sensitive queue, which can meet the different requirements of buffer queue and ECN threshold value in low delay mouse flow and high throughput elephant flow scenes. In addition, compared with the related art of Low Latency, Low Loss, and Scalable Throughput (L4S) double queue technology, which only provides isolation of DCTCP (Data Center TCP, which is a kind of TCP for data center network) and traditional TCP flow based on CUBIC, it cannot solve the scene of coexistence of multiple different congestion control data flows, such as CUBIC, BBR, DCTCP, and the present application can solve the friendly coexistence of three different congestion algorithms, and has wider applicability.
[0155] As shown in FIG. 9, FIG. 9 is a structural schematic diagram of a congestion control device provided by an embodiment of the present disclosure, which can be applied to a sending end. As shown in FIG. 9, the congestion control device 900 includes:
[0156] The first acquisition module 901 is configured to acquire a first available bandwidth of a link and a first sending rate of the sending end, the link being a link between the sending end and a receiving end.
[0157] The first determination module 902 is configured to determine a second sending rate of the sending end according to the first available bandwidth and the first sending rate, the second sending rate corresponding to a time point after a time point corresponding to the first sending rate.
[0158] In some embodiments, the first determination module 902 includes at least one of the following:
[0159] The first determining unit is configured to determine the first available bandwidth as the second sending rate of the sending end when the first sending rate is greater than or equal to the first available bandwidth.
[0160] The second determining unit is configured to calculate a third sending rate greater than the first sending rate according to the first sending rate when the first sending rate is less than the first available bandwidth, and determine the second sending rate of the sending end according to the first available bandwidth and the third sending rate.
[0161] In some embodiments, the second determining unit comprises at least one of the following:
[0162] The first determining sub-unit is configured to determine the first available bandwidth as the second sending rate when the third sending rate is greater than or equal to the first available bandwidth.
[0163] The second determining sub-unit 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.
[0164] In some embodiments, the apparatus further comprises:
[0165] The second determining module is configured to determine a fourth sending rate of the sending end according to the second sending rate and the second available bandwidth when the response data packet carrying the second available bandwidth of the link sent by the receiving end is received, the fourth sending rate corresponding to a time point after the time point corresponding to the second sending rate.
[0166] In some embodiments, the second determining module comprises at least one of the following:
[0167] The third determining unit is configured to, when the absolute difference between the second sending rate and the second available bandwidth is greater than the preset rate, obtain the fourth sending rate according to the first rate adjustment mode and the second sending rate if the second sending rate is greater than the second available bandwidth, the fourth sending rate being less than the second sending rate, and obtain the fourth sending rate according to the second rate adjustment mode and the second sending rate if the second sending rate is less than the second available bandwidth, the fourth sending rate being greater than the second sending rate.
[0168] The fourth determining unit is configured to, when the absolute difference between the second sending rate and the second available bandwidth is less than or equal to the preset rate, obtain the fourth sending rate according to the third rate adjustment mode and the second sending rate if the second sending rate is greater than the second available bandwidth, the fourth sending rate being less than the second sending rate, and obtain the fourth sending rate according to the fourth rate adjustment mode and the second sending rate if the second sending rate is less than the second available bandwidth, the fourth sending rate being greater than the second sending rate.
[0169] In some embodiments, the apparatus further comprises at least one of:
[0170] The first processing module is configured to, in a case where the reply data packet carrying the second available bandwidth of the link is received from the receiving end, detect a packet loss rate of the sending end; in a case where 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 the data packet at the reduced fourth sending rate or the reduced fourth sending rate within a preset time length.
[0171] The second processing module is configured to, in a case where the congestion notification message is received from the network device, reduce the second sending rate or the fourth sending rate, and send the data packet at the reduced second sending rate or the reduced fourth sending rate within a preset time length.
[0172] In some embodiments, the apparatus further comprises:
[0173] The third determining module is configured to cyclically execute the following steps until the number of times of calculating the sixth sending rate of the sending end reaches a preset number of times, determine the third available bandwidth of the link as the sixth sending rate:
[0174] In a case where the reply data packet carrying the third available bandwidth of the link is received from the receiving end, obtain a fifth sending rate of the sending end;
[0175] According to the fifth sending rate and the third available bandwidth, calculate a sixth sending rate of the sending end.
[0176] In some embodiments, according to the fifth sending rate and the third available bandwidth, calculating the sixth sending rate of the sending end comprises:
[0177] Determine the average value of the fifth sending rate and the third available bandwidth as the sixth sending rate.
[0178] In some embodiments, the first obtaining module comprises:
[0179] The fifth determining unit is configured to determine the available bandwidth of the sending end;
[0180] The first sending unit is configured to send the first data packet, and the first data packet carries the available bandwidth of the sending end;
[0181] The first receiving unit is configured to receive the first reply data packet sent by the receiving end, and the first reply data packet carries an available bandwidth indication field, the available bandwidth indication field is used to indicate the first available bandwidth of the link, the first available bandwidth is the minimum available bandwidth among available bandwidths of a plurality of nodes included in the link, and the plurality of nodes include the sending end and an intermediate node located between the sending end and the receiving end.
[0182] In some embodiments, 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 a product of the first preset reserved ratio of the sending end and the bandwidth of the egress end of the sending end.
[0183] The congestion control apparatus 900 provided in this embodiment can implement each process of each embodiment of the congestion control method applied to the sending end, and has one-to-one correspondence with the technical features and can achieve the same technical effects. To avoid repetition, details are not described herein.
[0184] Referring to FIG. 10, FIG. 10 is a structural schematic diagram of a congestion control apparatus provided in an embodiment of the present disclosure, which can be applied to a receiving end. As shown in FIG. 10, the congestion control apparatus 1000 includes:
[0185] The sending module 1001 is configured to send a first response data packet to the sending end, the first response data packet carrying an available bandwidth indication field, the available bandwidth indication field being used to indicate a first available bandwidth of a link between the sending end and the receiving end, the first available bandwidth being a minimum available bandwidth among available bandwidths of multiple nodes included in the link, the multiple nodes including the sending end and an intermediate node located between the sending end and the receiving end.
[0186] In some embodiments, 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 a product of the first preset reserved ratio of the sending end and the bandwidth of the egress end of the sending end.
[0187] The congestion control apparatus 1000 provided in this embodiment can implement each process of each embodiment of the congestion control method applied to the receiving end, and has one-to-one correspondence with the technical features and can achieve the same technical effects. To avoid repetition, details are not described herein.
[0188] The present disclosure also provides an electronic device, which includes a processor, a memory, and a program stored in the memory and capable of running on the processor. When the program is executed by the processor, each process of each embodiment of the congestion control method applied to the sending end is implemented, and the same technical effects can be achieved. To avoid repetition, details are not described herein.
[0189] Specifically, referring to FIG. 11, the present disclosure further provides an electronic device, which can be a sending end. The electronic device includes a bus 1101, a transceiver 1102, an antenna 1103, a bus interface 1104, a processor 1105, and a memory 1106.
[0190] The processor 1105 is configured to:
[0191] obtaining a first available bandwidth of a link and a first sending rate of a sending end, the link being a link between the sending end and a receiving end;
[0192] determining a second sending rate of the sending end according to the first available bandwidth and the first sending rate, the second sending rate corresponding to a time point after a time point corresponding to the first sending rate.
[0193] In some embodiments, the processor 1105 is specifically configured to perform at least one of the following:
[0194] determining the first available bandwidth as the second sending rate of the sending end in a case where the first sending rate is greater than or equal to the first available bandwidth;
[0195] calculating a third sending rate greater than the first sending rate according to the first sending rate, and determining the second sending rate of the sending end according to the first available bandwidth and the third sending rate in a case where the first sending rate is less than the first available bandwidth.
[0196] In some embodiments, the processor 1105 is specifically configured to perform at least one of the following:
[0197] determining the first available bandwidth as the second sending rate in a case where the third sending rate is greater than or equal to the first available bandwidth;
[0198] determining the third sending rate as the second sending rate in a case where the third sending rate is less than the first available bandwidth.
[0199] In some embodiments, the processor 1105 is further configured to:
[0200] determining a fourth sending rate of the sending end according to the second sending rate and a second available bandwidth of the link in a case where the response packet carrying the second available bandwidth of the link is received from the receiving end, the fourth sending rate corresponding to a time point after a time point corresponding to the second sending rate.
[0201] In some embodiments, the processor 1105 is specifically configured to perform at least one of the following:
[0202] if the second sending rate is greater than the second available bandwidth, obtaining the fourth sending rate smaller than the second sending rate according to the first rate adjustment mode and the second sending rate, and if the second sending rate is less than the second available bandwidth, obtaining the fourth sending rate greater than the second sending rate according to the second rate adjustment mode and the second sending rate in a case where an absolute difference between the second sending rate and the second available bandwidth is greater than a preset rate.
[0203] In a case that an 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 a third rate adjustment mode and the second sending rate, and the fourth sending rate is less than the second sending rate, and if the second sending rate is less than the second available bandwidth, the fourth sending rate is obtained according to a fourth rate adjustment mode and the second sending rate, and the fourth sending rate is greater than the second sending rate.
[0204] In some embodiments, the processor 1105 is further configured to perform at least one of the following:
[0205] In a case that the response data packet carrying the second available bandwidth of the link is received from the receiving end, the packet loss rate of the sending end is detected, and in a case that the packet loss rate is greater than a preset packet loss rate threshold, the second sending rate or the fourth sending rate is reduced, and the data packet is sent at the reduced second sending rate or the reduced fourth sending rate within a preset time length.
[0206] In a case that the congestion notification message is received from the network device, the second sending rate or the fourth sending rate is reduced, and the data packet is sent at the reduced second sending rate or the reduced fourth sending rate within a preset time length.
[0207] In some embodiments, the processor 1105 is further configured to:
[0208] The following steps are repeatedly performed until the calculation times of the sixth sending rate of the sending end reach a preset number of times, and the third available bandwidth of the link is determined as the sixth sending rate:
[0209] In a case that the response data packet carrying the third available bandwidth of the link is received from the receiving end, the fifth sending rate of the sending end is obtained.
[0210] The sixth sending rate of the sending end is calculated according to the fifth sending rate and the third available bandwidth.
[0211] In some embodiments, the sixth sending rate of the sending end is calculated according to the fifth sending rate and the third available bandwidth, including:
[0212] The average value of the fifth sending rate and the third available bandwidth is determined as the sixth sending rate.
[0213] In some embodiments, the processor 1105 is specifically configured to:
[0214] The available bandwidth of the sending end is determined.
[0215] The first data packet is sent, and the first data packet carries the available bandwidth of the sending end.
[0216] receive the first response data packet sent by the receiving end, the first response data packet carrying an available bandwidth indication field, the available bandwidth indication field being used to indicate a first available bandwidth of the link, the first available bandwidth being a minimum available bandwidth among available bandwidths of multiple nodes included in the link, the multiple nodes including the sending end and intermediate nodes located between the sending end and the receiving end.
[0217] In some embodiments, the available bandwidth of the sending end is the first target bandwidth minus a traffic size of the egress end of the sending end, the first target bandwidth being a bandwidth of the egress end of the sending end minus a first reserved bandwidth, the first reserved bandwidth being a product of a first preset reserved ratio of the sending end and the bandwidth of the egress end of the sending end.
[0218] In FIG. 11, a bus architecture (represented by a bus 1101) can include any number of interconnecting buses and bridges, the bus 1101 linking together various circuits including one or more processors represented by a processor 1105 and memory represented by a memory 1106. The bus 1101 can also link together various other circuits, such as peripheral devices, voltage regulators, and power management circuits, which are well known in the art, and therefore, will not be described further. A bus interface 1104 provides an interface between the bus 1101 and a transceiver 1102. The transceiver 1102, which can be a single element or a plurality of elements such as a plurality of receivers and transmitters, provides a means for communicating with various other apparatus over a transmission medium. Data processed by the processor 1105 is transmitted over a wireless medium via an antenna 1103, which further receives data and communicates the data to the processor 1105.
[0219] 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 in executing its operations.
[0220] Optionally, the processor 1105 can be a CPU, an ASIC, an FPGA, or a CPLD.
[0221] The processing of the electronic device provided by the embodiment can implement each process of each embodiment of the application for the congestion control method applied to the sending end, and the technical features are one-to-one correspondence and can achieve the same technical effects. To avoid repetition, it will not be described here.
[0222] The embodiment of the present disclosure further provides a computer readable storage medium, and the computer readable storage medium stores a computer program. The computer program is executed by a processor to realize each process of the above-mentioned congestion control method applied to a sending end, and the same technical effects can be achieved. To avoid repetition, details are not described herein. The computer readable storage medium can be a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.
[0223] The embodiment of the present disclosure further provides an electronic device, which comprises a processor, a memory and a program stored in the memory and executable on the processor. The program is executed by the processor to realize each process of the above-mentioned congestion control method applied to a receiving end, and the same technical effects can be achieved. To avoid repetition, details are not described herein.
[0224] Specifically, referring to FIG. 12, the embodiment of the present disclosure further provides an electronic device, which can be a receiving end. The electronic device comprises a bus 1201, a transceiver 1202, an antenna 1203, a bus interface 1204, a processor 1205 and a memory 1206.
[0225] The processor 1205 is configured to:
[0226] The processor 1205 is configured to send a first response data packet to the sending end, the first response data packet carrying an available bandwidth indication field, the available bandwidth indication field being used to indicate a first available bandwidth of a link between the sending end and the receiving end, the first available bandwidth being a minimum available bandwidth of available bandwidths of a plurality of nodes included in the link, the plurality of nodes including the sending end and an intermediate node located between the sending end and the receiving end.
[0227] In some embodiments, the available bandwidth of the sending end is a first target bandwidth minus a traffic size of an egress end of the sending end, the first target bandwidth being a bandwidth of the egress end of the sending end minus a first reserved bandwidth, the first reserved bandwidth being a product of a first preset reserved ratio of the sending end and the bandwidth of the egress end of the sending end.
[0228] In FIG. 12, a bus architecture (represented by bus 1201) can include any number of interconnecting buses and bridges, and the bus 1201 links together various circuits such as one or more processors represented by processor 1205, and memory represented by memory 1206. The bus 1201 can also link various other circuits such as peripheral devices, voltage regulators, and power management circuits, which are well known in the art, and therefore, not further described herein. Bus interface 1204 provides an interface between the bus 1201 and transceiver 1202. The transceiver 1202 can be a single element or multiple elements, such as a plurality of receivers and transmitters, that provide a means for communicating with various other apparatus over a transmission medium. Data processed by the processor 1205 is transmitted over a wireless medium via antenna 1203, and further, the antenna 1203 receives data and communicates the data to the processor 1205.
[0229] 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 in executing its operations.
[0230] Optionally, the processor 1205 can be a central processing unit (CPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or a complex programmable logic device (CPLD).
[0231] The processing of the electronic device provided by the embodiment can implement each process of each embodiment of the above-mentioned congestion control method applied to the receiving end, the technical features are one-to-one correspondence, and the same technical effects can be achieved. To avoid repetition, it will not be described here.
[0232] The embodiment of the present disclosure also provides a computer readable storage medium, and the computer readable storage medium stores a computer program. When the computer program is executed by a processor, each process of the above-mentioned congestion control method applied to the receiving end is implemented, and the same technical effects can be achieved. To avoid repetition, it will not be described here. The computer readable storage medium includes ROM, RAM, magnetic disk or optical disk, etc.
[0233] The embodiments of the present disclosure provide a computer program product comprising computer instructions, which, when executed by a processor, implement various processes of the method of the embodiments, the technical features one-to-one correspondence, and can achieve the same technical effects, in order to avoid repetition, hereinafter will not be repeated.
[0234] It should be noted that in this paper, the term "including", "including" or any other variant thereof is intended to cover non-exclusive inclusion, so that the process, method, article or device including a series of elements not only includes those elements, but also includes other elements not explicitly listed, or includes elements inherent to such process, method, article or device. Without more limitations, the element defined by the sentence "including a" does not exclude the presence of other identical elements in the process, method, article or device including the element.
[0235] Through the above description of the embodiments, those skilled in the art can clearly understand that the above-mentioned embodiment method can be realized by software plus the necessary general hardware platform, of course, it can also be realized by hardware, but in many cases the former is a better embodiment. Based on such understanding, the technical solutions of the present disclosure can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes a plurality of instructions for making a terminal (which can be a mobile phone, computer, server, air conditioner, or first network device, etc.) execute the method of each embodiment of the present disclosure.
[0236] The embodiments of the present disclosure are described above in combination with the drawings, but the present disclosure is not limited to the above-mentioned specific embodiments, and the above-mentioned specific embodiments are only illustrative, not limiting, and those skilled in the art can make many forms without departing from the purpose of the present disclosure and the scope protected by the claims under the inspiration of the present disclosure, which all belong to the protection of the present disclosure.
Claims
1. A congestion control method applied to a sending end, the method comprising: obtaining a first available bandwidth of a link and a first sending rate of the sending end, the link being a link between the sending end and a receiving end; determining a second sending rate of the sending end according to the first available bandwidth and the first sending rate, the second sending rate corresponding to a time point after a time point corresponding to the first sending rate.
2. The method of claim 1, wherein, The determining of the second sending rate of the sending end according to the first available bandwidth and the first sending rate comprises at least one of the following: in a case where 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; in a case where the first sending rate is less than the first available bandwidth, calculating a third sending rate greater than the first sending rate according to the first sending rate, and determining the second sending rate of the sending end according to the first available bandwidth and the third sending rate.
3. The method of claim 2, wherein, The determining of the second sending rate of the sending end according to the first available bandwidth and the third sending rate comprises at least one of the following: in a case where the third sending rate is greater than or equal to the first available bandwidth, determining the first available bandwidth as the second sending rate; in a case where the third sending rate is less than the first available bandwidth, determining the third sending rate as the second sending rate.
4. The method of any one of claims 1-3, wherein, The method further comprises, after the determining of the second sending rate of the sending end according to the first available bandwidth and the first sending rate: in a case where a response packet carrying a second available bandwidth of the link is received from the receiving end, determining a fourth sending rate of the sending end according to the second sending rate and the second available bandwidth, the fourth sending rate corresponding to a time point after a time point corresponding to the second sending rate.
5. The method of claim 4, wherein, The determining of the fourth sending rate of the sending end according to the second sending rate and the second available bandwidth comprises at least one of the following: in a case where an absolute difference between the second sending rate and the second available bandwidth is greater than a preset rate, if the second sending rate is greater than the second available bandwidth, obtaining the fourth sending rate smaller than the second sending rate according to a first rate adjustment manner and the second sending rate, and if the second sending rate is less than the second available bandwidth, obtaining the fourth sending rate greater than the second sending rate according to a second rate adjustment manner and the second sending rate. In a case that an 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 a third rate adjustment mode and the second sending rate, the fourth sending rate being less than the second sending rate, and if the second sending rate is less than the second available bandwidth, the fourth sending rate is obtained according to a fourth rate adjustment mode and the second sending rate, the fourth sending rate being greater than the second sending rate.
6. The method of claim 5, further comprising at least one of: detecting a packet loss rate of the sending end in a case that the receiving end receives a response data packet carrying the second available bandwidth of the link; in a case that 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 length; in a case that a congestion notification message sent by a network device is received, reducing the second sending rate or the fourth sending rate, and sending data packets at the reduced second sending rate or the reduced fourth sending rate within a preset time length.
7. The method of claim 6, wherein, after the sending data packets at the reduced second sending rate or the reduced fourth sending rate within the preset time length, further comprising: cyclically performing the following steps until a calculation number of a sixth sending rate of the sending end reaches a preset number, determining the third available bandwidth of the link as the sixth sending rate: in a case that a response data packet carrying the third available bandwidth of the link is received from the receiving end, obtaining a fifth sending rate of the sending end; calculating a sixth sending rate of the sending end according to the fifth sending rate and the third available bandwidth.
8. The method of claim 7, wherein, the calculating the sixth sending rate of the sending end according to the fifth sending rate and the third available bandwidth comprises: determining an average value of the fifth sending rate and the third available bandwidth as the sixth sending rate.
9. The method of claim 1, wherein, the obtaining the first available bandwidth of the link comprises: determining an available bandwidth of the sending end; sending a first data packet, the first data packet carrying the available bandwidth of the sending end; receiving a first response data packet sent by the receiving end, the first response data packet carrying an available bandwidth indication field, the available bandwidth indication field being used to indicate the first available bandwidth of the link, the first available bandwidth being a minimum available bandwidth among available bandwidths of a plurality of nodes included in the link, the plurality of nodes including the sending end and intermediate nodes between the sending end and the receiving end.
10. The method of claim 9, wherein, the available bandwidth of the sending end is a first target bandwidth minus a traffic size of an egress end of the sending end, the first target bandwidth being a bandwidth of the egress end of the sending end minus a first reserved bandwidth, the first reserved bandwidth being a product of a first preset reserved proportion of the sending end and the bandwidth of the egress end of the sending end.
11. A congestion control method applied to a receiving end, the method comprising: The sending end sends a first response data packet to the receiving end, the first response data packet carrying an available bandwidth indication field, the available bandwidth indication field being used to indicate a first available bandwidth of a link between the sending end and the receiving end, the first available bandwidth being a minimum available bandwidth among available bandwidths of multiple nodes included in the link, the multiple nodes including the sending end and intermediate nodes between the sending end and the receiving end.
12. The method of claim 11, wherein, The available bandwidth of the sending end is a first target bandwidth minus a traffic size of an egress end of the sending end, the first target bandwidth being a bandwidth of the egress end of the sending end minus a first reserved bandwidth, the first reserved bandwidth being a product of a first preset reserved ratio of the sending end and the bandwidth of the egress end of the sending end.
13. A congestion control apparatus applied to a sending end, the apparatus comprising: a first obtaining module, configured to obtain a first available bandwidth of a link and a first sending rate of the sending end, the link being a link between the sending end and a receiving end; a first determining module, configured to determine a second sending rate of the sending end according to the first available bandwidth and the first sending rate, the second sending rate corresponding to a time point after a time point corresponding to the first sending rate.
14. A congestion control apparatus applied to a receiving end, the apparatus comprising: a sending module, configured to send a first response data packet to a sending end, the first response data packet carrying an available bandwidth indication field, the available bandwidth indication field being used to indicate a first available bandwidth of a link between the sending end and the receiving end, the first available bandwidth being a minimum available bandwidth among available bandwidths of multiple nodes included in the link, the multiple nodes including the sending end and intermediate nodes between the sending end and the receiving end.
15. An electronic device, comprising a transceiver and a processor, the processor is configured to: obtain a first available bandwidth of a link and a first sending rate of a sending end, the link being a link between the sending end and a receiving end; determine a second sending rate of the sending end according to the first available bandwidth and the first sending rate, the second sending rate corresponding to a time point after a time point corresponding to the first sending rate.
16. An electronic device, comprising a transceiver and a processor, the processor is configured to: send a first response data packet to a sending end, the first response data packet carrying an available bandwidth indication field, the available bandwidth indication field being used to indicate a first available bandwidth of a link between the sending end and the receiving end, the first available bandwidth being a minimum available bandwidth among available bandwidths of multiple nodes included in the link, the multiple nodes including the sending end and intermediate nodes between the sending end and the receiving end.
17. An electronic device comprising: a processor, a memory, and a program stored in the memory and executable on the processor, the program, when executed by the processor, 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 stored thereon a computer program which, when executed by a processor, implements the steps of the method of any one of claims 1-10, or implements the steps of the method of any one of claims 11-12.
19. A computer program product comprising computer instructions which, when executed by a processor, implement the steps of the method of any one of claims 1-12.
Citation Information
Patent Citations
Congestion control method and system as well as network equipment
CN102404187A
Link quality detection method and device, and path selection method and device
CN111835589A
Congestion control method and device, electronic equipment and computer readable storage medium
CN119629129A
Ethernet congestion control and prevention
US20180034740A1
Method for issuing sounding packet, and related device
WO2022100732A1