Metrics

Metrics quantify the performance of congestion control algorithms. They are captured while experiments are running and stored in a database. This page gives an overview about the metrics that are used in ccperf.

Metric Types

Metrics can be categorized into three types:

  • Flow metrics capture the performance of an individual flow. They are measured at the endpoints of a network path at either the source, the receiver, or both.

  • Link metrics are recorded at the network links of interest, typically at bottlenecks. They include metrics that measure queue states.

  • Network metrics assess the entire network as a whole by aggregating other metrics, e.g., the aggregated throughput of all flows.

Sample Types

There are three ways how metrics are sampled:

  • A sample metric is sampled \(n\) times to give the vector (sequence) of metric samples \([x_1, x_2, \ldots, x_n] \in \mathbb{R}^n\). When the sampling is done within one experiment at different measurement (sampling) times \(t = 1, 2, \ldots, T\), we refer to the sample metric as a time series \(x_t = [x_1, x_2, \ldots, x_T]\).

  • A singleton metric \(x \in \mathbb{R}\) is a single value that quantifies some measurable property. For example, the flow completion time quantifies the lifetime of a flow in an experiment.

  • A statistical metric \(x \in \mathbb{R}\) condenses one or more other metrics to a single real number. Common statistical metrics in ccperf are the arithmetic mean mean_x, sample variance var_x, coefficient of variation cov_x = std_x / mean_x, or accumulation agg_x \(= \sum_{i}^{n} x_{i}\) of a sample metric \([x_1, x_2, \ldots, x_n]\). For example, mean_throughput averages the time series of a flow’s throughput over an experiment.

Flow Metrics

Metric Type Layer Unit Description
in_flight Sample Transport Segments Amount of unacknowledged segments in flight
cwnd Sample Transport Segments Congestion window
throughput Sample * Mbps Throughput (data rate) measured at the destination
sending_rate Sample * Mbps Sending rate at source
srtt Sample Transport ms Smoothed RTT estimate
owd Sample Application ms One-way delay
recovery_time Sample Transport ms Duration spent in loss recovery
network_power Sample * Mbps/ms Kleinrock’s network_power \(= \frac{\texttt{throughput}}{\texttt{srtt}}\)
utilization_bw Sample * Bandwidth utilization \(u = \frac{\texttt{throughput}}{\texttt{bandwidth}}\)
utilization_bdp Sample Transport BDP utilization \(u = \frac{\texttt{in\_flight}}{\texttt{BDP}}\)
utility_x_pf Sample * Proportional fairness \(U(x) = log(x)\)
utility_x_mpdf Sample * Minimum potential delay fairness \(U(x) = \frac{1}{x}\)
flow_completion_time Singleton Link s Duration between the first sent byte and last received byte
total_retransmissions Statistical Transport Number of retransmitted segments in total
Metric Type Layer Unit Description
qdisc_delay Sample TC ms Queueing delay (Sojourn time) of qdisc
qdisc_length Sample TC packets Number of packets in qdisc
qdisc_drops Sample TC packets Number of dropped packets by qdisc
total_qdisc_drops Statistical TC packets Number of dropped packets by qdisc in total

Network Metrics

In the context of network metrics, an aggregated flow metric of type \(x\) accumulates indivual flow metrics with agg_x \(= \sum_{k=1}^K x_k\), where \(x_k\) is the flow metric of the \(k\)-th flow. The dimension over which \(x\) is accumulated is not explicitly specified in the name agg_x for brevity. Likewise, time series can be aggregated and averaged, e.g., mean_agg_throughput \(\,= \frac{1}{T} \sum_{t=1}^T \sum_{k=1}^K x_{t,k}\). A network metric mean_agg_x is averaged over time and accumulated over flows. Moreover, the following network metrics are measured as well:

Metric Type Layer Unit Description
jains_fairness_x * * Jain’s index of an allocation \(\boldsymbol{x}\) given by \(f(\boldsymbol{x}) = \frac{\left(\sum_{k = 1}^K x_k \right)^2}{K \sum_{k = 1}^K x_k^2}\)
entropy_fairness_x * * Entropy fairness of an allocation \(\boldsymbol{x}\) given by \(f(\boldsymbol{x}) = \exp\left(H\left(\frac{\boldsymbol{x}}{\sum_{k=1}^{K} x_k}\right)\right)\), where \(H\) is the Shannon entropy function
product_fairness_x * * Product fairness of an allocation \(\boldsymbol{x}\) given by \(f(\boldsymbol{x}) = \prod_{k=1}^K \frac{x_k}{\sum_{k=1}^K x_k}\)