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

By comparing the current and target congestion window values ​​in network congestion control and dynamically adjusting the congestion window value to match the network status, the problem of the inability of existing technologies to adapt to network changes is solved, and efficient utilization of network resources and congestion avoidance are achieved.

CN120528846BActive Publication Date: 2025-10-03SHANDONG HAILIANG INFORMATION TECH RES INST
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511022031.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-07-24
Publication Date
2025-10-03
Estimated Expiration
2045-07-24

AI Technical Summary

Technical Problem

Existing network congestion control methods cannot make adaptive adjustments based on the actual network status, resulting in low network resource utilization and network congestion problems.

Method used

By comparing the current congestion window value with the most recently updated target congestion window value during the bandwidth detection or delay detection phase, the congestion window value is adjusted based on the number of times the new and old congestion window data are identical to match the current network status and dynamically adjust the congestion window.

Benefits of technology

It realizes the adaptive adjustment of network congestion control algorithm, effectively avoids network congestion and maximizes network bandwidth utilization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120528846B_ABST
    Figure CN120528846B_ABST
Patent Text Reader

Abstract

The present invention discloses a network card and a network congestion control method, device, electronic device, and storage medium, and relates to the field of network technology. The method includes determining the current congestion window value according to the bottleneck bandwidth and minimum round-trip delay at the current moment when entering the bandwidth detection phase or the delay detection phase, and obtaining the target congestion window value closest to the current moment in the historical record; if the current congestion window value is the same as the target congestion window value, obtaining a comparison record of the new and old congestion window data, and determining the target number of times the new and old congestion window values ​​are the same from the comparison record of the new and old congestion window data; determining a window adjustment value according to the target number of times, and determining a congestion window value that matches the current network state according to the window adjustment value and the current congestion window value. The present invention can solve the problem that the related art cannot adapt to network changes, and can dynamically adjust the congestion window value according to the actual network state and adapt to network changes.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

[0002] Network congestion control means reducing the speed of sending data to the network when network congestion occurs to prevent network performance from deteriorating; at the same time, when the network is idle, it maximizes the use of network resources by increasing the data sending speed.

[0003] When using TCP (Transmission Control Protocol) for data communication, related technologies use the Bottleneck Bandwidth and Round-trip propagation time (BBR) network congestion control algorithm to adjust the data transmission rate based on an ideal network capacity model to achieve efficient congestion control. However, this method cannot truly control congestion based on actual network conditions and cannot adapt to network changes. Summary of the Invention

[0004] The present invention provides a network congestion control method, device, electronic device, computer-readable storage medium and computer program product, which dynamically adjust the congestion window value according to the actual network status, can adapt to network changes, effectively avoid network congestion, and maximize the utilization of network bandwidth.

[0005] In order to solve the above technical problems, the present invention provides the following technical solutions:

[0006] One aspect of the present invention provides a network congestion control method, comprising:

[0007] If the current state is the bandwidth detection phase or the delay detection phase, the current congestion window value is determined based on the bottleneck bandwidth and minimum round-trip delay at the current moment, and the target congestion window value with the closest update date to the current moment in the congestion window history data record is obtained.

[0008] If the current congestion window value is the same as the target congestion window value, a comparison record of the new and old congestion window data is obtained, and a target number of times that the new and old congestion window values ​​are the same is determined from the comparison record of the new and old congestion window data.

[0009] A window adjustment value is determined according to the target number of times, and a congestion window value that matches the current network state is determined according to the window adjustment value and the current congestion window value.

[0010] Another aspect of the present invention provides a network congestion control device, comprising:

[0011] The current value calculation module is used to determine the current congestion window value according to the bottleneck bandwidth and minimum round-trip delay at the current moment if the current state is the bandwidth detection phase or the delay detection phase.

[0012] The historical value acquisition module is used to obtain the target congestion window value whose update date is closest to the current time in the congestion window historical data record.

[0013] The window dynamic adjustment module is used to obtain a comparison record of the new and old congestion window data if the current congestion window value is the same as the target congestion window value, and determine a target number of times the new and old congestion window values ​​are the same from the comparison record; determine a window adjustment value based on the target number of times, and determine a congestion window value that matches the current network status based on the window adjustment value and the current congestion window value.

[0014] The present invention also provides an electronic device comprising a memory and a processor, wherein the processor is configured to implement the steps of any of the above-mentioned network congestion control methods when executing a computer program stored in the memory.

[0015] The present invention also provides a computer-readable storage medium having a computer program stored thereon. When the computer program is executed by a processor, the computer program implements the steps of any of the above-mentioned network congestion control methods.

[0016] Finally, the present invention further provides a network card, comprising at least a flow control processor and a memory, wherein the flow control processor is connected to a central processing unit of a host via a bus; the flow control processor receives a current congestion window value at each moment in a bandwidth detection phase or a delay detection phase, calculated by the central processing unit during a communication process of the host based on a transmission control protocol, and stores the congestion window value at each moment in the memory; the flow control processor reads the current congestion window value from the memory, and reads a target congestion window value having an update date closest to the corresponding moment from a congestion window history data record of the host, and determines a congestion window value matching the current network state by following the steps of any of the above-mentioned network congestion control methods.

