Kind of congestion improvement method based on the QUIC protocol
First Claim
1. A congestion improvement method based on QUIC (Quick UDP (user datagram protocol) Internet Connection) protocol, comprising the steps as follows:
- Step 1;
every time an ACK frame is received, using formula last_SRTT=SRTT to update a value of last SRTT (Smooth RTT (Round Trip Delay)) and update a value of current SRTT at the same time, wherein SRTT is smooth round trip delay and RTT is round trip delay of data packet;
the last_SRTT is smooth round trip delay which is calculated by SRTT=0.875×
SRTT+0.125×
RTT when ACK is received last time;
Step 2;
determining if a congestion window stays in a slow start stage;
if the congestion window stays in the slow start stage, conducting window growth in accordance with a slow start way;
if the congestion window stays in a congestion avoidance phase, conducting window growth as follows;
Step 2.1;
determining network status as follows;
if the congestion window stays in the congestion avoidance phase, evaluating diff which is a number of queuing packets in accordance with the SRTT and a minimum RTT to determine the network status;
the diff being calculated by;
Expected=cwnd/minRTT;
Actual=cwnd/SRTT;
diff=(Expected-Actual)×
minRTT;
where, cwnd is a congestion window value, minRTT is a measured value of the minimum RTT, SRTT is the smooth RTT, Expected is an expected throughput of the network, and Actual is an actual throughput capacity of the network;
Step 2.2;
conducting adaptive change of parameter α
setting an original value of α
as 1, wherein α
is a parameter to determine the network status, origin_cwnd is a target congestion window value of a curve growth of a cubic curve, and the adaptive change is conducted by a self-adaptive change method of a as follows;
1) if diff<
α
, SRTT is smaller than last_SRTT and α
>
1 at the same time, increasing origin_cwnd by 1;
2) if diff<
α
, SRTT is bigger than last_SRTT and α
>
1 at the same time, reducing α
by 1;
3) if diff<
α and
α
is equal to 1, increasing origin_cwnd by 1;
4) if diff>
α
, SRTT is bigger than last_SRTT and at the same time α
>
1, reducing α
by 1;
5) if diff>
α and
SRTT is smaller than last_SRTT, increasing α
by 1;
Step 2.3;
determining if the congestion window has reached maximum congestion window value;
if the congestion window has not, continuing to conduct change of the congestion window;
if the congestion window has, performing comparison between diff and α
, as follows;
if diff>
α
, taking no action to increase the maximum congestion window value;
if diff<
α
, increasing the maximum congestion window value by max_cwnd=max_cwnd+100;
at the same time, if cwnd>
=300, setting epoch_start as 0, setting last_max_cwnd as the maximum congestion window value and setting α
as 1, where, max_cwnd is a limited value of the maximum congestion window value, epoch_start is a moment when a packet was lost last time and last_max_cwnd is the maximum congestion window value at the packet loss.
1 Assignment
0 Petitions
Accused Products
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.
38 Citations
6 Claims
-
1. A congestion improvement method based on QUIC (Quick UDP (user datagram protocol) Internet Connection) protocol, comprising the steps as follows:
-
Step 1;
every time an ACK frame is received, using formula last_SRTT=SRTT to update a value of last SRTT (Smooth RTT (Round Trip Delay)) and update a value of current SRTT at the same time, wherein SRTT is smooth round trip delay and RTT is round trip delay of data packet;the last_SRTT is smooth round trip delay which is calculated by SRTT=0.875×
SRTT+0.125×
RTT when ACK is received last time;Step 2;
determining if a congestion window stays in a slow start stage;
if the congestion window stays in the slow start stage, conducting window growth in accordance with a slow start way;
if the congestion window stays in a congestion avoidance phase, conducting window growth as follows;Step 2.1;
determining network status as follows;if the congestion window stays in the congestion avoidance phase, evaluating diff which is a number of queuing packets in accordance with the SRTT and a minimum RTT to determine the network status;
the diff being calculated by;
Expected=cwnd/minRTT;
Actual=cwnd/SRTT;
diff=(Expected-Actual)×
minRTT;
where, cwnd is a congestion window value, minRTT is a measured value of the minimum RTT, SRTT is the smooth RTT, Expected is an expected throughput of the network, and Actual is an actual throughput capacity of the network;Step 2.2;
conducting adaptive change of parameter αsetting an original value of α
as 1, wherein α
is a parameter to determine the network status, origin_cwnd is a target congestion window value of a curve growth of a cubic curve, and the adaptive change is conducted by a self-adaptive change method of a as follows;1) if diff<
α
, SRTT is smaller than last_SRTT and α
>
1 at the same time, increasing origin_cwnd by 1;2) if diff<
α
, SRTT is bigger than last_SRTT and α
>
1 at the same time, reducing α
by 1;3) if diff<
α and
α
is equal to 1, increasing origin_cwnd by 1;4) if diff>
α
, SRTT is bigger than last_SRTT and at the same time α
>
1, reducing α
by 1;5) if diff>
α and
SRTT is smaller than last_SRTT, increasing α
by 1;Step 2.3;
determining if the congestion window has reached maximum congestion window value;if the congestion window has not, continuing to conduct change of the congestion window;
if the congestion window has, performing comparison between diff and α
, as follows;if diff>
α
, taking no action to increase the maximum congestion window value;
if diff<
α
, increasing the maximum congestion window value by max_cwnd=max_cwnd+100;
at the same time, if cwnd>
=300, setting epoch_start as 0, setting last_max_cwnd as the maximum congestion window value and setting α
as 1, where, max_cwnd is a limited value of the maximum congestion window value, epoch_start is a moment when a packet was lost last time and last_max_cwnd is the maximum congestion window value at the packet loss. - View Dependent Claims (2, 3, 4, 5, 6)
-
Specification