CN116684359B - Network congestion control method, device and storage medium - Google Patents

Network congestion control method, device and storage medium Download PDF

Info

Publication number
CN116684359B
CN116684359B CN202310504861.2A CN202310504861A CN116684359B CN 116684359 B CN116684359 B CN 116684359B CN 202310504861 A CN202310504861 A CN 202310504861A CN 116684359 B CN116684359 B CN 116684359B
Authority
CN
China
Prior art keywords
packet
loss
round trip
data packet
rto
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310504861.2A
Other languages
Chinese (zh)
Other versions
CN116684359A (en
Inventor
王恒
唐孝国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tongren Polytechnic College
Original Assignee
Tongren Polytechnic College
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tongren Polytechnic College filed Critical Tongren Polytechnic College
Priority to CN202310504861.2A priority Critical patent/CN116684359B/en
Publication of CN116684359A publication Critical patent/CN116684359A/en
Application granted granted Critical
Publication of CN116684359B publication Critical patent/CN116684359B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1848Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/23Bit dropping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The invention discloses a network congestion control method, a device and a storage medium, which are used for monitoring network states in real time by estimating bottleneck bandwidths and minimum round trip time. And when receiving the acknowledgement data packet ACK, checking the data packet loss condition, and adjusting the sending rate and the congestion window according to the packet loss and the high round trip time threshold. Meanwhile, an adaptive retransmission strategy is adopted, and a retransmission timeout time RTO estimated value is updated according to the round trip time sample. In addition, a Reed-Solomon coding error correction coding scheme and a packet loss strategy based on the length of a queue are introduced to improve the network performance. By dynamically adjusting the sending rate and the congestion window, the invention can reduce delay and improve the bandwidth utilization rate and the anti-packet loss performance under the high-packet-loss-rate environment.

Description

Network congestion control method, device and storage medium
Technical Field
The invention relates to a network congestion control method, a device and a storage medium, belonging to the technical field of networks.
Background
Network congestion control is one of the key technologies in computer networks and is mainly responsible for preventing network overload, ensuring efficient transmission of data packets, avoiding congestion and reducing delay. Conventional congestion control algorithms, such as TCP congestion control algorithms (e.g., tahoe, reno, cubic, etc.), rely primarily on feedback on packet loss, delay, and network status to dynamically adjust transmission rate and congestion window size. However, in complex and varied network environments, these conventional algorithms are difficult to adequately adapt to various scenarios, which may result in poor network performance, thereby affecting the user experience. For example, conventional TCP congestion control algorithms may not achieve optimal network transport performance in high-speed long-distance network scenarios: in high-speed long-distance networks, traditional TCP congestion control algorithms (e.g., tahoe, reno, etc.) may not fully utilize network bandwidth due to the large propagation delay. This is because they rely primarily on packet loss as a congestion signal, which can lead to window clipping and thus lower transmission rates. In high-speed long-distance networks, this mechanism may lead to low bandwidth utilization, degrading network performance.
To solve the above problems, the prior art has used the TCP congestion control algorithm BBR (bottleckbandwidth and round-tripropopationtime). The BBR uses the measured bottleneck bandwidth and round trip time to adjust the transmission rate, rather than relying solely on packet loss. Therefore, in a high-speed long-distance network, the BBR can be better adapted to the changed network conditions, and the bandwidth utilization rate and the network performance are improved.
However, the problems with the TCP congestion control algorithm BBR are: in a high packet loss rate environment, since BBR is mainly concerned with estimation of bandwidth and round trip time, rather than packet loss, this makes BBR may not adjust transmission rate well, resulting in performance degradation.
Disclosure of Invention
The invention aims to solve the technical problems that: a network congestion control method, apparatus and storage medium are provided to overcome the shortcomings of the prior art.
The technical scheme of the invention is as follows:
in a first aspect, a network congestion control method is provided, the method comprising the steps of:
s01, estimating bottleneck bandwidth and minimum round trip time, namely estimating the bottleneck bandwidth BtlBw and the minimum round trip time min_rtt of the current network by monitoring the arrival rate and round trip time of the confirmed data packet, checking whether the current minimum round trip time exceeds a preset threshold value, and setting a high round trip time flag bit high_rtt_detected as True if the minimum round trip time exceeds the threshold value;
s02, updating a control loop state, and switching BBR control loops among bottleneck bandwidth detection, minimum round trip time detection and a starting stage according to a TCP congestion control algorithm BBR according to an estimated value of the bottleneck bandwidth and the minimum round trip time;
s03, checking whether a data packet is lost or not when receiving an ACK (acknowledgement) of the data packet, and if a continuous packet loss event is found, setting a packet loss flag bit packet_loss_detected as True;
s04, adjusting the sending rate and the congestion window according to the packet loss flag bit packet_loss_detected and the high round trip time flag bit high_rtt_detected:
if packet loss flag bit packet_loss_detected is True and high round trip time flag bit high_rtt_detected is False, reducing the sending rate and reducing the congestion window;
if the packet loss flag bit packet_loss_detected is False and the high round trip time flag bit high_rtt_detected is True, adding a congestion window;
if the packet loss flag bit packet_loss_detected and the high round trip time flag bit high_rtt_detected are True, the congestion window is adjusted by the following weighted window adjustment method:
a) Calculating a congestion window adjustment value:
Δcwnd=w_loss*shrink_factor-w_rtt*increase_factor
b) Updating the congestion window: cwnd_new=cwnd_old+Δcwnd
Wherein: Δcwnd represents an adjustment value of the congestion window; cwnd_new represents the updated congestion window size; cwnd_old represents the congestion window size before update; w_loss represents the weight coefficient of the data packet loss; w_rtt represents a weight coefficient of the round trip time; the shrnk_factor represents the degree to which the congestion window is narrowed; the congestion_factor indicates the degree to which the congestion window is increased;
if the packet loss flag bit packet_loss_detected and the high round trip time flag bit high_rtt_detected are False, adjusting the sending rate and the congestion window according to a TCP congestion control algorithm BBR;
s05, when the control loop state is updated each time, the packet loss flag bit is set
packet_loss_detected and high round trip time flag bit high_rtt_detected are reset to False.
Further, the method also comprises the step of self-adaptive retransmission, wherein the self-adaptive retransmission comprises the following steps:
step 1, setting an initial value of Retransmission Timeout (RTO) as a preset value;
step 2, each time a data packet is transmitted, recording the transmission time of the data packet, and simultaneously recording the transmission time of all unacknowledged data packets;
and 3, each time an acknowledgement data packet ACK is received, calculating a round trip time sample, wherein the round trip time sample is the difference between the sending time of the acknowledgement data packet and the time for receiving the ACK, and then updating a retransmission timeout time RTO estimated value by using the round trip time sample, wherein the updating method of the RTO estimated value is as follows:
RTO_new=α*RTO_old+(1-α)*RTT_sample
wherein rto_new is an estimated value of the retransmission timeout time RTO after updating, alpha is a weight coefficient, the value range is between 0 and 1, rto_old is an estimated value of the retransmission timeout time RTO before updating, and rtt_sample is a newly received round trip time sample, namely, the time difference between the sending of the data packet and the receiving of the corresponding ACK;
step 4, when detecting that the data packet is lost, checking the data packet which is sent but not confirmed, marking the data packet which is beyond the RTO estimated value as the data packet which needs to be retransmitted, and increasing the retransmission timeout RTO estimated value by a fixed value;
and 5, when the continuous packet loss event is detected, reducing the sending rate.
Further, the method for increasing the estimated value of the retransmission timeout time RTO by a fixed value is as follows:
RTO_new=RTO_old+delta
wherein RTO_new is the estimated value of the retransmission timeout time RTO after updating, RTO_old is the estimated value of the retransmission timeout time RTO before updating, delta is the value of the time increment;
the calculation method of the time increment delta comprises the following steps:
i. setting delta to a default delta_initial, delta=delta_initial;
ii, calculating a packet loss rate loss_rate;
calculating an adjustment factor adjustment_factor:
a)adjustment_factor=(loss_rate-target_loss_rate)/target_loss_rate,
b) target_loss_rate represents a target packet loss rate;
updating the delta value according to the adjustment factor:
delta=delta*(1+adjustment_factor);
limiting the delta value between a minimum delta_min and a maximum delta_max:
delta=max(delta_min,min(delta,delta_max))。
further, the method further comprises the following steps: dividing a data packet to be transmitted into k data blocks with the same size, generating n-k check blocks for the k data blocks by using a Reed-Solomon coding error correction coding scheme, and transmitting the k data blocks and the n-k check blocks to a receiving end through one data packet.
Further, the method further comprises the following steps:
a1, setting a minimum threshold value min_th and a maximum threshold value max_th of a queue length, a maximum packet loss probability max_p and a weight parameter w_q; when the network equipment receives a data packet, calculating a current queue length queue_length and an average queue length avg_queue_length;
a2, determining a packet loss strategy according to the relation between the average queue length avg_queue_length and the minimum threshold value min_th and the maximum threshold value max_th, wherein the packet loss strategy is as follows:
if the average queue length is smaller than the minimum threshold value min_th, receiving the data packet, and not executing the packet loss operation;
if the average queue length is between the minimum threshold value min_th and the maximum threshold value max_th, calculating the packet loss probability, and determining whether to discard the data packet according to the packet loss probability;
if the average queue length is greater than the maximum threshold max_th, the packet is discarded.
Specifically, the specific method for calculating the packet loss probability and determining whether to discard the data packet according to the packet loss probability comprises the following steps:
calculating an average queue length:
avg_queue_length=(1-w_q)*avg_queue_length+w_q*queue_length
calculating relative queue lengths:
relative_queue_length=(avg_queue_length-min_th)/(max_th-min_th)
calculating packet loss probability:
drop_probability=max_p*relative_queue_length
deciding whether to discard the data packet according to the packet loss probability:
generating a random number rand; discarding the data packet if rand < drop_probability; otherwise, receiving the data packet;
wherein, the relative_queue_length represents the relative queue length, represents the relative position between the average queue length and the minimum threshold value and the maximum threshold value, and has a value range of 0 to 1;
avg_queue_length represents an average queue length, representing a weighted average of the current queue length;
drop_probability represents packet loss probability, and represents the probability of data packet being discarded under the current average queue length;
rand represents a random number, with a range of values from 0 to 1.
In a second aspect, there is provided a network congestion control apparatus, the apparatus comprising: a processor and a memory, wherein the memory has stored therein computer program instructions adapted to be executed by the processor, which when executed by the processor, cause the processor to perform the network congestion control method according to any of the first aspects.
In a third aspect, there is provided a storage medium comprising computer program instructions stored on the storage medium, wherein the computer program instructions, when executed by a processor, perform the network congestion control method of any of the first aspects.
The beneficial effects of the invention are as follows: in contrast to the prior art, the method has the advantages that,
1) When the continuous packet loss event occurs, the invention is beneficial to reducing network congestion and improving the success rate of data packet transmission by reducing the sending rate and reducing the congestion window. When the round trip time is too high, a congestion window is increased to fully utilize the network bandwidth, so that the network transmission efficiency is improved;
2) The invention can better balance delay and bandwidth utilization rate under different network conditions by introducing the packet loss zone bit and the high round trip time zone bit on the basis of the TCP congestion control algorithm BBR. In this way, the sending rate can be reduced under the high packet loss rate environment to reduce congestion, and meanwhile, the high bandwidth utilization rate can be maintained in the high-speed long-distance network;
3) The invention can more accurately judge whether the data packet is lost or not by dynamically adjusting the RTO estimation value of the retransmission timeout time, thereby avoiding unnecessary retransmission caused by fixed RTO and improving the utilization rate of network resources;
4) By calculating the round trip time sample and updating the RTO estimated value, the retransmission mechanism can be better adapted to the change of the network condition, and misjudgment and unnecessary retransmission caused by network delay fluctuation are reduced;
5) And when the data packet loss is detected, retransmitting the data packet which is transmitted but not confirmed and exceeds the RTO estimated value, thereby improving the reliability of the data packet transmission. In addition, when the continuous packet loss event occurs, network congestion can be effectively reduced by reducing the sending rate, and the success rate of data transmission is further improved;
6) The invention can better control the congestion and improve the network performance by adjusting the sending rate and the congestion window and realizing the self-adaptive retransmission while ensuring the reliability of data transmission;
7) According to the invention, the adjustment factor is calculated according to the current network condition, and the increment of the Retransmission Timeout (RTO) estimated value is dynamically adjusted, so that the dynamic adjustment of the retransmission timeout is realized, and the retransmission mechanism is more flexible and accurate;
8) According to the invention, the retransmission timeout time is adjusted according to the target packet loss rate by calculating the packet loss rate, so that the algorithm can better adapt to the change of the network environment and reduce unnecessary retransmission while ensuring the reliability of data transmission;
9) According to the invention, the self-adaptive adjustment of the delta of the time increment value is realized by calculating the adjustment factor according to the packet loss rate and the target packet loss rate, so that a retransmission mechanism can be better adapted to the change of the network condition, and misjudgment and unnecessary retransmission caused by network delay fluctuation are reduced;
10 The invention avoids the abnormity of the retransmission timeout time estimated value caused by the excessively large or excessively small increment value by limiting the delta value between the minimum increment and the maximum increment, thereby improving the network transmission performance;
11 The invention divides the data packet to be transmitted into k data blocks with the same size, and generates n-k check blocks for the k data blocks by using the Reed-Solomon coding error correction coding scheme, thereby increasing the redundant information in the data transmission process and improving the reliability of the data transmission;
12 By utilizing the characteristic that the Reed-Solomon coding has good fault tolerance, the invention leads the receiving end to recover the lost or damaged data block according to the check blocks when the receiving end has errors in the data transmission process by introducing n-k check blocks, thereby reducing the probability of data transmission failure caused by packet loss or error code;
13 The invention can recover the data even if the data packet is lost or has error due to the fault-tolerant capability of the Reed-Solomon code. Therefore, the retransmission times caused by the loss or the error of the data packet can be reduced, thereby reducing the network congestion and improving the network performance;
14 The invention can take measures in advance when the length of the queue exceeds the threshold value, and actively discard or mark partial data packets, thereby reducing network congestion and reducing queue oscillation. This helps to improve the problem of queue oscillation caused by BBR in certain scenarios;
15 The invention can dynamically calculate the packet loss probability and decide whether to discard the data packet according to the probability. This helps to keep the queue length within a controlled range, thereby reducing queue oscillation.
Drawings
Fig. 1 is a flow chart of a network congestion control method provided by at least one embodiment of the present disclosure;
fig. 2 is a schematic block diagram of a network congestion control apparatus provided in at least one embodiment of the present disclosure;
fig. 3 is a schematic block diagram of a storage medium provided by at least one embodiment of the present disclosure.
Detailed Description
For the purpose of making the objects, technical solutions and advantages of the embodiments of the present invention more apparent, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention, and it is apparent that the described embodiments are some embodiments of the present invention, but not all embodiments of the present invention. All other embodiments, which can be made by those skilled in the art based on the embodiments of the invention without making any inventive effort, are intended to be within the scope of the invention.
Embodiment one:
referring to fig. 1, a network congestion control method includes the steps of:
s01, estimating bottleneck bandwidth and minimum round trip time, and estimating the bottleneck bandwidth BtlBw and minimum round trip time of the current network by monitoring the arrival rate and round trip time of the confirmed data packet
min_rtt, these two parameters may help to understand the current state of the network, thereby making a corresponding congestion control decision. Checking whether the current minimum round trip time exceeds a preset threshold value, and if the minimum round trip time exceeds the threshold value, setting a high round trip time flag bit high_rtt_detected as True;
s02, updating a control loop state, and switching BBR control loops among bottleneck bandwidth detection, minimum round trip time detection and a starting stage according to a TCP congestion control algorithm BBR according to an estimated value of the bottleneck bandwidth and the minimum round trip time; switching between these states helps to more accurately adjust the sending rate and congestion window size.
S03, checking whether a data packet is lost or not when receiving an ACK (acknowledgement) of the data packet, and if a continuous packet loss event is found, setting a packet loss flag bit packet_loss_detected as True; this helps to discover packet loss in the network in time, thereby taking corresponding measures to reduce network congestion.
S04, adjusting the sending rate and the congestion window according to the packet loss flag bit packet_loss_detected and the high round trip time flag bit high_rtt_detected:
if packet loss flag bit packet_loss_detected is True and high round trip time flag bit high_rtt_detected is False, reducing the sending rate and reducing the congestion window;
if the packet loss flag bit packet_loss_detected is False and the high round trip time flag bit high_rtt_detected is True, adding a congestion window;
if the packet loss flag bit packet_loss_detected and the high round trip time flag bit high_rtt_detected are True, the congestion window is adjusted by the following weighted window adjustment method:
a) Calculating a congestion window adjustment value:
Δcwnd=w_loss*shrink_factor-w_rtt*increase_factor
b) Updating the congestion window:
cwnd_new=cwnd_old+Δcwnd
wherein: Δcwnd represents an adjustment value of the congestion window; cwnd_new represents the updated congestion window size; cwnd_old represents the congestion window size before update; w_loss represents a weight coefficient of packet loss, and an appropriate value may be selected for w_loss according to the frequency and severity of packet loss in the network environment. If packet loss is deemed to have a greater impact on network performance, a higher weighting factor may be selected. Generally, w_loss ranges from 0 to 1; w_rtt represents the weight coefficient of the round trip time, and if the round trip time is considered to have a greater impact on network performance, a higher weight coefficient may be selected. Generally, w_rtt ranges from 0 to 1; the spring_factor represents the degree to which the congestion window is narrowed, and this parameter can be adjusted according to actual requirements and experience. For example, a fixed reduction ratio, such as 0.5, may be selected, which means that the congestion window will be reduced by half each time a packet loss is detected; the increase of congestion window is indicated by the increase of congestion window, and can be adjusted according to actual requirements and experience. For example, you can choose a fixed rate of increase, such as 0.1, which means that the congestion window will increase by 10% each time a high round trip time is detected;
if the packet loss flag bit packet_loss_detected and the high round trip time flag bit high_rtt_detected are False, adjusting the sending rate and the congestion window according to a TCP congestion control algorithm BBR;
this step enables the congestion control method to flexibly adjust the transmission rate and congestion window size according to the current network state, thereby alleviating congestion phenomenon.
S05, resetting the packet loss flag bit packet_loss_detected and the high round trip time flag bit high_rtt_detected to False when the control loop state is updated each time. This step ensures that congestion control is performed on the basis of the latest network state in each cycle.
In order to further solve the problem that in the high packet loss rate environment, the BBR may not be able to adjust the transmission rate well, resulting in performance degradation, embodiment 1 further includes an adaptive retransmission, where the steps of the adaptive retransmission are as follows:
step 1, setting an initial value of Retransmission Timeout (RTO) as a preset value; this value is a reference for determining whether a data packet needs to be retransmitted or not.
Step 2, each time a data packet is transmitted, recording the transmission time of the data packet, and simultaneously recording the transmission time of all unacknowledged data packets; this information is used to calculate the Round Trip Time (RTT) samples later and to determine whether retransmission is required.
And 3, each time an acknowledgement data packet ACK is received, calculating a round trip time sample, wherein the round trip time sample is the difference between the sending time of the acknowledgement data packet and the time for receiving the ACK, and then updating a retransmission timeout time RTO estimated value by using the round trip time sample, wherein the updating method of the RTO estimated value is as follows:
RTO_new=α*RTO_old+(1-α)*RTT_sample
wherein rto_new is an estimated value of the retransmission timeout time RTO after updating, alpha is a weight coefficient, the value range is between 0 and 1, rto_old is an estimated value of the retransmission timeout time RTO before updating, and rtt_sample is a newly received round trip time sample, namely, the time difference between the sending of the data packet and the receiving of the corresponding ACK;
the updating method of the step adopts an Exponential Weighted Moving Average (EWMA) algorithm, and enables the RTO estimated value to adapt to the change of network delay by balancing the RTO estimated value (RTO_old) before and the newly received RTT sample.
Step 4, when detecting that the data packet is lost, checking the data packet which is sent but not confirmed, marking the data packet which is beyond the RTO estimated value as the data packet which needs to be retransmitted, and increasing the retransmission timeout RTO estimated value by a fixed value; in this way, the retransmission policy of the data packet can adapt to changes in the network state, avoiding the premature or too late retransmission of the data packet.
And 5, when the continuous packet loss event is detected, reducing the sending rate. This helps to alleviate network congestion and improve the success rate of data transmission.
Through self-adaptive retransmission, the method and the device can dynamically adjust the retransmission timeout time according to the real-time network state, so that the retransmission strategy can be better adapted to the change of the network environment. By recording the sending time and updating the RTO estimated value, retransmission of the data packet can be triggered at proper time, and premature or late retransmission is avoided, so that transmission efficiency is improved. When the continuous packet loss event occurs, the reduction of the sending rate is helpful for relieving network congestion and improving the success rate of data transmission. The self-adaptive retransmission mechanism enables the retransmission strategy to be adjusted according to the change of the network state, so that good transmission performance and stability are maintained under different network environments.
Embodiment 1 further includes the step of increasing the retransmission timeout period RTO estimate by a fixed value by:
RTO_new=RTO_old+delta
wherein RTO_new is the estimated value of the retransmission timeout time RTO after updating, RTO_old is the estimated value of the retransmission timeout time RTO before updating, delta is the value of the time increment;
the calculation method of the time increment delta comprises the following steps:
i. the delta is set to a default value delta_initial, delta=delta_initial, which is used as the base RTO delta value.
And ii, calculating the packet loss rate loss_rate for subsequent adjustment of the delta value.
Calculating an adjustment factor adjustment_factor for measuring the actual packet loss rate and the target packet loss rate
Deviation between (target_loss_rate). The adjustment factor reflects the gap between the current network packet loss condition and the expected packet loss condition:
a)adjustment_factor=(loss_rate-target_loss_rate)/
target_loss_rate,
b) target_loss_rate represents a target packet loss rate;
updating the delta value according to the adjustment factor, wherein if the actual packet loss rate is higher than the target packet loss rate, the delta value is increased; if the actual packet loss rate is lower than the target packet loss rate, the delta value will decrease. In this way the first and second light sources,
the delta value can be dynamically adjusted according to the network conditions:
delta=delta*(1+adjustment_factor);
limiting the elta value between the minimum delta_min and the maximum delta_max:
delta=max(delta_min,min(delta,delta_max))。
according to the method and the device, the increment value of the retransmission timeout time RTO is dynamically adjusted according to the difference between the actual packet loss rate and the target packet loss rate, so that the retransmission strategy can be better adapted to the change of the network environment. By dynamically adjusting the RTO increment value, retransmission of the data packet can be triggered at a proper time, and premature or too late retransmission is avoided, so that transmission efficiency is improved. In a network environment with higher packet loss rate, the time-out time of retransmission can be prolonged by increasing the delta value, so that the sending rate is reduced, the network congestion is relieved, and the success rate of data transmission is improved. The method enables the retransmission strategy to be adjusted according to the change of the network state, thereby keeping good transmission performance and stability under different network environments.
In order to further solve the problem that in a high packet loss rate environment, the BBR may not be able to well adjust the transmission rate, resulting in performance degradation, embodiment 1 further includes dividing a data packet to be transmitted into k data blocks with equal size, generating n-k check blocks for the k data blocks using a Reed-Solomon encoding error correction coding scheme, and transmitting the k data blocks and the n-k check blocks to a receiving end through one data packet.
In some scenarios, the BBR may cause the queues to oscillate. BBR adjusts the transmission rate by estimating the bottleneck bandwidth and round trip time of the network, but these estimates may be unstable, resulting in periodic fluctuations in transmission rate and queue size.
For example: there are multiple queues on the network path, each with a different capacity. When the BBR algorithm enters the probe bottleneck bandwidth state, it will send enough packets to fill the bandwidth of the network, which will cause the queue length of the first queue to increase until it is full. The BBR will then start filling the second queue with packets, which will result in a decrease in the queue length of the first queue, as packets are transferred from the first queue to the second queue. Once the second queue is full, the BBR will begin to fill the third queue with packets, which will result in a decrease in the queue length of the second queue, and so on. Thus, the queue length and transmission rate may fluctuate periodically, potentially resulting in network congestion and packet loss.
In order to solve the above problems, embodiment 1 further includes the steps of:
a1, setting a minimum threshold value min_th and a maximum threshold value max_th of a queue length, a maximum packet loss probability max_p and a weight parameter w_q; when the network equipment receives a data packet, calculating a current queue length queue_length and an average queue length avg_queue_length;
a2, determining a packet loss strategy according to the relation between the average queue length avg_queue_length and the minimum threshold value min_th and the maximum threshold value max_th, wherein the packet loss strategy is as follows:
if the average queue length is smaller than the minimum threshold value min_th, receiving the data packet, and not executing the packet loss operation;
if the average queue length is between the minimum threshold value min_th and the maximum threshold value max_th, calculating the packet loss probability, and determining whether to discard the data packet according to the packet loss probability;
if the average queue length is greater than the maximum threshold max_th, the packet is discarded.
Embodiment 1 further includes a specific method for determining whether to discard the data packet according to the packet loss probability:
calculating an average queue length:
avg_queue_length=(1-w_q)*avg_queue_length+w_q*queue_length
calculating relative queue lengths:
relative_queue_length=(avg_queue_length-min_th)/(max_th-min_th)
calculating packet loss probability:
drop_probability=max_p*relative_queue_length
deciding whether to discard the data packet according to the packet loss probability:
generating a random number rand; discarding the data packet if rand < drop_probability; otherwise, receiving the data packet;
wherein, the relative_queue_length represents the relative queue length, represents the relative position between the average queue length and the minimum threshold value and the maximum threshold value, and has a value range of 0 to 1;
avg_queue_length represents an average queue length, representing a weighted average of the current queue length;
drop_probability represents packet loss probability, and represents the probability of data packet being discarded under the current average queue length;
rand represents a random number, with a range of values from 0 to 1.
When there are multiple queues in the network, the queue length fluctuates periodically as the BBR algorithm may continually fill in packets. The present disclosure may determine a packet loss policy by setting a minimum threshold and a maximum threshold. When the average queue length is smaller than the minimum threshold value, not executing the packet loss operation; when the average queue length is between the minimum threshold value and the maximum threshold value, calculating the packet loss probability according to the relative queue length, and judging whether to lose the packet according to the random number; when the average queue length is greater than the maximum threshold, the data packet is directly dropped. The method can keep the length of the queue within a certain range, and avoid periodic fluctuation of the length of the queue, thereby avoiding congestion and data packet loss.
Embodiment two:
at least one embodiment of the present disclosure also provides a network congestion control apparatus. Fig. 2 is a schematic block diagram of an anti-counterfeiting device provided by at least one embodiment of the present disclosure. The network congestion control apparatus includes: a processor and a memory, wherein the memory has stored therein computer program instructions adapted to be executed by the processor, which when executed by the processor, cause the processor to perform the network congestion control method according to any one of the embodiments.
For example, the processor may be, for example, a Central Processing Unit (CPU), a graphics processor GPU, a Tensor Processor (TPU), or other form of processing unit having data processing and/or instruction execution capabilities, e.g., the processor may be implemented as a general purpose processor, and may also be a single chip, microprocessor, digital signal processor, dedicated image processing chip, or field programmable logic array, etc. For example, the memory may include at least one of volatile memory and nonvolatile memory, e.g., the memory may include Read Only Memory (ROM), hard disk, flash memory, etc. Accordingly, the memory may be implemented as one or more computer program products, which may include various forms of computer-readable storage media, on which one or more computer program instructions may be stored. The processor may execute the program instructions to perform any of the network congestion control methods provided by at least one embodiment of the present disclosure. The memory may also store various other applications and various data, such as various data used and/or generated by the applications.
Embodiment III:
at least one embodiment of the present disclosure also provides a storage medium (e.g., a non-transitory storage medium). Fig. 3 is a schematic block diagram of a storage medium provided by at least one embodiment of the present disclosure. As shown in fig. 3, the storage medium includes computer program instructions stored on the storage medium. The computer program instructions, when executed by a processor, perform a network congestion control method provided by at least one embodiment of the present disclosure.
For example, the storage medium may take many forms, including tangible storage medium, carrier wave media, or physical transmission media. The stable storage medium may include: optical or magnetic disks, and other computers or similar devices, can implement the storage system of the system components depicted in the figures. The unstable storage media may include dynamic memory, such as the main memory of a computer platform, and the like. Tangible transmission media may include coaxial cables, copper wire and fiber optics, such as the wires that form a bus within a computer system. Carrier wave transmission media can convey electrical, electromagnetic, acoustic or optical signals, etc. These signals may be generated by means of radio frequency or infrared data communication. Typical storage media (e.g., computer readable media) include hard disks, floppy disks, magnetic tape, any other magnetic media; CD-ROM, DVD, DVD-ROM, any other optical medium; punch cards, any other physical storage medium containing a small pore pattern; RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or tape; a carrier wave transporting the data or instructions, a cable or connection means transporting the carrier wave, any other data that may be read using computer program instructions (e.g., program code) and/or a computer.
Computer program instructions (e.g., program code) for performing the operations of the present disclosure may be written in one or more programming languages, including, but not limited to, object oriented programming languages such as Java, smalltalk, C ++ and Python and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computer (for example, through the Internet using an Internet service provider).
In some examples, the functionality described by at least one embodiment of the present disclosure may also be performed, at least in part, by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: a Field Programmable Gate Array (FPGA), an Application Specific Integrated Circuit (ASIC), an Application Specific Standard Product (ASSP), a system on a chip (SOC), a Complex Programmable Logic Device (CPLD), and the like.
The foregoing is a further detailed description of the invention in connection with the preferred embodiments, and it is not intended that the invention be limited to the specific embodiments described. It will be apparent to those skilled in the art that several simple deductions or substitutions may be made without departing from the spirit of the invention, and these should be considered to be within the scope of the invention.

