Congestion control method, device, equipment and storage medium
By detecting the RTT and CNP of data transmission in the RDMA network and dynamically adjusting the data transmission rate, the congestion control problem in the RDMA network is solved, and the stability and efficiency of the network are improved.
Patent Information
- Application Number
- CN202210731475.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-06-24
- Publication Date
- 2025-03-25
- Estimated Expiration
- 2042-06-24
AI Technical Summary
When RDMA is deployed on a large scale in data centers, as the network card rate increases, the probability of triggering congestion within the network increases, and existing congestion control methods are difficult to effectively solve.
By detecting the reply message and a congestion notification message (CNP) associated with the round trip time (RTT) of data transmission between the first device and the second device, the data transmission rate is reduced in response to the detection of the reply message updating the data transmission rate, and the reply message not detected in response to the detection of the CNP.
The speed and accuracy of congestion perception are improved, transmission rate control for network congestion in different dimensions is realized, and the stability and efficiency of the network are improved.
Smart Images

Figure CN114938354B_ABST
Abstract
Description
Technical Field
[0001] Example embodiments of the present disclosure generally relate to the field of computers, and more particularly, to methods, devices, apparatuses, and computer-readable storage media for congestion control. Background Art
[0002] Modern data centers use remote direct data access (RDMA) technology to provide ultra-low network latency, higher throughput, and lower central processing unit (CPU) overhead. Through RDMA and graphics processor direct copy (GDR) technology, the network card can directly transfer data between the pre-registered memory or GPU memory of the hosts at both ends. By bypassing the kernel network protocol stack, the network card greatly reduces the CPU overhead and overall latency. At present, it has been widely used in distributed machine learning and high-performance storage scenarios.
[0003] However, large-scale deployment of RDMA in data centers still faces huge challenges. As the speed of network cards increases, the probability of triggering congestion in the network also increases, which makes congestion control a research hotspot in RDMA networks in recent years. Summary of the invention
[0004] In a first aspect of the present disclosure, a method for congestion control is provided. The method includes detecting at least one of a reply message and a congestion notification message (CNP) associated with a round trip time (RTT) of data transmission between a first device and a second device. The method also includes updating a current transmission rate of data transmission based on a comparison of the RTT with at least one RTT threshold in response to detecting the reply message and reducing the current transmission rate in response to detecting the CNP without detecting the reply message.
[0005] In a second aspect of the present disclosure, a device for congestion control is provided. The device includes a detection module configured to detect at least one of a reply message and a CNP associated with an RTT of data transmission between a first device and a second device; and a rate control module configured to update a current transmission rate of the data transmission based on a comparison of the RTT with at least one RTT threshold in response to detecting the reply message; and to reduce the current transmission rate in response to detecting the CNP but not detecting the reply message.
[0006] In a third aspect of the present disclosure, an electronic device is provided. The device includes at least one processing unit; and at least one memory, the at least one memory is coupled to the at least one processing unit and stores instructions for execution by the at least one processing unit. When the instructions are executed by the at least one processing unit, the device executes the method of the first aspect.
[0007] In a fourth aspect of the present disclosure, a computer-readable storage medium is provided, wherein a computer program is stored on the medium, and when the program is executed by a processor, the method of the first aspect is implemented.
[0008] It should be understood that the contents described in the summary of the present invention are not intended to limit the key features or important features of the embodiments of the present disclosure, nor are they intended to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The above and other features, advantages and aspects of the embodiments of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings. In the accompanying drawings, the same or similar reference numerals represent the same or similar elements, wherein:
[0010] Figure 1 A schematic diagram showing an example environment in which embodiments of the present disclosure can be implemented;
[0011] Figure 2A and Figure 2B A schematic diagram showing a congestion control process according to some embodiments of the present disclosure;
[0012] Figure 3A and Figure 3B A schematic diagram showing a congestion control process according to some embodiments of the present disclosure;
[0013] Figure 4 A flowchart showing a process for congestion control according to some embodiments of the present disclosure is shown;
[0014] Figure 5 A block diagram showing an apparatus for congestion control according to some embodiments of the present disclosure; and
[0015] Figure 6 A block diagram of a device capable of implementing various embodiments of the present disclosure is shown. DETAILED DESCRIPTION
[0016] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as being limited to the embodiments set forth herein. On the contrary, these embodiments are provided to provide a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are only for exemplary purposes and are not intended to limit the scope of protection of the present disclosure.
[0017] In the description of the embodiments of the present disclosure, the term "including" and similar terms should be understood as open inclusion, that is, "including but not limited to". The term "based on" should be understood as "based at least in part on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The term "some embodiments" should be understood as "at least some embodiments". Other explicit and implicit definitions may also be included below.
[0018] As mentioned above, with the increase in network card speed, large-scale deployment of RDMA in data centers still faces the problem of increased congestion probability.
[0019] Among the existing congestion control methods, some congestion control methods can only collect whether there is congestion in a certain hop switch on the path. If you want to collect the delay and queuing information of each hop of the switch on the path, you need to deploy each hop switch on the path as a new generation switch, which results in very limited scalability.
[0020] According to various embodiments of the present disclosure, a congestion control scheme is proposed. For example, a sending device can detect a response regarding the RTT of the transmission data between it and a receiving device. If the response is detected, the sending device can learn the RTT based on the response and compare it with at least one predetermined RTT threshold to update the current data transmission rate. If the sending device does not detect the response, but detects CNP, the sending device can determine that there is congestion in the current data transmission path, and then the sending device can reduce the current data transmission rate.
[0021] According to the implementation of the present disclosure, the speed and accuracy of congestion perception can be improved, thereby realizing transmission rate control for network congestion of different dimensions.
[0022] Example Environment
[0023] See first Figure 1 , which schematically illustrates a diagram of an example environment 100 in which example implementations according to the present disclosure may be implemented.
[0024] The example environment 100 may include a sending device 110 (also referred to as a first device in the present disclosure) and a receiving device 120 (also referred to as a second device in the present disclosure). The sending device 110 and the receiving device 120 may communicate with each other. It should be understood that in the process of communication between the sending device 110 and the receiving device 120, the roles played by the sending device 110 and the receiving device 120 are merely exemplary. In some scenarios, the receiving device 120 may be regarded as a sending device, and the sending device 110 may also be regarded as a receiving device.
[0025] In the example environment 100, the communication between the sending device 110 and the receiving device 120 may be implemented via the switch 130. Generally speaking, the switch 130 may provide a separate communication path for any two network nodes accessing the switch 130 to perform addressing and forwarding of the transmitted information.
[0026] In some embodiments, the sending device 110 and the receiving device 120 can be any type of mobile terminal, fixed terminal or portable terminal, including mobile phones, desktop computers, laptop computers, notebook computers, netbook computers, tablet computers, media computers, multimedia tablets, personal communication system (PCS) devices, personal navigation devices, personal digital assistants (PDAs), audio / video players, digital cameras / camcorders, positioning devices, television receivers, radio broadcast receivers, e-book devices, gaming devices, or any combination of the foregoing, including accessories and peripherals of these devices or any combination thereof. In some embodiments, the sending device 110 and the receiving device 120 can also support any type of interface for the user (such as "wearable" circuits, etc.).
[0027] It should be understood that the structure and functionality of environment 100 are described for exemplary purposes only and do not imply any limitation on the scope of the present disclosure.
[0028] Congestion Control Process
[0029] Figure 2A and 2B A schematic diagram of a process for congestion control according to some embodiments of the present disclosure is shown. Figure 2A and Figure 2B The process shown in FIG. 1 may involve the sending device 110, the switch 130, and the receiving device 120. For ease of discussion, reference will be made to FIG. Figure 1 The process is described with reference to the environment 100 of FIG.
[0030] During the data transmission between the sending device 110 and the receiving device 120 via the switch 130, in order to detect the RTT from the sending device 110 sending a data packet to the sending device 110 receiving the data packet from the receiving device 120, the sending device 110 usually sends a data packet for detecting the RTT. Such a data packet is also called an RTT probe. The sending device 110 can send RTT probes at a predetermined time interval / frequency to detect whether congestion occurs in the current data transmission. The probe may include a timestamp of the time when it is sent. For example, the sending device 110 may send an RTT probe after sending several regular data packets. Figure 2A As shown, after sending the regular data packets 201 to 203 , the sending device 110 may send an RTT probe 204 .
[0031] There may be multiple data packets to be sent to the receiving device 120 at the switch 130. Figure 2A As shown, the queue of data packets to be sent at the switch 130 may start from L0. Once the data packets waiting to be sent exceed the first queue length threshold L1, the switch 130 will determine that data transmission is congested. In this case, the switch 130 will mark the data packets with a certain probability. The mark may include an explicit congestion notification (ECN). Figure 2A In the example, when the queue of data waiting to be sent exceeds L1, the switch marks the data packet 211 with ECN. The waiting queue may also include an RTT probe 204 sent by the sending device 110.
[0032] If both the ECN-marked data packet 211 and the RTT probe 204 are sent to the receiving device 120, then Figure 2A As shown, the receiving device 120 generates an ACK 224 for the RTT probe 204, which may include a timestamp of sending the RTT probe 204 indicated in the RTT probe 204. For marking the data packet 211 with ECN, the receiving device 120 generates a CNP 223. The ACK 224 and CNP 223 generated by the receiving device 120 are transmitted to the receiving device 110 via the switch 130.
[0033] However, in some cases, the RTT probe sent by the sending device 110 may be lost due to the jitter of the switch 130, so that the receiving device 120 cannot receive the RTT probe. Figure 2B As shown, the RTT probe 204 sent by the sending device 110 is not transmitted to the receiving device 120. The receiving device 120 only receives the data packet 211 marked with ECN by the switch 130 when congestion occurs. The receiving device 120 generates a CNP 223 for the data packet 211 and transmits the CNP 223 to the receiving device 110 via the switch 130.
[0034] In the solution of the present invention, after sending the RTT probe 204 , the sending device 110 detects at least one of the response information or the CNP for the RTT probe 204 from the receiving device 120 .
[0035] If the sending device 110 receives the response information of the receiving device 120 to the RTT probe 204 , the sending device 110 can calculate the RTT of the data transmission between the sending device 110 and the receiving device 120 through the response information.
[0036] The receiving device 110 may update a current transmission rate for data transmission between the sending device 110 and the receiving device 120 based on a comparison between the calculated RTT and one or more RTT thresholds.
[0037] In some embodiments, multiple RTT thresholds may be pre-set. For example, the multiple RTT thresholds may include a first RTT threshold and a second RTT threshold. The multiple RTT thresholds may be determined based on the desired network throughput and the RTT of data transmission between the sending device 110 and the receiving device 120 in a no-load state. The multiple RTT thresholds may be expressed as follows:
[0038] RTT low =RTT base *(1+σ) (1)
[0039] RTT target =RTT low *(1+kσ) (2)
[0040] RTT low Indicates the first RTT threshold, RTT target Indicates the second RTT threshold, RTT base represents the RTT of data transmission between the sending device 110 and the receiving device 120 in a no-load state, and σ represents a rate control factor. When the network has a high throughput requirement, σ is increased, and when the network is sensitive to delay, σ is decreased.
[0041] For example, the congestion level of data transmission indicated by the first RTT threshold may be lower than the congestion level of data transmission indicated by the second RTT threshold. For example, the first RTT threshold may indicate that there is no or substantially no congestion condition for data transmission, while the second RTT threshold may indicate an acceptable or tolerable congestion condition for data transmission.
[0042] In some embodiments, if the RTT calculated by the sending device 110 is less than the first RTT threshold, that is, RTT < RTT low , the sending device 110 may consider that the network currently used for data transmission is very idle. In this case, the sending device 110 may increase the current transmission rate. In the process of increasing the transmission rate, the sending device 110 may increase the current transmission rate at a larger speed. The process of increasing the current transmission rate may be implemented according to the following formula.
[0043] R t =R c +cnt*R ai (3)
[0044] cnt++ (4)
[0045] Where R c Indicates the current transmission rate, R ai represents the predetermined reference rate increment, cnt represents the rate adjustment step, R t Indicates the updated transmission rate.
[0046] The current transmission rate can be first increased according to formula (3), for example, the initial value of cnt can be set to 1. After increasing the current rate, if the data transmission still does not reach the congestion level after the sending device 110 increases the transmission rate, for example, after adjusting the rate, it is detected that the RTT is still less than the first RTT threshold, then the value of cnt can be increased, thereby increasing the current transmission rate more aggressively until the transmission rate and the occupancy level of the network available bandwidth are balanced. In this way, the available network bandwidth for data transmission can be utilized to the maximum extent, and the balance between the transmission rate and the occupancy level of the network available bandwidth can be achieved as soon as possible, thereby avoiding the waste of resources caused by too low data transmission rate.
[0047] Optionally, in order to avoid sudden congestion caused by excessively fast growth rate, the determined updated transmission rate may be smoothed, for example:
[0048] R c ′=(R t +R c ) / 2 (5)
[0049] Where R c ′ is the updated transmission rate after smoothing.
[0050] In some embodiments, if the RTT calculated by the sending device 110 is greater than the first RTT threshold but less than the second RTT threshold, that is, the RTT low <RTT<RTT target , the sending device 110 may consider that the network currently used for data transmission has some congestion, but the congestion has not reached an unacceptable level. In this case, the sending device 110 may also increase the current transmission rate. The process of increasing the current transmission rate can be implemented according to the following formula.
[0051] R t =R c +R ai (6)
[0052] Compared to RTT<RTT low , when RTT low <RTT<RTT target When the transmission rate is increased, the transmitting device 110 may increase the current transmission rate at a relatively conservative rate. For example, the transmission rate is increased by only a predetermined reference rate increment R. aiIf the sending device 110 determines that the calculated RTT value still does not exceed the second RTT threshold after adjusting the transmission rate, it still increases the RTT value by the predetermined reference rate R. ai The current transmission rate is increased again until the transmission rate and the occupancy rate of the network available bandwidth reach a balance. In this way, the transmission rate can be increased by an appropriate amount to improve the occupancy rate of the network bandwidth, and the congestion level of the network can be maintained within an acceptable range.
[0053] In some embodiments, if the RTT calculated by the sending device 110 is greater than the second RTT threshold, that is, RTT>RTT target , the sending device 110 may consider that the congestion level of the network currently used for data transmission has reached an unacceptable level. In this case, the sending device 110 may reduce the current transmission rate. The process of reducing the current transmission rate may be implemented according to the following formula.
[0054]
[0055] R t =R c *dec percent (8)
[0056] where dec percen t represents the drop rate, max dec represents the maximum allowable drop rate, β represents the drop granularity, R c Indicates the current transmission rate, R t Indicates the updated transmission rate.
[0057] The sending device 110 can calculate the down rate according to the calculated RTT, the second RTT threshold and the down rate granularity. It should be understood that the calculated down rate should be within the range of the maximum allowable down rate. Similarly, in order to avoid bandwidth waste due to excessive downscaling and the network suddenly being too idle, the determined updated transmission rate can be smoothed according to formula (5).
[0058] In the above congestion control scheme, multiple RTTs are set to achieve different adjustment modes for the transmission rate of the network. In this way, congestion control can be achieved more finely and the transmission efficiency of the system can be improved.
[0059] In some embodiments, in addition to considering the comparison between the calculated RTT and one or more RTTs to update the current rate of data transmission, other factors may also be considered, such as the actual amount of data to be sent or the transmission rate that the sending device 110 can actually support. Because the network may cause the current calculated RTT to be lower than the RTT threshold due to the current amount of data to be sent being very low. At this time, the sending device 120 may think that the bandwidth occupancy rate is very low and increase the current transmission rate at a more aggressive rate. However, once the amount of data to be sent surges and the transmission rate increases too fast, it will cause sudden congestion in network data transmission, which is not conducive to the stability of data transmission.
[0060] like Figure 3A As shown, at time T0, assuming that the starting rate of data transmission is R cc (t 0 ), the available bandwidth of the bottleneck link is B a During the period from T0 to T1, due to the initial rate R cc (t 0 ) data transmission bandwidth required is greater than the available bandwidth B a During this period, the bottleneck link will quickly accumulate data packets, and the sending device 110 will receive congestion information and start to reduce the speed at time T1. cc (t 0 ) data transmission bandwidth required and available bandwidth B a The difference is too large, and it takes time T2-T1 to reduce the rate. During this period, the queue in the bottleneck link will further increase, and at time T2, that is, the current sending rate R cc (t 2 ) The bandwidth required for data transmission corresponding to the a In this case, packet loss may occur during data transmission or priority flow control may be triggered, both of which will cause system performance to degrade.
[0061] During the period from T2 to T3, since a large number of data packets have accumulated in the link during the period from T1 to T2, it is necessary to further reduce the speed to empty the queue accumulation in the bottleneck link. At T3, the data packets in the bottleneck link have been basically emptied, and the rate control algorithm starts to increase the speed again. The bandwidth required for data transmission corresponding to the increased rate meets the available bandwidth B aBefore, part of the bandwidth will be wasted. At T4, this transmission cycle ends. During T4 to T5, the system can use the synchronized data for calculation, so the link will be in an idle phase, that is, there are no or almost no data packets to be transmitted. At this time, since the sending device 110 continues to not receive congestion control information, it will quickly increase the transmission rate, causing the above process to repeat again in the next transmission cycle.
[0062] In order to further achieve more reasonable congestion control, the sending device 110 can detect the amount of data sent by the sending device 110 during the time interval from when the RTT probe starts until the response information for the data packet is received from the receiving device. If the amount of data sent during the time interval is byte rtt satisfy
[0063] byte rtt <RTT*R c -γ (9)
[0064] Even if the calculated RTT is less than one or more RTT thresholds, the increase in the current transmission rate can be suspended, where R c Indicates the current transmission rate, and γ indicates the correction factor. This correction factor can prevent the algorithm from being unable to increase the speed normally due to misjudgment when the rate is too low.
[0065] Optional, the amount of data sent in bytes during the time interval rtt When the threshold data volume is not met, if the calculated RTT is less than one or more RTT thresholds, only the value of the rate adjustment step cnt may be adjusted, for example, by adding one, so as to enable a faster recovery speed when determining the increase speed later.
[0066] By implementing the above scheme, Figure 3B As shown, during the period from T4 to T5, the following problems were avoided due to aggressive speed increase: Figure 3A The bandwidth required for data transmission increases significantly. Figure 3B At time T6 in the figure, the bandwidth required for data transmission corresponding to the transmission rate and the available bandwidth reach a balanced state, which is conducive to improving network stability and avoiding system performance degradation caused by packet loss.
[0067] As mentioned above, the RTT probe sent by the sending device 110 may be lost due to the jitter of the switch 130, so that the receiving device 120 cannot receive the RTT probe. Therefore, the sending device 110 cannot receive the response of the receiving device 120 to the RTT probe. If the sending device 110 does not detect the response information to the RTT probe within the time window for detecting the response information, but receives the CNP from the receiving device 120, the sending device 110 can determine that there is currently congestion, and thus reduce the current transmission rate.
[0068] For example, the time window for detecting the response information for the RTT probe may be determined in the following manner:
[0069]
[0070] Where β represents the speed reduction granularity and max dec Indicates the maximum allowable drop rate.
[0071] If the sending device 110 sends the RTT probe within the time window T fr If no response message is received within 10 seconds, but CNP is received, the speed can be reduced in the following ways:
[0072] Rt=Rc*max dec (11)
[0073] Where R c Indicates the current transmission rate, R t Indicates the updated transmission rate and max dec Indicates the maximum allowable drop rate.
[0074] The sending device 110 may reset the CNP timer to zero after receiving the CNP and record the deceleration time t dec At t dec ~t dec +RTT target During this period, if a response message is received for the RTT probe, the speed reduction triggered by CNP is canceled. If it exceeds t dec +T fr , if no response information to the RTT probe is received and a CNP message is received, the speed is reduced for the second time using formula (11), and the above process is repeated until the RTT probe timeout retransmission is triggered.
[0075] According to the solution of the present disclosure, on the one hand, a variety of different ways for triggering congestion regulation are implemented, and on the other hand, a more refined regulation process is implemented.
[0076] Example Process
[0077] Figure 4 A flow chart of a process 400 for congestion control according to some embodiments of the present disclosure is shown. The process 400 may be implemented at the first device 110.
[0078] At block 410 , the first device detects at least one of a reply message and a CNP associated with an RTT of data transmission between the first device and the second device.
[0079] At block 420, if the first device detects the reply message, then at block 430, based on a comparison of the RTT to at least one RTT threshold, a current transmission rate for data transmission is updated.
[0080] In some embodiments, the at least one RTT threshold may include a first RTT threshold and a second RTT threshold, and a first congestion level indicated by the first RTT threshold is less than a second congestion level indicated by the second RTT threshold.
[0081] In some embodiments, the first device may determine a rate adjustment step size in response to determining that the RTT is less than a first RTT threshold and increase the current transmission rate based on the rate adjustment step size and a predetermined reference rate increment.
[0082] In some embodiments, the first device may increase the current transmission rate based on a predetermined reference rate increment in response to determining that the RTT is greater than the first RTT threshold and less than the second RTT threshold.
[0083] In some embodiments, the first device may, in response to determining that the RTT is greater than a second RTT threshold, determine a downrate based on the RTT, the second RTT threshold, and a predetermined downrate granularity and reduce the current transmission rate based on the downrate.
[0084] In some embodiments, the first device may determine the amount of data sent by the first device within a time interval in response to determining that the RTT is less than at least one RTT threshold. The time interval is a time period from when the first device sends a data packet for detecting the RTT until receiving a response message for the data packet from the second device. If the first device determines that the amount of data sent is less than the threshold amount, the first device may maintain the current transmission speed.
[0085] At block 440 , if the first device does not detect a reply message but detects a CNP, then at block 450 , the current transmission rate is reduced.
[0086] In some embodiments, the first device may determine a first threshold time interval for allowing detection of response information based on at least one RTT threshold, a predetermined reference down rate, and a predetermined down rate granularity. The first threshold time interval indicates a tolerable duration from when the first device sends a data packet for detecting RTT until receiving response information for the data packet from the second device. If the first device detects CNP within the threshold time interval but does not detect response information, the first device may reduce the current transmission rate based on the reference down rate.
[0087] In some embodiments, the first device may determine the second threshold time interval based on the downtime required to reduce the current transmission rate and at least one RTT threshold. If the first device detects the response information within the second threshold time interval, the first device may resume the current transmission rate.
[0088] Example devices and equipment
[0089] The embodiments of the present disclosure also provide corresponding devices for implementing the above methods or processes. Figure 5 A schematic structural block diagram of an apparatus 500 for congestion control according to some embodiments of the present disclosure is shown.
[0090] like Figure 5 As shown, the apparatus 500 may include a detection module 510 configured to detect at least one of a response message and a congestion notification message CNP associated with a round trip time RTT of data transmission between the first device and the second device. The apparatus 500 may also include a rate control module 520 configured to update a current transmission rate of data transmission based on a comparison of the RTT with at least one RTT threshold in response to detecting the response message, and to reduce the current transmission rate in response to detecting the CNP but not detecting the response message.
[0091] In some embodiments, the at least one RTT threshold includes a first RTT threshold and a second RTT threshold, and a first congestion level indicated by the first RTT threshold is less than a second congestion level indicated by the second RTT threshold.
[0092] In some embodiments, the rate control module 520 may also be configured to determine a rate adjustment step in response to determining that the RTT is less than a first RTT threshold; and increase the current transmission rate based on the rate adjustment step and a predetermined reference rate increment.
[0093] In some embodiments, the rate control module 520 may also be configured to increase the current transmission rate based on a predetermined reference rate increment in response to determining that the RTT is greater than the first RTT threshold and less than the second RTT threshold.
[0094] In some embodiments, the rate control module 520 may be further configured to, in response to determining that the RTT is greater than a second RTT threshold, determine a downscaling rate based on the RTT, the second RTT threshold, and a predetermined downscaling granularity; and reduce the current transmission rate based on the downscaling rate.
[0095] In some embodiments, the rate control module 520 can also be configured to determine a threshold time interval allowing detection of response information based on at least one RTT threshold, a predetermined reference reduction rate and a predetermined reduction granularity, the threshold time interval indicating the tolerable duration between the first device sending a data packet for detecting RTT and receiving response information for the data packet from the second device; and in response to detecting CNP within the threshold time interval but not detecting response information, reducing the current transmission rate based on the reference reduction rate.
[0096] In some embodiments, the rate control module 520 can also be configured to determine a second threshold time interval based on the deceleration time required to reduce the current transmission rate and at least one RTT threshold; and in response to detecting response information within the second threshold time interval, restore the current transmission rate.
[0097] In some embodiments, the rate control module 520 can also be configured to determine the amount of data sent by the first device within a time interval in response to determining that the RTT is less than at least one RTT threshold, the time interval being the time period from when the first device sends a data packet for detecting the RTT until when response information for the data packet is received from the second device; and maintain the current transmission speed in response to determining that the amount of data sent is lower than the threshold amount.
[0098] The units included in the device 500 can be implemented in various ways, including software, hardware, firmware, or any combination thereof. In some embodiments, one or more units can be implemented using software and / or firmware, such as machine executable instructions stored on a storage medium. In addition to or as an alternative to machine executable instructions, some or all of the units in the device 500 can be implemented at least in part by one or more hardware logic components. As an example and not limitation, exemplary types of hardware logic components that can be used include field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), and the like.
[0099] Figure 6 1 shows a block diagram of a computing device / server 600 in which one or more embodiments of the present disclosure may be implemented. It should be understood that Figure 6 The computing device / server 600 shown is merely exemplary and should not constitute any limitation on the functionality and scope of the embodiments described herein.
[0100] like Figure 6 As shown, computing device / server 600 is in the form of a general-purpose computing device. Components of computing device / server 600 may include, but are not limited to, one or more processors or processing units 610, memory 620, storage device 630, one or more communication units 640, one or more input devices 660, and one or more output devices 660. Processing unit 610 may be an actual or virtual processor and is capable of performing various processes according to a program stored in memory 620. In a multi-processor system, multiple processing units execute computer executable instructions in parallel to increase the parallel processing capabilities of computing device / server 600.
[0101] The computing device / server 600 typically includes a plurality of computer storage media. Such media may be any available media accessible to the computing device / server 600, including but not limited to volatile and non-volatile media, removable and non-removable media. The memory 620 may be a volatile memory (e.g., registers, caches, random access memory (RAM)), a non-volatile memory (e.g., a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), flash memory), or some combination thereof. The storage device 630 may be a removable or non-removable medium, and may include a machine-readable medium, such as a flash drive, a disk, or any other medium, which may be capable of being used to store information and / or data (e.g., training data for training) and may be accessed within the computing device / server 600.
[0102] The computing device / server 600 may further include additional removable / non-removable, volatile / non-volatile storage media. Figure 6 As shown in , a disk drive for reading or writing from a removable, non-volatile disk (e.g., a "floppy disk") and an optical drive for reading or writing from a removable, non-volatile optical disk may be provided. In these cases, each drive may be connected to the bus (not shown) by one or more data media interfaces. The memory 620 may include a computer program product 625 having one or more program modules that are configured to perform various methods or actions of various embodiments of the present disclosure.
[0103] The communication unit 640 enables communication with other computing devices via a communication medium. Additionally, the functions of the components of the computing device / server 600 can be implemented in a single computing cluster or multiple computing machines that can communicate via a communication connection. Thus, the computing device / server 600 can operate in a networked environment using a logical connection with one or more other servers, a network personal computer (PC), or another network node.
[0104] Input device 650 may be one or more input devices, such as a mouse, keyboard, trackball, etc. Output device 660 may be one or more output devices, such as a display, speaker, printer, etc. Computing device / server 600 may also communicate with one or more external devices (not shown) as needed, such as storage devices, display devices, etc., with one or more devices that enable a user to interact with computing device / server 600, or with any device that enables computing device / server 600 to communicate with one or more other computing devices (e.g., a network card, a modem, etc.) through communication unit 640. Such communication may be performed via an input / output (I / O) interface (not shown).
[0105] According to an exemplary implementation of the present disclosure, a computer-readable storage medium is provided, on which one or more computer instructions are stored, wherein the one or more computer instructions are executed by a processor to implement the method described above.
[0106] Various aspects of the present disclosure are described herein with reference to the flowcharts and / or block diagrams of the methods, devices (systems) and computer program products implemented according to the present disclosure. It should be understood that each box in the flowchart and / or block diagram and the combination of each box in the flowchart and / or block diagram can be implemented by computer-readable program instructions.
[0107] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable congestion control device, thereby producing a machine, so that when these instructions are executed by the processing unit of the computer or other programmable congestion control device, a device that implements the functions / actions specified in one or more blocks in the flowchart and / or block diagram is generated. These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause the computer, programmable congestion control device, and / or other equipment to work in a specific manner, so that the computer-readable medium storing the instructions includes an article of manufacture, which includes instructions for implementing various aspects of the functions / actions specified in one or more blocks in the flowchart and / or block diagram.
[0108] Computer-readable program instructions may also be loaded onto a computer, other programmable congestion control device, or other device so that a series of operational steps are performed on the computer, other programmable congestion control device, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable congestion control device, or other device implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0109] The flow chart and block diagram in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to multiple implementations of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and a part of a module, program segment or instruction includes one or more executable instructions for realizing the logical function of the specification. In some implementations as replacements, the function marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two continuous square boxes can actually be executed substantially in parallel, and they can sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be realized by a special hardware-based system that performs the function or action of the specification, or can be realized by a combination of special hardware and computer instructions.
[0110] The above descriptions of various implementations of the present disclosure are exemplary, non-exhaustive, and not limited to the disclosed implementations. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described implementations. The selection of terms used herein is intended to best explain the principles of the implementations, practical applications, or improvements to the technology in the marketplace, or to enable other persons of ordinary skill in the art to understand the implementations disclosed herein.
Claims
1. A congestion control method, comprising: detecting a response message associated with a round trip time (RTT) of data transmission between the first device and the second device; as well as In response to detecting the reply message, based on a comparison of the RTT with at least one RTT threshold, and based on a current amount of data actually sent or a transmission rate actually supported by a sending device, updating the current transmission rate, wherein updating the current transmission rate comprises: in response to determining that the RTT is less than the at least one RTT threshold, determining an amount of data sent by the first device within a time interval, the time interval being a time period from when the first device sends a data packet for detecting the RTT until receiving reply information for the data packet from the second device; In response to determining that the data transmission amount is lower than the difference between the product of the RTT and the current transmission speed and the correction coefficient, the current transmission speed is maintained, or in response to determining that the data transmission amount does not meet the threshold amount, the value of the rate adjustment step is adjusted. 2 . The method according to claim 1 , wherein the at least one RTT threshold comprises a first RTT threshold and a second RTT threshold, a first congestion level indicated by the first RTT threshold being smaller than a second congestion level indicated by the second RTT threshold.
3. The method of claim 2, wherein updating the current transmission rate comprises: In response to determining that the RTT is less than the first RTT threshold, determining a rate adjustment step size; as well as The current transmission rate is increased based on the rate adjustment step size and a predetermined reference rate increment.
4. The method of claim 2, wherein updating the current transmission rate comprises: In response to determining that the RTT is greater than the first RTT threshold and less than the second RTT threshold, the current transmission rate is increased based on a predetermined reference rate increment.
5. The method of claim 2, wherein updating the current transmission rate comprises: In response to determining that the RTT is greater than the second RTT threshold, determining a downscaling rate based on the RTT, the second RTT threshold, and a predetermined downscaling granularity; as well as The current transmission rate is reduced based on the down rate.
6. A device for congestion control, comprising: A detection module configured to detect a response message associated with a round trip time RTT of data transmission between the first device and the second device; as well as The rate control module is configured as follows: In response to detecting the reply message, based on a comparison of the RTT with at least one RTT threshold, and based on a current amount of data actually sent or a transmission rate actually supported by a sending device, updating the current transmission rate, wherein updating the current transmission rate comprises: in response to determining that the RTT is less than the at least one RTT threshold, determining an amount of data sent by the first device within a time interval, the time interval being a time period from when the first device sends a data packet for detecting the RTT until receiving reply information for the data packet from the second device; In response to determining that the data transmission amount is lower than the difference between the product of the RTT and the current transmission speed and the correction coefficient, the current transmission speed is maintained, or in response to determining that the data transmission amount does not meet the threshold amount, the value of the rate adjustment step is adjusted.
7. An electronic device comprising: at least one processing unit; as well as At least one memory, the at least one memory being coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions causing the electronic device to perform the method according to any one of claims 1 to 5 when executed by the at least one processing unit.
8. A computer-readable storage medium having a computer program stored thereon, wherein the program, when executed by a processor, implements the method according to any one of claims 1 to 5.
Citation Information
Patent Citations
Network congestion control method and device
CN111817977A
Congestion control method, equipment and computer readable medium
CN113300974A