[0017] The advantage of the technical solution provided by the present invention is that the congestion window value calculated based on the ideal conditions by the network congestion control algorithm is compared with the most recently updated congestion window value after entering the bandwidth detection phase or the delay detection phase to determine whether it conforms to the current actual network state. If it does not conform, the congestion window adjustment value is determined based on the number of times the new and old congestion window values ​​are the same, and the congestion window adjustment value is used to adjust the currently calculated congestion window value, so that the ideal congestion window value of the network congestion control algorithm can be adjusted in real time according to the network state, and the network can be regulated using a congestion window value that better matches the current actual network state, so that it can adapt to network changes, not only effectively avoid network congestion, but also maximize the utilization of network bandwidth. In addition, the present invention also provides a corresponding implementation device, electronic device, computer-readable storage medium and network card for the network congestion control method, further making the method more practical. The device, electronic device, computer-readable storage medium and network card have corresponding advantages. BRIEF DESCRIPTION OF THE DRAWINGS

[0018] In order to more clearly illustrate the technical solutions of the present invention or related technologies, the following briefly introduces the drawings required for use in the embodiments or related technical descriptions. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.

[0019] Figure 1 A flowchart of controlling network congestion using a fast retransmit method;

[0020] Figure 2 A schematic diagram of the hardware composition framework applicable to the network congestion control method provided by the present invention;

[0021] Figure 3 A flowchart of a network congestion control method provided by the present invention;

[0022] Figure 4 A flowchart of an exemplary application scenario of the network congestion control method provided by the present invention;

[0023] Figure 5 A flowchart of a network congestion control method in an exemplary application scenario;

[0024] Figure 6 A flow chart of another network congestion control method provided by the present invention;

[0025] Figure 7 A structural framework diagram of an exemplary embodiment of the network congestion control device provided by the present invention;

[0026] Figure 8 A structural diagram of an exemplary embodiment of an electronic device provided by the present invention;

[0027] Figure 9 A structural diagram of an exemplary embodiment of a network card provided by the present invention;

[0028] Figure 10 Schematic diagram of the structural framework of a network card in related technology. DETAILED DESCRIPTION

[0029] In order to enable those skilled in the art to better understand the technical solutions of the present invention, the present invention will be further described in detail below in conjunction with the accompanying drawings and specific embodiments. The terms "first," "second," "third," "fourth," etc. in the specification and the accompanying drawings are used to distinguish different objects rather than to describe a specific order. Furthermore, the terms "including" and "having," as well as any variations thereof, are intended to cover non-exclusive inclusions. The term "exemplary" means "serving as an example, embodiment, or illustration." Any embodiment described herein as "exemplary" is not necessarily to be construed as superior or better than other embodiments.

[0030] Besides directly connecting computing devices in the same computer room or physical space via cables, different computing devices typically communicate over a network. When computing devices communicate, they send data onto the network. When the data arrives at a node in the network, such as a router, it either processes the data or stores it directly in local memory. The node then retrieves the data and forwards it to a router closer to the receiving end, or directly to the receiving end, based on the address carried in the data. Due to limited local memory in routers, if too much data arrives at once, the router may be unable to receive all the data and may discard some of it. Alternatively, if too much data arrives at the same router, later data may have to wait a long time before being forwarded. This can lead to network congestion due to the router's inability to process data in a timely manner. If network transmission is based on TCP (Transmission Control Protocol), TCP's retransmission mechanism can delay data arrival when data is lost. However, frequent retransmissions do not truly alleviate network congestion.

[0031] Currently, network congestion control is achieved through two methods: end-to-end congestion control and network-assisted congestion control. With end-to-end congestion control, the data sender can autonomously monitor network congestion status and adjust the transmission rate accordingly, for example, based on factors such as packet transmission timeouts without receiving acknowledgment messages, significant increases in round-trip time, and the receipt of duplicate acknowledgment messages. If signs of congestion are detected, the data transmission rate is reduced; if no signs of congestion are present, the data transmission rate is gradually increased. With network-assisted congestion control, routers in the network notify the sender of congestion status. One method involves the router directly sending an explicit congestion notification message to the sender; the other involves the router modifying a specific flag bit in the en route data packet to indicate congestion. This flag bit arrives with the receiving end, and the receiving end then relays this information to the sender in the returned acknowledgment message.

[0032] Because the network layer typically doesn't provide direct congestion feedback, TCP-based networks employ end-to-end congestion control mechanisms. When TCP detects congestion, it reduces the data transmission rate; when it detects no congestion, it increases the data transmission rate. Unlike traditional loss-based algorithms, this mechanism can also adjust the data transmission rate by adjusting the congestion window (cwnd) through methods such as BBR's slow start, fast recovery, fast retransmit, and congestion avoidance. These methods proactively monitor network status to avoid high latency and inefficient transmission caused by buffer overflows. This method constructs a network capacity model by measuring bottleneck bandwidth and minimum propagation delay in real time, accurately adjusting the transmission rate accordingly for efficient congestion management.

[0033] Take adjusting cwnd by fast retransmission as an example, Figure 1As shown in the figure, the sender sends data segment No. 1. After receiving data segment No. 1, the receiver sends an acknowledgment message for data segment No. 1 to the sender. Before it reaches the sender, the sender can send data segment No. 2 in the sending window. After receiving data segment No. 2, the receiver will also send an acknowledgment message for data segment No. 2 back to the sender. After it arrives, the sender can send data segment No. 3 in the sending window. When data segment No. 3 is lost, the receiver will not send an acknowledgment message for segment No. 3 to the sender. The sender can continue to send data segment No. 4 in the sending window. When the receiver receives data segment No. 4 and finds that it is not a data segment that arrived in sequence, it will send a duplicate acknowledgment message for data segment No. 2 to the sender, indicating that it has received the segment that arrived out of sequence and hopes to receive the lost data segment No. 3. The sender can continue to send data segment No. 5 in the sending window. The receiver receives data segment No. 5 and sends The data segment now arrives out of sequence, and the sender continues to send duplicate ACK messages for data segment 2 to indicate that it has received the out-of-sequence segment and hopes to receive the lost data segment 3. The sender can then continue to send the last data segment in the send window, data segment 6. The receiver receives data segment 6 and finds that it has arrived out of sequence. It continues to send duplicate ACK messages for data segment 2 to indicate that it has received the out-of-sequence segment and hopes to receive the lost data segment 3. At this point, the sender has received three consecutive duplicate ACK messages for data segment 2 and will immediately retransmit data segment 3. After receiving this, the receiver sends an ACK message for data segment 6 to the sender. When the sender receives this ACK message, it is sure that all six data segments in the send window have been sent to the receiver. Because the receiver received the retransmission message early, the sender does not time out and retransmit data segment 3. Accordingly, the ssthresh (slow start threshold) used by the fast retransmit method is fixed to the cwnd value when three duplicate acknowledgment messages are received. Half of , that is: .

[0034] Because TCP determines congestion by detecting packet loss and adjusting its transmission strategy accordingly, the threshold parameters involved in adjusting cwnd, such as ssthresh, are empirical or fixed values ​​and cannot be dynamically adjusted based on actual network conditions. Although BBR can dynamically adjust the window value, its calculation is based on an idealized network capacity model, and actual calculations often use approximate values ​​that do not truly reflect network conditions and cannot be adjusted based on actual network conditions.

[0035] In view of this, after entering the bandwidth detection phase or the delay detection phase, the present invention compares the congestion window value calculated by the network congestion control algorithm based on the ideal situation with the most recently updated congestion window value to determine whether it conforms to the current actual network state. If the current congestion window value is the same as the target congestion window value, a comparison record of the new and old congestion window data is obtained, and a target number of times the new and old congestion window values ​​are the same is determined from the comparison record; a window adjustment value is determined based on the target number, and a congestion window value that matches the current network state is determined based on the window adjustment value and the current congestion window value. In this way, the ideal congestion window value of the network congestion control algorithm can be adjusted in real time according to the network state, and the congestion window value that better matches the current actual network state is used to regulate the network and adapt to network changes.

[0036] In conjunction with the specific application environment architecture or specific hardware architecture that the execution of the network congestion control method relies on, the specific application environment architecture or specific hardware architecture is described here. Figure 2 Some possible application scenarios involved in the technical solution of the present invention are introduced by way of example, which may include the following:

[0037] In this embodiment, the programmable hardware unit of the SmartNIC can be defined as a flow control processor. In combination with corresponding supporting software, the BBR algorithm and the following logic are written into a computer program using hardware programming languages ​​such as Verilog (hardware programming language) or VHDL (hardware programming language). This program is then fixed. If the current state is the bandwidth detection phase or the delay detection phase, the BBR algorithm is used to determine the current congestion window value based on the current bottleneck bandwidth and minimum round-trip delay. The target congestion window value with the closest update date to the current time is obtained from the congestion window history data record. If the current congestion window value is the same as the target congestion window value, a comparison record of the old and new congestion window data is obtained, and a target number of times the new and old congestion window values ​​are the same is determined from the comparison record. A window adjustment value is determined based on the target number of times, and a congestion window value that matches the current network state is determined based on the window adjustment value and the current congestion window value.

[0038] After the computer program corresponding to the above method is embedded in the flow control processor, the Smart NIC is inserted into the server's PCIe (Peripheral Component Interconnect Express) card slot. The Smart NIC controls the TCP traffic between the server and other computing devices. The communication process between the server and other computing devices can adapt to network changes, effectively avoid network congestion, maximize network bandwidth utilization, and ensure the server's communication performance.

[0039] It should be noted that the above application scenarios are only shown to facilitate understanding of the ideas and principles of the present invention, and the embodiments of the present invention are not limited in this respect. On the contrary, the embodiments of the present invention can be applied to any applicable scenario. After introducing the technical solution of the present invention, various non-limiting embodiments of the present invention are described in detail below with reference to the accompanying drawings and specific embodiments. First, please refer to Figure 3 , Figure 3 This is a flow chart of a network congestion control method provided in this embodiment. This embodiment may include the following contents:

[0040] S301: If the current state is the bandwidth detection phase or the delay detection phase, determine the current congestion window value based on the bottleneck bandwidth and minimum round-trip delay at the current moment, and obtain the target congestion window value with the closest update date to the current moment in the congestion window history data record.

[0041] This embodiment can first use the BBR algorithm based on the network capacity model, that is, BDP=BtlBw×RTprop to determine the current congestion window value, where BDP (Bandwidth Delay Product) is used to represent the product of the capacity of a data link (bits per second) and the round-trip communication delay (in seconds), BtlBw represents the bottleneck bandwidth at the current moment, which is used to replace the theoretical bandwidth of the network capacity model, and RTprop represents the minimum round-trip delay at the current moment, which is used to replace the RTT (Round Trip Time) of the network capacity model. The round-trip time refers to the time it takes for the sender to send a message and the receiver to receive the confirmation message of the message. Figure 4As shown, the process of controlling network congestion using the BBR algorithm sequentially goes through the startup phase (also known as STARTUP), the drain phase (also known as DRAIN), the bandwidth probe phase (ProbeBW), and the delay probe phase (ProbeRTT). In the STARTUP phase, the sending rate increases exponentially to quickly detect the bandwidth limit, for example, using the slow start method for congestion control. In the DRAIN phase, accumulated buffer data is drained to prepare for subsequent stable transmission, for example, using congestion avoidance methods for congestion control. After the congestion avoidance phase of Drain, the network enters the bandwidth probe phase and the delay probe phase, which are long-term states. These two phases dynamically maintain the most accurate RTProp and BltBW. In the bandwidth probe phase, the sending rate is periodically fine-tuned to maintain bandwidth utilization, while in the delay probe phase, the sending rate is proactively reduced to detect the minimum RTT. After entering the bandwidth probe and delay probe phases, this embodiment dynamically adjusts the congestion window value based on actual network changes through steps S301-S303.

[0042] Among them, such as Figure 5 As shown in the figure, during the STARTUP phase, the congestion control process using the slow start method is as follows: the sender's send window is equal to the congestion window, and the number of data segments sent is equal to the congestion window value. After receiving the data segment, the receiver replies with an acknowledgment message to the sender. Upon receiving the acknowledgment message, the sender adjusts the congestion window value by +1. With each transmission round, cwnd increases exponentially. If the current congestion window value cwnd is equal to ssthresh (the slow start threshold), the congestion avoidance algorithm adjusts cwnd. When entering the DRAIN phase, congestion control using the congestion avoidance algorithm is as follows: cwnd increases linearly by 1 with each transmission round. For example, if 4 of 24 data segments are lost during transmission, the receiver receives 20 data segments and replies with 20 acknowledgments to the sender. After a period of time, the retransmission timers for the 4 lost segments expire. The sender determines that congestion may have occurred, adjusts cwnd and ssthresh, and re-applies the slow start algorithm to adjust cwnd.

[0043] In this embodiment, the congestion window value within a past time period, i.e., the historical time period, is recorded. For ease of description, it is defined as a congestion window historical data record. Each historical congestion window value in the congestion window historical data record has a corresponding recording time or storage time, which is defined as an update date in this embodiment. For example, the update date can be determined by a timestamp. In this embodiment, the most recent historical congestion window value is defined as a target congestion window value.

[0044] S302: If the current congestion window value is the same as the target congestion window value, obtain a comparison record of the new and old congestion window data, and determine a target number of times that the new and old congestion window values ​​are the same from the comparison record of the new and old congestion window data.

[0045] The comparison record of the old and new congestion window data refers to each comparison between the current congestion window value and the target congestion window value over a period of time. The comparison between the current congestion window value and the target congestion window value includes two situations: the two are the same and the two are different. This step counts the number of times the current congestion window value and the target congestion window value are the same over the past period of time. This step is defined as the target number.

[0046] S303: Determine a window adjustment value according to the target number of times, and determine a congestion window value that matches the current network state according to the window adjustment value and the current congestion window value.

[0047] After the target number is determined in the previous step, this step uses the target number to measure the actual network state and determines the adjustment value for the current congestion window value calculated by BBR based on the target number. This step is defined as the window adjustment value. After the window adjustment value is determined, the current congestion window value is adjusted according to the window adjustment value. The adjusted congestion window value is the value that best matches the current network state. When the window adjustment value is a cumulative value, the sum of the window adjustment value and the current congestion window value is the congestion window value that matches the current network state. When the window adjustment value is a decay value, the positive difference between the window adjustment value and the current congestion window value is the congestion window value that matches the current network state. The target number of S302 is updated at the same time, and the original state of the BBR algorithm is restored.

[0048] In the technical solution provided in this embodiment, the congestion window value calculated by the network congestion control algorithm based on ideal conditions is compared with the most recently updated congestion window value after entering the bandwidth detection phase or the delay detection phase to determine whether it conforms to the current actual network status. If it does not conform, the congestion window adjustment value is determined based on the number of times the new and old congestion window values ​​are the same. The congestion window adjustment value is used to adjust the currently calculated congestion window value, thereby enabling the ideal congestion window value of the network congestion control algorithm to be adjusted in real time according to the network status. The network is regulated using a congestion window value that better matches the current actual network status, thereby enabling adaptive network changes, effectively avoiding network congestion, and maximizing network bandwidth utilization.

[0049] The above embodiment does not limit how to determine the window adjustment value. This embodiment provides an exemplary implementation method, which may include the following:

[0050] An exemplary method for determining the window adjustment value is: obtaining the maximum value of the network status fluctuation; performing corresponding processing on the product of the target number and the fluctuation adjustment factor through the target data processing function to obtain a candidate window adjustment value; comparing the candidate window adjustment value and the maximum value of the network status fluctuation, and taking the smaller value as the window adjustment value.

[0051] The maximum value of network state fluctuation can be flexibly set based on actual conditions. The target data processing function is the function that requires data processing. For example, a data processing method that rounds the candidate window adjustment value to a specified number of decimal places or an integer, or a data processing method that rounds the candidate window adjustment value to an integer, does not affect the implementation of the present invention. The fluctuation adjustment factor can be flexibly set based on actual conditions and is not limited in this embodiment. Once the window adjustment value is determined, the sum of the value and the current congestion window value is used as the final congestion window value.

[0052] Another exemplary method for determining the window adjustment value is: obtaining a network fluctuation weight coefficient and a network fluctuation adjustment factor; using the target number as the independent variable and the window adjustment value as the dependent variable, and determining the linear transformation relationship between the target number and the window adjustment value based on the network fluctuation weight coefficient and the network fluctuation adjustment factor, so as to determine the window adjustment value based on the linear transformation relationship.

[0053] The network fluctuation weight coefficient and the network fluctuation adjustment factor can be flexibly set according to actual conditions, and this embodiment does not impose any restrictions on this. When the window adjustment value is determined, the sum of the window adjustment value and the current congestion window value is used as the final congestion window value.

[0054] As an efficient implementation method, the present invention can pre-construct a first window adjustment value calculation formula and a second window adjustment value calculation formula, and store the first and second window adjustment value calculation formulas locally. At the same time, corresponding trigger call conditions are set. The trigger call condition for the first window adjustment value calculation formula is a data processing demand scenario, and the trigger call condition for the second window adjustment value calculation formula is a linear change scenario. Upon receiving a user's window adjustment value calculation request, a scenario tag is extracted from the window adjustment value calculation request. If the scenario tag is 1, it corresponds to a data processing demand scenario; if the scenario tag is 0, it corresponds to a linear change scenario. The corresponding window adjustment value calculation formula is called based on the scenario tag to calculate the window adjustment value.

[0055] Among them, the calculation relationship of the first window adjustment value can be expressed as , x represents the target number, max_value represents the maximum network status fluctuation, w1 represents the fluctuation adjustment factor, f1(x) is the window adjustment value calculated using the first window adjustment value calculation formula, and the round function is a common mathematical function in programming languages ​​and data processing tools. The second window adjustment value calculation formula can be expressed as f2(x)=w2*x+a, where x represents the target number, w2 represents the network fluctuation weight coefficient, a represents the network fluctuation adjustment factor, and f2(x) is the window adjustment value calculated using the second window adjustment value calculation formula. As a simple implementation, a=0 and w2=1, that is, the target number is directly used as the window adjustment value.

[0056] As can be seen from the above, this embodiment provides multiple calculation methods for window adjustment values ​​according to different scenarios, which can adapt to different network changes and maximize the utilization of network bandwidth while effectively avoiding network congestion.

[0057] Based on the above embodiments, Figure 6 As shown, when executing S301, if the target congestion window value is not found, that is, if the target congestion window value cannot be obtained, the current congestion window value is used as the target congestion window value and the congestion window value that matches the current network state. At the same time, the number of times the new and old congestion window values ​​are identical in the comparison record of the new and old congestion window data is updated to the initial value. In other words, if there is no historical data recorded, the calculated current cwnd value can be recorded as the initial record value, the number of comparisons is recorded as zero, and the cwnd value of the BBR algorithm is set to this value, and the BBR algorithm is restored to its original state.

[0058] Based on the above embodiment, after comparing the current congestion window value with the target congestion window value, if the current congestion window value and the target congestion window value are different, the target congestion window value is updated based on the current congestion window value, and the number of times the new and old congestion window values ​​are identical in the comparison record between the new and old congestion window data is cleared to zero. In other words, if the calculated value in S301 is different from the most recently recorded calculated value, the record of the calculated cwnd value is updated, and the number of times the comparison is identical is cleared to zero, restoring the BBR algorithm to its original state.

[0059] The above embodiment does not limit how to determine the current congestion window value. This embodiment provides an exemplary implementation method, which may include the following:

[0060] The minimum round-trip time of each message sent and received within the preset sliding time window is used as the minimum round-trip delay at the current moment. The bottleneck bandwidth at the current moment is determined based on the maximum amount of successfully sent and received messages within each unit time within the preset sliding time window. The current congestion window value is obtained by multiplying the current state's gain factor, the minimum round-trip delay, and the bottleneck bandwidth.

[0061] In this embodiment, sampling is performed during periods of no queuing, such as when the sending rate does not exceed BtlBw. RTT data is continuously recorded over a period of time. This period of time is referred to as a time window, and the minimum value is taken as the estimated RTprop. The current minimum round-trip delay can be determined using RTprop = min(RTT_samples_over_window), where samples over window is a sliding time window, such as 10 seconds. The bottleneck bandwidth can be estimated by calculating the amount of data successfully delivered per unit time (delivery rate). This can be determined using the relationship BtlBw = max(delivery_rate_samples_over_window), where delivery rate = Δdeliveryrate / Δtime, where Δtime is the time between sending a message and receiving an acknowledgment for that message. Δdeliveryrate is the positive difference between the amount of successfully sent and received messages at the time the message was sent and the amount of successfully received and sent messages at the time the acknowledgment for that message was received. Again, using a sliding window of approximately 10 seconds, the maximum value is taken. Once the bottleneck bandwidth and minimum round-trip delay at the current moment are determined, the current window value can be calculated according to gain×BtlBw×Rtprop, where gain is a gain factor and uses different values ​​in different stages. If the current state is the bandwidth detection stage, when it is in the speed-up detection period, the gain factor is the first preset value, such as 1.25±fluctuation value; when it is in the speed-down emptying period, the gain factor is the second preset value, such as 0.75±fluctuation value; if the current state is the delay detection stage, the gain factor is the third preset value, such as 1±fluctuation value, temporarily reducing the sending rate to measure accurate RTprop. For example, in the Startup stage, gain=2 / ln(2)≈2.89 (exponential growth), in the Drain stage: gain=1 / 2.89≈0.35 (rapid speed reduction), in the ProbeBW stage: gain=1.25 (speed-up detection) and gain=0.75 (speed-down emptying) are used alternately, and in the ProbeRTT stage: gain=1.

[0062] As can be seen from the above, this embodiment determines the minimum round-trip delay through a sliding time window, which can effectively filter out instantaneous noise and improve the accuracy of the minimum round-trip delay. It also uses a sliding window to determine the bottleneck bandwidth, avoiding instantaneous fluctuation interference, improving the accuracy of the bottleneck bandwidth, and thus effectively improving the calculation accuracy of the congestion window value.

[0063] It should be noted that there is no strict order in which the steps in the present invention are performed. As long as they conform to a logical order, the steps can be performed simultaneously or in a predetermined order. Figure 3 and Figure 6 This is just a schematic and does not mean that this is the only execution order.

[0064] The present invention also provides a corresponding device for the network congestion control method, which further makes the method more practical. Among them, the device can be described from the perspective of functional modules and hardware. The network congestion control device provided by the present invention is introduced below. The device is used to implement the network congestion control method provided by the present invention. In this embodiment, the network congestion control device may include or be divided into one or more program modules. The one or more program modules are stored in a storage medium and executed by one or more processors to complete the network congestion control method disclosed in Example 1. The program module referred to in this embodiment refers to a series of computer program instruction segments that can complete specific functions, which is more suitable for describing the execution process of the network congestion control device in the storage medium than the program itself. The following description will specifically introduce the functions of each program module of this embodiment. The network congestion control device described below and the network congestion control method described above can be referenced to each other.

[0065] From the perspective of functional modules, see Figure 7 , Figure 7 This is a structural diagram of a network congestion control device provided in this embodiment in a specific implementation manner. The device may include:

[0066] The current value calculation module 701 is configured to determine the current congestion window value according to the current bottleneck bandwidth and minimum round-trip delay if the current state is the bandwidth detection phase or the delay detection phase.

[0067] The historical value acquisition module 702 is configured to acquire the target congestion window value whose update date is closest to the current time in the congestion window historical data record.

[0068] The dynamic window adjustment module 703 is configured to obtain a comparison record of the old and new congestion window values ​​if the current congestion window value is the same as the target congestion window value, and determine a target number of times the old and new congestion window values ​​are the same from the comparison record; determine a window adjustment value based on the target number of times; and determine a congestion window value that matches the current network state based on the window adjustment value and the current congestion window value.

[0069] Exemplarily, in some implementations of this embodiment, the above-mentioned window dynamic adjustment module 703 can be used to: obtain the maximum value of the network status fluctuation; perform corresponding processing on the product of the target number and the fluctuation adjustment factor through the target data processing function to obtain a candidate window adjustment value; compare the candidate window adjustment value and the maximum value of the network status fluctuation, and use the smaller value as the window adjustment value.

[0070] Illustratively, in some other implementations of this embodiment that are parallel to the above-mentioned embodiments, the above-mentioned window dynamic adjustment module 703 can also be used to: obtain the network fluctuation weight coefficient and the network fluctuation adjustment factor; use the target number of times as the independent variable and the window adjustment value as the dependent variable, and determine the linear transformation relationship between the target number of times and the window adjustment value according to the network fluctuation weight coefficient and the network fluctuation adjustment factor, so as to determine the window adjustment value according to the linear transformation relationship.

[0071] Illustratively, in some other implementations of this embodiment, the above-mentioned window dynamic adjustment module 703 can also be used to: if the current congestion window value is different from the target congestion window value, then update the target congestion window value according to the current congestion window value, and at the same time clear the number of times the new and old congestion window values ​​are the same in the comparison record of the new and old congestion window data.

[0072] Exemplarily, in some other implementations of this embodiment, the above-mentioned window dynamic adjustment module 703 can also be used to: if the target congestion window value cannot be obtained, then the current congestion window value is used as the target congestion window value and the congestion window value matching the current network status, and at the same time, the new and old congestion window values ​​in the new and old congestion window data comparison record are updated the same number of times as the initial value.

[0073] Illustratively, in some other implementations of this embodiment, the current value calculation module 701 may also be configured to: use the minimum round-trip time of each message sent and received within a preset sliding time window as the minimum round-trip delay at the current moment; determine the bottleneck bandwidth at the current moment based on the maximum amount of successfully sent and received messages within each unit time within the preset sliding time window; and obtain the current congestion window value based on the product of the gain factor, the minimum round-trip delay, and the bottleneck bandwidth in the current state; wherein, if the current state is the bandwidth detection phase, the gain factor is a first preset value when in the speed increase detection phase, and is a second preset value when in the speed decrease emptying phase; and if the current state is the delay detection phase, the gain factor is a third preset value.

[0074] For the description of the features in the embodiment corresponding to the network congestion control device, please refer to the relevant description of the embodiment corresponding to the network congestion control method, and will not be repeated here.

[0075] The network congestion control device mentioned above is described from the perspective of functional modules. Furthermore, the present invention also provides an electronic device, which is described from the perspective of hardware. Figure 8 A schematic diagram of the structure of an electronic device provided in an embodiment of the present invention in one implementation manner. The electronic device includes a memory 801 and a processor 802. The memory 801 stores a computer program, and the processor 802 is configured to run the computer program to perform the steps of any of the above-mentioned network congestion control method embodiments.

[0076] An embodiment of the present application further provides a computer-readable storage medium, in which a computer program is stored. The computer program is configured to execute the steps of any of the above-mentioned network congestion control method embodiments when running.

[0077] In an exemplary embodiment, the computer-readable storage medium may include, but is not limited to, various media that can store computer programs, such as a USB flash drive, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk, or an optical disk.

[0078] An embodiment of the present application further provides a computer program product, which includes a computer program. When the computer program is executed by a processor, the steps in any one of the above-mentioned network congestion control method embodiments are implemented.

[0079] An embodiment of the present application further provides another computer program product, including a non-volatile computer-readable storage medium, wherein the non-volatile computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of any of the above-mentioned network congestion control method embodiments are implemented.

[0080] Finally, the present invention also provides a network card, see Figure 9 The network card may include at least a flow control processor and a memory, wherein the flow control processor is connected to the central processing unit of the host via a bus; the flow control processor receives the current congestion window value at each moment in the bandwidth detection phase or the delay detection phase, calculated by the central processing unit during the communication process of the host based on the transmission control protocol, and stores the congestion window value at each moment in the memory; the flow control processor reads the current congestion window value from the memory, and reads the target congestion window value with the closest update date to the corresponding moment from the congestion window history data record of the host, and determines the congestion window value that matches the current network state through the steps of any of the above-mentioned network congestion control method embodiments.

[0081] Among them, NIC (Network Interface Card) is a device that connects a computer to a local area network. It is responsible for converting the data that the user wants to transmit into a format that the network device can recognize and transmit through the network medium. The network card of this embodiment is a smart network card, that is, an intelligent network adapter. In addition to being able to complete the following tasks: Figure 10 In addition to the network transmission function of the standard network card shown, a built-in programmable and configurable hardware acceleration engine is also provided. This embodiment solidifies the computer hardware program that implements the steps in any of the above-mentioned network congestion control method embodiments into the hardware acceleration engine, which is defined as a flow control processor. In addition, considering that the host memory resources and computing resources are better, and in order to reduce the cost of the network card, and considering that the resources of the network card are limited, the host can be used to store the historical data records of the congestion window, and the host can be used to calculate the current congestion window value and actively send it to the network card. When the network card cannot process the data, it can first place the data in the memory. Furthermore, the data can be compressed and stored in the memory through the compression function, and then decompressed and used during calculation, further saving memory resources. This not only improves the performance of the application and significantly reduces the consumption of the central processing unit in communication, but also reduces the cost of the network card and ensures the fast processing capability of the network card.

[0082] The above is a detailed introduction to a network congestion control method, device, electronic device, computer-readable storage medium and smart network card provided by the present invention. The various embodiments in this specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the various embodiments can be referred to each other. Whether the units and algorithm steps of each example described in each disclosed embodiment are executed in electronic hardware or computer software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, and such implementation should not be considered to exceed the scope of the present invention. Without departing from the principles of the present invention, the present invention can also be improved and modified in a number of ways, and these improvements and modifications also fall within the scope of protection of the present invention.