Claims (8)

1. A method for controlling network congestion, the method comprising the steps of:
s01, estimating bottleneck bandwidth and minimum round trip time, namely estimating the bottleneck bandwidth BtlBw and the minimum round trip time min_rtt of the current network by monitoring the arrival rate and round trip time of the confirmed data packet, checking whether the current minimum round trip time exceeds a preset threshold value, and setting a high round trip time flag bit high_rtt_detected as True if the minimum round trip time exceeds the threshold value;
s02, updating a control loop state, and switching BBR control loops among bottleneck bandwidth detection, minimum round trip time detection and a starting stage according to a TCP congestion control algorithm BBR according to an estimated value of the bottleneck bandwidth and the minimum round trip time;
s03, checking whether a data packet is lost or not when receiving an ACK (acknowledgement) of the data packet, and if a continuous packet loss event is found, setting a packet loss flag bit packet_loss_detected as True;
s04, adjusting the sending rate and the congestion window according to the packet loss flag bit packet_loss_detected and the high round trip time flag bit high_rtt_detected:
if packet loss flag bit packet_loss_detected is True and high round trip time flag bit high_rtt_detected is False, reducing the sending rate and reducing the congestion window;
if the packet loss flag bit packet_loss_detected is False and the high round trip time flag bit high_rtt_detected is True, adding a congestion window;
if the packet loss flag bit packet_loss_detected and the high round trip time flag bit high_rtt_detected are True, the congestion window is adjusted by the following weighted window adjustment method:
a) Calculating a congestion window adjustment value:
Δcend=w_loss*shrink_factor-w_rtt*increase_factor
b) Updating the congestion window: cwnd_new=cwnd_old+Δcwnd
Wherein: Δcwnd represents an adjustment value of the congestion window; cwnd_new represents the updated congestion window size; cwnd_old represents the congestion window size before update; w_loss represents the weight coefficient of the data packet loss; w_rtt represents a weight coefficient of the round trip time; the shrnk_factor represents the degree to which the congestion window is narrowed; the congestion_factor indicates the degree to which the congestion window is increased;
if the packet loss flag bit packet_loss_detected and the high round trip time flag bit high_rtt_detected are False, adjusting the sending rate and the congestion window according to a TCP congestion control algorithm BBR;
s05, resetting the packet loss flag bit packet_loss_detected and the high round trip time flag bit high_rtt_detected to False when the control loop state is updated each time.
2. The network congestion control method according to claim 1, further comprising an adaptive retransmission, the adaptive retransmission being:
step 1, setting an initial value of Retransmission Timeout (RTO) as a preset value;
step 2, each time a data packet is transmitted, recording the transmission time of the data packet, and simultaneously recording the transmission time of all unacknowledged data packets;
and 3, each time an acknowledgement data packet ACK is received, calculating a round trip time sample, wherein the round trip time sample is the difference between the sending time of the acknowledgement data packet and the time for receiving the ACK, and then updating a retransmission timeout time RTO estimated value by using the round trip time sample, wherein the updating method of the RTO estimated value is as follows:
RTO_new=α*RTO_old+(1-α)*RTT_sample
wherein rto_new is an estimated value of the retransmission timeout time RTO after updating, alpha is a weight coefficient, the value range is between 0 and 1, rto_old is an estimated value of the retransmission timeout time RTO before updating, and rtt_sample is a newly received round trip time sample, namely, the time difference between the sending of the data packet and the receiving of the corresponding ACK;
step 4, when detecting that the data packet is lost, checking the data packet which is sent but not confirmed, marking the data packet which is beyond the RTO estimated value as the data packet which needs to be retransmitted, and increasing the retransmission timeout RTO estimated value by a fixed value;
and 5, when the continuous packet loss event is detected, reducing the sending rate.
3. The network congestion control method according to claim 2, wherein the method for increasing the estimated value of the retransmission timeout period RTO by a fixed value is:
RTO_new=RTO_old+delta
wherein RTO_new is the estimated value of the retransmission timeout time RTO after updating, RTO_old is the estimated value of the retransmission timeout time RTO before updating, delta is the value of the time increment;
the calculation method of the time increment delta comprises the following steps:
i. setting delta to a default delta_initial, delta=delta_initial;
ii, calculating a packet loss rate loss_rate;
calculating an adjustment factor adjustment_factor:
adjustment_factor= (loss_rate-target_loss_rate)/target_loss_rate, target_loss_rate indicating a target packet loss rate;
updating the delta value according to the adjustment factor:
delta=delta*(1+adjustment_factor);
limiting the delta value between a minimum delta_min and a maximum delta_max:
delta=max(delta_min,min(delta,delta_max))。
4. the network congestion control method according to claim 1, further comprising:
dividing a data packet to be transmitted into k data blocks with the same size, generating n-k check blocks for the k data blocks by using a Reed-Solomon coding error correction coding scheme, and transmitting the k data blocks and the n-k check blocks to a receiving end through one data packet.
5. The network congestion control method according to claim 1, further comprising:
a1, setting a minimum threshold value min_th and a maximum threshold value max_th of a queue length, a maximum packet loss probability max_p and a weight parameter w_q; when the network equipment receives a data packet, calculating a current queue length queue_length and an average queue length avg_queue_length;
a2, determining a packet loss strategy according to the relation between the average queue length avg_queue_length and the minimum threshold value min_th and the maximum threshold value max_th, wherein the packet loss strategy is as follows:
if the average queue length is smaller than the minimum threshold value min_th, receiving the data packet, and not executing the packet loss operation;
if the average queue length is between the minimum threshold value min_th and the maximum threshold value max_th, calculating the packet loss probability, and determining whether to discard the data packet according to the packet loss probability;
if the average queue length is greater than the maximum threshold max_th, the packet is discarded.
6. The network congestion control method according to claim 5, wherein the specific method for calculating the packet loss probability and determining whether to drop the data packet according to the packet loss probability is as follows:
calculating an average queue length:
avg_queue_length=(1-w_q)*avg_queue_length+w_q*queue_length
calculating relative queue lengths:
relative_queue_length=(avg_queue_length-min_th)/(max_th-min_th)
calculating packet loss probability:
drop_probability=max_p*relative_queue_length
deciding whether to discard the data packet according to the packet loss probability:
generating a random number rand; discarding the data packet if rand < drop_probability; otherwise, receiving the data packet;
wherein, the relative_queue_length represents the relative queue length, represents the relative position between the average queue length and the minimum threshold value and the maximum threshold value, and has a value range of 0 to 1;
avg_queue_length represents an average queue length, representing a weighted average of the current queue length;
drop_probability represents packet loss probability, and represents the probability of data packet being discarded under the current average queue length;
rand represents a random number, with a range of values from 0 to 1.
7. A network congestion control apparatus, the apparatus comprising: a processor and a memory, wherein the memory has stored therein computer program instructions adapted to be executed by the processor, which when executed by the processor cause the processor to perform the network congestion control method according to any of claims 1-6.
8. A storage medium comprising computer program instructions stored on the storage medium, wherein the computer program instructions, when executed by a processor, perform the network congestion control method according to any one of claims 1-6.
CN202310504861.2A 2023-05-06 2023-05-06 Network congestion control method, device and storage medium Active CN116684359B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310504861.2A CN116684359B (en) 2023-05-06 2023-05-06 Network congestion control method, device and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310504861.2A CN116684359B (en) 2023-05-06 2023-05-06 Network congestion control method, device and storage medium

