Deep Buffers Experiment
Buffer-filling congestion control algorithms (CCAs) are designed to continuously probe for free bandwidth. By doing that, they may keep filling up a standing queue at the bottleneck, which leads to self-inflicted queueing delay. When the bottleneck queue has a large queue size, i.e., when the buffer is deep, large queueing delays may be a consequence. The presence of deep buffers in many networks today and the consequences thereof is known as the problem of bufferbloat. A CCA that is resilient against bufferbloat should refrain from inflicting queueing delays that are proportional to the queue size.
Scenario
In the deep buffers experiment, a single flow operates in a static
dumbbell network with a queue size that is larger than the
bandwidth-delay product (BDP). The flow generates greedy source traffic
and uses a CCA. The experiment has one parameter named qlen
that sets the size of the bottleneck queue. It can be repeated for
different values of qlen
to evaluate the influence of the
queue size on the operating point.
To summarize the experiment setup:
Topology: Dumbbell topology (\(K=1\)) with static network parameters
Flows: A single flow (\(K=1\)) that uses a CCA
Traffic Generation Model: Greedy source traffic
Experiment Results
Experiment #1
Parameters
Command: ns3-dev-ccperf-static-dumbbell-default --experiment-name=deep_buffers --db-path=benchmark_TcpNewReno.db '--parameters={aut:TcpNewReno,k:1,qlen:80p}' --aut=TcpNewReno --stop-time=15s --seed=42 --qlen=80p --bw=16Mbps --loss=0.0 --qdisc=FifoQueueDisc --rtts=15ms --sources=src_0 --destinations=dst_0 --protocols=TCP --algs=TcpNewReno --recoveries=TcpPrrRecovery --start-times=0s --stop-times=15s '--traffic-models=Greedy(bytes=0)'
Flows
src | dst | transport_protocol | cca | cc_recovery_alg | traffic_model | start_time | stop_time |
---|---|---|---|---|---|---|---|
src_0 | dst_0 | TCP | TcpNewReno | TcpPrrRecovery | Greedy(bytes=0) | 0.00 | 15.00 |
Metrics
The following tables list the flow, link, and network metrics of experiment #1. Refer to the the metrics page for definitions of the listed metrics.
Flow Metrics
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. Bold values indicate which flow achieved the best performance.
Metric | flow_1 |
---|---|
cov_in_flight_l4 | 0.21 |
cov_throughput_l4 | 0.03 |
flow_completion_time_l4 | 15.00 |
mean_cwnd_l4 | 79.70 |
mean_delivery_rate_l4 | 15.38 |
mean_est_qdelay_l4 | 43.84 |
mean_idt_ewma_l4 | 0.76 |
mean_in_flight_l4 | 79.18 |
mean_network_power_l4 | 273.48 |
mean_one_way_delay_l7 | 1925.14 |
mean_recovery_time_l4 | 101.88 |
mean_sending_rate_l4 | 15.53 |
mean_sending_rate_l7 | 17.53 |
mean_srtt_l4 | 58.84 |
mean_throughput_l4 | 15.39 |
mean_throughput_l7 | 15.39 |
mean_utility_mpdf_l4 | -0.07 |
mean_utility_pf_l4 | 2.73 |
mean_utilization_bdp_l4 | 4.12 |
mean_utilization_bw_l4 | 0.96 |
total_retransmissions_l4 | 108.00 |
total_rtos_l4 | 0.00 |
Link Metrics
Link metrics are recorded at the network links of interest, typically at bottlenecks. They include metrics that measure queue states. Bold values indicate which link achieved the best performance.
Metric | btl_forward |
---|---|
mean_qdisc_delay_l2 | 42.27 |
mean_qdisc_length_l2 | 56.59 |
mean_sending_rate_l1 | 15.97 |
total_qdisc_drops_l2 | 108.00 |
Figures
The following figures show the results of the experiment #1.Time Series Plot of the Operating Point
Time series plot of the number of segments in flight, the smoothed round-trip time (sRTT), and the throughput at the transport layer.
In Flight vs Mean Operating Point
The mean throughput and mean smoothed round-trip time (sRTT) at the transport layer of each flow. The optimal operating point is highlighted with a star (magenta). The joint operating point is given by the aggregated throughput and the mean sRTT over all flows
Distribution of the Operating Point
The empirical cumulative distribution function (eCDF) of the throughput and smoothed round-trip time (sRTT) at the transport layer of each flow.