target = "https://www.rfc-editor.org/rfc/rfc8312#section-4.2" # 4.2. TCP-Friendly Region # # Standard TCP performs well in certain types of networks, for example, # under short RTT and small bandwidth (or small BDP) networks. In # these networks, we use the TCP-friendly region to ensure that CUBIC # achieves at least the same throughput as Standard TCP. # # The TCP-friendly region is designed according to the analysis # described in [FHP00]. The analysis studies the performance of an # Additive Increase and Multiplicative Decrease (AIMD) algorithm with # an additive factor of alpha_aimd (segments per RTT) and a # multiplicative factor of beta_aimd, denoted by AIMD(alpha_aimd, # beta_aimd). Specifically, the average congestion window size of # AIMD(alpha_aimd, beta_aimd) can be calculated using Eq. 3. The # analysis shows that AIMD(alpha_aimd, beta_aimd) with # alpha_aimd=3*(1-beta_aimd)/(1+beta_aimd) achieves the same average # window size as Standard TCP that uses AIMD(1, 0.5). # # AVG_W_aimd = [ alpha_aimd * (1+beta_aimd) / # (2*(1-beta_aimd)*p) ]^0.5 (Eq. 3) # # Based on the above analysis, CUBIC uses Eq. 4 to estimate the window # size W_est of AIMD(alpha_aimd, beta_aimd) with # alpha_aimd=3*(1-beta_cubic)/(1+beta_cubic) and beta_aimd=beta_cubic, # which achieves the same average window size as Standard TCP. When # receiving an ACK in congestion avoidance (cwnd could be greater than # # or less than W_max), CUBIC checks whether W_cubic(t) is less than # W_est(t). If so, CUBIC is in the TCP-friendly region and cwnd SHOULD # be set to W_est(t) at each reception of an ACK. # # W_est(t) = W_max*beta_cubic + # [3*(1-beta_cubic)/(1+beta_cubic)] * (t/RTT) (Eq. 4) [[spec]] level = "SHOULD" quote = ''' If so, CUBIC is in the TCP-friendly region and cwnd SHOULD be set to W_est(t) at each reception of an ACK. '''