Publications (2)

Publication Number Publication Date
CN116684359A CN116684359A (en) 2023-09-01
CN116684359B true CN116684359B (en) 2024-02-06

Family

ID=87777726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310504861.2A Active CN116684359B (en) 2023-05-06 2023-05-06 Network congestion control method, device and storage medium

Country Status (1)

Country Link
CN (1) CN116684359B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117255038B (en) * 2023-11-14 2024-01-26 西安明赋云计算有限公司 TCP data packet loss monitoring method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070060622A (en) * 2005-12-09 2007-06-13 한국전자통신연구원 Method for improving tcp performance by congestion window limit
CN112165355A (en) * 2020-10-23 2021-01-01 中国电子科技集团公司第三十研究所 Satellite network-oriented UDP-based reliable data transmission method
CN114710807A (en) * 2022-04-28 2022-07-05 云南师范大学 5G millimeter wave communication-oriented Kalman filtering dynamic congestion control method

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9979510B2 (en) * 2015-07-28 2018-05-22 Brocade Communications Systems LLC Application timeout aware TCP loss recovery
CN105827537B (en) * 2016-06-01 2018-12-07 四川大学 A kind of congestion improved method based on QUIC agreement

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070060622A (en) * 2005-12-09 2007-06-13 한국전자통신연구원 Method for improving tcp performance by congestion window limit
CN112165355A (en) * 2020-10-23 2021-01-01 中国电子科技集团公司第三十研究所 Satellite network-oriented UDP-based reliable data transmission method
CN114710807A (en) * 2022-04-28 2022-07-05 云南师范大学 5G millimeter wave communication-oriented Kalman filtering dynamic congestion control method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BBR-TCP协议实验性能评价;李振涛;任勇毛;周旭;周亚球;;计算机系统应用(09);全文 *

