KIND OF CONGESTION IMPROVEMENT METHOD BASED ON THE QUIC PROTOCOL
20170353386 · 2017-12-07
Assignee
Inventors
- Junfeng Wang (Chengdu, CN)
- Fuchun SUN (Chengdu, CN)
- Lixiang LIU (Chengdu, CN)
- Dong Liu (Chengdu, CN)
- Shiping YANG (Chengdu, CN)
Cpc classification
H04L47/27
ELECTRICITY
International classification
Abstract
A kind of congestion improvement method based on the QUIC protocol adds the information of round trip delay in the congestion algorithm, self-adaptive changes the value of α to judge the situation of current network through comparison between the RTT of last time and the current RTT and then adjusts the current target window value in accordance with the current network situation, changing the congestion window based on the cubic growth curve of the cubic algorithm. This improvement method can make the QUIC protocol judge the current network situation more timely and accurately and can make the congestion window change quickly to fully utilize the bandwidth. The maximum congestion window limitation 200 exists in the QUIC protocol, which will not exceed 200 no matter how the congestion window grows. Such limitation largely reduces the throughput rate of QUIC protocol in the network environment with high bandwidth and long round trip delay.
Claims
1. A congestion improvement method based on the QUIC protocol, comprising the steps as follows: Step 1: every time an ACK frame is received, use the formula last_SRTT=SRTT to update the value of the last SRTT and update the value of the current SRTT at the same time, For SRTT=0.875×SRTT+0.125×RTT, the last_SRTT therein is the smooth round trip delay which is calculated when ACK is received last time, SRTT is the smooth round trip delay and RTT is the round trip delay of the data packet; Step 2: Judge if the current congestion window stays in the slow start stage; If it stays in the slow start stage, conduct window growth in accordance with the slow start way; If it stays in the congestion avoidance phase, the window growth way is: Step 2.1: Judge the current network status If the current window stays in the congestion avoidance phase, evaluate diff which is the number of the queueing packets in accordance with the current SRTT and the minimum RTT to judge the current network status; The calculation method of the mentioned diff is:
Expected=cwnd/minRTT; Actual=cwnd/SRTT; diff=(Expected−Actual)×minRTT; Therein, cwnd is the congestion window value, minRTT is the measured value of the minimum RTT, SRTT is the current smooth RTT, Expected is the expected throughput, And Actual is the actual throughput capacity; Step 2.2: Conduct adaptively change on the value of α α is a parameter to judge the current network status, Set the original value of α as 1, origin_cwnd is the target window value of the growth curves for cubic curve, SRTT is the current smooth RTT, last_SRTT is the value of smooth RTT when the ACK frame is received last time, And the self-adaptive change method of α is: 1) If diff<α, SRTT is smaller than last_SRTT and α>1 at the same time, plus origin_cwnd with 1; 2) If diff<α, SRTT is bigger than last_SRTT and α>1 at the same time, deduct α by 1; 3) If diff<α and α is equal to 1, plus origin_cwnd wth 1; 4) If diff>α, SRTT is bigger than last_SRTT and at the same time α>1, deduct α with 1; 5) If diff>α and SRTT is smaller than last_SRTT, plus α by 1; Step 2.3: Judge if the current congestion window has reached the maximum congestion window value; If it has not reached, continue to conduct change of the congestion window; If it has reached, judge if the current network status is good through comparison between diff and α, which is as follows for specific: If diff>α, do not increase the value of the maximum congestion window; If diff<α, increase the value of the maximum congestion window, i.e. max_cwnd=max_cwnd+100; At the same time, if cwnd>=300 at this time, set epoch_start as 0, set last_max_cwnd as the current maximum congestion window and set α as 1, Therein, max_cwnd is the limited value of the maximum congestion window, epoch_start is the moment when packet loss happens last time and last_max_cwnd is the congestion window value last time the packet loss happens.
2. The congestion improvement method based on QUIC protocol in claim 1, wherein the window growth conducted by the mentioned slow start method is that: every time when an ACK is received, one window value will be added.
3. The congestion improvement method based on QUIC protocol in claim 1, wherein Step 3 is also included in: If the congestion window value has not reached to the maximum at this time, the method of changing congestion window is: changing the congestion window through the formula
4. The congestion improvement method based on QUIC protocol in claim 3, wherein Step 4 is also included in: If packet loss occurs, reduce the current congestion window value and the maximum congestion window value, i.e. cwnd=cwnd*β, max_cwnd=max_cwnd*β, Therein, β is equal to 0.85.
5. The congestion improvement method based on QUIC protocol in claim 2, wherein Step 3 is also included in: If the congestion window value has not reached to the maximum at this time, the method of changing congestion window is: changing the congestion window through the formula
6. The congestion improvement method based on QUIC protocol in claim 5, wherein Step 4 is also included in: If packet loss occurs, reduce the current congestion window value and the maximum congestion window value, i.e. cwnd=cwnd*β, max_cwnd=max_cwnd*β, Therein, β is equal to 0.85.
Description
SPECIFICATION OF THE ATTACHED FIGURES
[0033]
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
[0041]
SPECIFIC IMPLEMENTATION METHOD
[0042] Further specific specification is given as follows by combining the attached figures and the implementation method in detail. This invention puts forward the congestion window growth method based on the queuing delay. At the same time, the maximum congestion window can change adaptively. To make it convenient for description, this invention is described as QUIC+ (Quick Udp Internet Connection+). This invention can make the congestion window reach the target window value more quickly and finally make the performance of QUIC protocol better under environment with high bandwidth, high time delay and high bit error rate.
[0043] The architecture diagram of reliable transmission protocol QUIC based on UDP is as shown in
[0044] The following steps are adopted for realizing this invention:
[0045] Step 1: Every time an ACK frame is received, using the formula last_SRTT=SRTT to update the value of the last SRTT (Smooth Round Trip Delay) and update the value of the current SRTT at the same time. For SRTT=0.875×SRTT+0.125×RTT, the last_SRTT therein is the smooth round trip delay which is calculated when ACK is received last time.
[0046] Step 2: Judge if the current congestion window stays in the slow start stage; If it stays in the slow start stage, conduct window growth in accordance with the slow start way, for which the method of adding 1 window every time one ACK is received can be adopted; If it stays in the congestion avoidance stage, conduct the window growth in accordance with Step 3 to Step 5.
[0047] Step 3: If the current window stays in the congestion avoidance stage, judge the current network status in accordance with the current SRTT and the minimum RTT, i.e. minRTT to evaluate the number diff of the packets in queue.
[0048] The calculation method on diff is as follows:
Expected=cwnd/minRTT;
Actual=cwnd/SRTT;
diff=(Expected−Actual)×minRTT;
[0049] Therein, cwnd is the current congestion window value. MinRTT is the measured value of the minimum RTT. SRTT is the current smooth RTT. Expected is the expected throughput. And Actual is the actual throughput capacity.
[0050] Step 4: Conduct the self-adaptive change on the value of α by adopting the following method
[0051] 1) If diff<α, SRTT is smaller than last_SRTT and α>1 at the same time, plus origin_cwnd with 1;
[0052] 2) If diff<α, SRTT is bigger than last_SRTT and α>1 at the same time, deduct α by 1;
[0053] 3) If diff<α and α is equal to 1, plus origin_cwnd wth 1;
[0054] 4) If diff>α, SRTT is bigger than last_SRTT and at the same time α>1, deduct α with 1;
[0055] 5) If diff>α and SRTT is smaller than last_SRTT, plus α by 1;
[0056] Therein, set the original value of α as 1, origin_cwnd as the target window value of the cubic growth curve, SRTT as the current smooth RTT and last_SRTT as the value of smooth RTT when ACK frame is received last time.
[0057] Step 5: Judge if the current congestion window has reached the maximum congestion window value. If it has not reached, continue to conduct change of the congestion window; If it has reached, judge if the current network status is good through comparison between diff and α; If diff>α, do not increase the value of the maximum congestion window as it means that the network is congested at this time; If diff<α, it means that the network status is good at this time. So increase the value of the maximum congestion window (max_cwnd) i.e. max_cwnd=max_cwnd+100; At the same time, if cwnd>=300 at this time, set epoch_start as 0, set last_max_cwnd as the current maximum congestion window and set α as 1. Therein, max_cwnd is the limited value of the maximum congestion window, epoch_start is the moment when packet loss happens last time and last_max_cwnd is the congestion window value last time the packet loss happens.
[0058] Step 6: If the congestion window value has not reached to the maximum at this time, conduct Step 7 and Step 8 to change the congestion window.
[0059] Step 7: Change the congestion window through the formula as follows in accordance with the origin_cwnd and the curve growth of cubic curve which are calculated in Step 4:
[0060] Therein, C is a parameter of cubic, which is the constant. And t is the time interval from the time when packet loses last time till now, K is the time needed by the window growth to reach the window value of the packet loss last time and W.sub.origin is the target window value;
[0061] Step 8: In accordance with the maximum congestion window value and the congestion window values gotten by cubic curve, set the current congestion window as the smaller value of the max_cwnd and cwnd.
[0062] Step 9: If packet loss occurs, reduce the current congestion window value and the maximum congestion window value, i.e. cwnd=cwnd*β, max_cwnd=max_cwnd*β. Therein, β is equal to 0.85.
[0063] When this invention is applied in the network with high bandwidth and long round trip delay, as the traditional QUIC has maximum congestion window limitation and the recovery time is longer after packet loss happens, performance of QUIC protocol is relatively bad in the network with high bandwidth and long round trip delay; If the maximum congestion window of QUIC protocol is enlarged blindly, the window value of QUIC protocol will increase sharply and the severe packet loss phenomenon will occur, making the throughput capacity of QUIC protocol reduce. However, if the maximum congestion window of QUIC protocol is not increased, the QUIC protocol will not be able to fully utilize the bandwidth, affecting its throughput rate.
[0064] This invention and its beneficial effects are further specified in detail through specific actual cases as follows. Firstly, establish the test environment in accordance with the environment topological graph as shown in
[0065] The congestion control method of QUIC+ protocol is further specified by combining Attached
[0066] Compare the QUIC+ protocol with QUIC protocol and HTP protocol of this invention. Test that the network simulator which is established is WANem and simulate the bandwidth, RTT and bit error rate of the link through WANem.
[0067] As shown in Attached
[0068] As shown in Attached
[0069] As shown in Attached