Claims

1. A network congestion control method, characterized in that: include: If the current state is the bandwidth detection phase or the delay detection phase, the current congestion window value is determined based on the current bottleneck bandwidth and minimum round-trip delay, and the target congestion window value with the closest update date to the current time is obtained from the congestion window history data record. If the current congestion window value is the same as the target congestion window value, obtaining a comparison record of new and old congestion window data, and determining a target number of times that the new and old congestion window values ​​are the same from the comparison record of new and old congestion window data; If the current congestion window value is different from the target congestion window value, the target congestion window value is updated according to the current congestion window value, and the number of times the new and old congestion window values ​​are the same in the comparison record of the new and old congestion window data is cleared to zero; Determining a window adjustment value according to the target number of times, and determining a congestion window value that matches the current network state according to the window adjustment value and the current congestion window value; The comparison record of the new and old congestion window data is the record data of the comparison between the current congestion window value and the target congestion window value in the historical time period; If the target congestion window value cannot be obtained, the current congestion window value is used as the target congestion window value and the congestion window value matching the current network state, and the number of times the new and old congestion window values ​​in the new and old congestion window data comparison record are the same is updated to the initial value.

2. The network congestion control method according to claim 1, characterized in that: Determining a window adjustment value according to the target number of times includes: Get the maximum value of network status fluctuation; Performing corresponding processing on the product of the target number and the fluctuation adjustment factor through a target data processing function to obtain a candidate window adjustment value; The candidate window adjustment value is compared with the maximum value of the network state fluctuation, and the smaller value is used as the window adjustment value.

3. The network congestion control method according to claim 1, characterized in that: Determining a window adjustment value according to the target number of times includes: Obtain network fluctuation weight coefficient and network fluctuation adjustment factor; Taking the target number as the independent variable and the window adjustment value as the dependent variable, the linear transformation relationship between the target number and the window adjustment value is determined according to the network fluctuation weight coefficient and the network fluctuation adjustment factor, so as to determine the window adjustment value according to the linear transformation relationship.

4. The network congestion control method according to any one of claims 1 to 3, characterized in that: The current congestion window value is determined based on the current bottleneck bandwidth and minimum round-trip delay, including: The minimum round-trip delay at the current moment is determined by taking the minimum round-trip delay of each message sent and received within the preset sliding time window. Determining the bottleneck bandwidth at the current moment according to the maximum value of the amount of successfully sent and received messages within each unit time within the preset sliding time window; Obtaining a current congestion window value according to a product of a current state gain factor, the minimum round-trip delay, and the bottleneck bandwidth; Wherein, if the current state is the bandwidth detection stage, when it is in the speed increase detection period, the gain factor is the first preset value, and when it is in the speed decrease emptying period, the gain factor is the second preset value; If the current state is the delay detection stage, the gain factor is a third preset value.

5. A network congestion control device, characterized in that: include: A current value calculation module is used to determine the current congestion window value based on the bottleneck bandwidth and minimum round-trip delay at the current moment if the current state is the bandwidth detection phase or the delay detection phase; A historical value acquisition module is used to obtain the target congestion window value whose update date is closest to the current time in the congestion window historical data record; a window dynamic adjustment module, configured to obtain a comparison record of new and old congestion window data if the current congestion window value is the same as the target congestion window value, and determine a target number of times that the new and old congestion window values ​​are the same from the comparison record of new and old congestion window data; If the current congestion window value is different from the target congestion window value, the target congestion window value is updated according to the current congestion window value, and the number of times the new and old congestion window values ​​are the same in the comparison record of the new and old congestion window data is cleared to zero; Determining a window adjustment value according to the target number of times, and determining a congestion window value that matches the current network state according to the window adjustment value and the current congestion window value; wherein the comparison record of the new and old congestion window data is recorded data comparing the current congestion window value with the target congestion window value within a historical time period; If the target congestion window value cannot be obtained, the current congestion window value is used as the target congestion window value and the congestion window value matching the current network state, and the number of times the new and old congestion window values ​​in the new and old congestion window data comparison record are the same is updated to the initial value.

6. An electronic device, characterized in that: include: memory for storing computer programs; A processor, configured to implement the steps of the network congestion control method according to any one of claims 1 to 4 when executing the computer program.

7. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the network congestion control method according to any one of claims 1 to 4 are implemented.

8. A network card, characterized in that: At least comprising a flow control processor and a memory, wherein the flow control processor is connected to the central processing unit of the host via a bus; The flow control processor receives the current congestion window value at each moment in the bandwidth detection phase or the delay detection phase obtained by the central processor during the communication process of the host based on the transmission control protocol, and stores the congestion window value at each moment in the memory; The flow control processor reads the current congestion window value from the memory and reads the target congestion window value with the closest update date to the corresponding time from the congestion window history data record of the host, and determines the congestion window value that matches the current network status through the steps of the network congestion control method according to any one of claims 1 to 4.

Citation Information

Patent Citations

  • Congestion control method and device, terminal and storage medium

    CN118338351A

  • Kind of congestion improvement method based on the QUIC protocol

    US20170353386A1