Also Published As

Publication number Publication date
CN116684359A (en) 2023-09-01

Similar Documents

Publication Publication Date Title
US11876714B2 (en) Method and apparatus for network congestion control based on transmission rate gradients
CN107171969B (en) Data transmission method, device and system
JP4778453B2 (en) Communication terminal, congestion control method, and congestion control program
US20170346601A1 (en) Data transmission method and computing apparatus having data transmission function
US20070223395A1 (en) Methods and apparatus for optimizing a TCP session for a wireless network
EP1187401A2 (en) Method and systems for alleviating network congestion
CN116684359B (en) Network congestion control method, device and storage medium
CN110677355A (en) Packet loss coping method and device, electronic equipment and storage medium
CN105141542A (en) TCP communication protocol-based congestion window control algorithm and system
JP5299794B2 (en) Communication quality monitoring apparatus, communication system, communication quality monitoring method and program thereof
CN113014505B (en) Transmission control method for time delay differentiation in high dynamic topology satellite network
CN107800638B (en) Congestion control method and device
KR100922472B1 (en) Communication terminal, communication control method, and communication control program
JP4435817B2 (en) Communication terminal, communication control method, and communication control program
CN117156167A (en) Self-adaptive data transmission method and device of fusion transmission system
WO2023202692A1 (en) System and method for a scalable source notification mechanism for in-network events
CN117692396B (en) TCP unilateral acceleration method and device in complex network environment
CN115665058A (en) Data transmission speed control method, device, equipment and medium
WO2013011638A1 (en) Communication device and communication control method thereof
CN115714746A (en) Congestion control method and system based on delay and packet loss
CN115941557A (en) Self-adaptive congestion control method and device based on time delay
CN117692392A (en) Retransmission timeout length determining method and device, electronic equipment and storage medium
CN116566919A (en) Bandwidth detection method, device, electronic equipment and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant