5.3 State and congestion window synchronisation with mQUIC engine
5.3.2 Improving Loss-based CCAs
Then we elaborate the principle of state and congestion window synchronisation cus- tomised to loss-based CCA. To avoid the state and congestion window imbalance after the reaction of default CCA on the underlying connection, the state/cwnd synchroni- sation executed by the mQUIC engine follows two policies: 1) after the occurrence of the ith NFE, all connections should stay in SS phase if theoretically the systemβs aggregated window growth ratio Ξ³i is still larger than that defined
in CA phase Ξ΄, 2) after 1 RTT of the ith NFE, the aggregated congestion window of the whole system with state and cwnd synchronisation should be theoretically equal to the congestion window of the whole system without synchronisation. Fig.5.6shows a simple illustration of how the principle of state and
Start
ππ > πΏ? Reset the nth connection to
SS phase End Data transmission Data transmission in SS phase Content transmission completed? Yes Yes No No Receive the ππ‘β ππΉπΈ report from the nth connection? Yes
calculate πͺπΎπ΅π«π,πβ² and allocate
ππ€πππβ² =
πͺπΎπ΅π«π,πβ²
π to each
connection
Set all connections to CA phase No Enter CA phase (a) SS phase
CA phase starts
ππ€ππππππ₯ ππ€ππππππ β₯ πΎ0?Allocate ππ€ππ
πβ²=
Οπβπππ€πππ πto
each connection
End Data transmission
Data transmission in
progress
Content
transmission
completed?
Yes Yes No No Receive ππ€ππ πfrom all N conns per RTT?
No
Yes
(b) CA phase
Figure 5.6: Principle of state and congestion window synchronisation
congestion window synchronisation works. Assuming a total number of N connections sharing the congestion window CWND before the first NFE occurs, each connection sharing a common bottleneck path that holds an equal congestion window CWNDN . Once an NFE occurs on a random connection, by default the affected connection will immediately execute a congestion window reduction with a back-off ratio Ξ², then the congestion window of the whole system will become CWND1,0 (see in Table 5.4) as
CWND1,0 =
1
N β CWND β Ξ² + N β 1
N β CWND. (5.1) After 1 RTT, different from TCP which will stay in HOL blocking state if packet loss occurs, QUIC can seamlessly send the rest of the packets with a growth rate at Ξ΄, thus the corresponding aggregated congestion window after 1 RTT will become CWND1,1 as
CWND1,1 =
1
Nβ CWND β Ξ² β Ξ΄ + N β 1
N β CWND β Ξ³0. (5.2) Therefore, the growth rate of the whole system after the first NFE can be obtained as
Ξ³1 =
CWND1,1
CWND1,0
. (5.3)
Recall that the customised state synchronisation strategy which targets to retain the equal CWND1,1, if all connections are expected to stay in SS phase after the first NFE
with default growth rate Ξ³0, the congestion window must be adjusted to CWND01,0 which
satisfies
This equation aims to guarantee that the synchronisation of mQUIC engine does not change the aggregated congestion window when 1 RTT has passed since the first NFE occurs. Furthermore, once the multi-connection system is synchronised, any following NFEs can be tackled following the same operation. This is because before the occurrence of each following NFE, the system is always synchronised with the help of the mQUIC engine. Accordingly, in such case, the adjusted congestion window after each NFE should satisfy CWND0i,0β Ξ³0= CWNDi,0β Ξ³i. (5.5) Holding Ξ³1 = CWND1,1 CWND1,0 = Ξ² β Ξ΄ + (N β 1) β Ξ³0 Ξ² + (N β 1) , (5.6) consequently, Ξ³i can be obtained similarly by
Ξ³i=
CWNDi,1
CWNDi,0
= Ξ² β Ξ΄ + (N β 1) β Ξ³iβ1
Ξ² + (N β 1) . (5.7) Thus the corresponding CWND0i,0 is given by
CWND0i,0 = CWNDi,0β
Ξ³i
Ξ³0
, (5.8)
where CWNDi,0can be directly obtained by adding up the congestion window from each
underlying connections.
Now we study Ξ³i, which is the key metric driving the synchronisation strategy. The
mQUIC engine will stop the state synchronisation once Ξ³i < Ξ΄. The rationale behind
that is if the continued NFEs degrades the aggregated growth rate to a value that is less than the default growth rate in the CA phase, the mQUIC engine should force the system to exit SS phase and enter CA phase.
Figure5.7depicts the numerical trend of Ξ³i/Ξ³0 as NFE continuously occurs. It is worth
mentioning that, on a single connection, by default all loss-based CCAs like CUBIC and New Reno can correctly identify multiple consecutive packet losses as a single random loss event. When calculating the Ξ³i, the mQUIC engine treats both the RTT variation
and packet loss event detected by the underlying connection as the same signal of network fluctuation. This is because prematurely existing the exponential growth rate is the main cause of performance degradation of short-lived application, which is a common consequence of both the detected RTT variation and packet loss event. Therefore, the
Figure 5.7: Ξ³i/Ξ³0when continuous NFEs occurs and the connection number varies
mQUIC engine uniformly adopts Ξ² = 0.7, Ξ³0 = 1.5 and Ξ΄ = 1.05 for these two kinds of
NFEs in New Reno and CUBIC. When mQUIC engine should force all connections to exit the SS phase, the ratio of Ξ³i and Ξ³0 equals to Ξ΄/Ξ³0 = 0.7 (see the green dash line
in Fig. 5.7). The value of Ξ³i/Ξ³0 rapidly falls as the first several NFEs occur and then
stays steady at around the ratio of 0.65. Furthermore, in terms of different connection numbers, it is apparent that the smaller the connection number is, the earlier the system will exit the SS phase. For instance, when the fifth NFE happens, a 2-connection system will exit SS phase since Ξ³5/Ξ³0 = 0.69 < 0.7 (Ξ³5 = 1.04 accordingly). In contrast, a 6-
connection system can resist more NFEs (Ξ³18/Ξ³0 = 0.69 < 0.7) but it comes at the
expense of more connections and sockets resources.