copa nsdi18

here for paper

instruction

copa is a delayed based cc. By measuring a queueing delay, it computes a expect transmit rate. Comparing the actual and expect rate, copa adjusts the cwnd by AIAD. It proves that the expect rate is an unique Nash equilibrium.

detail

utility function:

To maximize utility function, the target throughput:

where $d_q$ is the mean per-packet queueing delay, $1/\delta$ is in units of MTU-sized packets(?????).

RTTstanding is the smallest RTT in a small time window, $\tau$. $\tau = srtt/2$, srtt is the standard smoothed(EWMA) RTT estimate.
RTTmin is the smallest RTT over a long period of time, smalled of 10s or from the start.

On each ACK arrival:

  1. update $d_q$ and srtt
  2. $\lambda_t = 1/(\delta \cdot d_q)$
  3. $\lambda = cwnd / RTTstanding$, if $\lambda \le \lambda_t$, $cwnd = cwnd+v/(\delta \cdot cwnd)$, else $cwnd = cwnd - v/(\delta \cdot cwnd)$. In a RTT, the change in RTT is $\approx v/\delta $ packets.
  4. $v$ is initailized to 1. On each window, the sender compares the current cwnd with that at the start of the window to set the direction. After the same direction in 3 RTT, $v$ starts to double if the direction is the same with before. Otherwise it will be reset to 1.

Slow start: double cwnd each RTT until $\lambda$ exceeds $\lambda_t$.

Competing with loss-based cc algo: according to the actual queueing delay to switch the mode between default mode where $\delta = 0.5$ and competitive mode where $\delta$ is dynamicly adjusted.