Steady-state Experiments

The goal of steady-state experiments is to examine the steady-state behavior a congestion control algorithm (CCA) converges to. In steady-state experiments, the conditions of the end-to-end communication channel between the sender and the receiver are kept constant for a long duration. By keeping the conditions constant, one or more long-running flows have the time to converge to a resource allocation equilibrium.

Theoretical studies often model the steady-state behavior of CCAs. The classical example is the CCA of NewReno - an Additive increase/multiplicative decrease (AIMD) algorithm. NewReno controls the congestion window (cwnd) and provably converges to a sawtooth function during congestion avoidance under certain conditions. The steady-state experiments of ccperf match these findings.

All steady-state experiments set up flows that always have data to send, i.e., flows are never application-limited. These flows compete for bandwidth resources of bottleneck links. The same CCA is used by all flows to examine intra-protocol competition.

The network is static so that the network conditions are constant throughout an experiment. The network parameters are chosen such that CCAs face ideal conditions to converge to an equilibrium. For example, there are no random losses and sufficient buffering is provided.

In ccperf, there are four different steady-state experiments:

  • Single Flow: A single flow is evaluated

  • Synchronous Fairness: Multiple flows facing the same network conditions that start simultaneously are evaluated

  • Start-time Fairness: Multiple flows facing the same network conditions that start at different times are evaluated

  • RTT Fairness: Multiple flows with different two-way propagation delays are evaluated