Transient-state Experiments
A congestion control algorithm (CCA) should converge to some steady-state behavior if the network and traffic conditions allow convergence. Before that, the CCA goes through a transient-state phase. Transient-state experiments evaluate the performance of a CCA in the transient-state phase. ccperf uses responsiveness experiments that change a network parameter abruptly to initiate a transient-state phase purposefully.
Responsiveness Experiments
A CCA should be responsive to sudden changes in network conditions. In the responsiveness step function experiment, sudden changes are triggered at predefined instants that either increase or decrease the value of a network parameter. There are three types of changes depending on which network parameter is affected:
Bandwidth: An increase in bandwidth frees up resources that can be acquired by a CCA. To avoid underutilization, a CCA should grab the bandwidth quickly. On the other hand, a decrease in bandwidth may lead to congestion. Then, a CCA should reduce its sending rate.
Delay: An increase of the propagation delay prolongs feedback cycles of the congestion control loop. A CCA might slow down if the growth rate of its sending rate is proportional to feedback cycle period. Furthermore, CCAs that estimate the two-way propagation delay to set their rate may have to update their estimate in response. A decrease of the propagation delay may affect CCAs in the opposite way.
Loss: An increase in the random loss probability may cause CCAs to back off more frequently in response to packet loss. Hence, CCAs may underutilize the bandwidth resources at times with high loss. Vice versa, a decrease may let CCAs grab more bandwidth. CCAs that are resilient to random losses might not be affected by a change of the random loss probability.
There are two different responsiveness experiments in ccperf:
Step Function: One network parameter is changed once throughout an experiment. The experiment mimics a sudden change of the network conditions, for example after a routing change.
Pulse Wave: One network parameter periodically alternates between two values throughout an experiment. This experiment is more challenging for CCAs as they have to adapt to changes periodically.