Accelerated Bottleneck Bandwidth Adaptation (ABBA) for CUBIC and Cuback - #689
Open
kazuho wants to merge 28 commits into
Open
Accelerated Bottleneck Bandwidth Adaptation (ABBA) for CUBIC and Cuback#689kazuho wants to merge 28 commits into
kazuho wants to merge 28 commits into
Conversation
…g before the shared bottleneck
Use the TLS context random_bytes callback for simulator packet loss. The previous rand() % 65536 comparison quantized the configured probability to multiples of 1/65536. This substantially inflated the very small per-packet probabilities used to model a fixed probability of loss per RTT on high-BDP paths; in some cases distinct 5% and 10%-per-RTT configurations became the same effective probability. A 32-bit sample reduces the probability step to 2^-32. Drawing it through the TLS context also varies loss placement between benchmark repetitions, avoiding dependence on the process-global deterministic rand() sequence.
Add an opt-in random_loss_tolerance policy for modern CUBIC. Calibration slow start records a scalar queue-overflow RTT. A later CA packet loss still applies the normal 0.7 reduction, but ACKs may recover toward the pre-loss CWND while the latest RTT is within 2 ms of minRTT and the calibrated overflow RTT is more than 10 ms above minRTT. Growth uses half the relative distance to the recovery target with a 2.5% floor, while the ordinary CUBIC trajectory continues in parallel. If smoothed RTT remains below half the calibrated queue depth for twice the time in which a non-losing CUBIC competitor could have reached congestion, return to calibration slow start without resetting CWND. ECN and shallow queues retain ordinary CUBIC behavior. Add focused tests for accelerated recovery, guards, recalibration, and undo. Standalone tail-drop throughput -------------------------------- Each value below is median goodput as a percentage of available bandwidth over seven 100-second runs, measuring the latter 50 seconds. Per-packet loss was chosen so that all packets in one full pipe (bandwidth times base RTT plus configured queue) have a 5% or 10% aggregate probability of at least one random loss. | Profile | Stock 5% | NewCC 5% | Stock 10% | NewCC 10% | |------------------|---------:|---------:|----------:|----------:| | DSL | 92.05 | 97.52 | 70.18 | 92.91 | | Home WiFi | 52.87 | 76.35 | 37.76 | 52.42 | | Public | 98.03 | 98.02 | 96.31 | 97.07 | | Corporate WiFi | 48.38 | 82.97 | 34.57 | 55.22 | | LTE | 82.69 | 93.30 | 61.35 | 73.92 | | 5G | 59.40 | 83.76 | 41.56 | 58.97 | | LEO | 79.40 | 94.31 | 56.96 | 72.86 | | GEO | 98.01 | 98.01 | 94.82 | 96.41 | | DoCoMo@Office | 88.75 | 97.58 | 71.56 | 97.00 | | au@Office | 95.90 | 97.55 | 56.63 | 96.08 | | WiFi@Office | 71.67 | 96.50 | 52.88 | 83.84 | | DoCoMo@mall | 98.02 | 98.03 | 94.41 | 97.79 | | congested | 97.95 | 97.93 | 97.91 | 97.81 | | bdp20 | 97.62 | 97.78 | 96.96 | 96.16 | | bdp40 | 97.51 | 97.76 | 95.68 | 96.04 | | queue 10 ms | 74.61 | 74.10 | 52.59 | 52.17 | | queue 5 ms | 67.76 | 68.97 | 51.52 | 51.54 | | queue 2.5 ms | 65.51 | 66.28 | 48.38 | 47.99 | The 5% results show the intended gain on lossy paths with enough queue for the RTT gates to operate. Public, the low-bandwidth profiles, and shallow queues are neutral. At the 10% stress point NewCC usually remains ahead of stock, but Home WiFi, Corporate WiFi, LTE, 5G, and LEO still fail to approach full utilization. Individual 10% runs also occasionally collapse despite high medians: NewCC ranged from 59.4% to 98.0% on GEO, 57.6% to 97.3% on DoCoMo@Office, and 80.1% to 97.5% on au@Office. Clean tail-drop competition --------------------------- These are three 160-second runs per flow ordering, measuring the latter 80 seconds. Both flows have zero random loss. Stock/stock reports the second flow's median share. The next two columns report NewCC's median share when it is created second or first; the final column is its mean share across all six runs. | Profile | Stock/stock second | Stock -> NewCC | NewCC -> stock | NewCC mean | |------------------|-------------------:|---------------:|---------------:|-----------:| | DSL | 49.40 | 45.89 | 52.32 | 48.65 | | Home WiFi | 48.29 | 49.94 | 51.41 | 49.54 | | Public | 49.58 | 46.85 | 49.10 | 48.57 | | Corporate WiFi | 54.68 | 51.35 | 34.46 | 46.61 | | LTE | 47.11 | 47.71 | 52.59 | 49.36 | | 5G | 50.87 | 48.78 | 50.42 | 49.97 | | LEO | 52.58 | 51.55 | 47.02 | 48.01 | | GEO | 49.99 | 49.91 | 50.07 | 49.99 | | DoCoMo@Office | 49.07 | 49.65 | 49.66 | 49.68 | | au@Office | 51.54 | 49.12 | 49.55 | 49.34 | | WiFi@Office | 54.00 | 58.48 | 50.17 | 53.59 | | DoCoMo@mall | 49.55 | 49.60 | 50.18 | 49.89 | | congested | 48.01 | 49.14 | 50.93 | 49.96 | | bdp20 | 49.57 | 49.35 | 49.81 | 50.31 | | bdp40 | 51.89 | 49.11 | 50.25 | 49.36 | | queue 10 ms | 47.16 | 50.98 | 53.28 | 51.12 | | queue 5 ms | 48.98 | 48.66 | 50.28 | 48.69 | | queue 2.5 ms | 51.25 | 49.28 | 50.13 | 49.88 | The clean-path safety result is that NewCC does not systematically take more bandwidth than stock CUBIC. Corporate WiFi and WiFi@Office have substantial flow-order effects, also visible in the stock/stock baseline. NewCC against NewCC at the 5% setting ------------------------------------- Two NewCC flows were given the same per-packet loss probability for five independent 320-second runs. The table compares standalone NewCC goodput above with the second flow's share in the final 40-second window. Combined utilization is the median for that window; deviation is the mean absolute distance from a 50% share. Because loss continues independently, stable convergence should be judged from the range and window-to-window behavior, not merely from the median share. | Profile | Standalone | Flow 2 median | Flow 2 range | Combined util. | Final deviation | |------------------|-----------:|--------------:|-------------:|---------------:|----------------:| | DSL | 97.52 | 50.02 | 47.95-52.74 | 98.02 | 1.72 | | Home WiFi | 76.35 | 54.25 | 46.52-61.19 | 97.43 | 5.57 | | Corporate WiFi | 82.97 | 46.38 | 45.20-51.56 | 97.67 | 3.14 | | LTE | 93.30 | 45.47 | 37.65-63.11 | 98.03 | 7.02 | | 5G | 83.76 | 52.50 | 46.82-56.35 | 97.64 | 3.25 | | LEO | 94.31 | 51.22 | 39.65-60.75 | 98.03 | 6.87 | | GEO | 98.01 | 52.01 | 42.78-73.39 | 97.96 | 8.02 | | DoCoMo@Office | 97.58 | 54.71 | 27.86-66.91 | 97.73 | 14.08 | | au@Office | 97.55 | 36.08 | 29.29-56.65 | 97.73 | 13.58 | | WiFi@Office | 96.50 | 50.06 | 45.94-54.68 | 97.72 | 2.21 | | DoCoMo@mall | 98.03 | 50.14 | 33.94-73.04 | 98.03 | 10.56 | | queue 10 ms | 74.10 | 48.51 | 44.40-50.93 | 96.79 | 2.56 | NewCC/NewCC shares remain narrow on DSL, Corporate WiFi, 5G, WiFi@Office, and the shallow queue. They do not reliably converge on the deeper high-BDP profiles even when standalone NewCC saturates them: the 40-second share error does not consistently decrease over the eight windows on GEO, DoCoMo@Office, au@Office, or DoCoMo@mall. The prototype preserves aggregate utilization there but does not solve self-fairness. Non-lossy stock CUBIC against 5%-loss NewCC ------------------------------------------- These are seven 160-second runs per flow ordering, measuring the latter 80 seconds. The NewCC flow uses the same per-packet probability as the standalone 5%-per-filled-path-RTT benchmark, while the stock CUBIC flow has no random loss. Throughput and combined utilization are percentages of bottleneck bandwidth. The parenthesized values are the full range of NewCC's share across the seven repetitions. | Profile | Stock -> NewCC: S / N | N share (range) | NewCC -> stock: N / S | N share (range) | Util. S->N / N->S | |------------------|-----------------------:|----------------------:|-----------------------:|----------------------:|------------------:| | DSL | 63.75 / 34.27 | 34.96 (30.03-41.61) | 36.60 / 61.44 | 37.33 (30.26-40.02) | 98.03 / 98.04 | | Home WiFi | 69.13 / 28.81 | 29.41 (28.53-34.61) | 29.18 / 68.77 | 29.79 (29.08-35.11) | 97.94 / 97.94 | | Public | 67.23 / 30.80 | 31.42 (25.66-36.12) | 26.63 / 71.41 | 27.16 (24.58-33.47) | 98.04 / 98.03 | | Corporate WiFi | 80.75 / 16.99 | 17.38 (15.00-19.05) | 16.92 / 80.82 | 17.31 (14.71-19.65) | 97.74 / 97.74 | | LTE | 68.53 / 29.51 | 30.10 (22.29-36.86) | 27.23 / 70.81 | 27.77 (23.17-32.14) | 98.04 / 98.04 | | 5G | 74.99 / 22.92 | 23.41 (14.84-25.47) | 22.08 / 75.84 | 22.55 (18.25-24.24) | 97.91 / 97.90 | | LEO | 72.92 / 25.12 | 25.62 (19.39-34.12) | 26.94 / 71.09 | 27.48 (15.22-32.89) | 98.04 / 98.04 | | GEO | 60.43 / 37.57 | 38.34 (32.49-44.30) | 37.78 / 60.22 | 38.55 (35.86-50.04) | 98.00 / 98.00 | | DoCoMo@Office | 76.16 / 21.66 | 22.14 (18.53-29.04) | 27.81 / 70.03 | 28.42 (17.37-37.27) | 97.83 / 97.85 | | au@Office | 78.11 / 19.62 | 20.08 (9.23-26.72) | 19.10 / 78.83 | 19.50 (17.30-25.31) | 97.73 / 97.73 | | WiFi@Office | 76.98 / 20.75 | 21.23 (19.98-23.49) | 19.66 / 78.07 | 20.12 (18.97-23.48) | 97.73 / 97.73 | | DoCoMo@mall | 68.83 / 29.20 | 29.78 (27.23-31.40) | 30.28 / 67.75 | 30.89 (21.53-42.16) | 98.03 / 98.03 | | congested | 54.24 / 43.36 | 44.43 (43.27-48.95) | 42.10 / 56.40 | 42.74 (39.27-50.08) | 97.96 / 97.99 | | bdp20 | 50.28 / 47.69 | 48.67 (46.81-50.13) | 47.67 / 50.25 | 48.69 (46.36-51.29) | 97.85 / 97.91 | | bdp40 | 51.11 / 46.87 | 47.83 (47.09-51.95) | 46.30 / 51.67 | 47.26 (44.04-51.03) | 97.96 / 97.96 | | queue 10 ms | 59.13 / 37.97 | 39.03 (37.42-42.62) | 40.61 / 57.09 | 41.56 (38.72-42.72) | 97.20 / 97.67 | | queue 5 ms | 55.14 / 37.56 | 40.52 (37.81-43.53) | 37.78 / 55.09 | 40.81 (39.25-41.34) | 92.77 / 92.77 | | queue 2.5 ms | 52.26 / 36.77 | 41.30 (39.78-44.03) | 36.57 / 52.35 | 41.13 (39.46-42.96) | 88.90 / 88.93 | The non-lossy stock flow receives more bandwidth on every profile; NewCC does not become over-aggressive when only its path has random loss. Aggregate utilization remains about 98% except on the extremely shallow queues, because the non-lossy flow consumes the bandwidth relinquished by NewCC. On the high-rate profiles NewCC often receives only 17-31% of the bottleneck. Repeating this matrix with stock CUBIC for the lossy flow shows only a marginal competitive improvement from NewCC. Across the 36 profile-and-order median shares, 32 change by no more than three percentage points; the full change ranges from -3.57 to +6.16 points, and the mean change is +0.46 points. The sign varies by profile and order, and the randomized distributions generally overlap. NewCC's clear benefit is therefore standalone utilization on lossy paths, not competition against a non-lossy CUBIC flow.
Keep CUBIC's ordinary loss response independent of random loss tolerance. In particular, use the normal first-loss BDP estimate when calibration slow start ends, rather than retaining the overshot slow-start CWND as Wmax. After the ordinary packet-loss reduction, set the accelerated recovery target to reduced_cwnd / beta^2. In congestion avoidance, where reduced_cwnd is beta * CWNDpre, this is CWNDpre / beta. Apply the same rule to the loss that ends calibration slow start, so that obtaining qoRTT also opens accelerated recovery. The live CWND itself remains governed by the existing slow-start or congestion-avoidance reduction. Update the focused tests to cover normal slow-start reduction, the target derived from reduced CWND, and a subsequent CA recovery. Standalone tail-drop throughput -------------------------------- Each value below is median goodput as a percentage of available bandwidth over seven 100-second runs, measuring the latter 50 seconds. Per-packet loss was chosen so that all packets in one full pipe (bandwidth times base RTT plus configured queue) have a 5% or 10% aggregate probability of at least one random loss. | Profile | Stock 5% | NewCC 5% | Stock 10% | NewCC 10% | |------------------|---------:|---------:|----------:|----------:| | DSL | 93.68 | 97.72 | 73.91 | 96.41 | | Home WiFi | 52.27 | 96.45 | 37.27 | 95.15 | | Public | 98.03 | 98.03 | 93.33 | 97.87 | | Corporate WiFi | 51.79 | 97.72 | 34.16 | 97.65 | | LTE | 84.87 | 97.14 | 64.01 | 96.12 | | 5G | 53.45 | 97.19 | 42.99 | 96.20 | | LEO | 84.20 | 97.27 | 59.65 | 96.26 | | GEO | 96.51 | 98.00 | 84.25 | 95.77 | | DoCoMo@Office | 88.54 | 97.73 | 73.17 | 97.30 | | au@Office | 75.46 | 97.68 | 55.90 | 97.55 | | WiFi@Office | 73.06 | 97.72 | 51.85 | 97.71 | | DoCoMo@mall | 98.03 | 98.04 | 94.37 | 97.87 | | congested | 97.93 | 97.85 | 97.93 | 97.87 | | bdp20 | 97.64 | 97.62 | 96.06 | 96.58 | | bdp40 | 96.98 | 97.76 | 95.88 | 96.31 | | queue 10 ms | 71.85 | 73.33 | 52.40 | 54.66 | | queue 5 ms | 67.80 | 65.09 | 52.75 | 48.46 | | queue 2.5 ms | 66.63 | 64.97 | 49.38 | 47.74 | The corrected target removes the previous systematic underutilization on the deep-queue high-rate profiles. At 5% loss, NewCC reaches roughly 96.5--98% on those paths; at 10%, it generally remains at 95--98%. Shallow queues do not enable the RTT-gated mechanism and remain neutral or slightly worse. Clean tail-drop competition --------------------------- These are seven 160-second runs per flow ordering, measuring the latter 80 seconds. Both flows have zero random loss. Stock/stock reports the second flow's median share. The next two columns report NewCC's median share when it is created second or first; the final column is its mean share across all fourteen runs. | Profile | Stock/stock second | Stock -> NewCC | NewCC -> stock | NewCC mean | |------------------|-------------------:|---------------:|---------------:|-----------:| | DSL | 50.11 | 46.90 | 50.44 | 49.76 | | Home WiFi | 48.52 | 52.21 | 50.56 | 51.42 | | Public | 49.97 | 49.64 | 51.56 | 50.53 | | Corporate WiFi | 58.58 | 56.78 | 45.46 | 51.49 | | LTE | 51.24 | 49.55 | 51.64 | 50.14 | | 5G | 49.81 | 50.70 | 50.17 | 51.41 | | LEO | 54.69 | 52.65 | 51.26 | 50.58 | | GEO | 49.98 | 50.01 | 50.00 | 49.73 | | DoCoMo@Office | 50.01 | 50.09 | 49.04 | 49.94 | | au@Office | 51.48 | 51.50 | 48.45 | 49.78 | | WiFi@Office | 53.35 | 54.99 | 47.27 | 50.76 | | DoCoMo@mall | 49.66 | 49.72 | 50.32 | 50.04 | | congested | 49.18 | 48.63 | 50.93 | 50.13 | | bdp20 | 50.50 | 49.32 | 49.55 | 49.52 | | bdp40 | 48.47 | 49.74 | 49.88 | 49.33 | | queue 10 ms | 50.39 | 49.02 | 50.08 | 50.01 | | queue 5 ms | 50.48 | 48.99 | 50.78 | 50.16 | | queue 2.5 ms | 50.68 | 51.05 | 49.55 | 50.15 | NewCC does not take a systematic advantage over a clean CUBIC flow that can sustain the bottleneck. Corporate WiFi and WiFi@Office retain flow-order effects also present in the stock/stock control. NewCC against NewCC at the 5% setting ------------------------------------- Two NewCC flows were given the same per-packet loss probability for five independent 320-second runs. The table compares standalone NewCC goodput above with the second flow's share in the final 40-second window. Combined utilization is the median for that window; deviation is the mean absolute distance from a 50% share. | Profile | Standalone | Flow 2 median | Flow 2 range | Combined util. | Final deviation | |------------------|-----------:|--------------:|-------------:|---------------:|----------------:| | DSL | 97.72 | 51.10 | 45.60-64.53 | 98.02 | 4.65 | | Home WiFi | 96.45 | 55.18 | 53.38-59.99 | 97.61 | 5.99 | | Corporate WiFi | 97.72 | 48.76 | 35.97-54.57 | 97.72 | 5.76 | | LTE | 97.14 | 45.75 | 39.49-47.58 | 98.03 | 6.20 | | 5G | 97.19 | 57.73 | 48.11-59.57 | 97.72 | 5.88 | | LEO | 97.27 | 49.48 | 43.64-55.68 | 98.03 | 3.30 | | GEO | 98.00 | 60.53 | 43.95-62.36 | 98.00 | 10.00 | | DoCoMo@Office | 97.73 | 59.15 | 29.75-69.30 | 97.73 | 13.25 | | au@Office | 97.68 | 62.57 | 53.94-81.29 | 97.73 | 13.44 | | WiFi@Office | 97.72 | 50.18 | 47.98-55.39 | 97.72 | 1.90 | | DoCoMo@mall | 98.04 | 45.26 | 43.55-60.93 | 98.03 | 6.25 | | queue 10 ms | 73.33 | 47.43 | 42.93-53.01 | 97.48 | 3.41 | Aggregate utilization stays near 98%, but the prototype does not consistently converge against itself on GEO, DoCoMo@Office, au@Office, or DoCoMo@mall. Non-lossy stock CUBIC against 5%-loss NewCC ------------------------------------------- These are seven 160-second runs per flow ordering, measuring the latter 80 seconds. NewCC uses the same per-packet probability as the standalone 5% benchmark, while stock CUBIC has no random loss. Throughput and combined utilization are percentages of bottleneck bandwidth. Parenthesized values are the full range of NewCC's share across the seven repetitions. | Profile | Stock -> NewCC: S / N | N share (range) | NewCC -> stock: N / S | N share (range) | Util. S->N / N->S | |------------------|-----------------------:|---------------------:|-----------------------:|---------------------:|------------------:| | DSL | 64.69 / 33.35 | 34.02 (31.62-42.28) | 33.59 / 64.45 | 34.26 (33.54-38.14) | 98.03 / 98.03 | | Home WiFi | 69.55 / 28.40 | 29.00 (26.48-32.57) | 30.63 / 67.31 | 31.28 (25.73-36.28) | 97.95 / 97.94 | | Public | 67.40 / 30.63 | 31.25 (24.27-37.80) | 31.50 / 66.54 | 32.13 (24.64-36.08) | 98.04 / 98.04 | | Corporate WiFi | 80.63 / 17.10 | 17.50 (16.27-19.99) | 19.48 / 78.26 | 19.93 (15.72-21.38) | 97.74 / 97.74 | | LTE | 68.87 / 29.16 | 29.75 (24.46-31.16) | 31.30 / 66.74 | 31.93 (27.10-36.65) | 98.04 / 98.04 | | 5G | 76.11 / 21.78 | 22.25 (14.77-26.11) | 25.12 / 72.80 | 25.66 (16.85-27.28) | 97.89 / 97.92 | | LEO | 75.03 / 23.01 | 23.47 (19.52-25.28) | 27.03 / 71.00 | 27.57 (22.21-31.43) | 98.04 / 98.04 | | GEO | 55.07 / 42.93 | 43.81 (28.67-50.00) | 41.30 / 57.89 | 41.64 (36.40-48.43) | 98.01 / 98.00 | | DoCoMo@Office | 72.30 / 25.53 | 26.09 (20.13-27.35) | 27.53 / 70.29 | 28.14 (22.72-34.08) | 97.83 / 97.84 | | au@Office | 80.38 / 17.35 | 17.75 (13.45-25.42) | 17.78 / 79.94 | 18.20 (15.73-32.01) | 97.73 / 97.73 | | WiFi@Office | 76.53 / 21.19 | 21.69 (19.98-25.50) | 19.78 / 77.95 | 20.24 (18.81-23.08) | 97.73 / 97.73 | | DoCoMo@mall | 69.12 / 28.91 | 29.49 (21.67-35.00) | 26.98 / 71.05 | 27.52 (25.30-30.31) | 98.03 / 98.03 | | congested | 56.87 / 40.67 | 41.70 (37.46-47.94) | 44.31 / 54.29 | 44.94 (39.64-52.79) | 97.99 / 98.00 | | bdp20 | 49.93 / 47.94 | 48.98 (47.01-50.65) | 46.07 / 51.80 | 47.07 (45.51-49.47) | 97.87 / 97.83 | | bdp40 | 52.85 / 45.10 | 46.04 (42.91-49.54) | 44.95 / 53.00 | 45.89 (43.12-50.88) | 97.98 / 97.98 | | queue 10 ms | 57.45 / 39.85 | 40.95 (38.80-42.83) | 42.66 / 55.06 | 43.66 (39.20-46.43) | 97.27 / 97.73 | | queue 5 ms | 55.68 / 37.46 | 40.22 (39.23-42.34) | 37.68 / 55.13 | 40.60 (38.60-43.40) | 92.86 / 92.81 | | queue 2.5 ms | 51.49 / 37.38 | 42.25 (39.18-43.15) | 36.55 / 52.92 | 40.85 (38.71-43.27) | 88.87 / 88.82 | The lossy NewCC flow remains less aggressive than the clean stock flow on every profile. A contemporaneous lossy-stock control overlaps these shares and changes in both directions by profile and order. The correction therefore improves standalone loss tolerance without creating a systematic competitive advantage. The results satisfy the prototype's stated minimum bar: retain CUBIC's external fairness when a clean competitor can sustain the bottleneck, while substantially improving standalone throughput on lossy paths. Convergence between NewCC flows remains the principal limitation.
Move the accelerated-increase state and machinery out of CUBIC's private state so it can be used by both modern CUBIC and Cuback. Keep qoRTT, the current target CWND, and path-change observations in a shared accel object, including the snapshot used to undo a recovery. CUBIC continues to choose the greater of its ordinary trajectory and the accelerated CWND. Cuback expresses the same choice through its ACK clock: for each ACK interval, use the smaller of Cuback's ordinary bytes-per-MTU interval and the accelerated interval. This avoids evaluating Cuback's cubic trajectory on every ACK. Recalibration uses the policy's own K, but otherwise shares the path observation logic. Add grouped CUBIC and Cuback tests for accelerated increase, its guards, undo, and recalibration. Standalone tail-drop throughput ------------------------------- Each value is median goodput as a percentage of available bandwidth over seven 100-second runs, measuring the latter 50 seconds. Per-packet random loss was selected so that a full pipe has a 5% or 10% aggregate probability of at least one random loss. CUBIC is included to check that the refactor preserves the preceding implementation. | Profile | CUBIC stock/RLT 5% | CUBIC stock/RLT 10% | Cuback stock/RLT 5% | Cuback stock/RLT 10% | |------------------|-------------------:|--------------------:|--------------------:|---------------------:| | DSL | 91.40 / 97.72 | 74.41 / 96.80 | 91.13 / 97.93 | 77.84 / 97.57 | | Home WiFi | 48.02 / 96.67 | 37.51 / 94.86 | 54.15 / 97.17 | 34.01 / 95.52 | | Public | 98.03 / 98.03 | 96.14 / 97.84 | 98.03 / 98.02 | 93.32 / 97.86 | | Corporate WiFi | 48.68 / 97.71 | 33.38 / 97.67 | 49.04 / 97.69 | 35.45 / 97.66 | | LTE | 90.12 / 97.26 | 59.19 / 96.35 | 84.66 / 97.71 | 57.57 / 97.08 | | 5G | 63.92 / 97.11 | 44.53 / 96.10 | 64.70 / 97.52 | 46.09 / 96.67 | | LEO | 81.51 / 97.30 | 58.74 / 96.36 | 77.34 / 97.82 | 56.24 / 97.19 | | GEO | 98.02 / 97.82 | 83.85 / 97.47 | 96.72 / 97.83 | 75.03 / 97.69 | | DoCoMo@Office | 86.72 / 97.76 | 68.46 / 97.40 | 90.00 / 97.79 | 72.85 / 97.72 | | au@Office | 87.96 / 97.70 | 51.37 / 97.44 | 88.53 / 97.69 | 70.76 / 97.69 | | WiFi@Office | 73.16 / 97.72 | 51.93 / 97.71 | 72.94 / 97.72 | 53.01 / 97.71 | | DoCoMo@mall | 98.03 / 98.03 | 88.54 / 97.71 | 98.03 / 98.03 | 93.58 / 97.98 | | congested | 97.93 / 97.99 | 97.87 / 97.81 | 97.93 / 97.93 | 97.87 / 97.87 | | bdp20 | 97.66 / 97.70 | 97.24 / 96.64 | 97.46 / 97.64 | 95.63 / 96.28 | | bdp40 | 97.73 / 97.50 | 94.33 / 96.76 | 97.55 / 97.76 | 94.33 / 96.98 | | queue 10 ms | 73.06 / 73.36 | 57.43 / 54.81 | 71.54 / 73.18 | 55.48 / 55.27 | | queue 5 ms | 67.24 / 65.11 | 49.82 / 51.47 | 66.26 / 67.64 | 48.71 / 48.50 | | queue 2.5 ms | 65.01 / 64.61 | 47.39 / 47.11 | 64.53 / 63.96 | 47.84 / 48.45 | CUBIC reproduces the prior result within the variance expected from random loss placement. Cuback obtains the same design win: RLT sustains about 95.5--98% on every deep, high-rate profile at both loss settings, whereas stock Cuback can fall to 34--54%. Shallow queues remain neutral because the RTT gate generally prevents acceleration. Cuback competition ------------------ These are seven 160-second runs per ordering, measuring the latter 80 seconds. The first two columns use zero random loss on both flows. The final two give RLT the 5%-per-full-pipe loss rate while stock remains lossless. Each value is RLT's median percentage of total throughput. S->R means RLT was created second; R->S means it was created first. | Profile | Clean S->R | Clean R->S | Lossy S->R | Lossy R->S | |------------------|-----------:|-----------:|-----------:|-----------:| | DSL | 51.88 | 51.00 | 34.02 | 36.11 | | Home WiFi | 51.54 | 50.82 | 31.71 | 29.52 | | Public | 49.99 | 50.01 | 28.39 | 34.09 | | Corporate WiFi | 52.29 | 51.13 | 18.58 | 16.07 | | LTE | 51.10 | 49.45 | 26.34 | 27.64 | | 5G | 47.87 | 50.18 | 21.21 | 19.83 | | LEO | 50.82 | 46.03 | 24.95 | 25.75 | | GEO | 49.89 | 50.16 | 37.38 | 36.38 | | DoCoMo@Office | 50.04 | 50.18 | 21.33 | 21.40 | | au@Office | 52.17 | 50.15 | 15.83 | 17.17 | | WiFi@Office | 52.75 | 47.87 | 21.75 | 20.66 | | DoCoMo@mall | 49.66 | 50.19 | 26.23 | 33.42 | | congested | 49.94 | 50.64 | 46.58 | 45.38 | | bdp20 | 49.95 | 49.57 | 49.05 | 48.48 | | bdp40 | 50.54 | 49.82 | 46.74 | 46.05 | | queue 10 ms | 50.54 | 62.77 | 39.36 | 55.00 | | queue 5 ms | 49.90 | 50.02 | 40.50 | 39.62 | | queue 2.5 ms | 49.36 | 49.76 | 41.85 | 41.42 | On the deep profiles, clean Cuback+RLT remains neutral against stock and a lossy RLT flow remains less aggressive than a lossless stock flow. Combined utilization remains about 98%, apart from the already-underutilized shallow queues. The queue-10ms result is a real ACK-clock/order limitation. A focused 21-run clean test produced: | Controller | Stock/stock second | RLT second | RLT first | |------------|-------------------:|-----------:|----------:| | CUBIC | 49.92 | 50.80 | 53.04 | | Cuback | 49.60 | 49.47 | 64.50 | Cuback therefore has no meaningful standalone degradation at this boundary, but its RLT flow can retain a substantial first-flow advantage. This is primarily specific to expressing acceleration through the ACK clock; it is not hidden by combining the two orderings. Cuback self-competition at the 5% setting ------------------------------------------ Two Cuback+RLT flows used the same loss probability for five independent 320-second runs. Shares cover the final 40-second window. | Profile | Flow 2 median | Flow 2 range | Combined util. | |------------------|--------------:|-------------:|---------------:| | DSL | 56.49 | 44.95-59.41 | 98.02 | | Home WiFi | 53.89 | 48.86-59.37 | 97.67 | | Corporate WiFi | 50.81 | 44.56-53.38 | 97.72 | | LTE | 56.40 | 45.96-67.55 | 98.03 | | 5G | 54.67 | 36.18-56.98 | 97.72 | | LEO | 45.40 | 39.30-63.19 | 98.03 | | GEO | 60.69 | 43.35-71.35 | 97.98 | | DoCoMo@Office | 58.35 | 39.96-67.68 | 97.73 | | au@Office | 40.28 | 13.59-69.42 | 97.73 | | WiFi@Office | 46.68 | 43.06-50.44 | 97.72 | | DoCoMo@mall | 54.38 | 34.48-63.31 | 98.03 | | queue 10 ms | 39.01 | 30.96-50.79 | 97.43 | As with CUBIC, aggregate utilization stays high but the prototype does not consistently converge against itself. Cuback additionally exposes the queue-10ms order sensitivity described above.
Store the first accelerated-increase target separately from its upper cap. After a loss, target_cwnd is the reduced CWND divided by the ordinary loss beta. Accelerated increase halves the remaining distance to that target per RTT, then continues at the 2.5% minimum rate until target_cwnd / beta. Previously target_cwnd held the upper cap and was also used to calculate the increase rate. After a CA reduction to beta * CWNDpre, that produced roughly 52% growth per RTT at beta=0.7. The corrected calculation initially grows by roughly 21%, placing CWND halfway between beta * CWNDpre and CWNDpre. The 2.5%-per-RTT minimum is intended to limit the queue built while delayed RTT feedback closes the acceleration gate. Allowing for roughly two flights of growth, the intended overshoot is no more than 5% above minRTT: on a 100ms path that is 5ms, matching CoDel's default target. Use the ordinary loss beta when setting the target after both slow start and CA. This retains the existing slow-start cap without requiring another state field. CUBIC and Cuback share the corrected rate calculation; CUBIC derives the cap when selecting the accelerated CWND, while Cuback stops shortening its ACK interval at the same derived cap. Add tests for half-distance recovery, minimum-rate growth above the target, the derived cap, and Cuback's interval selection. build/default/test.t passes all 31 top-level groups. Standalone tail-drop throughput ------------------------------- Each value is median goodput as a percentage of available bandwidth over seven 100-second runs, measuring the latter 50 seconds. Per-packet loss gives a full pipe a 5% or 10% aggregate probability of at least one random loss. Each cell is stock / old RLT / corrected RLT; old RLT is the cap-as-target implementation. | Profile | CUBIC 5% S/O/N | CUBIC 10% S/O/N | Cuback 5% S/O/N | Cuback 10% S/O/N | |----------------|----------------:|-----------------:|-----------------:|------------------:| | DSL | 91.91/97.72/97.29 | 73.44/96.80/94.19 | 93.57/97.93/97.69 | 73.44/97.57/96.81 | | Home WiFi | 52.59/96.67/93.38 | 35.51/94.86/87.15 | 53.79/97.17/96.01 | 33.58/95.52/91.68 | | Public | 98.03/98.03/98.03 | 96.19/97.84/96.84 | 98.03/98.02/98.03 | 95.29/97.86/97.91 | | Corporate WiFi | 48.92/97.71/97.08 | 35.40/97.67/96.13 | 49.98/97.69/97.35 | 34.52/97.66/96.60 | | LTE | 79.07/97.26/95.93 | 56.01/96.35/90.69 | 89.58/97.71/97.11 | 65.26/97.08/95.37 | | 5G | 58.07/97.11/95.76 | 39.11/96.10/91.48 | 60.70/97.52/96.70 | 42.17/96.67/95.03 | | LEO | 77.63/97.30/96.10 | 58.80/96.36/93.50 | 75.10/97.82/97.22 | 58.81/97.19/95.67 | | GEO | 97.93/97.82/97.83 | 81.33/97.47/95.00 | 98.01/97.83/98.02 | 93.72/97.69/93.06 | | DoCoMo@Office | 94.87/97.76/97.65 | 70.51/97.40/96.87 | 89.23/97.79/97.78 | 72.17/97.72/97.52 | | au@Office | 80.34/97.70/97.59 | 60.29/97.44/97.27 | 82.82/97.69/97.64 | 49.91/97.69/97.46 | | WiFi@Office | 70.59/97.72/97.69 | 52.55/97.71/97.54 | 71.82/97.72/97.71 | 51.89/97.71/97.64 | | DoCoMo@mall | 98.03/98.03/98.03 | 91.95/97.71/97.63 | 98.03/98.03/98.03 | 87.63/97.98/97.94 | | congested | 97.93/97.99/97.91 | 97.83/97.81/97.87 | 97.93/97.93/97.89 | 97.87/97.87/97.87 | | bdp20 | 97.64/97.70/97.32 | 96.76/96.64/96.20 | 97.28/97.64/97.30 | 95.44/96.28/96.26 | | bdp40 | 97.94/97.50/97.55 | 96.31/96.76/95.27 | 97.87/97.76/97.75 | 94.37/96.98/96.61 | | queue 10 ms | 73.28/73.36/72.86 | 55.18/54.81/54.91 | 75.31/73.18/75.39 | 53.33/55.27/55.25 | | queue 5 ms | 69.02/65.11/68.41 | 51.39/51.47/49.34 | 67.50/67.64/67.80 | 48.05/48.50/54.53 | | queue 2.5 ms | 67.56/64.61/65.43 | 49.42/47.11/49.02 | 64.28/63.96/66.01 | 48.20/48.45/49.54 | The correction removes measurable aggressiveness but retains the primary tail-drop benefit. At 5% loss, corrected RLT generally sustains about 93--98% on deep profiles. At 10%, CUBIC declines to 87--94% on Home WiFi, LTE, 5G, and LEO; Cuback retains 92--96% there. Both remain substantially above stock. Shallow queues remain neutral. Clean tail-drop competition --------------------------- These are seven 160-second runs per ordering, measuring the latter 80 seconds. Both flows have zero random loss. Stock/stock reports the second flow's median share; the other columns report RLT's median share. | Profile | Stock/stock second | Stock -> RLT | RLT -> stock | |----------------|-------------------:|------------:|------------:| | DSL | 48.23 | 54.51 | 51.16 | | Home WiFi | 50.92 | 47.94 | 50.25 | | Public | 50.29 | 49.22 | 49.57 | | Corporate WiFi | 54.91 | 46.93 | 44.83 | | LTE | 49.36 | 50.14 | 52.08 | | 5G | 50.86 | 50.88 | 51.35 | | LEO | 48.70 | 48.67 | 49.53 | | GEO | 50.01 | 49.99 | 50.02 | | DoCoMo@Office | 49.98 | 49.15 | 49.87 | | au@Office | 51.48 | 51.55 | 50.23 | | WiFi@Office | 50.89 | 54.47 | 50.80 | | DoCoMo@mall | 49.72 | 49.66 | 50.29 | | congested | 49.47 | 51.43 | 52.26 | | bdp20 | 50.42 | 49.52 | 50.48 | | bdp40 | 50.81 | 47.83 | 51.04 | | queue 10 ms | 50.75 | 50.55 | 50.57 | | queue 5 ms | 49.11 | 50.98 | 51.99 | | queue 2.5 ms | 50.19 | 48.68 | 49.76 | Mean RLT share across both orders ranges from 46.72% to 52.02%; the clean path prerequisite remains satisfied. RLT against RLT at the 5% setting ---------------------------------- Two RLT flows use the same per-packet loss probability for five independent 320-second runs. Shares cover the final 40-second window. Combined utilization is the median for that window; final deviation is the mean absolute distance from a 50% share. | Profile | Flow 2 median | Flow 2 range | Combined util. | Final deviation | |----------------|--------------:|-------------:|---------------:|----------------:| | DSL | 49.03 | 43.86-56.38 | 98.02 | 3.41 | | Home WiFi | 50.52 | 49.10-52.36 | 97.42 | 1.15 | | Public | 48.18 | 31.93-62.64 | 98.03 | 8.20 | | Corporate WiFi | 50.82 | 47.30-55.07 | 97.68 | 2.35 | | LTE | 43.30 | 38.15-58.97 | 98.03 | 7.88 | | 5G | 51.30 | 27.93-59.42 | 97.69 | 9.65 | | LEO | 50.70 | 47.82-55.64 | 98.03 | 2.55 | | GEO | 53.63 | 34.65-62.12 | 98.01 | 9.79 | | DoCoMo@Office | 40.03 | 35.41-63.01 | 97.73 | 12.39 | | au@Office | 54.71 | 37.55-56.45 | 97.73 | 6.29 | | WiFi@Office | 49.30 | 48.67-52.07 | 97.72 | 1.27 | | DoCoMo@mall | 49.15 | 42.79-58.62 | 98.03 | 5.60 | | congested | 47.46 | 40.61-50.42 | 97.89 | 3.67 | | bdp20 | 48.76 | 47.78-50.24 | 97.61 | 1.40 | | bdp40 | 50.97 | 47.80-54.51 | 97.91 | 2.69 | | queue 10 ms | 45.87 | 44.92-56.09 | 96.84 | 4.67 | | queue 5 ms | 49.00 | 41.93-49.70 | 89.86 | 2.21 | | queue 2.5 ms | 48.73 | 45.28-53.05 | 86.48 | 2.31 | Aggregate utilization remains high except on the already-underutilized shallow queues. The wide run-to-run ranges on Public, LTE, 5G, GEO, and DoCoMo@Office show that this correction does not solve self-convergence. Non-lossy stock against 5%-loss RLT ----------------------------------- Each value is RLT's median share of total throughput over seven 160-second runs. RLT remains below the clean stock flow in both orders on every profile. | Profile | Stock -> RLT | RLT -> stock | |----------------|------------:|------------:| | DSL | 31.99 | 37.39 | | Home WiFi | 29.23 | 29.64 | | Public | 34.30 | 30.09 | | Corporate WiFi | 18.13 | 19.15 | | LTE | 28.50 | 28.73 | | 5G | 18.14 | 21.51 | | LEO | 26.29 | 24.66 | | GEO | 42.31 | 37.94 | | DoCoMo@Office | 23.20 | 23.57 | | au@Office | 24.14 | 22.08 | | WiFi@Office | 20.91 | 21.32 | | DoCoMo@mall | 30.46 | 34.67 | | congested | 46.08 | 45.34 | | bdp20 | 48.92 | 48.64 | | bdp40 | 46.24 | 48.01 | | queue 10 ms | 39.36 | 40.19 | | queue 5 ms | 39.71 | 41.60 | | queue 2.5 ms | 40.40 | 41.42 | Cuback competition ------------------ These are seven 160-second runs per ordering. The first two columns use zero random loss on both flows. The final two give RLT the 5%-per-full-pipe loss rate while stock remains lossless. Each value is RLT's median share. | Profile | Clean S->R | Clean R->S | Lossy S->R | Lossy R->S | |----------------|-----------:|-----------:|-----------:|-----------:| | DSL | 49.80 | 50.61 | 33.99 | 34.82 | | Home WiFi | 51.90 | 49.95 | 29.73 | 29.28 | | Public | 49.97 | 50.05 | 32.21 | 33.16 | | Corporate WiFi | 46.17 | 44.73 | 18.11 | 17.71 | | LTE | 48.94 | 48.98 | 29.92 | 31.25 | | 5G | 49.76 | 48.16 | 19.47 | 21.56 | | LEO | 50.86 | 48.28 | 25.10 | 28.55 | | GEO | 49.94 | 50.00 | 42.72 | 39.32 | | DoCoMo@Office | 49.96 | 47.68 | 22.35 | 23.56 | | au@Office | 52.18 | 50.18 | 19.39 | 15.65 | | WiFi@Office | 52.42 | 46.03 | 21.27 | 20.57 | | DoCoMo@mall | 49.89 | 50.19 | 30.88 | 25.53 | | congested | 49.95 | 49.76 | 46.58 | 42.08 | | bdp20 | 49.47 | 49.80 | 48.35 | 49.47 | | bdp40 | 49.13 | 50.17 | 45.42 | 46.49 | | queue 10 ms | 49.69 | 55.84 | 40.40 | 50.19 | | queue 5 ms | 49.82 | 49.65 | 39.85 | 40.30 | | queue 2.5 ms | 49.21 | 49.24 | 42.78 | 41.07 | On deep profiles, clean Cuback+RLT remains neutral and lossy RLT remains less aggressive than lossless stock. Queue 10ms retains an order effect. Focused queue-10ms order distribution -------------------------------------- Twenty-one runs per ordering confirm that the Cuback result is not hidden by combining orders. RLT second and RLT first name the flow's creation order. | Controller | Stock/stock second | RLT second | RLT first | RLT P10-P90 | |------------|-------------------:|-----------:|----------:|------------:| | CUBIC | 49.50 | 50.40 | 51.48 | 46.61-52.98 | | Cuback | 49.61 | 50.23 | 57.12 | 48.03-59.14 | Cuback therefore has a substantial first-flow advantage at this boundary, specific to expressing acceleration through its ACK clock. Cuback RLT against RLT at the 5% setting ---------------------------------------- Two Cuback+RLT flows use the same loss probability for five independent 320-second runs. Shares cover the final 40-second window. | Profile | Flow 2 median | Flow 2 range | Combined util. | Final deviation | |----------------|--------------:|-------------:|---------------:|----------------:| | DSL | 51.43 | 39.17-55.71 | 98.02 | 4.03 | | Home WiFi | 54.57 | 47.54-55.60 | 97.64 | 3.82 | | Public | 42.46 | 39.42-50.28 | 98.02 | 5.41 | | Corporate WiFi | 49.20 | 46.82-52.95 | 97.72 | 1.90 | | LTE | 52.67 | 45.13-60.52 | 98.03 | 5.98 | | 5G | 51.72 | 40.43-68.79 | 97.72 | 8.24 | | LEO | 53.38 | 48.86-63.65 | 98.03 | 5.25 | | GEO | 44.45 | 34.53-74.79 | 97.99 | 14.72 | | DoCoMo@Office | 46.24 | 32.04-67.44 | 97.73 | 13.60 | | au@Office | 56.67 | 32.17-64.92 | 97.73 | 11.60 | | WiFi@Office | 51.07 | 48.76-51.64 | 97.72 | 1.13 | | DoCoMo@mall | 46.78 | 41.60-69.94 | 98.03 | 7.50 | | congested | 55.37 | 37.69-59.10 | 98.36 | 8.43 | | bdp20 | 48.15 | 46.03-50.54 | 97.73 | 2.19 | | bdp40 | 48.77 | 45.52-54.58 | 97.89 | 2.86 | | queue 10 ms | 40.95 | 38.44-46.80 | 97.16 | 8.63 | | queue 5 ms | 50.87 | 47.25-55.11 | 89.88 | 2.19 | | queue 2.5 ms | 47.89 | 47.12-50.72 | 85.67 | 1.70 | Aggregate utilization remains high except on already-underutilized shallow queues, but Cuback RLT does not consistently converge against itself. CoDel observations ------------------ The complete non-GEO CoDel matrices were also repeated. Clean competition remains neutral: mean RLT shares range from 48.21% to 50.73%, and a 5%-loss RLT flow remains below clean stock in both orders on every profile. Standalone effectiveness is mixed. At 5% loss, corrected RLT reaches 96.38% on DSL, 92.89% on Home WiFi, 97.06% on Corporate WiFi, and 97.68% on WiFi@Office, but only 76.22% on LTE, 56.00% on 5G, and 69.60% on LEO. The old formula reached 80.19%, 70.73%, and 74.00% on those three paths. At 10%, corrected RLT reaches 58.45%, 40.39%, and 60.02%, respectively. The approach therefore remains substantially more effective with tail drop than with AQM. Stock CoDel with its 5ms target and 100ms interval was measured separately on GEO and is not treated as a counterexample: clean stock alone reaches only 47.84% of the link. Corrected RLT reaches 46.64% at 5% loss and 43.61% at 10%; two-flow combined utilization ranges from roughly 53% to 66%. At 5% loss, two RLT flows retain high combined utilization on meaningful tail-drop and CoDel profiles, but final shares remain broad on several mobile and high-BDP paths. This correction does not solve self-convergence.
Record the minimum RTT observed during each congestion-avoidance period. When accelerating after a subsequent loss, permit RTT up to the greater of minRTT plus 2ms and the midpoint between minRTT and the preceding CA period's minimum RTT. The intent is to support real paths whose idle RTT has persistent jitter, particularly mobile networks. A fixed minRTT+2ms gate can disable acceleration even when the connection is not building a queue. The previous CA period is a local reference for the currently reachable RTT floor; admitting only half of its excess over the connection-wide minimum remains conservative. The simulator profiles have stable propagation delay. They therefore test that the adaptive gate does not regress stable paths; they do not demonstrate the intended mobile-jitter benefit. That benefit needs production evaluation. Share the two RTT-floor fields between CUBIC and Cuback, roll the current period's observation on each new loss episode, and test both policies at the adaptive boundary. build/default/test.t passes all 31 top-level groups. Method ------ The per-packet random-loss probability is chosen so that a full pipe has a 5% or 10% chance of at least one random loss per RTT. Standalone tests are seven 100-second runs measuring the latter 50 seconds. Competition tests are seven 160-second runs per flow order measuring the latter 80 seconds. Self- competition uses five 320-second runs and reports the final 40-second window. All values below are percentages. S->R means stock is created first and RLT second; R->S is the reverse. The unchanged tail-drop stock standalone values are the baseline from the preceding full evaluation; all adaptive-RLT and competition values were measured after this change. 1. Tail-drop standalone goodput -------------------------------- Each cell is stock/RLT median goodput as a percentage of available bandwidth. | Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R | |---|---:|---:|---:|---:| | DSL | 91.91/97.24 | 73.44/94.75 | 93.57/97.84 | 73.44/96.69 | | Home WiFi | 52.59/93.61 | 35.51/87.65 | 53.79/96.07 | 33.58/91.04 | | Public | 98.03/98.03 | 96.19/97.36 | 98.03/98.03 | 95.29/97.63 | | Corporate WiFi | 48.92/97.10 | 35.40/96.18 | 49.98/97.38 | 34.52/96.51 | | LTE | 79.07/95.90 | 56.01/90.27 | 89.58/97.34 | 65.26/94.88 | | 5G | 58.07/95.49 | 39.11/92.35 | 60.70/97.22 | 42.17/94.65 | | LEO | 77.63/95.33 | 58.80/92.12 | 75.10/97.39 | 58.81/95.52 | | GEO | 97.93/98.01 | 81.33/97.02 | 98.01/96.97 | 93.72/94.37 | | DoCoMo@Office | 94.87/97.70 | 70.51/97.08 | 89.23/97.78 | 72.17/97.42 | | au@Office | 80.34/97.49 | 60.29/97.21 | 82.82/97.64 | 49.91/97.45 | | WiFi@Office | 70.59/97.70 | 52.55/97.55 | 71.82/97.70 | 51.89/97.63 | | DoCoMo@mall | 98.03/98.03 | 91.95/97.50 | 98.03/98.04 | 87.63/97.74 | | congested | 97.93/97.95 | 97.83/97.87 | 97.93/97.93 | 97.87/97.71 | | bdp20 | 97.64/97.58 | 96.76/96.56 | 97.28/97.46 | 95.44/96.24 | | bdp40 | 97.94/97.87 | 96.31/95.36 | 97.87/97.95 | 94.37/96.91 | | queue 10ms | 73.28/69.93 | 55.18/53.22 | 75.31/74.89 | 53.33/54.26 | | queue 5ms | 69.02/67.82 | 51.39/51.07 | 67.50/68.94 | 48.05/50.95 | | queue 2.5ms | 67.56/62.87 | 49.42/50.26 | 64.28/61.40 | 48.20/49.58 | 2. Clean tail-drop competition -------------------------------- S/S is the stock/stock second flow's median share. The other columns are RLT's median share in each order. | Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S | |---|---:|---:|---:|---:|---:|---:| | DSL | 49.67 | 49.10 | 51.34 | 49.56 | 48.49 | 49.85 | | Home WiFi | 47.05 | 47.70 | 52.68 | 51.70 | 54.19 | 53.05 | | Public | 49.48 | 49.86 | 50.29 | 49.79 | 49.91 | 50.46 | | Corporate WiFi | 55.75 | 54.33 | 46.61 | 50.03 | 53.50 | 45.07 | | LTE | 50.24 | 49.55 | 50.02 | 48.60 | 50.42 | 49.07 | | 5G | 49.79 | 49.34 | 51.19 | 49.00 | 52.70 | 49.87 | | LEO | 51.24 | 46.36 | 48.93 | 50.39 | 50.51 | 52.60 | | GEO | 50.01 | 49.96 | 50.01 | 49.87 | 50.02 | 49.99 | | DoCoMo@Office | 49.98 | 50.04 | 50.95 | 49.93 | 49.99 | 50.01 | | au@Office | 49.90 | 51.45 | 48.51 | 52.17 | 52.18 | 47.87 | | WiFi@Office | 54.19 | 50.50 | 45.81 | 54.94 | 52.17 | 44.35 | | DoCoMo@mall | 49.79 | 49.74 | 50.26 | 49.74 | 49.71 | 50.14 | | congested | 49.24 | 49.19 | 51.52 | 51.18 | 50.28 | 51.70 | | bdp20 | 49.74 | 49.21 | 49.65 | 50.62 | 48.41 | 50.22 | | bdp40 | 49.98 | 49.53 | 48.33 | 48.96 | 50.11 | 51.38 | | queue 10ms | 49.06 | 50.67 | 50.52 | 50.47 | 51.54 | 56.68 | | queue 5ms | 49.08 | 49.02 | 49.94 | 51.32 | 50.27 | 50.79 | | queue 2.5ms | 49.89 | 49.87 | 50.46 | 49.19 | 52.31 | 48.84 | Twenty-one focused queue-10ms runs give CUBIC RLT shares of 50.46% when second and 50.98% when first (P10-P90 48.15-53.63). Cuback gives 50.41% when second and 57.96% when first (P10-P90 48.55-59.33); the adaptive gate does not remove Cuback's existing creation-order effect at this boundary. 3. Clean stock against 5%-loss RLT, tail drop ------------------------------------------------ Each value is the lossy RLT flow's median share. | Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S | |---|---:|---:|---:|---:| | DSL | 34.07 | 35.61 | 34.47 | 32.59 | | Home WiFi | 30.63 | 31.06 | 30.41 | 32.85 | | Public | 32.35 | 31.59 | 32.22 | 30.99 | | Corporate WiFi | 16.05 | 17.20 | 17.68 | 17.23 | | LTE | 29.43 | 30.00 | 22.69 | 27.88 | | 5G | 23.10 | 19.28 | 21.48 | 22.19 | | LEO | 23.44 | 22.85 | 25.28 | 23.86 | | GEO | 41.71 | 38.66 | 34.78 | 37.40 | | DoCoMo@Office | 24.05 | 23.86 | 18.82 | 26.17 | | au@Office | 19.48 | 17.22 | 15.59 | 17.54 | | WiFi@Office | 20.66 | 20.76 | 20.56 | 19.66 | | DoCoMo@mall | 32.79 | 32.78 | 24.59 | 29.82 | | congested | 43.64 | 46.01 | 44.96 | 44.04 | | bdp20 | 49.69 | 48.31 | 49.10 | 49.05 | | bdp40 | 44.69 | 46.99 | 46.42 | 47.19 | | queue 10ms | 40.02 | 40.88 | 39.48 | 48.27 | | queue 5ms | 39.56 | 40.24 | 40.22 | 39.66 | | queue 2.5ms | 40.99 | 41.51 | 41.61 | 41.08 | The lossy RLT flow remains below the clean stock flow in every profile and both orders. 4. Tail-drop RLT self-competition at 5% loss ------------------------------------------------ Each entry gives the second flow's median share, the complete five-run range, and median combined utilization. | Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util | |---|---:|---:|---:|---:|---:|---:| | DSL | 47.98 | 44.33-49.52 | 98.02 | 52.01 | 44.74-55.04 | 98.02 | | Home WiFi | 50.19 | 46.72-55.17 | 97.32 | 53.71 | 51.78-59.40 | 97.59 | | Public | 45.71 | 40.90-61.50 | 98.02 | 46.23 | 39.24-49.04 | 98.03 | | Corporate WiFi | 50.91 | 46.47-51.21 | 97.69 | 50.24 | 45.92-52.40 | 97.71 | | LTE | 55.47 | 39.77-61.09 | 98.03 | 52.79 | 44.87-54.59 | 98.03 | | 5G | 50.46 | 34.43-69.29 | 97.70 | 45.83 | 34.00-55.56 | 97.71 | | LEO | 54.70 | 38.93-58.84 | 98.03 | 50.21 | 35.13-60.20 | 98.03 | | GEO | 53.14 | 32.72-63.21 | 98.00 | 46.17 | 35.04-61.93 | 97.88 | | DoCoMo@Office | 44.71 | 30.52-57.73 | 97.73 | 39.74 | 39.49-49.42 | 97.72 | | au@Office | 58.03 | 25.68-67.29 | 97.73 | 51.05 | 26.91-66.94 | 97.73 | | WiFi@Office | 51.21 | 49.52-52.42 | 97.72 | 46.59 | 44.16-50.86 | 97.72 | | DoCoMo@mall | 45.23 | 35.61-49.68 | 98.03 | 47.47 | 41.28-61.96 | 98.03 | | congested | 52.90 | 46.68-59.27 | 97.86 | 50.71 | 42.46-64.52 | 97.76 | | bdp20 | 48.31 | 44.21-51.75 | 97.78 | 49.34 | 47.07-54.91 | 97.68 | | bdp40 | 48.91 | 46.63-52.53 | 97.67 | 48.53 | 42.46-52.56 | 97.88 | | queue 10ms | 50.64 | 46.37-54.45 | 96.99 | 42.34 | 39.79-52.76 | 97.30 | | queue 5ms | 51.94 | 46.43-52.20 | 90.41 | 51.29 | 50.09-52.26 | 90.08 | | queue 2.5ms | 50.95 | 48.20-51.82 | 86.90 | 49.26 | 46.90-56.32 | 86.01 | The adaptive gate does not solve the existing self-convergence limitation. 5. CoDel standalone goodput ----------------------------- GEO is excluded here and evaluated separately with an RTT-appropriate CoDel interval. Each cell is stock/RLT median goodput. | Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R | |---|---:|---:|---:|---:| | DSL | 85.40/96.64 | 73.84/94.97 | 85.54/96.87 | 73.58/95.10 | | Home WiFi | 50.85/93.52 | 34.21/88.17 | 54.55/95.39 | 34.99/91.18 | | Public | 93.44/95.04 | 88.41/89.51 | 92.70/93.76 | 86.58/89.28 | | Corporate WiFi | 54.12/97.09 | 34.75/96.04 | 50.70/97.32 | 34.65/96.72 | | LTE | 80.10/77.25 | 54.85/60.70 | 76.65/81.21 | 54.56/63.72 | | 5G | 59.62/61.38 | 40.60/43.50 | 60.67/69.32 | 39.12/38.41 | | LEO | 71.97/77.47 | 57.11/56.99 | 73.56/72.88 | 54.56/56.63 | | DoCoMo@Office | 83.72/85.61 | 68.48/68.03 | 84.18/82.57 | 67.65/68.05 | | au@Office | 71.27/79.08 | 57.42/56.31 | 67.10/77.75 | 57.10/54.60 | | WiFi@Office | 72.26/97.69 | 53.50/97.60 | 71.33/97.71 | 52.24/97.60 | | DoCoMo@mall | 92.26/92.86 | 83.22/83.84 | 93.47/92.66 | 84.39/85.51 | | congested | 95.38/95.62 | 92.43/94.62 | 95.74/94.40 | 92.65/91.52 | | bdp20 | 96.14/96.18 | 94.47/93.55 | 97.03/96.66 | 93.47/93.75 | | bdp40 | 94.65/94.88 | 89.46/90.80 | 94.59/93.81 | 88.15/88.38 | | queue 10ms | 70.49/72.70 | 52.86/55.49 | 73.79/72.89 | 51.62/53.43 | | queue 5ms | 70.71/67.53 | 50.70/50.00 | 68.96/69.58 | 51.06/49.70 | | queue 2.5ms | 62.42/66.07 | 48.32/47.58 | 65.14/65.54 | 49.97/46.94 | 6. CoDel competition ---------------------- GEO is excluded from these tables. The clean table has the same meaning as experiment 2. | Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S | |---|---:|---:|---:|---:|---:|---:| | DSL | 52.86 | 48.95 | 51.15 | 49.91 | 49.15 | 48.52 | | Home WiFi | 50.60 | 50.30 | 50.87 | 50.17 | 49.07 | 49.60 | | Public | 50.00 | 50.51 | 49.32 | 49.44 | 49.86 | 49.93 | | Corporate WiFi | 48.02 | 48.99 | 50.50 | 49.47 | 49.69 | 50.62 | | LTE | 50.21 | 51.58 | 50.24 | 49.03 | 50.81 | 48.83 | | 5G | 51.85 | 49.81 | 49.58 | 52.10 | 50.13 | 50.72 | | LEO | 50.05 | 49.52 | 50.47 | 49.96 | 49.54 | 49.92 | | DoCoMo@Office | 52.64 | 50.36 | 38.62 | 52.17 | 54.03 | 49.18 | | au@Office | 48.48 | 43.45 | 43.86 | 43.69 | 43.44 | 41.13 | | WiFi@Office | 49.07 | 49.93 | 50.46 | 49.97 | 48.66 | 51.91 | | DoCoMo@mall | 50.62 | 49.33 | 49.06 | 50.29 | 50.55 | 49.87 | | congested | 50.20 | 49.82 | 49.94 | 48.70 | 49.36 | 50.91 | | bdp20 | 49.94 | 50.10 | 50.18 | 50.05 | 50.07 | 49.65 | | bdp40 | 50.15 | 49.30 | 50.23 | 49.50 | 49.80 | 49.85 | | queue 10ms | 50.16 | 50.30 | 49.48 | 51.51 | 49.72 | 50.75 | | queue 5ms | 50.93 | 49.63 | 49.30 | 50.75 | 50.50 | 50.56 | | queue 2.5ms | 50.69 | 50.09 | 49.46 | 52.02 | 50.03 | 49.82 | With 5% loss on RLT and no random loss on stock, the following values are the lossy RLT flow's median share. | Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S | |---|---:|---:|---:|---:| | DSL | 45.20 | 43.94 | 46.20 | 44.61 | | Home WiFi | 38.51 | 37.71 | 43.89 | 40.66 | | Public | 48.51 | 47.77 | 48.44 | 48.91 | | Corporate WiFi | 30.38 | 33.82 | 32.79 | 35.02 | | LTE | 45.36 | 46.00 | 46.28 | 46.17 | | 5G | 41.70 | 41.98 | 46.73 | 39.01 | | LEO | 42.13 | 44.59 | 44.42 | 45.25 | | DoCoMo@Office | 43.05 | 38.04 | 39.44 | 38.36 | | au@Office | 32.41 | 35.60 | 38.81 | 35.62 | | WiFi@Office | 31.42 | 29.81 | 31.01 | 30.18 | | DoCoMo@mall | 48.22 | 48.24 | 47.43 | 48.17 | | congested | 49.74 | 48.21 | 49.62 | 48.10 | | bdp20 | 49.35 | 48.83 | 48.94 | 48.01 | | bdp40 | 48.50 | 48.96 | 48.78 | 49.29 | | queue 10ms | 42.28 | 41.92 | 40.86 | 43.56 | | queue 5ms | 40.08 | 40.75 | 40.20 | 40.44 | | queue 2.5ms | 41.61 | 41.67 | 40.25 | 41.83 | The lossy RLT flow remains below clean stock in every non-GEO profile and both orders. Two 5%-loss RLT flows give the following final-window results. | Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util | |---|---:|---:|---:|---:|---:|---:| | DSL | 49.66 | 47.37-52.33 | 97.92 | 50.62 | 45.54-52.61 | 97.94 | | Home WiFi | 49.86 | 46.25-59.68 | 97.18 | 50.39 | 50.30-60.51 | 97.49 | | Public | 48.74 | 45.34-53.56 | 97.94 | 51.15 | 46.48-52.08 | 97.91 | | Corporate WiFi | 52.24 | 48.81-53.70 | 97.69 | 49.22 | 43.90-51.29 | 97.72 | | LTE | 52.64 | 50.89-54.69 | 96.57 | 49.87 | 45.35-52.61 | 97.09 | | 5G | 54.21 | 47.56-59.54 | 96.65 | 56.10 | 46.12-61.42 | 97.27 | | LEO | 50.94 | 42.95-54.48 | 97.69 | 47.68 | 42.21-58.70 | 97.28 | | DoCoMo@Office | 47.72 | 42.95-62.09 | 97.47 | 45.48 | 39.74-56.34 | 97.16 | | au@Office | 51.01 | 45.19-63.75 | 97.03 | 50.77 | 42.56-65.99 | 97.44 | | WiFi@Office | 50.31 | 49.41-52.21 | 97.72 | 49.08 | 46.92-51.74 | 97.72 | | DoCoMo@mall | 49.23 | 46.86-49.73 | 97.84 | 49.73 | 46.77-52.47 | 97.86 | | congested | 49.27 | 47.40-53.06 | 96.68 | 49.54 | 44.92-52.24 | 96.18 | | bdp20 | 50.84 | 47.94-52.40 | 97.29 | 50.48 | 47.78-53.16 | 97.16 | | bdp40 | 50.87 | 49.36-53.56 | 97.04 | 49.80 | 48.80-50.91 | 96.46 | | queue 10ms | 50.64 | 43.57-52.89 | 97.10 | 46.92 | 44.36-50.23 | 97.52 | | queue 5ms | 49.88 | 48.34-54.86 | 90.33 | 53.53 | 47.05-56.18 | 89.70 | | queue 2.5ms | 51.11 | 46.74-54.35 | 86.38 | 49.54 | 48.73-51.78 | 86.34 | RTT-adjusted GEO CoDel ----------------------- GEO uses a 600ms RTT, 600ms queue, and CoDel target=5ms, interval=600ms. Standalone values are medians over seven 1000-second runs. | Controller | Clean stock | Lossy stock | Lossy RLT | |---|---:|---:|---:| | CUBIC | 85.84 | 79.17 | 87.13 | | Cuback | 85.28 | 75.93 | 85.22 | The complete competition results are: | Controller | Case | Flow 1 median | Flow 2 median | Util median | Flow 2 share median | Share range | |---|---|---:|---:|---:|---:|---:| | CUBIC | stock/stock | 40.31 | 49.59 | 89.90 | 55.16 | 41.44-66.13 | | CUBIC | stock/RLT | 38.41 | 52.91 | 91.14 | 57.94 | 53.09-69.66 | | CUBIC | RLT/stock | 52.27 | 38.76 | 91.08 | 42.58 | 30.09-45.30 | | CUBIC | clean/lossy-RLT | 42.63 | 48.13 | 90.78 | 53.03 | 41.36-57.77 | | CUBIC | lossy-RLT/clean | 50.93 | 38.96 | 90.26 | 43.30 | 40.12-60.12 | | CUBIC | lossy-RLT/lossy-RLT | 46.50 | 45.55 | 90.95 | 49.48 | 36.92-62.87 | | Cuback | stock/stock | 43.39 | 46.91 | 89.94 | 52.04 | 38.49-55.76 | | Cuback | stock/RLT | 23.69 | 66.27 | 89.99 | 73.67 | 69.25-74.99 | | Cuback | RLT/stock | 65.36 | 24.46 | 90.09 | 27.23 | 22.80-35.54 | | Cuback | clean/lossy-RLT | 27.84 | 61.40 | 89.24 | 68.80 | 65.13-71.44 | | Cuback | lossy-RLT/clean | 61.43 | 28.44 | 89.87 | 31.65 | 30.11-36.33 | | Cuback | lossy-RLT/lossy-RLT | 49.93 | 40.75 | 90.69 | 44.80 | 42.55-49.59 | The RTT-adjusted interval repairs stock CoDel's control timing, but a 5ms target is still effectively queue-less relative to a 600ms idle BDP. RLT is over-aggressive in this deliberately stringent GEO configuration, especially with Cuback. This expected boundary does not represent the stable-path safety result for paths with enough queue for acceleration; it is outside that queue-depth regime.
Replace the single latest-RTT sample formerly retained as qoRTT with full_rtt, the smoothed RTT immediately before the ACK that exits calibration recovery. This incorporates the recovery's RTT samples and avoids making the path model depend on one potentially spiky sample adjacent to the congestion signal. QUIC updates the RTT estimator before invoking congestion control. Recover the preceding smoothed value from the 1/8 EWMA as (8 * smoothed - latest) / 7, and protect that contract with a test that performs consecutive RTT updates. A new loss beyond recovery_end can also close the preceding recovery without an intervening ACK; in that case, retain the current smoothed RTT. Calibration now treats packet loss and ECN identically: either signal clears full_rtt, and recovery exit supplies the observation. This fixes the important behavioral gap in which ECN-CE, represented by a zero-byte congestion report, could not initialize the former qoRTT sample. The full evaluation shows the intended split: * Non-ECN tail-drop behavior is stable. Across the 72 standalone RLT medians shared with the preceding evaluation, the mean change is +0.11 percentage points, median absolute change is 0.17 points, and P90 absolute change is 1.69 points. Individual randomized-loss runs remain noisy. * CoDel paths now benefit from CE-based calibration. At 5% loss per RTT, CUBIC RLT rises from 77.25/61.38/77.47% to 94.88/95.70/95.50% on LTE/5G/LEO; Cuback rises from 81.21/69.32/72.88% to 94.80/95.97/96.25%. * Clean competition remains centered near an equal share, and a 5%-loss RLT flow does not dominate a clean stock flow on any ordinary-profile median. * The existing self-convergence limitation remains visible on some mobile and office profiles. RTT-adjusted GEO CoDel also remains order-sensitive, especially for Cuback; its 5ms target is effectively queue-less relative to the 600ms idle RTT and remains outside the queue-depth regime assumed by the acceleration. build/default/test.t passes all 31 top-level groups. Method ------ The per-packet random-loss probability is chosen so that a full pipe has a 5% or 10% chance of at least one random loss per RTT. Standalone tests are seven 100-second runs measuring the latter 50 seconds. Competition tests are seven 160-second runs per flow order measuring the latter 80 seconds. Self- competition uses five 320-second runs and reports the final 40-second window. All values below are percentages. S->R means stock is created first and RLT second; R->S is the reverse. Loss placement varies between repetitions through the TLS-context random callback. 1. Tail-drop standalone goodput -------------------------------- Each cell is stock/RLT median goodput as a percentage of available bandwidth. | Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R | |---|---:|---:|---:|---:| | DSL | 91.02/97.29 | 72.98/95.18 | 93.51/97.88 | 72.75/96.34 | | Home WiFi | 53.84/93.80 | 36.05/86.01 | 55.44/95.96 | 36.39/92.07 | | Public | 98.03/98.03 | 95.19/96.86 | 97.86/98.03 | 94.69/97.80 | | Corporate WiFi | 49.04/97.10 | 35.69/96.15 | 51.19/97.38 | 36.33/96.63 | | LTE | 87.55/96.22 | 60.82/89.69 | 83.28/97.16 | 59.96/95.37 | | 5G | 58.26/95.46 | 39.49/92.00 | 64.66/96.82 | 39.15/93.56 | | LEO | 82.07/96.18 | 56.48/92.35 | 69.31/97.26 | 57.51/95.74 | | GEO | 98.02/97.99 | 87.27/90.13 | 96.40/98.00 | 86.40/96.71 | | DoCoMo@Office | 96.93/97.62 | 71.19/97.15 | 94.63/97.78 | 72.68/97.40 | | au@Office | 73.61/97.57 | 60.59/97.11 | 89.14/97.66 | 58.24/97.39 | | WiFi@Office | 72.68/97.70 | 51.37/97.55 | 72.31/97.71 | 51.67/97.61 | | DoCoMo@mall | 98.03/98.03 | 94.09/97.61 | 98.03/98.03 | 94.13/97.93 | | congested | 97.95/97.75 | 97.79/97.91 | 97.95/97.95 | 97.67/97.81 | | bdp20 | 97.60/97.54 | 96.80/96.74 | 97.10/97.52 | 96.78/96.96 | | bdp40 | 97.70/97.77 | 93.36/96.91 | 96.71/97.79 | 94.27/96.81 | | queue 10ms | 72.80/74.54 | 55.41/56.37 | 73.33/73.20 | 53.62/54.96 | | queue 5ms | 68.49/69.07 | 51.92/50.87 | 68.26/66.05 | 52.47/52.39 | | queue 2.5ms | 64.64/64.16 | 50.47/48.31 | 63.15/65.80 | 49.63/49.63 | 2. Clean tail-drop competition -------------------------------- S/S is the stock/stock second flow's median share. The other columns are RLT's median share in each order. | Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S | |---|---:|---:|---:|---:|---:|---:| | DSL | 47.64 | 47.99 | 51.38 | 52.14 | 50.33 | 51.17 | | Home WiFi | 51.98 | 50.07 | 52.69 | 49.39 | 56.30 | 52.13 | | Public | 49.86 | 52.39 | 50.29 | 49.73 | 50.01 | 50.40 | | Corporate WiFi | 51.86 | 50.68 | 49.60 | 44.83 | 54.32 | 41.67 | | LTE | 51.34 | 50.70 | 48.69 | 48.50 | 54.38 | 48.62 | | 5G | 51.58 | 50.74 | 48.55 | 52.23 | 52.97 | 47.76 | | LEO | 52.44 | 46.84 | 51.70 | 49.47 | 52.01 | 48.12 | | GEO | 49.99 | 50.00 | 50.03 | 50.00 | 49.96 | 50.12 | | DoCoMo@Office | 49.95 | 50.09 | 50.99 | 50.02 | 50.00 | 49.97 | | au@Office | 51.51 | 51.56 | 50.08 | 49.80 | 52.09 | 50.05 | | WiFi@Office | 55.22 | 53.69 | 46.42 | 53.29 | 55.44 | 46.03 | | DoCoMo@mall | 49.73 | 49.73 | 50.25 | 50.01 | 49.77 | 50.15 | | congested | 50.19 | 52.10 | 51.44 | 49.73 | 50.40 | 50.33 | | bdp20 | 49.84 | 50.17 | 50.50 | 49.07 | 50.30 | 49.51 | | bdp40 | 50.19 | 49.09 | 49.25 | 50.01 | 51.55 | 49.91 | | queue 10ms | 50.26 | 50.51 | 48.71 | 50.38 | 49.66 | 51.35 | | queue 5ms | 49.67 | 50.30 | 48.02 | 48.50 | 50.00 | 49.67 | | queue 2.5ms | 48.33 | 50.82 | 50.52 | 49.92 | 48.92 | 49.88 | 3. Clean stock against 5%-loss RLT, tail drop ------------------------------------------------ Each value is the lossy RLT flow's median share. | Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S | |---|---:|---:|---:|---:| | DSL | 34.01 | 34.09 | 33.83 | 36.95 | | Home WiFi | 28.16 | 31.24 | 32.38 | 31.23 | | Public | 33.17 | 30.31 | 28.06 | 29.75 | | Corporate WiFi | 18.41 | 16.85 | 17.45 | 16.74 | | LTE | 29.68 | 34.84 | 25.49 | 26.95 | | 5G | 20.89 | 20.75 | 22.41 | 20.88 | | LEO | 23.42 | 27.15 | 24.94 | 24.30 | | GEO | 44.47 | 42.48 | 40.60 | 38.08 | | DoCoMo@Office | 17.28 | 24.42 | 22.69 | 17.01 | | au@Office | 17.26 | 15.70 | 18.17 | 21.20 | | WiFi@Office | 21.70 | 21.15 | 20.39 | 21.03 | | DoCoMo@mall | 24.34 | 30.22 | 29.74 | 29.39 | | congested | 45.25 | 45.05 | 42.40 | 42.89 | | bdp20 | 48.33 | 48.03 | 48.63 | 47.76 | | bdp40 | 49.30 | 47.18 | 46.39 | 47.15 | | queue 10ms | 40.27 | 41.00 | 40.64 | 39.67 | | queue 5ms | 41.14 | 40.31 | 40.09 | 40.49 | | queue 2.5ms | 41.12 | 40.67 | 40.56 | 42.63 | The lossy RLT flow remains below the clean stock flow in every profile and both orders. 4. Tail-drop RLT self-competition at 5% loss ------------------------------------------------ Each entry gives the second flow's median share, the complete five-run range, and median combined utilization. | Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util | |---|---:|---:|---:|---:|---:|---:| | DSL | 49.92 | 46.55-58.23 | 98.02 | 50.90 | 49.38-59.49 | 98.02 | | Home WiFi | 52.19 | 48.27-59.24 | 97.39 | 55.34 | 50.34-57.44 | 97.61 | | Public | 52.54 | 40.11-53.85 | 98.02 | 48.67 | 41.43-61.04 | 98.02 | | Corporate WiFi | 51.32 | 47.56-53.55 | 97.70 | 46.87 | 42.32-51.10 | 97.72 | | LTE | 53.17 | 44.93-58.69 | 98.03 | 50.27 | 45.83-59.18 | 98.03 | | 5G | 52.82 | 31.46-54.65 | 97.71 | 53.59 | 37.37-60.56 | 97.71 | | LEO | 51.36 | 44.92-54.50 | 98.03 | 53.16 | 51.54-61.97 | 98.03 | | GEO | 48.34 | 33.61-69.01 | 97.91 | 38.96 | 33.64-62.17 | 98.01 | | DoCoMo@Office | 46.59 | 39.05-59.15 | 97.73 | 55.49 | 39.27-62.50 | 97.72 | | au@Office | 50.85 | 34.92-63.27 | 97.73 | 47.86 | 30.00-51.15 | 97.73 | | WiFi@Office | 50.81 | 49.55-51.93 | 97.72 | 50.60 | 47.53-51.86 | 97.72 | | DoCoMo@mall | 37.52 | 33.24-66.14 | 98.03 | 45.86 | 37.35-46.72 | 98.03 | | congested | 53.60 | 48.33-58.38 | 97.91 | 47.65 | 36.92-54.64 | 97.86 | | bdp20 | 49.67 | 46.92-52.71 | 97.63 | 49.37 | 48.49-51.90 | 97.88 | | bdp40 | 53.01 | 48.06-54.46 | 97.93 | 51.04 | 47.73-52.00 | 97.89 | | queue 10ms | 48.29 | 48.12-50.70 | 94.97 | 50.53 | 46.59-51.59 | 95.69 | | queue 5ms | 51.51 | 47.42-52.27 | 90.60 | 51.37 | 47.38-55.06 | 90.37 | | queue 2.5ms | 48.74 | 46.97-51.62 | 86.09 | 50.14 | 46.71-51.43 | 87.28 | The existing self-convergence limitation remains visible in the broad ranges. 5. CoDel standalone goodput ----------------------------- GEO is excluded here and evaluated separately with an RTT-appropriate CoDel interval. Each cell is stock/RLT median goodput. | Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R | |---|---:|---:|---:|---:| | DSL | 86.45/96.64 | 73.21/94.90 | 85.67/96.89 | 69.42/94.90 | | Home WiFi | 52.57/93.50 | 36.93/87.78 | 49.59/95.53 | 39.80/91.68 | | Public | 94.33/96.85 | 88.73/95.79 | 93.28/96.65 | 86.52/95.86 | | Corporate WiFi | 48.67/97.03 | 36.35/96.11 | 49.30/97.41 | 34.87/96.75 | | LTE | 81.83/94.88 | 59.37/89.10 | 78.80/94.80 | 60.47/92.19 | | 5G | 60.44/95.70 | 43.43/91.84 | 54.10/95.97 | 39.51/94.48 | | LEO | 75.63/95.50 | 56.13/93.04 | 72.01/96.25 | 57.08/93.94 | | DoCoMo@Office | 88.23/97.44 | 65.31/96.97 | 80.61/97.46 | 66.28/96.99 | | au@Office | 76.10/97.48 | 56.23/97.15 | 84.20/97.59 | 61.26/97.39 | | WiFi@Office | 74.17/97.70 | 52.81/97.58 | 73.74/97.70 | 52.06/97.64 | | DoCoMo@mall | 91.67/97.20 | 83.39/96.90 | 92.14/97.15 | 86.09/96.71 | | congested | 95.90/96.34 | 93.61/93.47 | 95.44/96.26 | 90.88/94.38 | | bdp20 | 96.60/96.62 | 94.25/95.38 | 96.32/96.52 | 94.72/94.88 | | bdp40 | 94.54/93.80 | 89.62/89.33 | 94.27/94.83 | 90.71/92.69 | | queue 10ms | 74.83/74.63 | 53.34/55.23 | 74.52/74.01 | 54.13/53.61 | | queue 5ms | 67.51/68.51 | 49.54/51.50 | 68.05/65.71 | 50.52/50.32 | | queue 2.5ms | 64.51/65.76 | 48.76/45.46 | 66.01/64.11 | 49.85/49.03 | 6. CoDel competition ---------------------- GEO is excluded from these tables. The clean table has the same meaning as experiment 2. | Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S | |---|---:|---:|---:|---:|---:|---:| | DSL | 51.68 | 51.25 | 51.32 | 50.60 | 48.82 | 51.17 | | Home WiFi | 49.88 | 49.91 | 49.49 | 50.02 | 50.43 | 50.63 | | Public | 49.29 | 49.26 | 50.13 | 49.94 | 50.49 | 50.03 | | Corporate WiFi | 49.91 | 51.07 | 49.98 | 48.90 | 49.86 | 50.77 | | LTE | 49.80 | 50.60 | 50.83 | 51.26 | 49.97 | 47.48 | | 5G | 49.44 | 49.25 | 49.89 | 48.65 | 49.13 | 50.25 | | LEO | 49.52 | 49.37 | 50.53 | 50.03 | 50.56 | 49.89 | | DoCoMo@Office | 50.81 | 60.23 | 48.59 | 52.17 | 60.55 | 43.57 | | au@Office | 53.63 | 51.11 | 53.96 | 45.74 | 45.15 | 50.66 | | WiFi@Office | 47.99 | 49.29 | 51.29 | 49.03 | 48.80 | 51.27 | | DoCoMo@mall | 50.23 | 49.36 | 49.75 | 51.24 | 50.25 | 50.98 | | congested | 48.83 | 49.37 | 50.28 | 49.12 | 50.57 | 49.88 | | bdp20 | 49.66 | 49.77 | 49.70 | 50.32 | 49.81 | 50.81 | | bdp40 | 50.29 | 50.01 | 49.55 | 49.59 | 49.23 | 50.25 | | queue 10ms | 48.90 | 50.88 | 51.52 | 48.92 | 52.05 | 48.51 | | queue 5ms | 50.63 | 49.56 | 49.27 | 49.82 | 50.43 | 50.22 | | queue 2.5ms | 51.08 | 50.44 | 51.04 | 51.58 | 50.02 | 48.68 | With 5% loss on RLT and no random loss on stock, the following values are the lossy RLT flow's median share. | Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S | |---|---:|---:|---:|---:| | DSL | 45.72 | 44.61 | 47.16 | 47.19 | | Home WiFi | 38.47 | 38.98 | 45.45 | 42.19 | | Public | 48.54 | 47.32 | 49.74 | 48.83 | | Corporate WiFi | 31.71 | 32.74 | 33.28 | 34.26 | | LTE | 45.83 | 46.93 | 47.91 | 47.90 | | 5G | 43.40 | 43.10 | 48.19 | 44.47 | | LEO | 45.86 | 44.29 | 48.38 | 47.71 | | DoCoMo@Office | 44.99 | 37.33 | 45.64 | 44.54 | | au@Office | 39.48 | 38.92 | 43.15 | 39.51 | | WiFi@Office | 29.14 | 29.88 | 30.60 | 30.55 | | DoCoMo@mall | 47.67 | 49.00 | 49.48 | 49.97 | | congested | 49.25 | 50.00 | 49.98 | 48.56 | | bdp20 | 48.65 | 49.59 | 48.85 | 47.90 | | bdp40 | 48.21 | 48.03 | 49.03 | 48.19 | | queue 10ms | 42.02 | 41.49 | 41.32 | 41.49 | | queue 5ms | 40.71 | 39.87 | 39.64 | 40.65 | | queue 2.5ms | 42.08 | 41.61 | 42.19 | 40.80 | The lossy RLT flow remains at or below equal share in every non-GEO profile and both orders. Two 5%-loss RLT flows give the following final-window results. | Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util | |---|---:|---:|---:|---:|---:|---:| | DSL | 50.22 | 46.55-53.25 | 97.91 | 50.90 | 49.64-52.28 | 97.94 | | Home WiFi | 52.49 | 47.11-58.99 | 97.36 | 52.89 | 46.53-55.02 | 97.54 | | Public | 49.67 | 47.96-54.01 | 97.96 | 48.56 | 47.33-53.17 | 97.94 | | Corporate WiFi | 50.50 | 47.21-54.93 | 97.69 | 47.47 | 45.65-48.52 | 97.72 | | LTE | 51.02 | 47.87-54.90 | 97.52 | 50.83 | 46.45-54.01 | 97.59 | | 5G | 52.01 | 45.31-60.12 | 97.28 | 51.56 | 49.53-63.07 | 97.28 | | LEO | 49.37 | 44.01-54.58 | 97.78 | 49.16 | 45.69-51.84 | 97.74 | | DoCoMo@Office | 51.54 | 47.67-56.82 | 97.65 | 64.70 | 56.11-65.41 | 97.68 | | au@Office | 42.34 | 39.89-61.98 | 97.70 | 38.45 | 37.34-50.17 | 97.72 | | WiFi@Office | 48.72 | 47.17-51.06 | 97.72 | 50.97 | 44.05-53.47 | 97.72 | | DoCoMo@mall | 49.99 | 48.40-51.01 | 97.99 | 49.20 | 47.97-50.10 | 97.96 | | congested | 51.14 | 48.94-53.41 | 96.81 | 49.28 | 44.33-50.46 | 96.13 | | bdp20 | 50.49 | 47.98-52.61 | 97.09 | 49.54 | 48.64-53.78 | 97.06 | | bdp40 | 49.82 | 48.99-53.92 | 97.00 | 49.97 | 47.28-52.12 | 96.63 | | queue 10ms | 49.33 | 48.71-51.56 | 96.75 | 49.94 | 43.97-52.71 | 97.34 | | queue 5ms | 50.18 | 49.02-53.91 | 90.13 | 49.48 | 45.98-50.74 | 90.44 | | queue 2.5ms | 49.89 | 48.24-51.72 | 86.46 | 50.36 | 43.84-52.14 | 85.36 | RTT-adjusted GEO CoDel ----------------------- GEO uses a 600ms RTT, 600ms queue, and CoDel target=5ms, interval=600ms. Standalone values are medians over seven 1000-second runs. | Controller | Clean stock | Lossy stock | Lossy RLT | |---|---:|---:|---:| | CUBIC | 85.84 | 77.78 | 88.00 | | Cuback | 85.29 | 77.16 | 85.26 | The complete competition results are: | Controller | Case | Flow 1 median | Flow 2 median | Util median | Flow 2 share median | Share range | |---|---|---:|---:|---:|---:|---:| | CUBIC | stock/stock | 46.55 | 43.03 | 90.30 | 47.87 | 37.74-53.98 | | CUBIC | stock/RLT | 32.81 | 58.34 | 91.15 | 64.00 | 44.16-69.58 | | CUBIC | RLT/stock | 53.88 | 37.25 | 90.72 | 40.88 | 31.83-60.95 | | CUBIC | clean/lossy-RLT | 43.31 | 46.85 | 90.56 | 51.96 | 46.74-66.64 | | CUBIC | lossy-RLT/clean | 46.80 | 42.90 | 90.55 | 47.82 | 39.17-52.32 | | CUBIC | lossy-RLT/lossy-RLT | 40.48 | 50.29 | 90.74 | 55.40 | 53.86-60.55 | | Cuback | stock/stock | 46.09 | 42.96 | 89.84 | 48.24 | 40.73-57.21 | | Cuback | stock/RLT | 25.91 | 64.19 | 90.23 | 71.24 | 59.22-73.88 | | Cuback | RLT/stock | 65.80 | 24.51 | 90.13 | 27.14 | 24.06-32.97 | | Cuback | clean/lossy-RLT | 28.25 | 61.40 | 89.65 | 68.48 | 61.99-72.34 | | Cuback | lossy-RLT/clean | 57.61 | 31.27 | 89.40 | 35.18 | 26.46-53.22 | | Cuback | lossy-RLT/lossy-RLT | 39.41 | 51.20 | 90.62 | 56.51 | 43.41-62.32 | The RTT-adjusted interval repairs stock CoDel's control timing, but a 5ms target is still effectively queue-less relative to a 600ms idle BDP. RLT is over-aggressive in this deliberately stringent GEO configuration, especially with Cuback. This expected boundary is not used as evidence against the stable- path result for paths with enough queue for acceleration.
Accelerated increase is intended to recover capacity after a random loss while
the observed RTT remains safely below the full-queue RTT learned from a real
congestion episode. The CWND-distance calculation alone can consume too much
of that RTT margin before delayed ACK feedback reflects the added queue.
Stop acceleration once latest_rtt is within five percent of full_rtt. Before
that point, cap the per-RTT increase to half of the remaining relative RTT
headroom:
(full_rtt / latest_rtt - 1) / 2
The subtraction converts the total RTT ratio into available growth. For
example, full_rtt=120ms and latest_rtt=100ms leave 20% headroom, so the cap is
10% per RTT. Retain the existing CWND-based acceleration and 2.5% floor below
this cap.
Add focused coverage for both the half-headroom calculation and the
five-percent cutoff.
build/default/test.t passes all 31 top-level groups.
Method
------
The per-packet random-loss probability is chosen so that a full pipe has a 5%
or 10% chance of at least one random loss per RTT. Standalone tests are seven
100-second runs measuring the latter 50 seconds. Competition tests are seven
160-second runs per flow order measuring the latter 80 seconds. Self-
competition uses five 320-second runs and reports the final 40-second window.
All values below are percentages. S->R means stock is created first and RLT
second; R->S is the reverse. Loss placement varies between repetitions through
the TLS-context random callback.
1. Tail-drop standalone goodput
-------------------------------
Each cell is stock/RLT median goodput as a percentage of available bandwidth.
| Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R |
|---|---:|---:|---:|---:|
| DSL | 93.21/97.60 | 77.98/95.10 | 91.17/97.87 | 75.53/96.35 |
| Home WiFi | 53.09/93.94 | 36.62/86.56 | 54.23/96.00 | 37.20/91.28 |
| Public | 98.03/98.03 | 93.53/97.55 | 98.03/98.03 | 94.40/97.90 |
| Corporate WiFi | 50.39/97.05 | 34.47/96.05 | 50.83/97.31 | 34.41/96.69 |
| LTE | 86.99/96.16 | 62.33/89.55 | 85.74/97.70 | 64.08/94.71 |
| 5G | 55.37/95.65 | 42.76/92.03 | 61.75/96.96 | 41.99/95.05 |
| LEO | 82.17/95.53 | 55.54/92.26 | 78.43/97.44 | 56.90/95.09 |
| GEO | 98.02/97.90 | 92.03/97.42 | 97.71/98.02 | 91.63/97.37 |
| DoCoMo@Office | 88.82/97.55 | 73.68/96.87 | 93.19/97.76 | 68.69/97.44 |
| au@Office | 81.24/97.57 | 52.74/97.25 | 90.90/97.69 | 52.82/97.44 |
| WiFi@Office | 71.77/97.71 | 52.59/97.60 | 69.55/97.71 | 51.11/97.66 |
| DoCoMo@mall | 98.03/98.02 | 91.21/97.41 | 98.03/98.03 | 94.01/97.84 |
| congested | 97.93/97.91 | 97.87/97.81 | 97.91/97.97 | 97.81/97.89 |
| bdp20 | 97.68/97.36 | 96.04/96.56 | 97.06/97.26 | 96.06/96.60 |
| bdp40 | 97.61/97.62 | 94.64/96.04 | 97.54/97.78 | 91.85/96.22 |
| queue 10ms | 74.51/72.61 | 52.49/56.14 | 73.32/69.41 | 51.27/54.73 |
| queue 5ms | 65.97/65.68 | 52.63/52.12 | 71.42/66.96 | 50.27/49.00 |
| queue 2.5ms | 66.48/64.88 | 48.73/49.83 | 65.02/66.12 | 48.96/47.20 |
2. Clean tail-drop competition
------------------------------
S/S is the stock/stock second flow's median share. The other columns are RLT's
median share in each order.
| Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S |
|---|---:|---:|---:|---:|---:|---:|
| DSL | 51.36 | 51.59 | 50.39 | 49.91 | 51.49 | 53.12 |
| Home WiFi | 51.45 | 54.03 | 51.67 | 49.81 | 50.80 | 53.37 |
| Public | 49.26 | 49.80 | 51.27 | 52.19 | 49.84 | 50.45 |
| Corporate WiFi | 53.45 | 47.42 | 48.89 | 52.74 | 53.87 | 50.90 |
| LTE | 49.91 | 52.77 | 50.72 | 51.34 | 50.48 | 50.23 |
| 5G | 48.54 | 49.67 | 52.86 | 49.08 | 47.16 | 51.18 |
| LEO | 50.36 | 49.77 | 47.67 | 49.37 | 52.59 | 48.98 |
| GEO | 49.99 | 49.99 | 50.02 | 49.89 | 49.94 | 50.07 |
| DoCoMo@Office | 49.96 | 49.99 | 49.95 | 49.88 | 50.98 | 51.07 |
| au@Office | 51.38 | 51.59 | 48.47 | 52.12 | 52.12 | 50.13 |
| WiFi@Office | 53.18 | 53.69 | 44.86 | 56.41 | 54.96 | 49.64 |
| DoCoMo@mall | 49.74 | 49.78 | 50.30 | 49.88 | 49.81 | 50.18 |
| congested | 49.27 | 51.08 | 51.11 | 50.64 | 52.82 | 51.43 |
| bdp20 | 49.70 | 50.60 | 50.05 | 48.83 | 50.05 | 50.05 |
| bdp40 | 50.27 | 50.00 | 50.91 | 46.69 | 51.53 | 49.13 |
| queue 10ms | 50.43 | 50.49 | 49.78 | 49.02 | 49.10 | 47.58 |
| queue 5ms | 48.36 | 49.81 | 50.81 | 48.17 | 49.44 | 49.53 |
| queue 2.5ms | 48.90 | 50.90 | 50.90 | 50.46 | 49.99 | 50.88 |
3. Clean stock against 5%-loss RLT, tail drop
---------------------------------------------
Each value is the lossy RLT flow's median share.
| Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S |
|---|---:|---:|---:|---:|
| DSL | 34.00 | 37.38 | 32.95 | 33.57 |
| Home WiFi | 28.62 | 29.34 | 32.14 | 29.40 |
| Public | 25.97 | 34.09 | 31.90 | 31.48 |
| Corporate WiFi | 17.68 | 17.48 | 17.65 | 17.88 |
| LTE | 29.22 | 28.91 | 28.98 | 32.94 |
| 5G | 20.08 | 21.50 | 20.24 | 20.01 |
| LEO | 25.38 | 26.28 | 25.19 | 26.37 |
| GEO | 45.50 | 44.89 | 34.46 | 39.66 |
| DoCoMo@Office | 25.92 | 29.69 | 18.88 | 23.23 |
| au@Office | 20.84 | 20.98 | 18.68 | 22.16 |
| WiFi@Office | 21.27 | 19.51 | 21.49 | 19.60 |
| DoCoMo@mall | 26.12 | 31.45 | 24.07 | 34.11 |
| congested | 42.05 | 48.80 | 44.44 | 42.54 |
| bdp20 | 49.20 | 48.47 | 49.20 | 49.58 |
| bdp40 | 47.53 | 46.23 | 45.32 | 45.08 |
| queue 10ms | 39.39 | 41.14 | 40.59 | 40.64 |
| queue 5ms | 40.12 | 39.26 | 40.07 | 40.21 |
| queue 2.5ms | 40.84 | 41.03 | 41.91 | 41.11 |
The lossy RLT flow remains below equal share throughout.
4. Tail-drop RLT self-competition at 5% loss
--------------------------------------------
Each entry gives the second flow's median share, complete five-run range, and
median combined utilization.
| Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util |
|---|---:|---:|---:|---:|---:|---:|
| DSL | 53.19 | 44.29-54.96 | 98.02 | 48.32 | 45.20-55.20 | 98.02 |
| Home WiFi | 50.04 | 44.40-60.06 | 97.53 | 45.15 | 42.78-56.78 | 97.62 |
| Public | 46.89 | 37.09-66.96 | 98.03 | 41.32 | 38.70-65.50 | 98.02 |
| Corporate WiFi | 48.29 | 45.86-55.88 | 97.67 | 46.88 | 43.10-51.12 | 97.72 |
| LTE | 52.81 | 38.24-61.12 | 98.03 | 49.80 | 46.74-50.42 | 98.03 |
| 5G | 48.45 | 33.25-54.15 | 97.66 | 50.19 | 43.45-59.38 | 97.72 |
| LEO | 50.96 | 40.69-65.03 | 98.03 | 45.30 | 42.20-60.10 | 98.03 |
| GEO | 61.95 | 44.43-76.67 | 97.97 | 53.21 | 39.28-79.38 | 97.98 |
| DoCoMo@Office | 44.54 | 33.84-55.06 | 97.73 | 52.36 | 22.10-57.56 | 97.72 |
| au@Office | 41.10 | 40.02-62.87 | 97.73 | 52.23 | 40.23-62.04 | 97.73 |
| WiFi@Office | 47.88 | 43.42-49.66 | 97.72 | 49.67 | 45.50-50.36 | 97.72 |
| DoCoMo@mall | 45.34 | 38.04-54.66 | 98.03 | 56.44 | 34.64-66.39 | 98.03 |
| congested | 53.87 | 43.21-60.88 | 97.89 | 57.12 | 47.28-61.28 | 97.89 |
| bdp20 | 50.60 | 48.60-52.10 | 97.76 | 48.17 | 44.69-50.54 | 97.58 |
| bdp40 | 51.95 | 47.33-53.36 | 97.85 | 49.23 | 43.84-56.10 | 97.86 |
| queue 10ms | 48.41 | 45.70-50.35 | 96.19 | 51.20 | 48.28-53.92 | 95.46 |
| queue 5ms | 48.95 | 46.40-51.43 | 90.32 | 50.09 | 48.59-51.63 | 88.80 |
| queue 2.5ms | 49.69 | 48.66-52.67 | 86.51 | 50.37 | 46.63-54.08 | 85.93 |
The existing broad self-convergence distribution remains on several
large-delay profiles.
5. CoDel standalone goodput
---------------------------
GEO is excluded here and evaluated separately with an RTT-appropriate CoDel
interval. Each cell is stock/RLT median goodput.
| Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R |
|---|---:|---:|---:|---:|
| DSL | 87.64/96.49 | 72.40/94.62 | 85.85/96.79 | 72.70/95.11 |
| Home WiFi | 48.31/93.74 | 36.68/87.33 | 51.86/95.21 | 37.51/92.00 |
| Public | 94.32/96.89 | 89.45/95.65 | 94.25/96.80 | 88.17/95.62 |
| Corporate WiFi | 51.98/97.13 | 34.04/96.28 | 47.51/97.37 | 35.36/96.62 |
| LTE | 72.86/95.38 | 61.06/90.47 | 75.61/94.67 | 59.77/92.42 |
| 5G | 62.18/95.82 | 40.37/92.86 | 59.84/96.12 | 35.98/93.39 |
| LEO | 73.31/95.02 | 55.31/91.64 | 72.66/95.82 | 62.90/93.91 |
| DoCoMo@Office | 85.67/97.40 | 66.27/96.92 | 81.85/97.40 | 61.84/96.98 |
| au@Office | 80.56/97.49 | 57.61/97.23 | 75.58/97.57 | 58.11/97.37 |
| WiFi@Office | 74.75/97.70 | 52.87/97.61 | 72.24/97.71 | 51.64/97.64 |
| DoCoMo@mall | 90.95/97.31 | 83.73/96.68 | 90.31/97.17 | 85.67/96.68 |
| congested | 95.62/96.48 | 92.87/93.51 | 95.02/96.30 | 90.54/95.02 |
| bdp20 | 96.24/97.07 | 94.13/95.24 | 96.48/96.81 | 93.67/94.29 |
| bdp40 | 94.15/93.87 | 90.34/92.78 | 92.86/95.67 | 89.16/91.74 |
| queue 10ms | 73.84/71.67 | 54.76/53.02 | 71.80/73.14 | 54.36/54.33 |
| queue 5ms | 69.90/68.60 | 50.58/49.29 | 65.66/63.96 | 50.82/48.99 |
| queue 2.5ms | 64.01/65.82 | 47.08/49.77 | 66.58/66.59 | 47.50/47.36 |
6. CoDel competition
--------------------
GEO is excluded from these tables. The clean table has the same meaning as
experiment 2.
| Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S |
|---|---:|---:|---:|---:|---:|---:|
| DSL | 50.02 | 50.60 | 49.96 | 49.20 | 49.57 | 49.63 |
| Home WiFi | 49.64 | 49.97 | 51.02 | 50.68 | 49.96 | 49.73 |
| Public | 50.90 | 50.51 | 49.89 | 50.15 | 50.07 | 48.81 |
| Corporate WiFi | 48.32 | 50.69 | 51.31 | 49.32 | 49.06 | 50.28 |
| LTE | 49.10 | 50.07 | 50.58 | 50.62 | 49.76 | 49.30 |
| 5G | 50.89 | 49.67 | 49.77 | 50.58 | 50.05 | 50.80 |
| LEO | 50.06 | 51.09 | 49.44 | 49.68 | 51.41 | 50.05 |
| DoCoMo@Office | 58.21 | 54.32 | 45.52 | 61.71 | 59.61 | 40.01 |
| au@Office | 48.66 | 49.22 | 51.54 | 49.30 | 50.74 | 50.81 |
| WiFi@Office | 49.65 | 51.11 | 49.97 | 50.38 | 49.73 | 50.64 |
| DoCoMo@mall | 50.65 | 49.73 | 48.89 | 51.02 | 49.04 | 49.44 |
| congested | 50.76 | 51.46 | 49.18 | 49.92 | 49.82 | 49.41 |
| bdp20 | 50.77 | 50.06 | 49.98 | 50.39 | 50.42 | 50.33 |
| bdp40 | 50.71 | 50.56 | 49.98 | 49.61 | 50.16 | 49.90 |
| queue 10ms | 49.47 | 50.68 | 49.58 | 51.98 | 50.53 | 48.87 |
| queue 5ms | 49.72 | 50.54 | 50.07 | 48.69 | 48.44 | 50.82 |
| queue 2.5ms | 49.55 | 49.97 | 49.08 | 49.14 | 50.53 | 51.76 |
With 5% loss on RLT and no random loss on stock, the following values are the
lossy RLT flow's median share.
| Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S |
|---|---:|---:|---:|---:|
| DSL | 46.73 | 45.34 | 47.54 | 46.11 |
| Home WiFi | 39.00 | 38.27 | 44.18 | 40.96 |
| Public | 50.05 | 48.40 | 49.36 | 48.78 |
| Corporate WiFi | 30.08 | 33.19 | 31.65 | 33.33 |
| LTE | 46.77 | 46.77 | 49.04 | 48.55 |
| 5G | 42.30 | 42.34 | 47.15 | 45.14 |
| LEO | 45.10 | 45.53 | 47.91 | 47.03 |
| DoCoMo@Office | 45.59 | 38.47 | 55.07 | 38.61 |
| au@Office | 39.50 | 36.97 | 46.46 | 38.43 |
| WiFi@Office | 30.22 | 30.33 | 30.44 | 30.72 |
| DoCoMo@mall | 48.20 | 48.27 | 50.15 | 49.49 |
| congested | 49.32 | 49.33 | 49.34 | 48.38 |
| bdp20 | 48.18 | 48.77 | 48.94 | 49.14 |
| bdp40 | 48.74 | 48.99 | 49.23 | 47.86 |
| queue 10ms | 41.73 | 41.25 | 40.80 | 42.04 |
| queue 5ms | 40.87 | 42.17 | 39.85 | 41.72 |
| queue 2.5ms | 41.16 | 42.32 | 40.83 | 40.77 |
The 50.05% Public result is numerical noise. Cuback DoCoMo@Office remains
strongly order-dependent: 55.07% in one direction and 38.61% in the reverse,
matching that profile's stock/stock order bias.
Two 5%-loss RLT flows give the following final-window results.
| Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util |
|---|---:|---:|---:|---:|---:|---:|
| DSL | 48.37 | 46.14-50.48 | 97.95 | 52.35 | 48.56-54.43 | 97.95 |
| Home WiFi | 50.76 | 48.66-51.88 | 97.21 | 50.60 | 40.05-55.47 | 97.48 |
| Public | 47.97 | 47.74-51.80 | 97.98 | 51.76 | 49.15-53.21 | 97.92 |
| Corporate WiFi | 47.92 | 45.34-50.34 | 97.70 | 50.51 | 48.76-52.61 | 97.72 |
| LTE | 50.81 | 47.89-54.31 | 97.45 | 49.76 | 49.65-51.58 | 97.40 |
| 5G | 50.79 | 45.65-55.30 | 97.45 | 50.22 | 46.38-58.69 | 97.46 |
| LEO | 51.80 | 45.00-55.06 | 97.64 | 49.65 | 47.10-54.56 | 97.78 |
| DoCoMo@Office | 56.67 | 42.34-67.79 | 97.68 | 63.60 | 38.30-64.81 | 97.69 |
| au@Office | 47.14 | 41.26-48.59 | 97.71 | 44.83 | 40.73-50.55 | 97.71 |
| WiFi@Office | 49.92 | 46.99-51.64 | 97.72 | 51.27 | 47.21-53.18 | 97.72 |
| DoCoMo@mall | 48.86 | 47.65-50.91 | 97.98 | 49.00 | 47.10-51.33 | 97.98 |
| congested | 49.71 | 47.84-53.01 | 96.74 | 49.56 | 46.99-52.14 | 96.36 |
| bdp20 | 51.86 | 45.80-52.46 | 96.99 | 50.18 | 46.36-51.84 | 97.24 |
| bdp40 | 49.18 | 49.03-50.74 | 96.85 | 49.55 | 48.09-52.35 | 96.80 |
| queue 10ms | 50.93 | 47.60-51.06 | 96.58 | 50.03 | 44.06-50.65 | 96.86 |
| queue 5ms | 48.93 | 48.05-53.43 | 90.37 | 52.24 | 46.59-55.61 | 90.36 |
| queue 2.5ms | 49.22 | 48.87-52.92 | 85.68 | 48.53 | 46.82-50.02 | 85.41 |
7. RTT-adjusted GEO CoDel
-------------------------
GEO uses a 600ms RTT, 600ms queue, and CoDel target=5ms, interval=600ms.
Standalone values are medians over seven 1000-second runs.
| Controller | Clean stock | Lossy stock | Lossy RLT |
|---|---:|---:|---:|
| CUBIC | 85.84 | 77.37 | 87.18 |
| Cuback | 85.28 | 76.15 | 85.30 |
The complete competition results are:
| Controller | Case | Flow 1 median | Flow 2 median | Util median | Flow 2 share median | Share range |
|---|---|---:|---:|---:|---:|---:|
| CUBIC | stock/stock | 43.09 | 47.01 | 90.28 | 52.18 | 44.33-65.16 |
| CUBIC | stock/RLT | 34.62 | 56.39 | 91.07 | 62.16 | 45.24-66.99 |
| CUBIC | RLT/stock | 49.45 | 41.75 | 90.90 | 45.77 | 35.15-61.40 |
| CUBIC | clean/lossy-RLT | 47.37 | 43.19 | 90.42 | 47.58 | 36.68-62.80 |
| CUBIC | lossy-RLT/clean | 46.03 | 44.46 | 90.41 | 49.17 | 34.20-56.79 |
| CUBIC | lossy-RLT/lossy-RLT | 42.25 | 48.48 | 90.57 | 53.60 | 32.60-54.21 |
| Cuback | stock/stock | 45.42 | 45.25 | 89.99 | 49.91 | 35.77-64.42 |
| Cuback | stock/RLT | 23.76 | 65.94 | 90.07 | 73.51 | 64.23-76.46 |
| Cuback | RLT/stock | 63.12 | 27.41 | 90.43 | 30.28 | 23.13-35.63 |
| Cuback | clean/lossy-RLT | 27.84 | 61.12 | 89.09 | 68.70 | 67.01-71.12 |
| Cuback | lossy-RLT/clean | 59.68 | 29.53 | 89.67 | 33.10 | 28.46-42.23 |
| Cuback | lossy-RLT/lossy-RLT | 41.17 | 49.49 | 90.38 | 54.59 | 35.66-57.30 |
The cap preserves near-full standalone throughput on lossy ordinary profiles.
Clean competition remains centered near parity, and lossy RLT generally yields
to clean stock. It does not resolve the known self-convergence and
RTT-adjusted GEO order-sensitivity limitations.
…erate after ECN This is primarily a refactor of accelerated increase, with two notable behavioral changes: the recalibration interval is retained across congestion events, and ECN can open accelerated increase after its ordinary congestion response. First, retain the recalibration interval across congestion events. Replace the observation window and its maximum RTT with the latest time at which smoothed RTT reached halfway between min_rtt and full_rtt. Recalculate the expected high-RTT duration after each congestion event, using the shorter of the cubic and Reno-friendly return times, and recalibrate after twice that duration without another high-RTT observation. This prevents frequent losses from restarting the interval indefinitely. Second, allow ECN to open accelerated increase after its ordinary congestion response. Every congestion event establishes the guard as reduced_cwnd divided by QUICLY_BETA_LOSS. This target is only an acceleration guard; ECN continues to reduce the live CWND using QUICLY_BETA_ECN. Acceleration remains subject to the RTT gates. Contain the resulting state transitions in the acceleration machinery so that the shared Pico callbacks only decide when to invoke them. Pass acceleration state, RTT, and CWND directly to the calculation helpers, and let the recalibration predicate tell the caller when to return the policy to calibration slow start. Track minimum RTT over periods between congestion events, initialize full_rtt and the high-RTT timestamp when calibration recovery ends, and use the loss episode count to identify undo of the initial startup recovery. build/default/test.t passes all 31 top-level groups. Benchmark method ---------------- The per-packet random-loss probability is chosen so that a full pipe has a 5% or 10% chance of at least one random loss per RTT. Standalone tests are seven 100-second runs measuring the latter 50 seconds. Competition tests are seven 160-second runs per flow order measuring the latter 80 seconds. Self- competition uses five 320-second runs and reports the final 40-second window. All values are percentages. S->R means stock is created first and RLT second; R->S is the reverse. Loss placement varies between repetitions through the TLS-context random callback. The complete results follow. Compared with the preceding evaluation, mean RLT share changes by -0.83 percentage points in clean tail-drop competition and -0.16 points when the RLT flow has 5% loss. Under CoDel, the corresponding changes are +3.81 and +4.84 points. ECN-triggered acceleration therefore has a material competitive effect under CoDel; these measurements are recorded here without claiming that the fairness prerequisite remains satisfied. 1. Tail-drop standalone goodput ------------------------------- | Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R | |---|---|---|---|---| | DSL | 93.02/97.34 | 75.74/95.79 | 90.47/97.80 | 74.25/96.89 | | Home_WiFi | 51.22/94.21 | 36.87/89.11 | 52.48/96.00 | 36.74/91.87 | | Public | 98.03/98.02 | 96.35/97.85 | 98.03/98.02 | 95.89/97.97 | | Corporate_WiFi | 53.70/97.05 | 33.24/96.30 | 52.21/97.40 | 36.06/96.73 | | LTE | 85.77/97.79 | 62.06/94.18 | 85.81/97.95 | 64.64/96.19 | | 5G | 65.73/96.24 | 38.34/93.85 | 60.13/97.39 | 40.17/95.40 | | LEO | 76.15/96.92 | 52.97/94.65 | 82.35/97.83 | 52.27/95.98 | | GEO | 97.97/98.00 | 89.36/96.85 | 98.01/98.02 | 88.24/96.63 | | DoCoMo@Office | 95.00/97.76 | 68.72/97.48 | 92.06/97.79 | 69.05/97.57 | | au@Office | 84.57/97.71 | 58.63/97.45 | 83.41/97.68 | 49.26/97.54 | | WiFi@Office | 72.68/97.69 | 53.07/97.59 | 71.95/97.71 | 52.48/97.62 | | DoCoMo@mall | 98.03/98.02 | 91.86/97.97 | 98.03/98.02 | 95.14/97.89 | | congested | 97.93/97.93 | 97.91/97.83 | 97.89/97.89 | 97.85/97.77 | | bdp20 | 97.62/97.52 | 95.60/96.84 | 97.56/97.68 | 96.20/96.12 | | bdp40 | 97.89/97.66 | 95.40/96.13 | 96.88/97.81 | 94.15/96.92 | | queue10ms | 74.59/78.54 | 55.08/60.30 | 73.01/77.30 | 53.84/59.68 | | queue5ms | 69.44/67.52 | 49.87/55.57 | 66.15/64.82 | 50.23/52.76 | | queue2.5ms | 64.68/59.27 | 46.59/46.86 | 63.64/57.35 | 47.88/46.78 | 2. Clean tail-drop competition ------------------------------ | Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S | |---|---|---|---|---|---|---| | DSL | 49.07 | 52.17 | 49.70 | 48.21 | 49.82 | 51.03 | | Home_WiFi | 49.58 | 52.20 | 46.96 | 52.26 | 51.17 | 48.26 | | Public | 49.85 | 50.11 | 50.20 | 49.95 | 50.06 | 50.49 | | Corporate_WiFi | 50.84 | 47.05 | 42.73 | 55.96 | 53.76 | 44.25 | | LTE | 49.96 | 49.04 | 50.19 | 49.20 | 47.06 | 50.34 | | 5G | 47.91 | 50.76 | 50.58 | 47.74 | 50.45 | 49.10 | | LEO | 53.45 | 48.71 | 48.96 | 52.70 | 51.43 | 46.70 | | GEO | 50.00 | 49.98 | 50.02 | 49.89 | 50.04 | 50.21 | | DoCoMo@Office | 50.09 | 50.93 | 49.95 | 49.97 | 49.97 | 49.94 | | au@Office | 49.74 | 49.92 | 48.50 | 52.18 | 52.12 | 47.83 | | WiFi@Office | 53.46 | 56.19 | 42.16 | 54.35 | 51.78 | 45.30 | | DoCoMo@mall | 49.70 | 49.73 | 50.23 | 49.85 | 49.89 | 50.23 | | congested | 50.78 | 51.45 | 50.81 | 50.36 | 49.71 | 48.56 | | bdp20 | 50.52 | 50.37 | 50.52 | 49.49 | 49.82 | 50.84 | | bdp40 | 48.30 | 49.62 | 49.09 | 50.73 | 50.27 | 50.43 | | queue10ms | 50.54 | 50.49 | 50.30 | 47.36 | 49.08 | 49.79 | | queue5ms | 49.44 | 49.19 | 49.26 | 50.55 | 49.84 | 50.27 | | queue2.5ms | 50.10 | 50.37 | 50.50 | 49.45 | 49.92 | 50.16 | 3. Clean stock against 5%-loss RLT, tail drop ------------------------------------------------ | Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S | |---|---|---|---|---| | DSL | 35.30 | 34.10 | 35.96 | 35.23 | | Home_WiFi | 29.38 | 30.14 | 30.55 | 28.85 | | Public | 29.57 | 29.31 | 29.51 | 30.69 | | Corporate_WiFi | 18.47 | 17.71 | 16.77 | 17.26 | | LTE | 32.70 | 28.72 | 32.05 | 26.94 | | 5G | 19.26 | 19.62 | 19.00 | 18.69 | | LEO | 23.90 | 27.02 | 24.40 | 27.91 | | GEO | 34.50 | 42.58 | 36.32 | 41.10 | | DoCoMo@Office | 25.82 | 23.02 | 22.64 | 21.47 | | au@Office | 23.32 | 16.11 | 21.50 | 16.89 | | WiFi@Office | 21.72 | 20.29 | 21.18 | 21.07 | | DoCoMo@mall | 27.02 | 27.71 | 29.39 | 29.70 | | congested | 43.44 | 46.78 | 43.80 | 45.07 | | bdp20 | 49.46 | 49.06 | 48.65 | 50.49 | | bdp40 | 47.50 | 46.92 | 45.96 | 45.90 | | queue10ms | 39.22 | 39.87 | 40.12 | 44.53 | | queue5ms | 42.08 | 41.12 | 40.97 | 41.34 | | queue2.5ms | 40.56 | 42.27 | 42.22 | 42.49 | 4. Tail-drop RLT self-competition at 5% loss ------------------------------------------------ | Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util | |---|---|---|---|---|---|---| | DSL | 53.14 | 49.84-59.11 | 98.02 | 49.07 | 43.90-50.46 | 98.02 | | Home_WiFi | 52.95 | 50.76-57.54 | 97.42 | 49.03 | 43.61-59.86 | 97.59 | | Public | 44.90 | 34.19-59.35 | 98.03 | 50.09 | 47.76-62.03 | 98.02 | | Corporate_WiFi | 49.97 | 47.06-54.85 | 97.70 | 51.29 | 49.49-56.08 | 97.72 | | LTE | 43.40 | 31.92-59.63 | 98.03 | 41.30 | 36.44-55.89 | 98.03 | | 5G | 56.61 | 44.90-67.57 | 97.68 | 43.78 | 36.06-52.30 | 97.72 | | LEO | 51.69 | 30.87-55.47 | 98.03 | 46.10 | 34.20-57.22 | 98.03 | | GEO | 45.38 | 37.43-46.65 | 97.94 | 55.75 | 46.28-71.78 | 97.99 | | DoCoMo@Office | 38.51 | 36.47-49.43 | 97.72 | 47.77 | 27.43-56.06 | 97.72 | | au@Office | 56.77 | 38.56-69.63 | 97.73 | 38.94 | 25.36-47.00 | 97.73 | | WiFi@Office | 51.30 | 47.62-59.40 | 97.72 | 50.51 | 41.83-52.78 | 97.72 | | DoCoMo@mall | 59.33 | 36.97-68.11 | 98.03 | 43.26 | 39.79-55.40 | 98.03 | | congested | 52.18 | 44.54-61.66 | 97.84 | 47.64 | 36.14-54.73 | 97.83 | | bdp20 | 48.95 | 48.21-52.48 | 97.61 | 50.62 | 48.60-52.95 | 97.66 | | bdp40 | 50.22 | 47.77-51.69 | 97.86 | 52.60 | 51.87-54.23 | 97.84 | | queue10ms | 48.29 | 46.53-51.19 | 96.60 | 43.21 | 38.86-45.40 | 97.31 | | queue5ms | 50.36 | 49.52-51.15 | 89.35 | 49.17 | 48.78-53.82 | 89.22 | | queue2.5ms | 48.59 | 44.26-52.07 | 85.50 | 48.96 | 46.75-49.76 | 85.97 | 5. CoDel standalone goodput --------------------------- GEO is excluded here and evaluated below with an RTT-adjusted CoDel interval. | Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R | |---|---|---|---|---| | DSL | 86.32/96.78 | 68.77/95.23 | 88.58/97.23 | 72.69/95.76 | | Home_WiFi | 51.72/93.98 | 35.40/87.55 | 49.69/95.59 | 36.66/91.81 | | Public | 93.68/97.33 | 87.52/95.75 | 94.02/97.34 | 87.78/96.57 | | Corporate_WiFi | 51.86/97.00 | 34.09/96.22 | 49.84/97.39 | 34.42/96.83 | | LTE | 81.33/95.75 | 59.25/90.32 | 78.88/94.37 | 63.34/93.15 | | 5G | 57.68/95.86 | 39.32/92.83 | 54.43/96.61 | 37.64/95.22 | | LEO | 75.13/96.07 | 52.95/92.89 | 76.04/96.68 | 57.23/95.13 | | DoCoMo@Office | 87.40/97.47 | 67.99/97.04 | 81.28/97.63 | 70.32/97.20 | | au@Office | 74.71/97.57 | 56.05/97.31 | 76.47/97.61 | 55.42/97.36 | | WiFi@Office | 72.93/97.70 | 51.26/97.59 | 72.28/97.71 | 52.00/97.65 | | DoCoMo@mall | 91.42/97.62 | 82.04/97.31 | 93.01/97.81 | 84.59/97.55 | | congested | 95.16/96.08 | 93.47/95.08 | 94.98/95.56 | 93.37/95.92 | | bdp20 | 97.17/96.89 | 94.82/94.69 | 95.92/96.76 | 93.51/95.22 | | bdp40 | 95.01/95.63 | 88.58/91.80 | 92.91/95.69 | 90.63/91.76 | | queue10ms | 72.71/77.08 | 54.84/60.99 | 73.10/78.81 | 54.61/63.65 | | queue5ms | 66.00/67.72 | 48.70/53.70 | 67.09/65.94 | 50.37/54.42 | | queue2.5ms | 63.99/57.67 | 49.07/48.85 | 66.29/56.53 | 47.70/45.99 | 6. CoDel competition -------------------- GEO is excluded from the first three tables. Clean competition: | Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S | |---|---|---|---|---|---|---| | DSL | 50.58 | 51.43 | 53.38 | 52.30 | 54.44 | 53.13 | | Home_WiFi | 50.49 | 53.00 | 50.22 | 49.81 | 54.43 | 53.13 | | Public | 49.58 | 53.88 | 53.08 | 48.93 | 52.53 | 52.33 | | Corporate_WiFi | 49.21 | 53.17 | 53.66 | 48.95 | 52.74 | 52.94 | | LTE | 49.72 | 64.72 | 53.29 | 48.69 | 66.58 | 59.50 | | 5G | 50.26 | 59.12 | 55.17 | 47.18 | 64.20 | 56.79 | | LEO | 50.65 | 55.12 | 52.24 | 50.40 | 54.62 | 52.44 | | DoCoMo@Office | 49.36 | 64.96 | 61.14 | 53.18 | 64.30 | 58.38 | | au@Office | 50.47 | 61.47 | 62.28 | 48.60 | 62.52 | 60.40 | | WiFi@Office | 49.80 | 47.98 | 48.83 | 49.47 | 49.56 | 50.23 | | DoCoMo@mall | 51.02 | 54.37 | 53.95 | 50.52 | 56.00 | 55.21 | | congested | 51.12 | 50.60 | 50.74 | 48.81 | 50.38 | 50.05 | | bdp20 | 49.61 | 49.48 | 50.03 | 49.77 | 50.87 | 49.96 | | bdp40 | 50.31 | 50.86 | 49.50 | 49.50 | 50.68 | 53.01 | | queue10ms | 51.13 | 48.85 | 50.56 | 49.16 | 50.90 | 51.90 | | queue5ms | 49.53 | 47.56 | 51.33 | 49.35 | 49.48 | 52.42 | | queue2.5ms | 49.47 | 49.32 | 52.00 | 49.83 | 51.12 | 50.13 | Clean stock against 5%-loss RLT: | Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S | |---|---|---|---|---| | DSL | 45.85 | 48.89 | 48.09 | 49.34 | | Home_WiFi | 47.84 | 45.79 | 51.57 | 47.52 | | Public | 51.24 | 49.24 | 53.05 | 52.26 | | Corporate_WiFi | 40.30 | 42.63 | 41.28 | 40.97 | | LTE | 58.89 | 54.02 | 64.96 | 57.88 | | 5G | 54.13 | 50.41 | 61.55 | 53.49 | | LEO | 51.56 | 49.40 | 55.61 | 54.88 | | DoCoMo@Office | 54.97 | 54.47 | 64.96 | 55.29 | | au@Office | 52.34 | 49.55 | 59.00 | 57.87 | | WiFi@Office | 29.43 | 30.17 | 30.80 | 30.31 | | DoCoMo@mall | 52.49 | 53.55 | 54.11 | 53.83 | | congested | 49.01 | 49.10 | 49.66 | 50.88 | | bdp20 | 48.21 | 49.24 | 47.67 | 47.96 | | bdp40 | 48.92 | 48.90 | 49.21 | 51.65 | | queue10ms | 41.71 | 41.90 | 42.64 | 40.75 | | queue5ms | 39.83 | 41.66 | 40.45 | 41.12 | | queue2.5ms | 43.42 | 40.84 | 41.65 | 42.16 | RLT self-competition at 5% loss: | Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util | |---|---|---|---|---|---|---| | DSL | 49.86 | 47.28-55.07 | 97.91 | 46.57 | 39.67-55.12 | 97.94 | | Home_WiFi | 51.15 | 47.74-63.18 | 97.13 | 48.36 | 38.25-51.73 | 97.38 | | Public | 51.38 | 46.72-55.72 | 97.97 | 52.60 | 46.29-53.69 | 97.94 | | Corporate_WiFi | 51.09 | 46.91-52.26 | 97.69 | 49.59 | 37.15-52.70 | 97.72 | | LTE | 61.41 | 45.84-70.22 | 97.56 | 52.95 | 35.18-64.88 | 97.60 | | 5G | 54.81 | 49.49-56.60 | 97.45 | 52.26 | 48.72-61.86 | 97.46 | | LEO | 48.75 | 44.63-58.78 | 97.76 | 53.25 | 40.82-64.35 | 97.69 | | DoCoMo@Office | 46.57 | 35.37-65.89 | 97.69 | 47.92 | 33.26-58.92 | 97.67 | | au@Office | 47.86 | 44.77-58.27 | 97.71 | 50.06 | 31.03-53.18 | 97.71 | | WiFi@Office | 48.64 | 40.18-56.49 | 97.72 | 52.20 | 50.24-62.53 | 97.72 | | DoCoMo@mall | 49.71 | 44.13-57.50 | 97.98 | 53.62 | 44.79-55.76 | 97.94 | | congested | 49.27 | 47.14-55.45 | 96.76 | 48.29 | 45.63-52.51 | 96.26 | | bdp20 | 50.23 | 49.52-51.04 | 97.36 | 47.66 | 46.92-50.26 | 97.24 | | bdp40 | 49.73 | 49.23-50.91 | 97.01 | 51.89 | 49.10-52.28 | 96.81 | | queue10ms | 47.61 | 46.38-51.88 | 97.18 | 43.81 | 42.16-48.39 | 97.52 | | queue5ms | 48.00 | 47.11-51.25 | 89.57 | 49.74 | 49.54-56.08 | 89.05 | | queue2.5ms | 48.77 | 45.44-50.97 | 84.70 | 52.57 | 44.17-53.34 | 85.38 | RTT-adjusted GEO CoDel standalone goodput: | Controller | Clean stock | Lossy stock | Lossy RLT | |---|---|---|---| | CUBIC | 85.84 | 79.53 | 87.74 | | Cuback | 85.28 | 74.91 | 86.09 | RTT-adjusted GEO CoDel competition: | Controller | Case | Flow 1 | Flow 2 | Util | Flow 2 share | Share range | |---|---|---|---|---|---|---| | CUBIC | stock_stock | 44.91 | 45.40 | 90.29 | 50.27 | 33.94-59.30 | | CUBIC | stock_rlt | 20.70 | 69.33 | 90.03 | 77.00 | 70.70-80.15 | | CUBIC | rlt_stock | 68.61 | 21.44 | 89.98 | 23.81 | 19.40-34.82 | | CUBIC | clean_lossy | 27.98 | 61.34 | 89.49 | 68.68 | 51.78-76.47 | | CUBIC | lossy_clean | 64.96 | 24.37 | 89.39 | 27.28 | 22.01-29.21 | | CUBIC | self | 45.77 | 44.42 | 90.19 | 49.25 | 46.28-79.06 | | Cuback | stock_stock | 48.59 | 41.53 | 89.98 | 46.08 | 39.67-55.87 | | Cuback | stock_rlt | 20.94 | 69.53 | 90.11 | 76.86 | 73.62-79.11 | | Cuback | rlt_stock | 69.48 | 20.87 | 90.30 | 23.10 | 19.95-26.98 | | Cuback | clean_lossy | 23.45 | 66.08 | 88.98 | 73.64 | 69.95-77.44 | | Cuback | lossy_clean | 65.63 | 23.48 | 89.07 | 26.09 | 22.62-44.56 | | Cuback | self | 45.35 | 44.92 | 90.27 | 49.76 | 34.54-76.36 |
Fix over-aggressive accelerated increase, remove the gate derived from the pre-loss CWND, and adopt a tighter RTT-based threshold. The previous increase rate used half of the relative distance to full_rtt as its RTT constraint. full_rtt is the RTT observed with a full queue, so this ratio becomes very large after the queue drains and does not bound the initial increase. In practice, the pre-loss-CWND target and its derived cap became the effective guard. That historical window is not a sound limit after bottleneck bandwidth changes and can prevent ABBA from adapting beyond the old operating point. Remove the CWND target and cap. Permit accelerated increase only while all of the following RTT conditions hold: - full_rtt is more than 10ms above min_rtt; - latest RTT is at least 5% below full_rtt; - latest RTT is below an adaptive threshold. Start with the midpoint between min_rtt and the preceding congestion-avoidance period's minimum, keep the threshold at least min_rtt+2ms, and cap it at the current period's minimum plus 2ms once that observation exists. The midpoint makes sure RTT is being driven down relative to the preceding period. The current-period cap stops pushing once there is evidence that the queue is non-empty. Until the current-period minimum exists, min_rtt+2ms is the proxy. Increase by max(2ms / RTT-threshold, 2.5%) per acknowledged flight. RTT feedback arrives one round late; below 100ms this permits no more than about 2.5ms of additional queue after crossing the threshold. When the threshold is 2ms above the potentially empty-queue RTT, acceleration therefore stops after building at most about 4.5ms of queue. Derive the recalibration interval's pre-reduction window from the reduced epoch CWND and the ordinary loss beta now that the explicit target no longer exists. Update the tests to verify that CUBIC selects the greater of its ordinary and accelerated trajectories, that ECN acceleration has a preceding CA-period observation, and that Cuback uses the shared epoch-based recalibration interval. build/default/test.t passes all 31 top-level groups. Benchmark method ---------------- The per-packet random-loss probability is selected so that a full pipe has a 5% or 10% probability of at least one random loss per RTT. Standalone tests are seven 100-second runs measuring the latter 50 seconds. Competition tests are seven 160-second runs per flow order measuring the latter 80 seconds. Self-competition uses five 320-second runs and reports the final 40-second window. Loss placement varies between repetitions through the TLS-context random callback. All values are percentages. S->R means stock is created first and RLT second; R->S is the reverse. Compared with the preceding committed implementation, the clearest intended change is under CoDel on LTE. In clean competition, mean RLT share falls from 59.01% to 53.94% for CUBIC and from 63.04% to 56.38% for Cuback. With 5% loss on RLT, mean share falls from 56.46% to 51.02% for CUBIC and from 61.42% to 55.45% for Cuback. The corresponding 5G reductions are smaller. The tighter gate and bounded rate trade some standalone performance for that reduction in aggressiveness. At 10% loss per RTT, CoDel LTE RLT goodput changes from 90.32% to 84.26% for CUBIC and from 93.15% to 87.12% for Cuback; CoDel 5G changes from 92.83% to 90.02% and from 95.22% to 93.03%, respectively. RLT still substantially outperforms stock on these lossy standalone paths. Clean tail-drop competition remains centered near parity, and a 5%-loss RLT flow remains below its clean stock competitor in every tail-drop profile and both flow orders. Self-competition retains high aggregate utilization but does not resolve the existing wide share distributions. CoDel DoCoMo@Office and au@Office remain aggressive, and RTT-adjusted GEO remains strongly order-sensitive; those are limitations of the current approach. Complete results ---------------- ## Tail-drop standalone goodput (%) | Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R | |---|---|---|---|---| | DSL | 91.00/97.19 | 78.40/94.44 | 93.73/97.74 | 73.21/96.21 | | Home_WiFi | 57.81/93.97 | 33.34/88.42 | 50.42/95.87 | 35.98/91.38 | | Public | 97.90/98.01 | 96.64/97.27 | 98.03/98.01 | 91.62/97.86 | | Corporate_WiFi | 48.41/97.47 | 34.77/97.07 | 51.87/97.61 | 35.68/97.30 | | LTE | 83.82/96.46 | 64.02/90.71 | 84.55/96.22 | 60.93/91.63 | | 5G | 62.62/95.36 | 40.45/89.70 | 69.84/96.47 | 38.97/94.18 | | LEO | 80.59/95.48 | 49.58/91.11 | 85.75/97.32 | 54.98/95.24 | | GEO | 98.01/97.99 | 82.36/95.35 | 98.00/97.99 | 90.72/93.48 | | DoCoMo@Office | 91.88/97.78 | 69.00/97.26 | 93.51/97.80 | 68.40/97.57 | | au@Office | 82.64/97.70 | 56.00/97.44 | 92.57/97.67 | 58.31/97.55 | | WiFi@Office | 72.56/97.72 | 51.62/97.09 | 72.65/97.72 | 51.60/97.71 | | DoCoMo@mall | 98.03/98.02 | 90.74/97.88 | 98.03/98.02 | 91.59/98.00 | | congested | 97.89/97.91 | 97.65/97.87 | 97.93/97.95 | 97.83/97.85 | | bdp20 | 97.44/97.30 | 96.08/95.91 | 97.38/97.16 | 96.16/96.80 | | bdp40 | 97.68/97.71 | 95.30/95.07 | 97.30/97.41 | 94.51/95.79 | | queue10ms | 76.51/76.49 | 54.06/66.14 | 74.25/75.80 | 56.99/64.37 | | queue5ms | 68.74/65.76 | 49.00/53.83 | 66.40/64.26 | 50.37/51.66 | | queue2.5ms | 63.67/56.92 | 50.20/47.63 | 66.59/58.86 | 46.36/45.96 | ## Clean tail-drop competition: second/RLT share (%) | Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S | |---|---|---|---|---|---|---| | DSL | 51.52 | 45.08 | 51.16 | 50.28 | 49.27 | 50.54 | | Home_WiFi | 51.04 | 50.25 | 52.49 | 48.98 | 51.61 | 52.55 | | Public | 49.91 | 49.67 | 50.17 | 48.35 | 50.18 | 50.61 | | Corporate_WiFi | 50.87 | 52.40 | 45.42 | 47.40 | 51.82 | 42.58 | | LTE | 49.53 | 50.54 | 49.77 | 50.89 | 51.77 | 50.05 | | 5G | 50.36 | 51.53 | 51.53 | 47.27 | 49.91 | 52.04 | | LEO | 52.44 | 48.82 | 50.02 | 49.36 | 50.56 | 51.56 | | GEO | 49.99 | 50.14 | 50.00 | 50.01 | 49.92 | 50.16 | | DoCoMo@Office | 49.92 | 49.94 | 49.17 | 50.09 | 49.99 | 49.92 | | au@Office | 51.57 | 51.53 | 52.11 | 52.16 | 49.90 | 50.25 | | WiFi@Office | 52.78 | 54.58 | 46.78 | 54.38 | 55.81 | 47.89 | | DoCoMo@mall | 49.79 | 49.82 | 50.17 | 49.84 | 49.84 | 50.16 | | congested | 50.85 | 49.69 | 48.90 | 50.77 | 48.90 | 49.15 | | bdp20 | 49.94 | 51.08 | 50.27 | 50.24 | 51.40 | 50.42 | | bdp40 | 47.69 | 49.26 | 49.84 | 49.52 | 47.89 | 50.76 | | queue10ms | 50.73 | 50.82 | 51.14 | 49.92 | 49.29 | 49.95 | | queue5ms | 50.75 | 51.12 | 52.02 | 50.16 | 50.27 | 50.14 | | queue2.5ms | 49.24 | 51.12 | 49.24 | 51.97 | 49.53 | 50.97 | ## Clean stock against 5%-loss RLT, tail drop: RLT share (%) | Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S | |---|---|---|---|---| | DSL | 35.51 | 34.73 | 32.09 | 37.12 | | Home_WiFi | 31.36 | 28.64 | 28.75 | 31.29 | | Public | 35.21 | 30.34 | 26.80 | 30.75 | | Corporate_WiFi | 17.92 | 17.88 | 16.44 | 17.60 | | LTE | 31.75 | 25.84 | 24.40 | 28.81 | | 5G | 19.98 | 21.51 | 20.48 | 20.31 | | LEO | 21.88 | 24.62 | 23.63 | 23.39 | | GEO | 34.95 | 37.35 | 34.77 | 36.16 | | DoCoMo@Office | 24.84 | 25.05 | 17.75 | 20.46 | | au@Office | 19.18 | 19.74 | 20.06 | 15.54 | | WiFi@Office | 21.11 | 21.64 | 22.22 | 20.61 | | DoCoMo@mall | 32.57 | 30.49 | 32.42 | 24.84 | | congested | 43.07 | 41.81 | 42.79 | 45.61 | | bdp20 | 48.54 | 48.59 | 49.42 | 49.61 | | bdp40 | 47.08 | 47.53 | 46.41 | 46.05 | | queue10ms | 39.68 | 41.14 | 39.28 | 41.89 | | queue5ms | 41.77 | 41.29 | 43.05 | 40.77 | | queue2.5ms | 42.72 | 40.90 | 40.99 | 42.12 | ## Tail-drop RLT self-competition at 5% loss (%) | Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util | |---|---|---|---|---|---|---| | DSL | 47.76 | 45.56-51.47 | 98.02 | 50.74 | 41.55-54.97 | 98.01 | | Home_WiFi | 52.88 | 44.61-61.88 | 97.23 | 51.42 | 44.86-58.73 | 97.59 | | Public | 47.64 | 37.17-55.29 | 98.03 | 45.83 | 38.45-71.23 | 98.03 | | Corporate_WiFi | 52.77 | 41.87-54.78 | 97.72 | 51.67 | 36.89-70.83 | 97.72 | | LTE | 48.91 | 42.97-71.05 | 98.03 | 54.40 | 44.77-70.30 | 98.03 | | 5G | 48.27 | 35.73-69.16 | 97.72 | 51.50 | 42.24-56.79 | 97.70 | | LEO | 51.18 | 37.82-60.69 | 98.03 | 51.35 | 45.54-61.97 | 98.02 | | GEO | 42.64 | 35.24-63.60 | 97.84 | 53.68 | 38.13-68.63 | 97.99 | | DoCoMo@Office | 55.51 | 36.86-62.60 | 97.72 | 47.12 | 33.26-55.98 | 97.73 | | au@Office | 29.69 | 27.85-72.15 | 97.73 | 41.04 | 27.10-56.91 | 97.73 | | WiFi@Office | 51.43 | 46.90-52.83 | 97.72 | 49.44 | 38.16-61.85 | 97.72 | | DoCoMo@mall | 52.64 | 42.76-65.34 | 98.03 | 46.96 | 39.74-58.74 | 98.03 | | congested | 50.60 | 46.99-54.82 | 97.91 | 47.11 | 37.92-51.08 | 97.86 | | bdp20 | 50.18 | 46.44-51.22 | 97.56 | 50.12 | 47.76-50.72 | 97.76 | | bdp40 | 48.01 | 40.64-48.56 | 97.88 | 50.83 | 45.35-58.90 | 97.93 | | queue10ms | 48.12 | 46.65-50.46 | 96.44 | 44.56 | 36.95-45.68 | 97.04 | | queue5ms | 50.97 | 46.23-53.89 | 89.54 | 49.71 | 44.82-53.41 | 89.74 | | queue2.5ms | 51.48 | 45.74-54.75 | 86.29 | 49.07 | 47.06-51.12 | 85.43 | ## CoDel standalone goodput (%) | Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R | |---|---|---|---|---| | DSL | 86.78/96.59 | 71.52/94.14 | 85.82/97.04 | 72.08/95.27 | | Home_WiFi | 48.84/93.60 | 36.07/88.65 | 51.40/95.18 | 34.45/91.22 | | Public | 93.62/95.84 | 88.08/92.89 | 92.61/96.74 | 87.68/94.68 | | Corporate_WiFi | 49.64/97.44 | 35.13/97.13 | 50.54/97.58 | 36.78/97.33 | | LTE | 76.77/92.41 | 57.45/84.26 | 77.75/93.96 | 60.01/87.12 | | 5G | 59.45/94.57 | 36.92/90.02 | 56.43/96.00 | 38.77/93.03 | | LEO | 70.53/93.58 | 49.19/89.50 | 73.62/95.28 | 59.12/93.30 | | DoCoMo@Office | 79.52/97.44 | 70.11/96.97 | 85.83/97.51 | 69.88/97.11 | | au@Office | 83.91/97.55 | 61.42/97.25 | 75.49/97.58 | 56.02/97.39 | | WiFi@Office | 74.13/97.72 | 53.12/97.71 | 71.56/97.72 | 53.17/97.71 | | DoCoMo@mall | 91.03/97.10 | 86.33/96.49 | 93.43/97.09 | 86.76/96.37 | | congested | 96.81/95.46 | 92.45/93.05 | 95.52/96.52 | 93.43/92.73 | | bdp20 | 96.85/96.28 | 94.68/94.13 | 95.76/96.12 | 93.73/93.97 | | bdp40 | 93.76/95.50 | 89.04/90.75 | 95.01/93.64 | 88.00/90.30 | | queue10ms | 75.15/77.03 | 52.14/62.91 | 71.32/75.07 | 52.89/64.67 | | queue5ms | 68.58/63.79 | 51.06/51.29 | 67.12/66.49 | 50.50/51.39 | | queue2.5ms | 64.64/57.88 | 49.70/44.82 | 64.41/61.75 | 50.21/46.97 | ## Clean CoDel competition: second/RLT share (%) | Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S | |---|---|---|---|---|---|---| | DSL | 48.95 | 54.65 | 50.69 | 50.81 | 54.08 | 54.73 | | Home_WiFi | 50.27 | 53.61 | 53.44 | 49.56 | 52.23 | 52.57 | | Public | 49.92 | 51.52 | 53.60 | 51.08 | 50.88 | 51.51 | | Corporate_WiFi | 49.34 | 52.09 | 54.49 | 49.21 | 52.09 | 52.73 | | LTE | 50.30 | 54.18 | 53.70 | 50.07 | 59.49 | 53.27 | | 5G | 49.24 | 56.58 | 56.41 | 50.07 | 57.64 | 57.73 | | LEO | 50.83 | 54.92 | 52.36 | 48.02 | 55.04 | 54.10 | | DoCoMo@Office | 54.42 | 64.23 | 64.37 | 62.54 | 61.79 | 62.47 | | au@Office | 44.30 | 63.81 | 58.80 | 39.76 | 60.86 | 63.08 | | WiFi@Office | 48.94 | 48.65 | 50.97 | 49.53 | 49.06 | 51.01 | | DoCoMo@mall | 49.18 | 55.42 | 55.47 | 50.11 | 53.89 | 55.21 | | congested | 50.87 | 49.73 | 50.17 | 50.58 | 50.34 | 50.38 | | bdp20 | 50.24 | 50.26 | 49.94 | 48.98 | 50.50 | 49.49 | | bdp40 | 49.32 | 50.33 | 50.26 | 49.41 | 48.97 | 49.82 | | queue10ms | 51.04 | 50.62 | 48.04 | 50.84 | 49.94 | 50.37 | | queue5ms | 49.58 | 50.06 | 50.74 | 49.85 | 49.11 | 50.14 | | queue2.5ms | 49.88 | 50.11 | 49.82 | 50.93 | 50.92 | 49.39 | ## Clean stock against 5%-loss RLT, CoDel: RLT share (%) | Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S | |---|---|---|---|---| | DSL | 45.98 | 45.90 | 53.56 | 46.89 | | Home_WiFi | 45.96 | 44.81 | 46.17 | 40.60 | | Public | 50.09 | 49.57 | 48.99 | 48.89 | | Corporate_WiFi | 33.67 | 39.63 | 42.15 | 44.33 | | LTE | 51.83 | 50.21 | 57.83 | 53.06 | | 5G | 52.19 | 51.48 | 55.25 | 53.41 | | LEO | 51.89 | 51.39 | 51.05 | 46.13 | | DoCoMo@Office | 56.32 | 53.28 | 64.50 | 57.46 | | au@Office | 54.31 | 54.94 | 56.30 | 59.07 | | WiFi@Office | 30.51 | 29.64 | 31.11 | 30.34 | | DoCoMo@mall | 52.08 | 51.98 | 53.67 | 54.35 | | congested | 48.48 | 49.01 | 48.28 | 50.05 | | bdp20 | 47.70 | 48.61 | 48.31 | 48.68 | | bdp40 | 49.39 | 48.13 | 47.61 | 48.09 | | queue10ms | 40.65 | 40.96 | 41.36 | 40.96 | | queue5ms | 41.84 | 40.75 | 41.67 | 41.30 | | queue2.5ms | 40.61 | 41.93 | 41.84 | 41.47 | ## CoDel RLT self-competition at 5% loss (%) | Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util | |---|---|---|---|---|---|---| | DSL | 47.89 | 46.93-55.72 | 97.73 | 47.87 | 42.73-54.61 | 97.83 | | Home_WiFi | 57.49 | 50.38-66.18 | 97.27 | 49.92 | 32.05-58.88 | 97.36 | | Public | 51.16 | 45.49-52.94 | 97.95 | 49.57 | 47.30-52.71 | 97.88 | | Corporate_WiFi | 50.63 | 48.61-63.34 | 97.71 | 45.84 | 31.05-50.91 | 97.71 | | LTE | 54.15 | 49.40-64.23 | 97.27 | 58.83 | 43.65-67.27 | 97.32 | | 5G | 47.89 | 42.44-55.80 | 97.32 | 50.68 | 37.97-64.65 | 97.27 | | LEO | 49.44 | 47.04-51.52 | 97.47 | 51.26 | 44.53-55.36 | 97.67 | | DoCoMo@Office | 49.31 | 39.09-53.26 | 97.64 | 50.84 | 45.24-62.39 | 97.67 | | au@Office | 43.84 | 35.94-56.46 | 97.72 | 64.13 | 51.22-70.17 | 97.71 | | WiFi@Office | 56.02 | 46.54-62.36 | 97.72 | 47.88 | 42.16-62.63 | 97.72 | | DoCoMo@mall | 50.10 | 44.31-57.39 | 97.94 | 51.85 | 45.05-55.37 | 97.89 | | congested | 49.61 | 47.88-49.91 | 96.61 | 51.03 | 46.57-51.93 | 96.13 | | bdp20 | 50.34 | 48.71-51.86 | 97.29 | 49.66 | 48.57-50.16 | 97.06 | | bdp40 | 49.13 | 47.00-50.27 | 97.02 | 48.81 | 46.78-50.67 | 96.77 | | queue10ms | 49.01 | 46.82-52.44 | 96.82 | 45.05 | 41.92-46.76 | 97.52 | | queue5ms | 49.20 | 47.53-52.90 | 87.72 | 51.15 | 50.66-53.67 | 89.53 | | queue2.5ms | 50.32 | 48.00-51.46 | 85.10 | 49.46 | 48.01-53.97 | 85.56 | ## RTT-adjusted GEO CoDel standalone goodput (%) | Controller | Clean stock | Lossy stock | Lossy RLT | |---|---|---|---| | CUBIC | 85.85 | 78.96 | 84.65 | | Cuback | 85.28 | 73.06 | 83.21 | ## RTT-adjusted GEO CoDel competition (%) | Controller | Case | Flow 1 | Flow 2 | Util | Flow 2 share | Share range | |---|---|---|---|---|---|---| | CUBIC | stock_stock | 44.24 | 46.22 | 90.46 | 51.09 | 40.25-60.44 | | CUBIC | stock_rlt | 22.43 | 67.45 | 90.03 | 75.05 | 47.33-76.99 | | CUBIC | rlt_stock | 65.64 | 24.82 | 90.31 | 27.44 | 25.18-33.78 | | CUBIC | clean_lossy | 26.43 | 61.94 | 88.73 | 70.09 | 32.24-72.79 | | CUBIC | lossy_clean | 62.05 | 26.18 | 88.74 | 29.72 | 28.41-40.34 | | CUBIC | self | 45.72 | 43.90 | 89.02 | 48.99 | 48.36-56.57 | | Cuback | stock_stock | 44.67 | 45.33 | 89.85 | 50.37 | 33.48-62.59 | | Cuback | stock_rlt | 26.25 | 63.59 | 89.45 | 70.82 | 64.88-76.15 | | Cuback | rlt_stock | 65.72 | 23.95 | 89.26 | 26.71 | 23.34-39.86 | | Cuback | clean_lossy | 29.40 | 58.55 | 88.25 | 66.58 | 55.17-71.00 | | Cuback | lossy_clean | 59.49 | 29.62 | 88.36 | 33.37 | 26.75-55.05 | | Cuback | self | 43.35 | 45.38 | 88.60 | 51.22 | 26.56-72.42 |
Treat ECN-CE as direct evidence that the bottleneck queue remains high. Recalibration previously refreshed its reference time only when smoothed RTT reached halfway between minimum RTT and full_rtt. On an AQM path, CE can keep reporting congestion while RTT remains below that threshold. The timer could therefore expire and restart calibration slow start even though the path was still explicitly reporting queue pressure. Rename last_high_rtt_at to last_high_queue_at to reflect the broader signal, and refresh it on every CE report. Do so before the recovery-window early return so that CE received during an existing recovery also postpones recalibration. Extend the ECN test to cover both the initial CE and a second CE inside recovery. build/default/test.t passes all 31 top-level groups. Benchmark method ---------------- Only the CoDel experiments were rerun because this change affects ECN handling. The per-packet random-loss probability is selected so that a full pipe has a 5% or 10% probability of at least one random loss per RTT. Standalone tests are seven 100-second runs measuring the latter 50 seconds. Competition tests are seven 160-second runs per flow order measuring the latter 80 seconds. Self-competition uses five 320-second runs and reports the final 40-second window. Loss placement varies between repetitions through the TLS-context random callback. All values are percentages. S->R means stock is created first and RLT second; R->S is the reverse. Compared with the preceding implementation, standalone RLT median goodput is effectively unchanged: averaged across profiles and the two loss rates it moves by +0.33 percentage points for CUBIC and -0.11 for Cuback. The competitive behavior changes materially. In clean CoDel competition, average RLT share falls by 3.78 points for CUBIC and 3.35 for Cuback. Against a clean stock flow, the 5%-loss RLT flow's average share falls by 3.85 points for CUBIC and 4.30 for Cuback. LTE and 5G show the intended movement toward parity: | Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S | |---|---:|---:|---:|---:| | LTE | 54.18->50.27 | 53.70->50.31 | 59.49->52.97 | 53.27->50.44 | | 5G | 56.58->49.22 | 56.41->50.50 | 57.64->51.22 | 57.73->48.27 | Ordinary clean competition is now centered near parity across the CoDel profiles. DoCoMo@Office retains an order-dependent distribution that is also visible in stock/stock runs. Self-competition keeps high aggregate utilization, while the RTT-adjusted GEO case retains its existing order sensitivity. Complete ECN results -------------------- ## CoDel standalone goodput (%) | Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R | |---|---|---|---|---| | DSL | 88.06/96.27 | 73.59/93.71 | 86.53/96.83 | 72.74/94.74 | | Home_WiFi | 51.32/93.82 | 36.55/87.51 | 50.88/94.88 | 35.12/91.50 | | Public | 94.36/96.68 | 89.65/93.03 | 93.14/96.79 | 88.15/95.04 | | Corporate_WiFi | 50.51/97.50 | 35.81/97.18 | 49.93/97.56 | 35.67/97.36 | | LTE | 79.92/90.57 | 60.58/84.05 | 73.12/92.63 | 57.20/87.32 | | 5G | 57.12/94.02 | 41.55/89.96 | 57.98/95.37 | 39.66/92.10 | | LEO | 75.75/94.45 | 63.02/91.00 | 76.84/95.60 | 57.21/92.10 | | DoCoMo@Office | 87.38/97.38 | 69.51/96.84 | 85.15/97.38 | 64.50/97.00 | | au@Office | 79.62/97.47 | 61.65/97.31 | 74.36/97.60 | 58.45/97.40 | | WiFi@Office | 73.16/97.72 | 52.40/97.70 | 71.83/97.72 | 51.76/97.71 | | DoCoMo@mall | 91.98/97.35 | 86.41/96.42 | 93.03/97.15 | 83.08/96.47 | | congested | 96.40/95.36 | 93.79/94.84 | 94.66/94.92 | 92.85/92.49 | | bdp20 | 96.46/96.20 | 94.70/94.25 | 95.30/95.66 | 93.73/93.71 | | bdp40 | 93.36/94.20 | 90.26/89.92 | 92.71/94.31 | 89.82/90.23 | | queue10ms | 73.61/79.76 | 53.06/65.41 | 76.42/77.06 | 52.03/63.67 | | queue5ms | 66.12/66.80 | 50.54/52.65 | 69.13/66.73 | 50.99/53.88 | | queue2.5ms | 63.30/58.18 | 48.79/47.37 | 62.13/61.18 | 47.94/45.99 | ## Clean CoDel competition: second/RLT share (%) | Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S | |---|---|---|---|---|---|---| | DSL | 50.97 | 48.90 | 49.69 | 49.70 | 50.33 | 49.05 | | Home_WiFi | 49.53 | 51.11 | 50.02 | 50.37 | 49.76 | 50.67 | | Public | 49.34 | 49.58 | 49.06 | 50.18 | 50.10 | 50.66 | | Corporate_WiFi | 49.40 | 50.48 | 50.32 | 49.70 | 50.01 | 50.48 | | LTE | 49.22 | 50.27 | 50.31 | 49.95 | 52.97 | 50.44 | | 5G | 50.25 | 49.22 | 50.50 | 48.56 | 51.22 | 48.27 | | LEO | 50.22 | 48.61 | 50.26 | 50.55 | 50.21 | 50.64 | | DoCoMo@Office | 53.58 | 51.50 | 41.09 | 52.90 | 56.46 | 42.04 | | au@Office | 44.96 | 49.01 | 48.85 | 47.71 | 48.88 | 47.99 | | WiFi@Office | 50.13 | 49.18 | 51.06 | 50.05 | 49.08 | 49.99 | | DoCoMo@mall | 49.52 | 50.03 | 49.75 | 50.65 | 50.07 | 50.62 | | congested | 50.16 | 50.05 | 49.80 | 50.13 | 49.69 | 50.48 | | bdp20 | 50.44 | 50.61 | 49.15 | 49.85 | 49.73 | 49.18 | | bdp40 | 49.31 | 49.47 | 49.19 | 49.95 | 50.13 | 50.27 | | queue10ms | 50.79 | 49.85 | 50.61 | 51.07 | 50.50 | 51.30 | | queue5ms | 50.64 | 49.30 | 49.79 | 50.29 | 50.52 | 50.93 | | queue2.5ms | 50.48 | 48.81 | 50.30 | 48.48 | 48.43 | 49.90 | ## Clean stock against 5%-loss RLT, CoDel: RLT share (%) | Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S | |---|---|---|---|---| | DSL | 44.28 | 44.49 | 46.34 | 45.22 | | Home_WiFi | 41.32 | 38.38 | 42.04 | 41.93 | | Public | 48.30 | 48.46 | 48.68 | 47.92 | | Corporate_WiFi | 32.77 | 34.04 | 33.96 | 36.61 | | LTE | 47.38 | 45.64 | 50.26 | 47.09 | | 5G | 42.23 | 44.60 | 46.95 | 45.34 | | LEO | 43.39 | 45.21 | 46.99 | 46.24 | | DoCoMo@Office | 40.82 | 38.16 | 50.16 | 36.48 | | au@Office | 36.94 | 38.14 | 36.66 | 41.84 | | WiFi@Office | 30.26 | 31.07 | 29.54 | 30.57 | | DoCoMo@mall | 48.91 | 48.78 | 49.01 | 49.70 | | congested | 49.15 | 50.07 | 48.63 | 49.13 | | bdp20 | 48.71 | 49.05 | 48.16 | 48.28 | | bdp40 | 48.44 | 47.88 | 48.31 | 48.53 | | queue10ms | 41.72 | 41.97 | 40.75 | 43.14 | | queue5ms | 41.52 | 41.13 | 40.95 | 41.03 | | queue2.5ms | 40.45 | 41.11 | 41.00 | 41.21 | ## CoDel RLT self-competition at 5% loss (%) | Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util | |---|---|---|---|---|---|---| | DSL | 49.38 | 45.95-52.38 | 97.86 | 51.17 | 48.31-53.65 | 97.93 | | Home_WiFi | 51.50 | 49.27-54.23 | 97.39 | 53.65 | 45.14-62.47 | 97.47 | | Public | 49.59 | 46.02-51.49 | 97.93 | 51.98 | 50.55-53.84 | 97.87 | | Corporate_WiFi | 48.55 | 46.56-49.33 | 97.71 | 52.17 | 45.99-52.77 | 97.72 | | LTE | 51.09 | 43.40-56.30 | 97.35 | 49.25 | 46.53-51.80 | 97.44 | | 5G | 51.97 | 42.85-54.55 | 97.32 | 51.52 | 50.16-53.78 | 97.30 | | LEO | 50.00 | 43.29-58.21 | 97.66 | 53.06 | 50.07-55.07 | 97.76 | | DoCoMo@Office | 60.95 | 42.27-65.12 | 97.65 | 52.18 | 40.44-61.45 | 97.64 | | au@Office | 47.60 | 44.90-65.40 | 97.72 | 58.90 | 42.48-62.76 | 97.71 | | WiFi@Office | 50.62 | 48.92-52.71 | 97.72 | 49.70 | 37.52-51.68 | 97.72 | | DoCoMo@mall | 49.75 | 46.70-56.15 | 97.95 | 51.08 | 47.35-53.86 | 97.92 | | congested | 49.55 | 48.40-53.23 | 96.56 | 54.00 | 50.20-54.94 | 95.96 | | bdp20 | 50.94 | 48.00-55.33 | 97.16 | 50.75 | 49.87-53.64 | 97.16 | | bdp40 | 49.98 | 44.43-52.37 | 97.00 | 49.47 | 46.79-53.99 | 96.72 | | queue10ms | 50.04 | 46.24-51.06 | 97.18 | 46.37 | 44.91-53.76 | 97.51 | | queue5ms | 49.71 | 46.80-50.60 | 89.59 | 48.47 | 46.02-52.92 | 89.00 | | queue2.5ms | 49.65 | 47.39-51.97 | 85.12 | 49.36 | 45.87-50.45 | 85.12 | ## RTT-adjusted GEO CoDel standalone goodput (%) | Controller | Clean stock | Lossy stock | Lossy RLT | |---|---|---|---| | CUBIC | 85.84 | 76.53 | 82.93 | | Cuback | 85.28 | 76.00 | 81.60 | ## RTT-adjusted GEO CoDel competition (%) | Controller | Case | Flow 1 | Flow 2 | Util | Flow 2 share | Share range | |---|---|---|---|---|---|---| | CUBIC | stock_stock | 39.09 | 50.53 | 90.26 | 56.38 | 37.34-61.99 | | CUBIC | stock_rlt | 24.32 | 65.40 | 90.06 | 72.96 | 51.92-77.74 | | CUBIC | rlt_stock | 66.92 | 22.78 | 90.18 | 25.39 | 22.80-31.76 | | CUBIC | clean_lossy | 26.83 | 61.14 | 88.05 | 69.50 | 52.41-71.64 | | CUBIC | lossy_clean | 62.23 | 26.84 | 89.01 | 30.13 | 26.24-58.66 | | CUBIC | self | 44.81 | 44.56 | 89.15 | 49.99 | 42.68-52.43 | | Cuback | stock_stock | 52.80 | 37.18 | 89.84 | 41.40 | 33.19-43.46 | | Cuback | stock_rlt | 24.52 | 64.79 | 89.16 | 72.54 | 52.77-75.48 | | Cuback | rlt_stock | 63.56 | 25.90 | 89.40 | 28.95 | 28.00-37.36 | | Cuback | clean_lossy | 27.56 | 60.70 | 87.95 | 68.83 | 44.79-69.56 | | Cuback | lossy_clean | 60.78 | 28.35 | 88.99 | 31.81 | 27.73-65.28 | | Cuback | self | 47.57 | 41.08 | 88.65 | 46.34 | 41.28-47.42 |
Apply startup BDP estimation whenever the controller is in slow start, rather than only during the first loss episode. ABBA recalibration reenters slow start after earlier congestion episodes, so the episode-count predicate left the BDP estimate at the current CWND. Using ssthresh == UINT32_MAX selects the ordinary slow-start fallback of CWND / 2 during recalibration. The Jump Start and Rapid Start branches remain unchanged and apply to initial startup. When a late ACK undoes a loss response, restore the prior acceleration state but retain last_high_queue_at. The timestamp records an observation that the queue was high, not a reaction to the loss being undone; reverting it could trigger recalibration too early. Also remove Cuback's no-op CC-limited callback and make the remaining callback explicitly CUBIC-specific. Extend the recalibration tests to verify that undo retains the high-queue observation for both CUBIC and Cuback. build/default/test.t passes all 31 top-level groups. Benchmark method ---------------- The complete tail-drop and CoDel suite was rerun. The per-packet random-loss probability is selected so that a full pipe has a 5% or 10% probability of at least one random loss per RTT. Standalone tests are seven 100-second runs measuring the latter 50 seconds. Competition tests are seven 160-second runs per flow order measuring the latter 80 seconds. Self-competition uses five 320-second runs and reports the final 40-second window. Loss placement varies between repetitions through the TLS-context random callback. All values are percentages. S->R means stock is created first and RLT second; R->S is the reverse. The results remain within the suite's run-to-run variation. Every standalone RLT median shift has overlapping old and new seven-run ranges. Averaged across profiles and loss rates, standalone RLT goodput changes by +0.13 points for tail-drop CUBIC, +0.24 for tail-drop Cuback, -0.06 for CoDel CUBIC, and +0.27 for CoDel Cuback. Average clean-competition RLT share changes by -0.22, +0.07, +0.58, and +0.32 points respectively. Average 5%-loss RLT share against a clean stock flow changes by +0.22, +0.62, -0.15, and +0.49 points. The established characteristics are preserved: RLT substantially improves standalone lossy-path goodput, stays below a clean stock competitor on every tail-drop profile and flow order, and retains high aggregate utilization in self-competition while leaving the existing wide share distributions. The RTT-adjusted GEO CoDel case also retains its existing order sensitivity. Complete results ---------------- ## Tail-drop standalone goodput (%) | Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R | |---|---|---|---|---| | DSL | 94.09/97.24 | 73.02/94.98 | 93.12/97.62 | 73.03/96.42 | | Home_WiFi | 51.73/93.76 | 36.52/88.36 | 51.89/95.59 | 35.91/91.03 | | Public | 97.67/98.02 | 95.77/97.42 | 98.02/98.01 | 93.99/97.93 | | Corporate_WiFi | 46.72/97.46 | 34.27/97.14 | 55.12/97.60 | 34.42/97.34 | | LTE | 88.95/95.10 | 62.87/90.56 | 89.58/97.26 | 67.59/94.37 | | 5G | 60.56/95.01 | 39.88/90.72 | 64.70/96.74 | 43.27/93.48 | | LEO | 80.05/95.82 | 53.37/91.30 | 75.31/97.48 | 56.94/94.67 | | GEO | 97.58/98.02 | 93.77/96.25 | 96.21/98.05 | 79.59/96.33 | | DoCoMo@Office | 93.45/97.78 | 73.93/97.22 | 92.82/97.80 | 63.32/97.57 | | au@Office | 84.73/97.71 | 57.15/97.46 | 82.00/97.70 | 59.15/97.58 | | WiFi@Office | 72.46/97.72 | 51.62/97.71 | 72.37/97.72 | 50.03/97.70 | | DoCoMo@mall | 98.03/98.02 | 90.10/97.96 | 98.04/98.02 | 90.22/97.98 | | congested | 97.93/97.95 | 97.77/97.85 | 97.89/97.93 | 97.83/97.87 | | bdp20 | 97.56/97.70 | 96.46/96.94 | 97.56/97.44 | 95.92/96.32 | | bdp40 | 97.40/97.20 | 94.73/96.00 | 97.67/97.71 | 95.03/95.03 | | queue10ms | 72.53/77.84 | 56.65/60.74 | 70.44/77.66 | 52.81/61.78 | | queue5ms | 67.24/66.16 | 51.91/52.20 | 66.11/64.45 | 51.69/53.67 | | queue2.5ms | 63.56/62.92 | 48.01/48.06 | 64.58/59.82 | 48.73/47.42 | ## Clean tail-drop competition: second/RLT share (%) | Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S | |---|---|---|---|---|---|---| | DSL | 52.48 | 48.19 | 52.27 | 53.06 | 46.90 | 52.28 | | Home_WiFi | 51.35 | 51.26 | 52.44 | 49.86 | 51.26 | 54.31 | | Public | 50.48 | 49.48 | 50.82 | 52.37 | 49.30 | 53.30 | | Corporate_WiFi | 51.34 | 58.14 | 44.12 | 48.51 | 52.54 | 45.06 | | LTE | 51.91 | 47.38 | 49.53 | 49.17 | 49.87 | 48.29 | | 5G | 51.62 | 49.37 | 48.91 | 52.95 | 48.80 | 50.56 | | LEO | 48.98 | 48.04 | 49.17 | 48.82 | 52.88 | 53.16 | | GEO | 49.98 | 50.01 | 50.01 | 50.03 | 49.87 | 50.02 | | DoCoMo@Office | 49.88 | 49.04 | 50.06 | 49.87 | 49.84 | 50.04 | | au@Office | 49.73 | 51.34 | 48.56 | 52.14 | 49.81 | 47.84 | | WiFi@Office | 53.71 | 53.29 | 45.29 | 55.18 | 55.25 | 45.19 | | DoCoMo@mall | 49.69 | 49.69 | 50.29 | 49.83 | 49.89 | 50.16 | | congested | 49.09 | 49.99 | 50.55 | 49.97 | 50.98 | 49.05 | | bdp20 | 50.27 | 50.26 | 49.85 | 49.67 | 50.08 | 50.62 | | bdp40 | 51.06 | 49.97 | 49.57 | 49.53 | 49.98 | 51.38 | | queue10ms | 48.81 | 51.40 | 50.50 | 50.04 | 48.38 | 51.20 | | queue5ms | 50.62 | 49.61 | 49.56 | 51.72 | 50.51 | 51.39 | | queue2.5ms | 51.01 | 50.95 | 50.79 | 51.26 | 49.35 | 50.64 | ## Clean stock against 5%-loss RLT, tail drop: RLT share (%) | Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S | |---|---|---|---|---| | DSL | 33.04 | 35.93 | 33.00 | 34.10 | | Home_WiFi | 29.97 | 30.15 | 29.86 | 30.85 | | Public | 28.05 | 34.20 | 29.66 | 28.40 | | Corporate_WiFi | 17.56 | 17.18 | 17.68 | 18.07 | | LTE | 24.26 | 30.66 | 32.51 | 27.43 | | 5G | 20.74 | 23.44 | 18.98 | 19.96 | | LEO | 28.28 | 25.52 | 24.36 | 22.75 | | GEO | 40.34 | 38.88 | 35.74 | 44.10 | | DoCoMo@Office | 25.03 | 27.18 | 26.84 | 22.61 | | au@Office | 18.17 | 21.95 | 17.02 | 19.20 | | WiFi@Office | 21.60 | 19.78 | 20.84 | 20.99 | | DoCoMo@mall | 29.07 | 31.49 | 24.55 | 27.68 | | congested | 42.99 | 44.23 | 45.05 | 44.39 | | bdp20 | 49.17 | 47.92 | 48.12 | 48.21 | | bdp40 | 46.23 | 46.66 | 48.90 | 47.01 | | queue10ms | 40.74 | 40.30 | 41.60 | 41.81 | | queue5ms | 41.70 | 41.55 | 40.33 | 41.42 | | queue2.5ms | 39.58 | 42.72 | 41.85 | 41.07 | ## Tail-drop RLT self-competition at 5% loss (%) | Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util | |---|---|---|---|---|---|---| | DSL | 48.44 | 42.66-57.91 | 98.02 | 50.00 | 47.66-56.43 | 98.02 | | Home_WiFi | 53.23 | 46.94-60.20 | 97.49 | 52.29 | 49.74-56.85 | 97.57 | | Public | 58.12 | 34.70-63.20 | 98.03 | 50.08 | 41.63-56.62 | 98.03 | | Corporate_WiFi | 42.44 | 32.74-47.78 | 97.71 | 51.26 | 32.81-55.20 | 97.72 | | LTE | 48.86 | 39.49-56.05 | 98.03 | 55.01 | 46.99-64.41 | 98.03 | | 5G | 46.83 | 39.45-50.69 | 97.66 | 49.56 | 37.61-62.71 | 97.72 | | LEO | 46.98 | 44.42-60.70 | 98.03 | 50.12 | 43.37-54.24 | 98.03 | | GEO | 53.53 | 44.59-61.71 | 98.01 | 41.24 | 38.04-73.07 | 97.95 | | DoCoMo@Office | 61.55 | 39.54-67.62 | 97.73 | 48.30 | 37.07-57.05 | 97.72 | | au@Office | 53.88 | 47.02-63.47 | 97.73 | 44.24 | 33.00-67.08 | 97.72 | | WiFi@Office | 48.74 | 41.10-58.51 | 97.72 | 51.21 | 45.23-55.11 | 97.72 | | DoCoMo@mall | 44.69 | 43.16-64.81 | 98.03 | 45.86 | 39.43-55.79 | 98.03 | | congested | 51.09 | 45.97-56.56 | 97.81 | 45.33 | 33.96-50.10 | 97.86 | | bdp20 | 49.96 | 46.94-51.38 | 97.61 | 50.50 | 46.31-53.63 | 97.71 | | bdp40 | 46.67 | 43.16-55.74 | 97.86 | 51.80 | 47.59-52.78 | 97.85 | | queue10ms | 49.32 | 47.45-51.07 | 96.75 | 41.70 | 39.03-46.74 | 96.94 | | queue5ms | 49.89 | 47.43-50.80 | 89.47 | 52.45 | 50.06-54.63 | 88.82 | | queue2.5ms | 48.86 | 46.48-51.01 | 85.56 | 47.95 | 46.18-52.38 | 84.62 | ## CoDel standalone goodput (%) | Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R | |---|---|---|---|---| | DSL | 86.67/96.05 | 73.48/94.52 | 88.21/96.56 | 74.27/95.11 | | Home_WiFi | 55.95/93.90 | 35.61/87.01 | 54.33/95.09 | 35.54/90.31 | | Public | 92.51/96.06 | 89.52/93.81 | 93.64/96.26 | 88.10/95.03 | | Corporate_WiFi | 51.82/97.48 | 35.67/97.11 | 48.74/97.59 | 35.33/97.33 | | LTE | 77.17/92.39 | 54.07/82.39 | 79.16/93.75 | 62.15/88.79 | | 5G | 59.80/94.83 | 39.70/89.14 | 56.83/95.40 | 41.51/91.68 | | LEO | 78.93/93.86 | 56.04/89.31 | 72.20/95.33 | 54.03/92.52 | | DoCoMo@Office | 88.54/97.40 | 65.08/96.81 | 84.69/97.38 | 68.82/97.21 | | au@Office | 81.15/97.57 | 56.26/97.18 | 77.55/97.56 | 53.06/97.39 | | WiFi@Office | 75.06/97.72 | 52.26/97.71 | 72.83/97.72 | 50.89/97.71 | | DoCoMo@mall | 93.02/97.23 | 85.59/96.17 | 92.10/97.05 | 86.38/96.30 | | congested | 95.34/95.70 | 92.43/92.73 | 94.72/95.14 | 91.70/92.23 | | bdp20 | 96.42/96.34 | 93.75/93.73 | 96.22/96.38 | 94.64/93.85 | | bdp40 | 93.67/94.42 | 89.41/90.71 | 94.66/93.94 | 91.43/89.29 | | queue10ms | 73.85/79.16 | 55.68/63.23 | 75.10/78.23 | 55.97/65.52 | | queue5ms | 69.75/68.00 | 52.10/56.08 | 66.62/67.17 | 50.63/54.28 | | queue2.5ms | 63.77/55.39 | 48.35/49.51 | 64.72/64.72 | 47.90/47.31 | ## Clean CoDel competition: second/RLT share (%) | Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S | |---|---|---|---|---|---|---| | DSL | 50.51 | 48.43 | 50.01 | 50.65 | 51.25 | 50.45 | | Home_WiFi | 50.73 | 50.39 | 50.86 | 50.11 | 50.97 | 50.47 | | Public | 50.67 | 50.40 | 50.24 | 50.20 | 50.08 | 50.13 | | Corporate_WiFi | 49.25 | 50.29 | 49.67 | 51.13 | 50.07 | 50.49 | | LTE | 49.32 | 49.55 | 50.41 | 51.12 | 51.00 | 50.61 | | 5G | 50.19 | 48.48 | 49.63 | 50.29 | 51.09 | 51.22 | | LEO | 49.68 | 48.90 | 49.88 | 48.62 | 49.68 | 49.89 | | DoCoMo@Office | 59.10 | 56.73 | 52.40 | 55.72 | 60.26 | 49.91 | | au@Office | 51.23 | 43.88 | 52.38 | 49.73 | 44.22 | 48.23 | | WiFi@Office | 50.12 | 49.43 | 50.54 | 49.32 | 49.26 | 50.23 | | DoCoMo@mall | 50.18 | 50.03 | 50.02 | 51.32 | 50.81 | 49.26 | | congested | 50.06 | 50.49 | 50.56 | 48.88 | 49.66 | 49.12 | | bdp20 | 49.50 | 49.79 | 50.37 | 49.40 | 50.65 | 50.15 | | bdp40 | 49.85 | 50.03 | 49.75 | 49.99 | 49.80 | 50.46 | | queue10ms | 49.73 | 51.39 | 48.98 | 48.75 | 50.89 | 50.41 | | queue5ms | 49.49 | 50.64 | 49.54 | 50.72 | 49.95 | 50.54 | | queue2.5ms | 48.82 | 51.46 | 49.85 | 50.69 | 50.23 | 50.43 | ## Clean stock against 5%-loss RLT, CoDel: RLT share (%) | Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S | |---|---|---|---|---| | DSL | 45.96 | 44.37 | 46.38 | 45.35 | | Home_WiFi | 40.27 | 41.23 | 42.93 | 42.12 | | Public | 48.09 | 48.34 | 48.87 | 48.50 | | Corporate_WiFi | 33.06 | 36.52 | 34.85 | 37.61 | | LTE | 46.37 | 46.35 | 49.75 | 48.24 | | 5G | 42.86 | 42.60 | 47.85 | 44.24 | | LEO | 44.69 | 42.16 | 47.05 | 47.39 | | DoCoMo@Office | 36.00 | 34.19 | 47.94 | 43.03 | | au@Office | 36.55 | 39.06 | 36.21 | 47.92 | | WiFi@Office | 30.49 | 31.16 | 30.32 | 31.22 | | DoCoMo@mall | 48.80 | 47.52 | 48.22 | 48.06 | | congested | 48.55 | 49.34 | 49.70 | 49.18 | | bdp20 | 48.45 | 48.49 | 48.54 | 48.40 | | bdp40 | 48.36 | 49.76 | 49.10 | 48.45 | | queue10ms | 41.22 | 40.92 | 40.85 | 40.79 | | queue5ms | 41.49 | 42.12 | 40.78 | 41.40 | | queue2.5ms | 41.92 | 42.38 | 41.55 | 42.37 | ## CoDel RLT self-competition at 5% loss (%) | Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util | |---|---|---|---|---|---|---| | DSL | 50.54 | 48.30-53.29 | 97.92 | 51.25 | 48.43-55.07 | 97.94 | | Home_WiFi | 59.09 | 49.28-67.23 | 97.18 | 51.60 | 49.80-60.63 | 97.47 | | Public | 48.90 | 47.03-51.20 | 97.94 | 49.28 | 48.21-50.14 | 97.94 | | Corporate_WiFi | 51.60 | 41.11-55.43 | 97.71 | 49.45 | 47.66-54.24 | 97.72 | | LTE | 52.27 | 50.27-59.63 | 97.29 | 51.80 | 47.15-55.58 | 97.54 | | 5G | 53.18 | 50.85-57.21 | 97.21 | 54.88 | 49.63-60.05 | 97.42 | | LEO | 52.84 | 48.45-56.65 | 97.71 | 51.24 | 45.95-60.04 | 97.67 | | DoCoMo@Office | 57.89 | 45.16-63.95 | 97.65 | 54.61 | 49.82-63.65 | 97.67 | | au@Office | 52.10 | 48.61-60.29 | 97.71 | 47.21 | 39.60-51.05 | 97.72 | | WiFi@Office | 52.35 | 46.05-58.80 | 97.72 | 54.07 | 48.28-63.18 | 97.72 | | DoCoMo@mall | 49.20 | 48.02-52.48 | 97.94 | 50.35 | 48.62-54.54 | 97.97 | | congested | 49.38 | 47.95-50.77 | 96.56 | 50.70 | 47.50-52.18 | 96.26 | | bdp20 | 51.63 | 49.60-52.13 | 97.16 | 50.67 | 48.95-51.87 | 97.21 | | bdp40 | 48.97 | 47.87-52.05 | 96.79 | 48.97 | 47.13-52.73 | 96.60 | | queue10ms | 49.02 | 42.92-52.38 | 97.43 | 46.49 | 41.90-49.75 | 97.59 | | queue5ms | 50.91 | 48.86-52.34 | 90.15 | 50.09 | 48.90-54.26 | 90.27 | | queue2.5ms | 49.18 | 41.91-53.67 | 86.45 | 45.94 | 44.53-49.99 | 84.34 | ## RTT-adjusted GEO CoDel standalone goodput (%) | Controller | Clean stock | Lossy stock | Lossy RLT | |---|---|---|---| | CUBIC | 85.84 | 79.67 | 83.03 | | Cuback | 85.29 | 75.51 | 83.91 | ## RTT-adjusted GEO CoDel competition (%) | Controller | Case | Flow 1 | Flow 2 | Util | Flow 2 share | Share range | |---|---|---|---|---|---|---| | CUBIC | stock_stock | 46.87 | 43.16 | 90.18 | 47.94 | 37.36-59.10 | | CUBIC | stock_rlt | 22.20 | 67.31 | 89.95 | 75.20 | 58.90-77.37 | | CUBIC | rlt_stock | 65.80 | 23.86 | 90.25 | 26.48 | 25.94-29.25 | | CUBIC | clean_lossy | 26.78 | 61.98 | 89.35 | 69.83 | 32.34-74.21 | | CUBIC | lossy_clean | 62.91 | 25.52 | 88.43 | 28.86 | 25.84-62.09 | | CUBIC | self | 42.88 | 46.97 | 89.57 | 52.28 | 47.10-56.21 | | Cuback | stock_stock | 40.64 | 49.18 | 89.82 | 54.76 | 40.16-62.52 | | Cuback | stock_rlt | 25.31 | 64.26 | 89.57 | 71.74 | 62.51-74.62 | | Cuback | rlt_stock | 65.15 | 24.39 | 89.49 | 27.24 | 24.33-28.49 | | Cuback | clean_lossy | 26.05 | 62.14 | 88.36 | 70.47 | 64.57-73.09 | | Cuback | lossy_clean | 60.31 | 28.14 | 88.19 | 31.81 | 26.79-34.56 | | Cuback | self | 41.89 | 47.54 | 88.54 | 53.15 | 44.23-64.35 |
Replace the random_loss_tolerance boolean with the two-bit accel_adaptation flag field. INCREASE_ALWAYS (0x1) bypasses the full_rtt guard while retaining the adaptive low-RTT gate. RECALIBRATE (0x2) enables full_rtt observation and path recalibration and, unless INCREASE_ALWAYS is also set, uses full_rtt as an increase guard. Define ON as an alias for RECALIBRATE, preserving the behavior selected by the existing simulator -T option. The flags are independent and can be combined as 0x3. Keep full_rtt and high-queue observations independent of policy selection; the flags govern how those observations are consumed. Pass the complete flag set to increase-rate and recalibration helpers so each tests the bit relevant to its behavior. Rename the context, congestion-controller, initialization, and test interfaces to accel_adaptation. Extend the tests to cover INCREASE_ALWAYS without a usable full_rtt observation, verify that it cannot recalibrate by itself, and verify that combining both flags observes full_rtt while continuing to bypass its increase guard. build/default/test.t passes all 31 top-level groups. Benchmark method ---------------- The 0x1 results below reuse the complete always-increase experiment, whose behavior matches INCREASE_ALWAYS: the adaptive RTT gate remains active while the full_rtt guard and recalibration are inactive. The per-packet random-loss probability is selected so that a full pipe has a 5% or 10% probability of at least one random loss per RTT. Standalone tests are seven 100-second runs measuring the latter 50 seconds. Competition tests are seven 160-second runs per flow order measuring the latter 80 seconds. Self-competition uses five 320-second runs and reports the final 40-second window. Loss placement varies between repetitions through the TLS-context random callback. All values are percentages. S->R means stock is created first and accelerated adaptation second; R->S is the reverse. The RLT label is retained from the benchmark tooling used to collect these results. The named network profiles show the intended tradeoff. Without recalibration, accelerated adaptation substantially improves standalone lossy-path goodput and generally remains near the stock baseline in clean competition. The LTE CUBIC standalone result is lower than the recalibrating mode, most visibly at 10% loss per RTT (90.56% with 0x2 versus 80.55% with 0x1), showing where recalibration helps regain bandwidth under frequent loss. The queue5ms and queue2.5ms profiles are synthetic stress cases rather than representative access-network queues. This is especially true of their CoDel variants: a physical queue limited to 5ms or 2.5ms does not model CoDel's deep buffer, 5ms target, and 100ms default interval. The large competitive shares on those profiles nevertheless document the safety role of the full_rtt guard. The combined 0x3 mode has not been benchmarked. The self-competition tables place 5% random loss on both accelerated flows; clean accelerated-versus- accelerated self-convergence without recalibration has not been tested. On the separate ten-flow DSL experiment, nine clean stock flows compete with one accelerated flow. Results are the mean of the two flow-order medians over 15 repetitions: | Policy | Accelerated-flow loss | 0x2 share | 0x1 share | 0x2 bandwidth | 0x1 bandwidth | |---|---:|---:|---:|---:|---:| | CUBIC | none | 10.21% | 9.92% | 3.00 Mb/s | 2.92 Mb/s | | CUBIC | 5%/RTT | 9.62% | 9.71% | 2.83 Mb/s | 2.86 Mb/s | | Cuback | none | 9.95% | 9.99% | 2.93 Mb/s | 2.94 Mb/s | | Cuback | 5%/RTT | 9.79% | 9.61% | 2.88 Mb/s | 2.83 Mb/s | Complete 0x1 results -------------------- ## Tail-drop standalone goodput (%) | Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R | |---|---|---|---|---| | DSL | 92.86/96.55 | 73.71/94.19 | 93.50/97.58 | 71.95/96.05 | | Home_WiFi | 54.77/93.57 | 36.85/87.76 | 54.96/95.87 | 34.86/90.86 | | Public | 98.03/98.03 | 94.02/97.40 | 98.00/98.00 | 95.01/97.35 | | Corporate_WiFi | 48.36/97.43 | 34.76/97.16 | 50.30/97.60 | 35.52/97.33 | | LTE | 83.47/92.56 | 63.78/80.55 | 84.50/96.04 | 62.72/92.96 | | 5G | 72.08/93.81 | 40.90/88.72 | 60.55/96.17 | 41.47/92.14 | | LEO | 78.04/94.44 | 58.67/90.22 | 71.03/97.12 | 52.34/94.09 | | GEO | 97.16/98.00 | 83.87/93.45 | 97.74/98.01 | 91.24/95.62 | | DoCoMo@Office | 95.68/97.41 | 72.94/96.88 | 91.85/97.76 | 67.23/97.30 | | au@Office | 86.46/97.57 | 58.94/97.34 | 93.88/97.67 | 50.86/97.45 | | WiFi@Office | 72.68/97.72 | 51.08/97.71 | 73.06/97.72 | 51.70/97.71 | | DoCoMo@mall | 98.03/98.03 | 96.18/97.55 | 98.03/98.03 | 91.44/97.76 | | congested | 97.97/97.95 | 97.81/97.85 | 97.93/97.95 | 97.35/97.71 | | bdp20 | 97.34/97.66 | 97.00/97.00 | 97.22/97.44 | 95.66/96.02 | | bdp40 | 97.69/97.05 | 94.58/95.23 | 97.46/96.84 | 96.57/94.75 | | queue10ms | 73.81/94.32 | 54.56/89.15 | 71.21/95.38 | 55.43/90.27 | | queue5ms | 65.60/93.42 | 50.25/86.93 | 68.45/88.96 | 52.39/83.07 | | queue2.5ms | 65.65/83.91 | 47.32/78.24 | 64.50/83.19 | 46.58/77.39 | ## Clean tail-drop competition: second/RLT share (%) | Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S | |---|---|---|---|---|---|---| | DSL | 48.85 | 48.62 | 47.42 | 48.14 | 47.36 | 47.91 | | Home_WiFi | 49.74 | 45.80 | 48.63 | 53.54 | 50.85 | 48.43 | | Public | 49.82 | 49.43 | 49.53 | 49.75 | 49.27 | 50.09 | | Corporate_WiFi | 54.29 | 53.67 | 44.76 | 58.32 | 49.17 | 42.99 | | LTE | 48.06 | 52.22 | 49.30 | 49.90 | 50.68 | 50.56 | | 5G | 50.98 | 48.37 | 48.69 | 47.29 | 52.56 | 49.71 | | LEO | 48.30 | 45.78 | 52.70 | 47.90 | 52.78 | 45.24 | | GEO | 49.99 | 49.99 | 50.00 | 49.89 | 49.97 | 50.00 | | DoCoMo@Office | 49.13 | 50.07 | 49.94 | 50.06 | 49.92 | 48.96 | | au@Office | 51.51 | 49.79 | 50.31 | 49.83 | 49.89 | 47.88 | | WiFi@Office | 55.77 | 55.34 | 47.50 | 53.87 | 53.75 | 44.41 | | DoCoMo@mall | 49.72 | 49.68 | 50.38 | 49.86 | 49.83 | 50.20 | | congested | 49.76 | 49.72 | 48.30 | 49.57 | 50.34 | 49.62 | | bdp20 | 49.85 | 49.32 | 49.73 | 50.15 | 49.93 | 49.83 | | bdp40 | 50.51 | 50.71 | 50.11 | 48.45 | 51.75 | 49.59 | | queue10ms | 50.27 | 50.61 | 51.39 | 48.97 | 59.69 | 55.41 | | queue5ms | 48.47 | 63.34 | 54.97 | 50.85 | 75.93 | 70.77 | | queue2.5ms | 50.73 | 73.12 | 74.50 | 50.60 | 75.31 | 76.81 | ## Clean stock against 5%-loss RLT, tail drop: RLT share (%) | Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S | |---|---|---|---|---| | DSL | 34.48 | 35.06 | 31.18 | 34.22 | | Home_WiFi | 28.78 | 28.17 | 30.32 | 28.17 | | Public | 34.14 | 29.66 | 28.47 | 30.08 | | Corporate_WiFi | 17.43 | 16.91 | 17.68 | 17.51 | | LTE | 32.77 | 30.21 | 27.26 | 30.86 | | 5G | 16.98 | 21.82 | 18.92 | 23.40 | | LEO | 25.58 | 23.98 | 27.04 | 26.31 | | GEO | 38.33 | 45.66 | 37.53 | 39.39 | | DoCoMo@Office | 25.33 | 24.75 | 24.44 | 23.90 | | au@Office | 20.33 | 19.51 | 20.07 | 21.10 | | WiFi@Office | 21.20 | 20.65 | 20.98 | 20.35 | | DoCoMo@mall | 29.89 | 29.50 | 25.50 | 28.09 | | congested | 43.18 | 45.06 | 42.13 | 41.35 | | bdp20 | 49.42 | 47.88 | 48.66 | 48.98 | | bdp40 | 44.97 | 47.97 | 45.78 | 45.19 | | queue10ms | 40.80 | 42.72 | 52.06 | 46.44 | | queue5ms | 51.25 | 44.89 | 70.64 | 62.59 | | queue2.5ms | 68.36 | 67.24 | 70.45 | 70.46 | ## Tail-drop RLT self-competition at 5% loss (%) | Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util | |---|---|---|---|---|---|---| | DSL | 54.12 | 45.13-55.59 | 98.02 | 49.70 | 37.67-54.85 | 98.02 | | Home_WiFi | 52.17 | 48.90-57.40 | 97.42 | 54.85 | 50.85-58.45 | 97.60 | | Public | 58.39 | 29.62-61.76 | 98.03 | 59.56 | 47.34-60.16 | 98.03 | | Corporate_WiFi | 51.40 | 46.74-56.21 | 97.72 | 49.23 | 45.61-52.01 | 97.72 | | LTE | 51.43 | 40.35-54.90 | 98.03 | 60.66 | 36.06-68.49 | 98.03 | | 5G | 56.84 | 51.49-59.11 | 97.55 | 49.02 | 41.02-60.56 | 97.72 | | LEO | 52.54 | 45.68-61.35 | 98.03 | 45.71 | 44.01-59.59 | 98.03 | | GEO | 51.02 | 44.30-60.66 | 98.01 | 51.00 | 28.57-66.08 | 98.01 | | DoCoMo@Office | 42.82 | 34.87-58.68 | 97.73 | 50.82 | 38.31-63.48 | 97.73 | | au@Office | 45.87 | 29.39-51.84 | 97.73 | 60.12 | 39.32-69.23 | 97.73 | | WiFi@Office | 46.61 | 45.17-52.19 | 97.72 | 50.69 | 49.71-53.60 | 97.72 | | DoCoMo@mall | 50.65 | 37.26-58.79 | 98.03 | 63.37 | 46.58-75.13 | 98.03 | | congested | 47.02 | 31.99-51.06 | 97.91 | 51.04 | 42.22-55.60 | 97.93 | | bdp20 | 48.16 | 47.24-48.75 | 98.03 | 48.68 | 47.99-52.23 | 97.66 | | bdp40 | 50.44 | 47.20-54.93 | 97.90 | 50.44 | 46.34-53.16 | 97.80 | | queue10ms | 51.55 | 50.11-54.38 | 97.33 | 52.80 | 47.53-59.40 | 97.33 | | queue5ms | 59.46 | 57.22-61.21 | 95.60 | 61.43 | 57.20-66.90 | 92.86 | | queue2.5ms | 46.75 | 45.42-51.93 | 87.87 | 49.35 | 46.84-52.58 | 87.40 | ## CoDel standalone goodput (%) | Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R | |---|---|---|---|---| | DSL | 86.02/96.51 | 70.53/93.97 | 86.04/96.89 | 72.74/94.68 | | Home_WiFi | 52.12/93.26 | 36.41/89.48 | 57.87/94.86 | 36.60/91.10 | | Public | 95.20/96.25 | 87.38/93.72 | 94.35/96.71 | 89.45/95.02 | | Corporate_WiFi | 51.24/97.45 | 32.81/97.11 | 50.40/97.57 | 36.56/97.34 | | LTE | 72.32/92.49 | 53.05/85.37 | 78.19/93.54 | 58.52/87.46 | | 5G | 58.37/94.84 | 43.09/89.17 | 52.91/95.84 | 37.55/92.25 | | LEO | 71.53/93.55 | 54.59/89.98 | 75.92/95.35 | 56.71/93.47 | | DoCoMo@Office | 83.91/97.25 | 64.35/96.80 | 85.28/97.44 | 68.26/96.94 | | au@Office | 78.77/97.50 | 50.49/97.21 | 80.63/97.57 | 58.15/97.34 | | WiFi@Office | 73.09/97.72 | 52.16/97.71 | 72.86/97.72 | 53.41/97.71 | | DoCoMo@mall | 92.66/97.13 | 84.41/96.63 | 92.14/97.07 | 85.68/96.36 | | congested | 95.18/95.42 | 92.47/94.09 | 96.50/95.86 | 91.79/93.55 | | bdp20 | 96.20/96.70 | 94.86/94.19 | 96.04/95.94 | 93.81/93.87 | | bdp40 | 93.90/94.90 | 89.17/91.30 | 93.93/95.16 | 91.01/90.70 | | queue10ms | 70.82/94.17 | 54.27/88.45 | 70.69/95.41 | 52.95/90.58 | | queue5ms | 67.34/93.26 | 49.49/87.64 | 66.26/88.21 | 51.69/84.98 | | queue2.5ms | 63.94/83.94 | 48.92/79.02 | 65.23/83.41 | 50.16/77.86 | ## Clean CoDel competition: second/RLT share (%) | Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S | |---|---|---|---|---|---|---| | DSL | 49.29 | 50.54 | 50.37 | 50.93 | 49.66 | 49.99 | | Home_WiFi | 49.46 | 49.59 | 50.23 | 49.86 | 49.96 | 49.91 | | Public | 51.15 | 50.07 | 50.45 | 49.86 | 49.42 | 49.46 | | Corporate_WiFi | 50.06 | 49.83 | 51.86 | 49.42 | 49.03 | 49.87 | | LTE | 50.59 | 51.73 | 50.37 | 49.92 | 51.33 | 50.38 | | 5G | 50.48 | 51.17 | 50.02 | 50.20 | 50.59 | 51.37 | | LEO | 48.43 | 49.53 | 48.50 | 50.18 | 51.07 | 48.90 | | DoCoMo@Office | 54.93 | 55.08 | 45.33 | 55.22 | 55.44 | 43.64 | | au@Office | 47.46 | 51.52 | 46.65 | 52.68 | 44.20 | 53.85 | | WiFi@Office | 48.64 | 50.04 | 50.27 | 49.06 | 50.41 | 50.02 | | DoCoMo@mall | 49.54 | 49.59 | 50.35 | 50.50 | 50.30 | 49.80 | | congested | 50.16 | 49.86 | 49.97 | 48.49 | 50.05 | 49.90 | | bdp20 | 51.35 | 49.75 | 49.81 | 50.28 | 50.25 | 50.01 | | bdp40 | 49.57 | 49.77 | 49.70 | 50.92 | 50.34 | 49.86 | | queue10ms | 51.39 | 49.70 | 49.59 | 49.71 | 50.82 | 51.21 | | queue5ms | 49.25 | 65.01 | 54.95 | 49.99 | 75.45 | 69.75 | | queue2.5ms | 50.49 | 72.37 | 73.69 | 49.71 | 75.18 | 76.22 | ## Clean stock against 5%-loss RLT, CoDel: RLT share (%) | Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S | |---|---|---|---|---| | DSL | 45.46 | 44.23 | 45.07 | 46.38 | | Home_WiFi | 38.63 | 38.57 | 42.95 | 40.92 | | Public | 48.74 | 48.04 | 48.63 | 49.65 | | Corporate_WiFi | 32.38 | 34.37 | 32.80 | 34.09 | | LTE | 45.19 | 45.51 | 48.35 | 49.12 | | 5G | 44.04 | 43.23 | 48.44 | 44.62 | | LEO | 44.52 | 44.17 | 47.03 | 47.08 | | DoCoMo@Office | 41.00 | 35.76 | 51.66 | 40.51 | | au@Office | 36.46 | 35.69 | 43.03 | 35.50 | | WiFi@Office | 30.04 | 29.95 | 30.53 | 30.23 | | DoCoMo@mall | 49.12 | 49.91 | 49.57 | 49.64 | | congested | 50.31 | 49.57 | 48.91 | 49.18 | | bdp20 | 49.07 | 48.54 | 49.21 | 48.49 | | bdp40 | 48.07 | 48.00 | 49.05 | 48.10 | | queue10ms | 42.26 | 41.46 | 44.14 | 41.48 | | queue5ms | 50.26 | 44.85 | 72.43 | 62.43 | | queue2.5ms | 69.37 | 68.36 | 70.69 | 71.12 | ## CoDel RLT self-competition at 5% loss (%) | Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util | |---|---|---|---|---|---|---| | DSL | 49.06 | 47.65-51.11 | 97.92 | 49.62 | 45.75-53.61 | 97.95 | | Home_WiFi | 57.05 | 52.46-58.72 | 97.28 | 53.76 | 48.46-55.50 | 97.49 | | Public | 50.27 | 49.39-52.04 | 97.98 | 49.08 | 48.61-53.58 | 97.94 | | Corporate_WiFi | 52.02 | 45.95-55.40 | 97.72 | 52.24 | 43.39-56.09 | 97.72 | | LTE | 54.73 | 49.26-55.74 | 97.51 | 51.86 | 43.86-52.66 | 97.53 | | 5G | 52.17 | 47.68-54.93 | 97.17 | 54.96 | 51.54-59.79 | 97.39 | | LEO | 51.07 | 46.51-55.39 | 97.65 | 49.25 | 47.94-55.00 | 97.77 | | DoCoMo@Office | 57.46 | 45.31-68.55 | 97.63 | 53.36 | 48.99-65.19 | 97.66 | | au@Office | 48.72 | 45.28-58.19 | 97.71 | 44.58 | 37.95-58.72 | 97.71 | | WiFi@Office | 50.70 | 46.95-51.08 | 97.72 | 49.66 | 48.69-52.92 | 97.72 | | DoCoMo@mall | 52.23 | 49.50-55.61 | 97.95 | 52.30 | 51.22-56.08 | 97.91 | | congested | 48.27 | 46.77-53.30 | 96.73 | 52.18 | 49.16-54.92 | 95.88 | | bdp20 | 52.71 | 51.05-53.98 | 97.24 | 49.33 | 47.70-51.23 | 97.14 | | bdp40 | 49.55 | 44.55-51.62 | 96.89 | 50.16 | 48.38-51.74 | 96.56 | | queue10ms | 50.28 | 47.87-54.02 | 97.65 | 49.32 | 48.20-52.42 | 97.64 | | queue5ms | 63.63 | 61.64-64.00 | 95.74 | 59.96 | 51.59-62.02 | 93.25 | | queue2.5ms | 49.97 | 45.12-52.92 | 87.80 | 49.77 | 41.29-52.14 | 87.45 | ## RTT-adjusted GEO CoDel standalone goodput (%) | Controller | Clean stock | Lossy stock | Lossy RLT | |---|---|---|---| | CUBIC | 85.84 | 74.30 | 81.01 | | Cuback | 85.28 | 77.39 | 80.80 | ## RTT-adjusted GEO CoDel competition (%) | Controller | Case | Flow 1 | Flow 2 | Util | Flow 2 share | Share range | |---|---|---|---|---|---|---| | CUBIC | stock_stock | 44.18 | 46.09 | 90.36 | 51.05 | 39.19-55.73 | | CUBIC | stock_rlt | 43.84 | 46.25 | 90.13 | 51.34 | 32.53-57.66 | | CUBIC | rlt_stock | 46.73 | 43.50 | 90.62 | 48.21 | 33.09-53.40 | | CUBIC | clean_lossy | 48.04 | 41.89 | 89.99 | 46.58 | 38.46-55.01 | | CUBIC | lossy_clean | 36.46 | 54.25 | 89.87 | 59.81 | 39.67-63.87 | | CUBIC | self | 42.78 | 47.39 | 88.90 | 52.56 | 47.62-59.96 | | Cuback | stock_stock | 42.92 | 47.49 | 90.19 | 52.53 | 37.07-67.29 | | Cuback | stock_rlt | 32.19 | 57.19 | 89.40 | 63.99 | 49.75-69.14 | | Cuback | rlt_stock | 52.60 | 36.95 | 89.80 | 41.26 | 32.20-48.87 | | Cuback | clean_lossy | 40.63 | 47.71 | 88.40 | 54.01 | 46.35-56.58 | | Cuback | lossy_clean | 46.38 | 42.11 | 88.82 | 47.59 | 42.27-59.83 | | Cuback | self | 47.08 | 41.55 | 88.75 | 46.88 | 44.47-50.75 |
Member
Author
FWIW, as to this point, I think tracking the EMEA of per-epoch minimum and using its |
Accelerated increase must yield when congestion persists. Previously its RTT-
derived rate could exceed the growth needed to reverse the preceding congestion
reduction in one RTT. This could let the ABBA contribution recover the entire
reduction before delayed RTT feedback closed the acceleration gate.
Cap the ABBA increase rate at half the rate that would reverse the reduction:
(1 / beta - 1) / 2
Select beta from the congestion signal that opened the recovery: 0.7 for loss
and 0.85 for ECN. After one reduced flight is acknowledged, ABBA can therefore
raise the loss-reduced CWND to at most 85% of its pre-loss value, or the ECN-
reduced CWND to at most 92.5%. The ordinary CUBIC or Cuback trajectory remains
available independently; the cap bounds only accelerated adaptation's
contribution.
Pass the signal type through the shared CUBIC and Cuback acceleration helpers.
Extend the tests to verify both caps and their net effect after the corresponding
reduction.
build/default/test.t passes all 31 top-level groups.
Benchmark method
----------------
Only profiles that can exercise the new cap were rerun. The RTT threshold is at
least minRTT + 2ms, so the 21.43% loss cap can bind only below a 9.33ms
threshold; among the tail-drop profiles this selects WiFi@Office. The 8.82% ECN
cap can bind below a 22.67ms threshold, selecting Corporate_WiFi, au@Office,
and WiFi@Office under CoDel. Other profiles cannot reach either cap and were
not rerun.
The per-packet random-loss probability is selected so that a full pipe has a
5% or 10% probability of at least one random loss per RTT. Standalone tests are
seven 100-second runs measuring the latter 50 seconds. Competition tests are
seven 160-second runs per flow order measuring the latter 80 seconds. Self-
competition uses five 320-second runs and reports the final 40-second window.
Loss placement varies between repetitions through the TLS-context random
callback. All values are percentages. S->R means stock is created first and
ABBA second; R->S is the reverse. The RLT label is retained from the benchmark
tooling used to collect these results.
Median standalone ABBA goodput remains between 97.1% and 97.7% on every
affected CoDel row and near 97.7% on WiFi@Office tail drop. Clean competition
remains centered around the corresponding stock/stock result, subject to the
existing order variance. Against a clean stock flow, a 5%-loss ABBA flow yields
to roughly 20%-21% share under WiFi@Office tail drop and 30%-44% under CoDel.
Self-competition keeps about 97.7% aggregate utilization.
CUBIC has rare low standalone repetitions on the 4ms WiFi profile. Under tail
drop, its 5% ABBA samples include 84.66% and 94.57% among five 97.71% samples;
at 10%, one sample is 51.99% and six are at least 97.69%. Under CoDel at 5%,
one sample is 78.84% and six are at least 97.71%. The medians remain near full
utilization, but these outliers document a remaining recovery limitation rather
than being hidden by the aggregate.
Affected tail-drop results
--------------------------
## Standalone goodput
| Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R |
|---|---:|---:|---:|---:|
| WiFi@Office | 73.96/97.71 | 52.80/97.69 | 72.42/97.70 | 51.30/97.69 |
## Clean competition: second/ABBA share
| Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S |
|---|---:|---:|---:|---:|---:|---:|
| WiFi@Office | 54.74 | 54.54 | 45.53 | 56.73 | 56.51 | 44.85 |
## Clean stock against 5%-loss ABBA: ABBA share
| Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S |
|---|---:|---:|---:|---:|
| WiFi@Office | 20.67 | 20.94 | 20.51 | 21.51 |
## ABBA self-competition at 5% loss
| Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util |
|---|---:|---:|---:|---:|---:|---:|
| WiFi@Office | 51.04 | 38.44-57.45 | 97.72 | 48.54 | 45.32-62.09 | 97.72 |
Affected CoDel results
----------------------
## Standalone goodput
| Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R |
|---|---:|---:|---:|---:|
| Corporate_WiFi | 50.09/97.48 | 36.36/97.14 | 50.31/97.60 | 35.35/97.33 |
| au@Office | 83.44/97.45 | 55.72/97.30 | 76.79/97.55 | 58.44/97.36 |
| WiFi@Office | 74.22/97.71 | 52.72/97.69 | 71.67/97.72 | 52.17/97.69 |
## Clean competition: second/ABBA share
| Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S |
|---|---:|---:|---:|---:|---:|---:|
| Corporate_WiFi | 49.26 | 49.71 | 50.27 | 49.44 | 49.46 | 49.44 |
| au@Office | 43.19 | 45.81 | 51.31 | 46.67 | 44.94 | 56.15 |
| WiFi@Office | 50.37 | 50.19 | 49.61 | 50.09 | 49.77 | 50.84 |
## Clean stock against 5%-loss ABBA: ABBA share
| Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S |
|---|---:|---:|---:|---:|
| Corporate_WiFi | 32.35 | 34.96 | 34.65 | 35.68 |
| au@Office | 39.08 | 38.67 | 41.86 | 43.91 |
| WiFi@Office | 30.35 | 30.68 | 30.68 | 30.29 |
## ABBA self-competition at 5% loss
| Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util |
|---|---:|---:|---:|---:|---:|---:|
| Corporate_WiFi | 49.03 | 36.14-61.18 | 97.71 | 52.07 | 33.35-65.72 | 97.71 |
| au@Office | 46.92 | 42.28-53.38 | 97.71 | 54.10 | 36.74-61.80 | 97.71 |
| WiFi@Office | 51.92 | 48.29-60.23 | 97.72 | 44.38 | 37.84-47.20 | 97.72 |
ABBA's adaptive RTT gate currently uses the minimum RTT of the immediately
preceding congestion-avoidance period. A single jittery period can therefore
move the gate abruptly. Add an opt-in gate that instead estimates the floor
from the minima of all completed periods:
E = smoothed_period_min - period_min_variance / 2
threshold = min(current_period_min + 2ms,
max(minRTT + 2ms, E))
Exclude the current period from the estimator and add only its minimum when the
next congestion event closes it. This prevents RTT produced by accelerated
increase from feeding directly into its own gate. With weights of 1/8 for the
smoothed value and 1/4 for variance, an accelerated period whose minimum is
below E strictly lowers E. Below minRTT + 2ms, eligible samples can move E
upward only toward that fixed bound. The weights are therefore part of the
no-ratcheting property rather than arbitrary estimator parameters.
Select this behavior with
QUICLY_CC_ACCEL_ADAPTATION_SMOOTHED_GATE (0x4). Keep
QUICLY_CC_ACCEL_ADAPTATION_ON equal to RECALIBRATE (0x2), preserving the
preceding-period gate as the default. The measured mode below is therefore
selected as 0x6. Store the mutually exclusive preceding-period value and
completed-period estimator in a union. The larger estimator increases the ABBA
state from 32 to 40 bytes even though the union avoids storing both histories.
Reuse quicly_rtt_t for the completed-period estimator. Factor its update so
ABBA can choose the initial 5ms variance while retaining the ordinary fixed
weights of 1/8 and 1/4. Extend the tests to cover the parameterized first
sample, estimator evolution, both gate policies, and preservation of the
default threshold.
build/default/test.t passes all 31 top-level groups.
Benchmark method
----------------
These measurements were collected while the smoothed gate was unconditional;
that implementation is equivalent to the new 0x6 mode. The simulator's stable
RTT profiles do not demonstrate the intended benefit on real paths with a
varying idle RTT. The purpose of this suite is to check safety under stable
conditions.
The per-packet random-loss probability is selected so that a full pipe has a 5%
or 10% probability of at least one random loss per RTT. Standalone tests are
seven 100-second runs measuring the latter 50 seconds. Competition tests are
seven 160-second runs per flow order measuring the latter 80 seconds. Self-
competition uses five 320-second runs and reports the final 40-second window.
Loss placement varies between repetitions through the TLS-context random
callback. The RTT-adjusted GEO CoDel tests instead use a 5ms target, 600ms
interval, 1000-second runs, and the latter 500 seconds. All values are
percentages. S/R means stock/ABBA; S->R means stock is created first and ABBA
second; R->S is the reverse. The RLT label is retained from the benchmark
tooling used to collect these results.
Across the non-GEO profiles, the aggregate changes from the default gate are
small:
| Scenario | CUBIC | Cuback |
|---|---:|---:|
| Tail standalone ABBA goodput | +0.16pp | +0.08pp |
| CoDel standalone ABBA goodput | +0.39pp | -0.38pp |
| Clean tail ABBA share | -0.05pp | +0.16pp |
| Clean CoDel ABBA share | +0.12pp | -0.07pp |
| Lossy ABBA tail share | +0.07pp | +0.07pp |
| Lossy ABBA CoDel share | +0.36pp | +0.18pp |
| Tail self-competition utilization | -0.03pp | +0.10pp |
| CoDel self-competition utilization | -0.16pp | -0.03pp |
RTT-adjusted GEO CoDel is the material exception. CUBIC ABBA's share against a
clean stock flow rises from about 51% in either order to 72%-73%; Cuback rises
from about 59%-64% to 68%-72%. Lossy standalone ABBA goodput improves from
81.01% to 84.56% for CUBIC and from 80.80% to 82.74% for Cuback, but the
competition result is a safety limitation and is why the smoothed gate is not
the default.
Complete smoothed-gate results
------------------------------
## Tail-drop standalone goodput (%)
| Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R |
|---|---|---|---|---|
| DSL | 91.05/97.25 | 73.49/95.07 | 92.46/97.74 | 72.13/96.49 |
| Home_WiFi | 51.12/93.92 | 35.93/88.08 | 51.70/95.45 | 36.24/90.09 |
| Public | 98.02/98.02 | 95.71/97.51 | 98.03/98.00 | 94.28/97.97 |
| Corporate_WiFi | 50.85/97.48 | 37.24/97.11 | 51.97/97.58 | 34.36/97.36 |
| LTE | 79.60/96.43 | 57.03/91.86 | 83.43/97.64 | 64.61/94.01 |
| 5G | 55.38/96.75 | 40.07/91.70 | 61.79/96.97 | 39.34/94.39 |
| LEO | 75.14/96.74 | 58.71/92.99 | 81.49/97.42 | 64.09/94.81 |
| GEO | 98.01/97.29 | 77.67/93.35 | 98.00/98.02 | 87.39/92.90 |
| DoCoMo@Office | 94.94/97.78 | 74.51/97.40 | 95.34/97.79 | 58.25/97.65 |
| au@Office | 88.79/97.72 | 62.30/97.39 | 76.78/97.70 | 55.81/97.60 |
| WiFi@Office | 73.16/97.71 | 51.87/97.70 | 73.96/97.71 | 53.39/97.70 |
| DoCoMo@mall | 98.03/98.03 | 96.26/97.87 | 98.03/98.03 | 94.57/98.01 |
| congested | 97.91/97.95 | 97.89/97.89 | 97.93/97.95 | 97.85/97.77 |
| bdp20 | 97.44/97.62 | 96.72/96.26 | 97.44/97.48 | 96.46/96.20 |
| bdp40 | 97.49/97.62 | 94.71/96.49 | 97.42/96.93 | 94.28/96.03 |
| queue10ms | 78.14/77.47 | 52.99/64.94 | 74.37/75.65 | 54.47/64.27 |
| queue5ms | 67.71/67.57 | 49.02/52.75 | 67.87/66.51 | 49.30/55.40 |
| queue2.5ms | 63.47/58.24 | 49.32/47.87 | 63.13/60.45 | 49.06/48.38 |
## Clean tail-drop competition: second/RLT share (%)
| Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S |
|---|---|---|---|---|---|---|
| DSL | 47.57 | 51.72 | 50.28 | 51.59 | 50.92 | 50.66 |
| Home_WiFi | 52.44 | 50.08 | 47.64 | 46.57 | 50.19 | 52.35 |
| Public | 50.23 | 47.17 | 50.86 | 49.74 | 50.44 | 49.90 |
| Corporate_WiFi | 53.43 | 53.27 | 48.17 | 53.67 | 56.81 | 45.20 |
| LTE | 47.84 | 50.20 | 49.55 | 47.39 | 50.52 | 50.71 |
| 5G | 47.03 | 49.38 | 46.92 | 51.37 | 53.04 | 50.11 |
| LEO | 48.18 | 52.08 | 50.09 | 51.97 | 50.79 | 49.95 |
| GEO | 49.97 | 50.12 | 50.03 | 49.95 | 49.98 | 50.18 |
| DoCoMo@Office | 50.11 | 51.82 | 49.14 | 48.85 | 51.10 | 50.06 |
| au@Office | 49.89 | 51.46 | 48.48 | 52.17 | 52.16 | 49.92 |
| WiFi@Office | 53.33 | 55.55 | 46.77 | 54.57 | 55.85 | 47.11 |
| DoCoMo@mall | 49.77 | 49.78 | 50.26 | 49.83 | 49.79 | 50.11 |
| congested | 49.15 | 51.26 | 48.43 | 48.19 | 49.33 | 49.85 |
| bdp20 | 48.43 | 48.21 | 51.06 | 48.47 | 49.45 | 50.08 |
| bdp40 | 50.96 | 50.07 | 49.38 | 52.02 | 49.40 | 51.88 |
| queue10ms | 50.91 | 50.21 | 50.58 | 50.79 | 49.37 | 49.85 |
| queue5ms | 50.23 | 48.93 | 50.76 | 50.52 | 49.35 | 49.64 |
| queue2.5ms | 52.23 | 49.73 | 49.91 | 51.42 | 50.71 | 49.99 |
## Clean stock against 5%-loss RLT, tail drop: RLT share (%)
| Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S |
|---|---|---|---|---|
| DSL | 31.93 | 34.87 | 32.56 | 34.26 |
| Home_WiFi | 29.61 | 30.37 | 31.37 | 31.27 |
| Public | 32.51 | 29.73 | 34.36 | 25.97 |
| Corporate_WiFi | 18.36 | 17.46 | 18.25 | 18.85 |
| LTE | 30.03 | 29.92 | 25.45 | 27.77 |
| 5G | 23.06 | 19.35 | 21.73 | 23.07 |
| LEO | 24.39 | 24.41 | 22.38 | 22.65 |
| GEO | 37.67 | 34.85 | 38.02 | 38.17 |
| DoCoMo@Office | 22.58 | 26.68 | 21.67 | 18.77 |
| au@Office | 23.72 | 21.25 | 18.48 | 17.17 |
| WiFi@Office | 22.73 | 21.11 | 24.77 | 22.41 |
| DoCoMo@mall | 29.74 | 33.57 | 28.18 | 33.20 |
| congested | 44.31 | 45.25 | 45.34 | 44.99 |
| bdp20 | 50.49 | 48.75 | 48.53 | 47.92 |
| bdp40 | 47.13 | 46.28 | 46.19 | 45.84 |
| queue10ms | 39.46 | 40.90 | 39.80 | 41.40 |
| queue5ms | 42.00 | 41.72 | 42.82 | 41.92 |
| queue2.5ms | 40.46 | 42.28 | 40.95 | 43.07 |
## Tail-drop RLT self-competition at 5% loss (%)
| Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util |
|---|---|---|---|---|---|---|
| DSL | 47.45 | 44.30-53.01 | 98.02 | 54.82 | 48.63-57.40 | 98.02 |
| Home_WiFi | 53.32 | 41.47-58.54 | 97.29 | 51.47 | 48.54-55.83 | 97.62 |
| Public | 46.83 | 29.72-54.76 | 98.02 | 41.06 | 35.52-59.95 | 98.03 |
| Corporate_WiFi | 45.23 | 44.77-47.69 | 97.71 | 51.17 | 46.61-58.06 | 97.72 |
| LTE | 47.98 | 47.76-55.81 | 98.03 | 46.10 | 36.68-55.36 | 98.03 |
| 5G | 48.70 | 37.75-58.54 | 97.71 | 48.42 | 38.56-51.06 | 97.72 |
| LEO | 52.24 | 46.46-54.86 | 98.03 | 48.12 | 34.46-68.20 | 98.03 |
| GEO | 51.73 | 26.05-60.14 | 98.00 | 43.78 | 27.72-52.72 | 98.01 |
| DoCoMo@Office | 53.72 | 32.01-63.74 | 97.73 | 43.54 | 38.64-65.29 | 97.73 |
| au@Office | 43.52 | 30.52-72.97 | 97.73 | 46.50 | 39.38-61.73 | 97.72 |
| WiFi@Office | 50.37 | 39.24-61.74 | 97.72 | 50.97 | 42.68-60.58 | 97.72 |
| DoCoMo@mall | 52.57 | 37.57-72.81 | 98.03 | 57.21 | 32.46-62.56 | 98.03 |
| congested | 44.45 | 43.69-58.82 | 97.94 | 49.26 | 32.45-55.36 | 97.91 |
| bdp20 | 50.51 | 50.08-52.68 | 97.73 | 51.81 | 47.30-53.89 | 97.53 |
| bdp40 | 48.51 | 45.90-56.15 | 97.92 | 47.13 | 46.01-52.23 | 97.90 |
| queue10ms | 50.74 | 48.51-52.86 | 96.79 | 41.62 | 40.64-45.78 | 97.17 |
| queue5ms | 52.32 | 49.83-53.44 | 88.84 | 50.12 | 46.87-53.57 | 89.42 |
| queue2.5ms | 50.43 | 45.37-53.04 | 85.39 | 50.44 | 44.78-50.81 | 85.65 |
## CoDel standalone goodput (%)
| Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R |
|---|---|---|---|---|
| DSL | 88.11/96.20 | 73.34/94.20 | 87.85/96.61 | 70.06/94.91 |
| Home_WiFi | 50.29/93.48 | 35.48/88.80 | 53.88/95.15 | 35.80/91.26 |
| Public | 93.51/96.40 | 87.77/93.89 | 93.50/96.58 | 87.96/95.00 |
| Corporate_WiFi | 51.28/97.46 | 34.99/97.14 | 51.43/97.58 | 35.06/97.37 |
| LTE | 73.54/92.83 | 63.73/85.56 | 77.80/93.39 | 60.28/86.90 |
| 5G | 63.31/95.73 | 40.00/90.15 | 55.70/95.66 | 39.54/92.45 |
| LEO | 77.35/94.15 | 55.20/91.66 | 71.73/95.35 | 52.80/92.71 |
| DoCoMo@Office | 86.59/97.46 | 65.22/96.72 | 84.82/97.37 | 65.04/96.98 |
| au@Office | 81.62/97.56 | 61.10/97.34 | 73.84/97.56 | 61.17/97.42 |
| WiFi@Office | 71.61/97.71 | 52.16/97.70 | 73.39/97.71 | 52.29/97.70 |
| DoCoMo@mall | 91.22/96.87 | 88.71/96.53 | 89.83/96.78 | 83.64/96.22 |
| congested | 95.44/95.82 | 94.19/95.10 | 95.26/94.56 | 90.68/91.95 |
| bdp20 | 96.97/96.32 | 94.66/93.91 | 96.14/96.34 | 94.33/94.01 |
| bdp40 | 94.97/94.28 | 90.13/90.58 | 94.38/93.56 | 87.89/90.02 |
| queue10ms | 70.07/78.05 | 55.87/61.05 | 76.11/77.02 | 51.28/62.71 |
| queue5ms | 67.05/67.10 | 50.38/53.75 | 67.83/66.42 | 50.28/54.19 |
| queue2.5ms | 64.31/63.01 | 49.41/49.55 | 66.54/56.88 | 47.06/47.78 |
## Clean CoDel competition: second/RLT share (%)
| Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S |
|---|---|---|---|---|---|---|
| DSL | 49.49 | 47.37 | 48.76 | 51.37 | 53.88 | 51.89 |
| Home_WiFi | 50.52 | 49.97 | 50.63 | 50.43 | 50.87 | 50.34 |
| Public | 49.46 | 50.18 | 49.61 | 49.96 | 50.47 | 49.81 |
| Corporate_WiFi | 49.83 | 50.15 | 51.35 | 50.13 | 49.95 | 50.27 |
| LTE | 49.04 | 51.41 | 49.31 | 49.07 | 52.43 | 49.17 |
| 5G | 50.10 | 51.24 | 49.83 | 49.24 | 51.08 | 50.12 |
| LEO | 48.25 | 49.06 | 50.75 | 49.40 | 49.74 | 50.07 |
| DoCoMo@Office | 58.44 | 56.88 | 49.57 | 50.51 | 59.39 | 43.03 |
| au@Office | 51.09 | 53.91 | 50.53 | 50.58 | 51.66 | 49.08 |
| WiFi@Office | 49.01 | 49.91 | 50.54 | 49.57 | 50.04 | 50.31 |
| DoCoMo@mall | 50.33 | 50.75 | 50.69 | 49.37 | 50.68 | 50.86 |
| congested | 51.12 | 50.56 | 49.34 | 50.12 | 50.96 | 48.99 |
| bdp20 | 50.53 | 49.96 | 50.35 | 50.08 | 50.17 | 49.97 |
| bdp40 | 50.22 | 50.10 | 50.21 | 49.73 | 50.47 | 49.64 |
| queue10ms | 49.65 | 50.08 | 49.53 | 50.11 | 49.24 | 50.45 |
| queue5ms | 48.53 | 49.45 | 49.82 | 48.90 | 49.76 | 51.47 |
| queue2.5ms | 51.10 | 50.75 | 47.83 | 50.35 | 50.82 | 50.40 |
## Clean stock against 5%-loss RLT, CoDel: RLT share (%)
| Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S |
|---|---|---|---|---|
| DSL | 45.37 | 45.38 | 47.19 | 47.85 |
| Home_WiFi | 41.96 | 40.31 | 43.22 | 41.95 |
| Public | 48.85 | 49.08 | 48.99 | 48.98 |
| Corporate_WiFi | 34.84 | 37.35 | 36.68 | 38.45 |
| LTE | 44.74 | 45.85 | 49.08 | 46.63 |
| 5G | 41.71 | 41.72 | 48.54 | 44.89 |
| LEO | 45.06 | 45.33 | 47.48 | 47.93 |
| DoCoMo@Office | 39.80 | 37.91 | 43.05 | 40.75 |
| au@Office | 37.62 | 36.94 | 37.41 | 42.35 |
| WiFi@Office | 32.04 | 30.93 | 34.04 | 33.88 |
| DoCoMo@mall | 48.85 | 49.67 | 49.69 | 49.51 |
| congested | 48.21 | 48.68 | 48.71 | 47.90 |
| bdp20 | 48.55 | 48.79 | 49.86 | 48.04 |
| bdp40 | 48.80 | 47.44 | 47.69 | 47.85 |
| queue10ms | 42.78 | 41.06 | 41.87 | 42.43 |
| queue5ms | 40.58 | 42.24 | 42.14 | 41.23 |
| queue2.5ms | 41.06 | 41.68 | 41.13 | 42.79 |
## CoDel RLT self-competition at 5% loss (%)
| Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util |
|---|---|---|---|---|---|---|
| DSL | 50.30 | 48.17-51.16 | 97.90 | 49.04 | 47.30-53.86 | 97.94 |
| Home_WiFi | 57.50 | 37.57-57.54 | 97.25 | 54.36 | 50.01-56.38 | 97.49 |
| Public | 49.46 | 47.81-51.81 | 97.96 | 48.87 | 46.38-52.11 | 97.96 |
| Corporate_WiFi | 49.83 | 46.90-51.92 | 97.71 | 50.70 | 34.87-55.44 | 97.72 |
| LTE | 51.80 | 49.98-54.89 | 97.23 | 52.32 | 51.39-55.87 | 97.34 |
| 5G | 58.69 | 51.40-63.80 | 97.31 | 50.03 | 46.66-57.14 | 97.37 |
| LEO | 48.81 | 44.63-55.63 | 97.73 | 51.36 | 49.10-53.23 | 97.76 |
| DoCoMo@Office | 43.11 | 39.06-59.81 | 97.67 | 51.63 | 42.55-61.90 | 97.67 |
| au@Office | 51.66 | 45.92-52.09 | 97.71 | 41.04 | 35.72-61.19 | 97.72 |
| WiFi@Office | 47.21 | 40.01-58.77 | 97.72 | 54.56 | 51.30-60.29 | 97.72 |
| DoCoMo@mall | 49.75 | 46.15-53.58 | 97.95 | 51.58 | 47.52-53.48 | 97.95 |
| congested | 48.21 | 47.23-50.61 | 96.56 | 48.11 | 44.39-51.91 | 96.01 |
| bdp20 | 48.34 | 46.59-50.47 | 97.14 | 47.23 | 46.94-50.28 | 97.24 |
| bdp40 | 51.15 | 48.93-52.84 | 96.96 | 50.03 | 48.00-50.91 | 96.75 |
| queue10ms | 50.15 | 46.67-50.26 | 97.39 | 44.94 | 43.27-51.51 | 97.32 |
| queue5ms | 49.00 | 45.54-53.20 | 89.71 | 51.70 | 48.75-54.74 | 89.19 |
| queue2.5ms | 51.58 | 44.09-51.83 | 83.94 | 49.69 | 45.11-54.13 | 85.45 |
## RTT-adjusted GEO CoDel standalone goodput (%)
| Controller | Clean stock | Lossy stock | Lossy RLT |
|---|---|---|---|
| CUBIC | 85.84 | 77.87 | 84.56 |
| Cuback | 85.29 | 78.45 | 82.74 |
## RTT-adjusted GEO CoDel competition (%)
| Controller | Case | Flow 1 | Flow 2 | Util | Flow 2 share | Share range |
|---|---|---|---|---|---|---|
| CUBIC | stock_stock | 40.68 | 49.06 | 90.32 | 54.67 | 33.12-62.30 |
| CUBIC | stock_rlt | 24.26 | 65.93 | 90.18 | 73.10 | 55.31-75.39 |
| CUBIC | rlt_stock | 64.81 | 24.98 | 89.79 | 27.82 | 24.92-32.74 |
| CUBIC | clean_lossy | 26.77 | 62.26 | 89.21 | 70.26 | 53.14-72.94 |
| CUBIC | lossy_clean | 61.93 | 27.13 | 88.80 | 30.35 | 28.30-36.43 |
| CUBIC | self | 45.73 | 43.65 | 89.13 | 48.84 | 29.24-70.12 |
| Cuback | stock_stock | 44.93 | 44.68 | 90.07 | 49.74 | 38.46-57.87 |
| Cuback | stock_rlt | 25.40 | 64.20 | 89.39 | 71.65 | 60.48-75.52 |
| Cuback | rlt_stock | 60.26 | 28.98 | 89.47 | 32.47 | 25.47-47.93 |
| Cuback | clean_lossy | 28.71 | 60.04 | 88.88 | 67.65 | 46.43-70.32 |
| Cuback | lossy_clean | 62.31 | 25.96 | 88.51 | 29.41 | 27.26-54.74 |
| Cuback | self | 44.05 | 44.14 | 88.19 | 50.05 | 46.97-71.28 |
minRTT is the minimum over the connection lifetime and can cease to describe
the idle RTT of a path whose characteristics change. The smoothed-gate option
already tracks the minima of completed congestion-avoidance periods, but only
used that history for the drain gate. The full-queue viability and
recalibration gates continued to use lifetime minRTT, and high queue was
defined as halfway between minRTT and fullRTT.
Adopt the bottom-RTT construction from the ABBA draft:
bottom = max(period_min_smoothed - period_min_variance, minRTT)
bottom = min(bottom, current_period_min), when the latter exists
When QUICLY_CC_ACCEL_ADAPTATION_SMOOTHED_GATE is clear, bottom remains minRTT,
preserving the default floor selection. Use the selected bottom consistently
to:
* require fullRTT to exceed bottom by more than 10ms before accelerating;
* call out a high queue when smoothed RTT reaches bottom + 10ms; and
* scale the expected high-queue interval used to decide on recalibration.
The drain gate remains deliberately distinct. It uses one half of the period-
minimum variance and the current-period minimum so acceleration can recover
from jitter while continuing to drive the observed floor down.
Defining high queue as bottom + 10ms replaces the midpoint of bottom and
fullRTT. The midpoint can be very high when calibration slow start fills a deep
buffer, allowing recalibration even though a substantial queue remains. A
fixed distance from the estimated bottom instead asks whether the path has
stayed close enough to its recent idle RTT for long enough that the former
full-queue observation may no longer describe it.
Extend the tests to cover lifetime-minimum and smoothed bottom selection,
bounding by the current-period minimum, the fullRTT gate, and high-queue
observations under both modes.
build/default/test.t passes all 31 top-level groups.
Benchmark method
----------------
The full suite was run in both the default 0x2 mode and the I-D 0x6 mode
(RECALIBRATE | SMOOTHED_GATE). The simulator's stable RTT profiles do not
demonstrate the intended benefit on mobile paths with a varying idle RTT; they
check that enabling the I-D estimator remains safe under stable conditions.
The per-packet random-loss probability is selected so that a full pipe has a 5%
or 10% probability of at least one random loss per RTT. Standalone tests are
seven 100-second runs measuring the latter 50 seconds. Competition tests are
seven 160-second runs per flow order measuring the latter 80 seconds. Self-
competition uses five 320-second runs and reports the final 40-second window.
Loss placement varies between repetitions through the TLS-context random
callback. The RTT-adjusted GEO CoDel tests instead use a 5ms target, 600ms
interval, 1000-second runs, and the latter 500 seconds. All values are
percentages. S/R means stock/ABBA; S->R means stock is created first and ABBA
second; R->S is the reverse. The RLT label is retained from the benchmark
tooling used to collect these results.
Across the complete set, 0x6 has no systematic effect relative to 0x2 on these
stable paths:
| Scenario | Median 0x6 - 0x2 | Values within 2pp |
|---|---:|---:|
| Tail standalone ABBA goodput | +0.02pp | 68/72 |
| CoDel standalone ABBA goodput | +0.01pp | 62/68 |
| Clean tail ABBA share | +0.02pp | 48/72 |
| Clean CoDel ABBA share | +0.31pp | 58/68 |
| Lossy ABBA tail share | +0.22pp | 37/72 |
| Lossy ABBA CoDel share | -0.06pp | 53/68 |
| Tail self-competition utilization | 0.00pp | 35/36 |
| CoDel self-competition utilization | 0.00pp | 34/34 |
The competition-share distributions contain the existing profile and flow-
order variance, while utilization is stable. The only standalone ABBA changes
greater than 5pp are in tail-drop 10%-loss runs: LTE CUBIC improves by 6.76pp,
GEO CUBIC falls by 6.46pp, and GEO Cuback falls by 12.28pp. No CoDel standalone
ABBA result changes by more than 5pp.
Compared with the preceding midpoint high-queue gate, the RTT-adjusted GEO
CoDel safety result improves materially. Under 0x6, CUBIC ABBA receives 51.77%
when created second and 47.02% when created first, rather than about 73% and
72%. Cuback receives 63.09% and 62.88%, rather than about 72% and 68%. The
corresponding lossy standalone goodput is 80.25% for CUBIC and 80.63% for
Cuback. The more conservative gate also lowers utilization on the synthetic
5ms and 2.5ms tail-drop queues.
Complete default 0x2 results
----------------------------
## Tail-drop standalone goodput (%)
| Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R |
|---|---|---|---|---|
| DSL | 93.49/97.10 | 74.68/95.05 | 91.60/97.68 | 74.93/96.36 |
| Home_WiFi | 51.34/93.58 | 36.85/87.87 | 48.66/95.60 | 37.29/91.67 |
| Public | 97.89/98.03 | 96.05/95.31 | 98.03/98.01 | 94.94/97.36 |
| Corporate_WiFi | 53.22/97.49 | 33.42/97.13 | 47.80/97.60 | 33.64/97.38 |
| LTE | 83.13/96.28 | 61.72/87.63 | 80.92/96.80 | 65.74/91.48 |
| 5G | 60.14/93.96 | 41.34/92.17 | 56.34/96.38 | 44.98/94.06 |
| LEO | 80.83/95.20 | 60.59/91.22 | 77.26/97.05 | 61.91/94.10 |
| GEO | 98.01/96.01 | 92.45/91.67 | 95.54/97.84 | 80.71/97.18 |
| DoCoMo@Office | 89.23/97.68 | 65.32/97.22 | 95.30/97.80 | 74.25/97.37 |
| au@Office | 90.29/97.65 | 58.53/97.45 | 93.61/97.67 | 61.93/97.51 |
| WiFi@Office | 73.49/97.72 | 53.13/97.69 | 72.94/97.71 | 51.46/97.70 |
| DoCoMo@mall | 98.03/98.03 | 93.06/97.48 | 97.97/98.03 | 89.34/97.63 |
| congested | 97.93/97.91 | 97.85/97.81 | 97.89/97.87 | 97.47/97.83 |
| bdp20 | 97.14/97.68 | 96.38/96.20 | 97.64/97.52 | 96.14/96.16 |
| bdp40 | 97.74/97.80 | 92.50/95.48 | 97.34/97.62 | 94.74/94.52 |
| queue10ms | 73.36/76.55 | 54.33/65.12 | 74.72/78.24 | 55.35/66.16 |
| queue5ms | 68.50/63.52 | 50.60/54.38 | 68.50/65.63 | 52.80/54.37 |
| queue2.5ms | 68.11/56.13 | 51.17/46.91 | 65.03/54.41 | 49.36/46.07 |
## Clean tail-drop competition: second/RLT share (%)
| Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S |
|---|---|---|---|---|---|---|
| DSL | 48.98 | 51.59 | 48.37 | 49.44 | 50.71 | 46.64 |
| Home_WiFi | 49.39 | 47.39 | 49.48 | 49.60 | 51.96 | 52.11 |
| Public | 49.74 | 49.79 | 50.33 | 50.07 | 50.07 | 50.69 |
| Corporate_WiFi | 51.81 | 47.78 | 43.05 | 57.22 | 54.15 | 41.45 |
| LTE | 48.20 | 47.04 | 48.16 | 50.63 | 49.15 | 49.74 |
| 5G | 52.54 | 45.58 | 48.92 | 49.13 | 47.54 | 51.54 |
| LEO | 50.56 | 48.92 | 53.01 | 50.73 | 47.66 | 49.01 |
| GEO | 50.13 | 49.98 | 50.03 | 50.03 | 49.90 | 50.12 |
| DoCoMo@Office | 50.03 | 49.96 | 50.06 | 50.10 | 50.51 | 50.02 |
| au@Office | 51.41 | 49.81 | 50.24 | 52.05 | 49.83 | 47.86 |
| WiFi@Office | 52.02 | 54.47 | 46.68 | 54.73 | 54.80 | 45.55 |
| DoCoMo@mall | 49.74 | 49.71 | 50.32 | 49.86 | 49.79 | 50.19 |
| congested | 51.10 | 49.17 | 52.64 | 51.79 | 50.97 | 50.37 |
| bdp20 | 49.94 | 51.95 | 50.13 | 49.28 | 49.86 | 49.04 |
| bdp40 | 50.55 | 50.48 | 49.20 | 49.96 | 52.99 | 49.06 |
| queue10ms | 51.44 | 59.20 | 50.95 | 49.91 | 60.77 | 49.41 |
| queue5ms | 50.05 | 59.20 | 58.67 | 49.29 | 59.29 | 59.70 |
| queue2.5ms | 49.85 | 53.89 | 54.63 | 48.53 | 53.12 | 53.53 |
## Clean stock against 5%-loss RLT, tail drop: RLT share (%)
| Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S |
|---|---|---|---|---|
| DSL | 34.94 | 35.24 | 30.27 | 33.65 |
| Home_WiFi | 31.13 | 28.83 | 31.99 | 29.51 |
| Public | 29.00 | 26.47 | 29.36 | 28.66 |
| Corporate_WiFi | 17.36 | 16.56 | 17.12 | 16.37 |
| LTE | 29.02 | 27.33 | 29.20 | 30.19 |
| 5G | 22.05 | 22.43 | 19.60 | 22.34 |
| LEO | 25.62 | 26.80 | 24.20 | 22.23 |
| GEO | 36.68 | 42.70 | 41.30 | 38.97 |
| DoCoMo@Office | 20.80 | 26.71 | 22.67 | 24.41 |
| au@Office | 20.24 | 21.41 | 18.20 | 21.67 |
| WiFi@Office | 24.66 | 23.76 | 24.80 | 24.51 |
| DoCoMo@mall | 30.65 | 31.13 | 29.17 | 29.53 |
| congested | 44.36 | 47.18 | 41.98 | 40.65 |
| bdp20 | 49.28 | 50.23 | 48.52 | 48.25 |
| bdp40 | 48.25 | 46.10 | 47.12 | 44.77 |
| queue10ms | 53.68 | 40.96 | 52.68 | 45.41 |
| queue5ms | 52.57 | 51.83 | 53.66 | 53.58 |
| queue2.5ms | 48.81 | 49.01 | 48.74 | 48.60 |
## Tail-drop RLT self-competition at 5% loss (%)
| Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util |
|---|---|---|---|---|---|---|
| DSL | 49.34 | 42.23-56.28 | 98.02 | 48.11 | 45.20-54.47 | 98.02 |
| Home_WiFi | 51.31 | 49.56-52.98 | 97.44 | 55.44 | 54.57-57.13 | 97.62 |
| Public | 52.69 | 37.48-58.39 | 98.02 | 51.11 | 29.91-57.64 | 98.02 |
| Corporate_WiFi | 47.43 | 45.56-54.28 | 97.72 | 50.79 | 39.57-57.50 | 97.72 |
| LTE | 43.28 | 39.71-46.70 | 98.02 | 51.18 | 43.17-55.27 | 98.02 |
| 5G | 53.44 | 41.01-60.60 | 97.59 | 50.55 | 47.28-50.91 | 97.67 |
| LEO | 53.42 | 40.12-68.15 | 98.03 | 49.93 | 38.78-52.56 | 98.03 |
| GEO | 47.47 | 36.79-62.52 | 98.01 | 61.44 | 50.98-63.80 | 97.99 |
| DoCoMo@Office | 54.72 | 49.20-79.87 | 97.72 | 49.08 | 44.18-54.03 | 97.72 |
| au@Office | 47.15 | 24.40-62.21 | 97.73 | 45.26 | 28.73-53.38 | 97.73 |
| WiFi@Office | 49.26 | 48.10-53.79 | 97.72 | 51.19 | 50.94-55.00 | 97.72 |
| DoCoMo@mall | 57.34 | 41.81-62.45 | 98.03 | 45.15 | 38.18-58.13 | 98.03 |
| congested | 51.48 | 45.81-61.36 | 97.76 | 49.91 | 46.90-51.28 | 97.89 |
| bdp20 | 52.12 | 49.34-55.99 | 97.73 | 49.24 | 46.68-50.00 | 97.63 |
| bdp40 | 52.07 | 49.73-53.01 | 97.90 | 51.31 | 45.47-52.05 | 97.76 |
| queue10ms | 53.39 | 49.77-54.22 | 95.64 | 50.63 | 48.14-54.41 | 96.02 |
| queue5ms | 50.77 | 48.57-51.50 | 83.05 | 49.29 | 48.74-52.62 | 83.08 |
| queue2.5ms | 50.55 | 47.39-51.08 | 73.61 | 50.06 | 47.75-52.15 | 74.44 |
## CoDel standalone goodput (%)
| Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R |
|---|---|---|---|---|
| DSL | 89.37/96.25 | 72.41/94.21 | 86.28/96.86 | 70.61/95.05 |
| Home_WiFi | 54.50/93.42 | 36.69/88.53 | 50.04/95.05 | 33.55/90.91 |
| Public | 93.81/95.76 | 87.72/92.95 | 94.28/96.77 | 87.21/95.15 |
| Corporate_WiFi | 51.49/97.45 | 34.48/97.09 | 49.41/97.59 | 33.34/97.35 |
| LTE | 77.08/91.52 | 57.29/83.30 | 80.29/94.34 | 57.22/89.18 |
| 5G | 55.51/94.86 | 42.38/89.81 | 56.64/95.08 | 41.21/91.42 |
| LEO | 77.16/94.56 | 60.54/88.84 | 73.60/95.48 | 54.64/92.64 |
| DoCoMo@Office | 80.60/97.34 | 72.05/96.94 | 88.57/97.58 | 66.72/97.09 |
| au@Office | 80.63/97.47 | 58.28/97.30 | 75.69/97.57 | 47.67/97.36 |
| WiFi@Office | 71.96/97.72 | 50.36/97.69 | 72.83/97.72 | 52.90/97.70 |
| DoCoMo@mall | 91.97/97.22 | 84.67/96.03 | 91.55/97.05 | 83.84/96.08 |
| congested | 95.52/95.52 | 93.33/91.36 | 95.66/95.08 | 93.05/91.79 |
| bdp20 | 96.68/96.62 | 94.05/93.55 | 96.08/96.36 | 94.53/93.63 |
| bdp40 | 94.53/93.84 | 89.48/91.13 | 93.98/94.86 | 91.21/88.97 |
| queue10ms | 75.23/76.46 | 55.08/66.60 | 71.12/74.63 | 53.20/63.23 |
| queue5ms | 70.60/64.69 | 49.66/55.46 | 68.08/64.90 | 50.05/55.50 |
| queue2.5ms | 66.09/55.69 | 47.92/46.57 | 67.46/58.02 | 49.61/47.95 |
## Clean CoDel competition: second/RLT share (%)
| Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S |
|---|---|---|---|---|---|---|
| DSL | 48.45 | 49.28 | 50.94 | 49.68 | 48.65 | 49.28 |
| Home_WiFi | 50.05 | 50.76 | 49.42 | 49.68 | 50.48 | 50.30 |
| Public | 50.45 | 50.00 | 50.25 | 49.62 | 49.64 | 50.16 |
| Corporate_WiFi | 50.48 | 49.67 | 49.92 | 50.18 | 50.67 | 50.12 |
| LTE | 49.84 | 50.26 | 50.56 | 49.78 | 51.07 | 50.04 |
| 5G | 49.44 | 49.84 | 49.44 | 50.47 | 51.77 | 48.62 |
| LEO | 50.07 | 49.64 | 49.12 | 51.35 | 50.69 | 50.46 |
| DoCoMo@Office | 59.83 | 62.80 | 43.46 | 48.90 | 60.34 | 42.28 |
| au@Office | 46.58 | 40.17 | 46.51 | 47.58 | 53.45 | 47.16 |
| WiFi@Office | 49.51 | 49.72 | 50.81 | 49.56 | 49.83 | 50.12 |
| DoCoMo@mall | 49.41 | 50.79 | 48.98 | 51.16 | 51.14 | 49.87 |
| congested | 49.41 | 49.15 | 50.34 | 49.40 | 50.37 | 50.14 |
| bdp20 | 49.96 | 49.45 | 49.03 | 49.68 | 49.74 | 49.09 |
| bdp40 | 51.21 | 49.76 | 49.32 | 50.08 | 49.43 | 49.85 |
| queue10ms | 49.52 | 49.81 | 49.27 | 50.69 | 50.77 | 48.94 |
| queue5ms | 50.64 | 57.99 | 58.18 | 49.19 | 57.48 | 58.73 |
| queue2.5ms | 51.35 | 53.68 | 53.54 | 50.28 | 54.22 | 53.53 |
## Clean stock against 5%-loss RLT, CoDel: RLT share (%)
| Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S |
|---|---|---|---|---|
| DSL | 47.40 | 45.63 | 47.05 | 44.02 |
| Home_WiFi | 40.96 | 40.58 | 43.72 | 41.81 |
| Public | 49.40 | 48.56 | 49.51 | 48.19 |
| Corporate_WiFi | 34.15 | 33.77 | 34.42 | 37.10 |
| LTE | 46.66 | 45.45 | 50.51 | 46.65 |
| 5G | 43.47 | 41.99 | 49.11 | 46.79 |
| LEO | 45.21 | 42.35 | 48.27 | 47.63 |
| DoCoMo@Office | 39.30 | 35.43 | 49.74 | 39.42 |
| au@Office | 35.33 | 33.71 | 40.87 | 36.61 |
| WiFi@Office | 32.11 | 33.55 | 32.05 | 31.75 |
| DoCoMo@mall | 49.30 | 49.45 | 49.46 | 49.15 |
| congested | 48.79 | 50.29 | 49.65 | 49.32 |
| bdp20 | 47.82 | 49.11 | 48.24 | 48.07 |
| bdp40 | 48.69 | 48.17 | 49.19 | 48.27 |
| queue10ms | 42.04 | 41.85 | 42.71 | 44.35 |
| queue5ms | 52.58 | 52.59 | 52.56 | 53.17 |
| queue2.5ms | 49.87 | 48.75 | 48.30 | 48.24 |
## CoDel RLT self-competition at 5% loss (%)
| Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util |
|---|---|---|---|---|---|---|
| DSL | 50.76 | 44.71-51.28 | 97.94 | 49.79 | 49.03-55.58 | 97.95 |
| Home_WiFi | 51.49 | 50.07-55.47 | 97.35 | 54.32 | 49.07-56.07 | 97.49 |
| Public | 49.27 | 45.50-50.84 | 97.91 | 49.38 | 47.47-52.38 | 97.92 |
| Corporate_WiFi | 47.42 | 45.43-50.77 | 97.71 | 50.38 | 49.20-52.07 | 97.72 |
| LTE | 54.02 | 47.62-58.09 | 97.45 | 52.82 | 51.16-57.31 | 97.41 |
| 5G | 52.39 | 47.40-56.02 | 97.22 | 51.26 | 45.93-57.36 | 97.29 |
| LEO | 49.99 | 46.94-53.42 | 97.77 | 51.72 | 49.16-54.33 | 97.69 |
| DoCoMo@Office | 59.93 | 42.96-65.29 | 97.67 | 57.03 | 46.74-66.25 | 97.64 |
| au@Office | 50.94 | 38.90-56.90 | 97.71 | 51.23 | 41.66-58.53 | 97.71 |
| WiFi@Office | 50.29 | 49.15-52.59 | 97.72 | 49.98 | 44.67-50.69 | 97.72 |
| DoCoMo@mall | 49.58 | 47.28-51.96 | 97.84 | 51.33 | 50.29-54.40 | 97.98 |
| congested | 50.61 | 46.62-51.77 | 96.63 | 50.43 | 47.84-53.23 | 95.78 |
| bdp20 | 50.03 | 46.37-50.91 | 97.29 | 47.37 | 46.84-51.35 | 97.29 |
| bdp40 | 50.34 | 49.49-51.87 | 96.97 | 49.22 | 43.90-50.27 | 96.84 |
| queue10ms | 49.48 | 48.56-50.54 | 97.20 | 46.11 | 43.87-50.73 | 97.28 |
| queue5ms | 48.96 | 48.55-52.45 | 83.43 | 50.03 | 46.94-51.49 | 84.77 |
| queue2.5ms | 49.58 | 49.00-52.62 | 75.57 | 50.15 | 48.90-51.07 | 75.84 |
## RTT-adjusted GEO CoDel standalone goodput (%)
| Controller | Clean stock | Lossy stock | Lossy RLT |
|---|---|---|---|
| CUBIC | 85.84 | 78.70 | 80.19 |
| Cuback | 85.29 | 77.78 | 80.25 |
## RTT-adjusted GEO CoDel competition (%)
| Controller | Case | Flow 1 | Flow 2 | Util | Flow 2 share | Share range |
|---|---|---|---|---|---|---|
| CUBIC | stock_stock | 46.37 | 43.32 | 90.06 | 48.30 | 34.98-64.13 |
| CUBIC | stock_rlt | 49.34 | 41.39 | 90.73 | 45.62 | 35.46-54.94 |
| CUBIC | rlt_stock | 42.83 | 47.29 | 90.52 | 52.48 | 40.83-63.59 |
| CUBIC | clean_lossy | 56.19 | 33.64 | 89.88 | 37.45 | 33.94-53.53 |
| CUBIC | lossy_clean | 35.91 | 53.77 | 89.76 | 59.96 | 35.67-62.94 |
| CUBIC | self | 42.27 | 46.89 | 88.67 | 52.88 | 48.35-56.52 |
| Cuback | stock_stock | 47.25 | 43.34 | 90.26 | 47.85 | 39.03-68.14 |
| Cuback | stock_rlt | 36.66 | 52.66 | 89.54 | 58.96 | 51.03-68.75 |
| Cuback | rlt_stock | 57.70 | 31.56 | 89.50 | 35.36 | 31.08-39.95 |
| Cuback | clean_lossy | 39.66 | 48.42 | 88.68 | 55.40 | 48.61-59.84 |
| Cuback | lossy_clean | 48.48 | 40.07 | 88.55 | 45.25 | 37.07-57.18 |
| Cuback | self | 46.51 | 42.92 | 88.85 | 47.99 | 46.24-59.01 |
Complete I-D 0x6 results
-------------------------
## Tail-drop standalone goodput (%)
| Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R |
|---|---|---|---|---|
| DSL | 93.54/97.20 | 73.26/94.61 | 93.30/97.81 | 73.79/96.30 |
| Home_WiFi | 53.61/93.78 | 37.02/88.26 | 54.95/95.16 | 34.95/91.40 |
| Public | 98.03/98.03 | 94.88/97.19 | 97.98/98.03 | 96.19/97.75 |
| Corporate_WiFi | 48.31/97.48 | 36.18/97.26 | 49.63/97.59 | 36.19/97.35 |
| LTE | 83.11/96.49 | 62.11/94.39 | 88.74/97.15 | 64.19/92.03 |
| 5G | 54.84/95.90 | 40.01/92.30 | 62.79/96.39 | 41.45/93.65 |
| LEO | 79.70/96.60 | 54.00/92.71 | 76.85/97.28 | 55.52/94.68 |
| GEO | 97.88/94.68 | 89.63/85.21 | 98.01/97.57 | 86.66/84.90 |
| DoCoMo@Office | 93.69/97.77 | 72.01/97.23 | 95.34/97.78 | 71.24/97.42 |
| au@Office | 81.45/97.63 | 54.39/97.46 | 94.67/97.69 | 51.51/97.57 |
| WiFi@Office | 73.21/97.72 | 52.12/97.70 | 71.00/97.72 | 51.97/97.70 |
| DoCoMo@mall | 98.03/98.03 | 94.55/97.45 | 98.03/98.03 | 92.78/97.83 |
| congested | 97.89/97.97 | 97.83/97.79 | 97.95/98.01 | 97.55/97.83 |
| bdp20 | 97.56/97.52 | 96.56/96.64 | 97.42/97.28 | 95.80/96.28 |
| bdp40 | 97.80/97.59 | 95.74/94.24 | 97.40/97.50 | 95.43/94.61 |
| queue10ms | 73.08/80.02 | 54.25/66.33 | 74.52/78.01 | 50.18/66.29 |
| queue5ms | 66.53/65.17 | 50.18/55.29 | 67.96/64.88 | 49.90/56.13 |
| queue2.5ms | 62.67/55.18 | 49.62/47.91 | 65.52/56.20 | 49.55/46.41 |
## Clean tail-drop competition: second/RLT share (%)
| Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S |
|---|---|---|---|---|---|---|
| DSL | 49.74 | 53.00 | 51.40 | 50.84 | 50.67 | 53.38 |
| Home_WiFi | 47.40 | 49.17 | 49.88 | 49.18 | 48.37 | 49.73 |
| Public | 49.63 | 49.57 | 49.86 | 49.95 | 49.97 | 50.28 |
| Corporate_WiFi | 54.71 | 52.72 | 48.96 | 58.46 | 49.59 | 42.51 |
| LTE | 49.70 | 50.39 | 49.95 | 48.96 | 49.99 | 53.45 |
| 5G | 53.14 | 49.79 | 50.29 | 50.17 | 47.41 | 49.24 |
| LEO | 48.90 | 53.44 | 50.46 | 49.53 | 49.33 | 49.46 |
| GEO | 49.98 | 49.98 | 50.05 | 50.01 | 49.89 | 49.96 |
| DoCoMo@Office | 50.03 | 49.91 | 49.87 | 49.96 | 49.91 | 50.09 |
| au@Office | 51.47 | 49.91 | 46.86 | 49.98 | 52.18 | 47.86 |
| WiFi@Office | 55.66 | 64.52 | 62.82 | 52.86 | 63.71 | 59.89 |
| DoCoMo@mall | 49.79 | 49.60 | 50.24 | 49.76 | 49.82 | 50.24 |
| congested | 51.56 | 50.00 | 49.06 | 49.43 | 45.58 | 49.07 |
| bdp20 | 50.52 | 50.49 | 48.54 | 49.56 | 51.01 | 50.19 |
| bdp40 | 50.28 | 48.79 | 48.94 | 52.79 | 49.99 | 50.44 |
| queue10ms | 51.35 | 59.10 | 59.71 | 49.86 | 59.45 | 59.18 |
| queue5ms | 49.13 | 58.75 | 59.33 | 48.44 | 57.99 | 58.80 |
| queue2.5ms | 48.55 | 53.53 | 53.64 | 50.75 | 53.24 | 54.42 |
## Clean stock against 5%-loss RLT, tail drop: RLT share (%)
| Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S |
|---|---|---|---|---|
| DSL | 35.34 | 32.99 | 36.73 | 36.33 |
| Home_WiFi | 31.14 | 31.64 | 30.83 | 30.49 |
| Public | 33.08 | 31.62 | 32.50 | 28.18 |
| Corporate_WiFi | 28.25 | 28.25 | 26.53 | 26.86 |
| LTE | 31.47 | 27.39 | 28.09 | 28.15 |
| 5G | 20.65 | 16.93 | 19.33 | 19.33 |
| LEO | 24.05 | 24.02 | 24.99 | 24.60 |
| GEO | 42.00 | 33.98 | 38.08 | 40.25 |
| DoCoMo@Office | 21.98 | 22.29 | 20.30 | 21.81 |
| au@Office | 21.15 | 17.63 | 17.42 | 15.18 |
| WiFi@Office | 33.08 | 32.91 | 33.83 | 33.61 |
| DoCoMo@mall | 25.23 | 28.92 | 23.08 | 30.57 |
| congested | 43.96 | 47.52 | 41.55 | 45.71 |
| bdp20 | 48.29 | 49.35 | 48.74 | 48.62 |
| bdp40 | 46.97 | 46.78 | 46.78 | 46.14 |
| queue10ms | 53.23 | 51.86 | 52.76 | 53.01 |
| queue5ms | 52.17 | 53.38 | 52.81 | 53.28 |
| queue2.5ms | 48.70 | 49.37 | 48.97 | 49.41 |
## Tail-drop RLT self-competition at 5% loss (%)
| Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util |
|---|---|---|---|---|---|---|
| DSL | 55.53 | 48.63-58.68 | 98.02 | 47.05 | 45.27-54.50 | 98.02 |
| Home_WiFi | 48.11 | 45.86-58.51 | 97.40 | 51.41 | 48.74-52.77 | 97.55 |
| Public | 45.23 | 36.00-53.77 | 98.03 | 46.36 | 32.55-55.53 | 98.03 |
| Corporate_WiFi | 45.95 | 43.20-47.68 | 97.71 | 48.73 | 47.62-59.79 | 97.72 |
| LTE | 52.68 | 45.05-54.54 | 98.03 | 47.13 | 44.31-50.16 | 98.03 |
| 5G | 52.92 | 42.53-63.27 | 97.51 | 48.47 | 43.57-65.56 | 97.71 |
| LEO | 49.20 | 32.43-60.47 | 98.03 | 52.61 | 42.44-58.57 | 98.03 |
| GEO | 46.52 | 32.91-54.07 | 98.00 | 47.30 | 20.36-68.73 | 97.97 |
| DoCoMo@Office | 55.17 | 38.90-69.60 | 97.72 | 41.23 | 36.08-61.40 | 97.73 |
| au@Office | 63.54 | 43.66-67.50 | 97.73 | 51.62 | 40.62-78.28 | 97.73 |
| WiFi@Office | 46.75 | 45.32-49.87 | 97.72 | 50.85 | 50.14-53.89 | 97.72 |
| DoCoMo@mall | 50.63 | 45.99-61.02 | 98.03 | 54.21 | 46.46-68.83 | 98.03 |
| congested | 56.74 | 45.10-60.66 | 97.84 | 54.36 | 46.91-57.45 | 97.79 |
| bdp20 | 49.56 | 45.39-52.29 | 97.81 | 49.22 | 45.88-51.81 | 97.81 |
| bdp40 | 51.28 | 49.54-53.62 | 97.86 | 50.21 | 42.84-52.82 | 97.91 |
| queue10ms | 49.62 | 47.52-54.82 | 95.17 | 51.04 | 49.89-51.90 | 94.92 |
| queue5ms | 49.34 | 47.34-51.71 | 83.58 | 49.05 | 48.64-51.69 | 82.53 |
| queue2.5ms | 51.72 | 50.14-52.31 | 75.68 | 48.64 | 47.50-50.46 | 72.90 |
## CoDel standalone goodput (%)
| Profile | CUBIC 5% S/R | CUBIC 10% S/R | Cuback 5% S/R | Cuback 10% S/R |
|---|---|---|---|---|
| DSL | 85.71/96.29 | 72.92/94.12 | 87.14/96.73 | 75.61/94.93 |
| Home_WiFi | 47.86/93.50 | 37.29/86.93 | 50.45/95.16 | 36.16/91.51 |
| Public | 94.25/95.58 | 89.55/94.36 | 92.38/97.04 | 87.44/95.82 |
| Corporate_WiFi | 52.09/97.45 | 33.56/97.16 | 53.59/97.60 | 36.74/97.34 |
| LTE | 81.45/92.22 | 63.27/87.76 | 73.90/92.16 | 62.75/88.60 |
| 5G | 62.19/95.56 | 44.14/89.42 | 53.50/95.20 | 43.00/92.07 |
| LEO | 74.25/94.56 | 53.82/91.04 | 75.13/95.85 | 56.10/91.76 |
| DoCoMo@Office | 80.13/97.35 | 72.34/96.94 | 86.72/97.55 | 68.32/97.01 |
| au@Office | 78.49/97.56 | 55.42/97.36 | 70.56/97.57 | 51.04/97.35 |
| WiFi@Office | 69.95/97.71 | 51.56/97.70 | 72.46/97.71 | 51.28/97.70 |
| DoCoMo@mall | 91.48/97.05 | 83.87/96.15 | 91.34/97.07 | 83.27/96.36 |
| congested | 94.88/95.02 | 90.96/93.35 | 94.50/94.82 | 92.43/92.55 |
| bdp20 | 96.28/96.42 | 94.23/94.33 | 96.32/96.18 | 94.37/93.59 |
| bdp40 | 93.96/94.55 | 88.12/91.61 | 94.44/94.97 | 88.72/89.96 |
| queue10ms | 74.92/76.44 | 56.50/65.31 | 73.22/77.71 | 55.69/64.46 |
| queue5ms | 70.78/64.82 | 51.72/55.75 | 66.80/64.46 | 49.84/53.47 |
| queue2.5ms | 65.93/55.66 | 48.64/47.37 | 64.58/54.86 | 48.89/47.35 |
## Clean CoDel competition: second/RLT share (%)
| Profile | CUBIC S/S | CUBIC S->R | CUBIC R->S | Cuback S/S | Cuback S->R | Cuback R->S |
|---|---|---|---|---|---|---|
| DSL | 49.98 | 48.24 | 49.44 | 49.57 | 51.11 | 53.79 |
| Home_WiFi | 49.98 | 49.14 | 50.23 | 50.38 | 49.49 | 49.25 |
| Public | 52.00 | 49.66 | 48.94 | 49.73 | 51.21 | 50.88 |
| Corporate_WiFi | 48.87 | 48.21 | 50.60 | 49.09 | 50.32 | 49.89 |
| LTE | 51.19 | 49.61 | 50.03 | 50.46 | 51.76 | 50.65 |
| 5G | 49.87 | 50.35 | 50.98 | 50.58 | 50.31 | 48.72 |
| LEO | 51.44 | 49.33 | 50.49 | 48.29 | 49.14 | 50.22 |
| DoCoMo@Office | 59.76 | 51.85 | 40.96 | 52.14 | 53.04 | 52.25 |
| au@Office | 54.23 | 45.86 | 47.19 | 45.67 | 53.78 | 59.50 |
| WiFi@Office | 49.22 | 49.64 | 50.30 | 49.79 | 49.63 | 50.43 |
| DoCoMo@mall | 49.43 | 49.96 | 50.08 | 50.99 | 50.56 | 51.11 |
| congested | 49.94 | 51.32 | 49.57 | 50.08 | 49.59 | 50.79 |
| bdp20 | 50.85 | 49.97 | 49.52 | 50.76 | 50.33 | 49.70 |
| bdp40 | 50.05 | 50.18 | 49.45 | 49.08 | 49.26 | 49.63 |
| queue10ms | 49.71 | 49.93 | 50.54 | 52.79 | 50.87 | 51.18 |
| queue5ms | 49.67 | 58.43 | 58.88 | 49.14 | 59.00 | 59.96 |
| queue2.5ms | 49.49 | 53.79 | 54.03 | 50.96 | 53.90 | 53.92 |
## Clean stock against 5%-loss RLT, CoDel: RLT share (%)
| Profile | CUBIC S->R | CUBIC R->S | Cuback S->R | Cuback R->S |
|---|---|---|---|---|
| DSL | 45.90 | 45.85 | 46.10 | 46.02 |
| Home_WiFi | 40.80 | 40.50 | 43.71 | 41.63 |
| Public | 47.48 | 47.94 | 50.48 | 48.90 |
| Corporate_WiFi | 34.97 | 37.39 | 39.38 | 39.39 |
| LTE | 44.84 | 46.08 | 50.45 | 47.65 |
| 5G | 42.79 | 44.43 | 49.01 | 44.44 |
| LEO | 43.75 | 44.73 | 47.83 | 47.48 |
| DoCoMo@Office | 48.82 | 33.37 | 46.10 | 41.60 |
| au@Office | 38.48 | 37.03 | 38.76 | 42.30 |
| WiFi@Office | 33.45 | 33.35 | 33.20 | 33.00 |
| DoCoMo@mall | 47.96 | 48.80 | 49.92 | 49.60 |
| congested | 48.72 | 50.06 | 48.54 | 49.10 |
| bdp20 | 48.18 | 48.52 | 48.90 | 48.89 |
| bdp40 | 48.36 | 47.94 | 48.61 | 47.84 |
| queue10ms | 42.83 | 42.39 | 42.72 | 42.11 |
| queue5ms | 52.23 | 52.17 | 52.03 | 53.72 |
| queue2.5ms | 49.35 | 49.46 | 49.19 | 49.16 |
## CoDel RLT self-competition at 5% loss (%)
| Profile | CUBIC median | CUBIC range | CUBIC util | Cuback median | Cuback range | Cuback util |
|---|---|---|---|---|---|---|
| DSL | 52.33 | 50.99-52.92 | 97.91 | 48.90 | 45.80-49.84 | 97.94 |
| Home_WiFi | 51.21 | 49.93-58.51 | 97.23 | 52.70 | 50.43-54.43 | 97.52 |
| Public | 49.98 | 47.79-52.33 | 97.94 | 47.28 | 46.65-51.16 | 97.97 |
| Corporate_WiFi | 49.96 | 44.57-55.76 | 97.71 | 49.70 | 44.95-52.02 | 97.72 |
| LTE | 53.18 | 50.71-55.25 | 97.16 | 52.83 | 47.06-55.09 | 97.23 |
| 5G | 52.37 | 46.64-56.59 | 97.39 | 52.62 | 52.04-59.36 | 97.40 |
| LEO | 53.15 | 46.84-55.35 | 97.68 | 50.49 | 47.69-53.70 | 97.71 |
| DoCoMo@Office | 50.35 | 36.01-62.63 | 97.66 | 53.51 | 46.36-55.56 | 97.66 |
| au@Office | 42.61 | 38.49-45.34 | 97.72 | 46.22 | 41.71-61.31 | 97.71 |
| WiFi@Office | 50.65 | 47.06-52.38 | 97.72 | 50.12 | 50.06-55.61 | 97.72 |
| DoCoMo@mall | 49.69 | 48.63-51.69 | 97.97 | 49.00 | 47.17-51.62 | 97.95 |
| congested | 48.91 | 48.16-50.79 | 96.86 | 51.77 | 48.30-55.50 | 96.46 |
| bdp20 | 50.71 | 48.88-52.14 | 97.26 | 50.32 | 48.30-51.46 | 97.26 |
| bdp40 | 50.71 | 49.40-53.04 | 96.94 | 48.73 | 47.89-52.26 | 96.67 |
| queue10ms | 48.43 | 45.57-51.12 | 95.76 | 50.38 | 46.90-54.58 | 96.11 |
| queue5ms | 50.80 | 49.02-53.32 | 84.05 | 49.53 | 48.99-51.50 | 82.99 |
| queue2.5ms | 49.11 | 48.67-51.14 | 75.05 | 49.61 | 46.83-53.29 | 74.24 |
## RTT-adjusted GEO CoDel standalone goodput (%)
| Controller | Clean stock | Lossy stock | Lossy RLT |
|---|---|---|---|
| CUBIC | 85.84 | 78.20 | 80.25 |
| Cuback | 85.28 | 77.38 | 80.63 |
## RTT-adjusted GEO CoDel competition (%)
| Controller | Case | Flow 1 | Flow 2 | Util | Flow 2 share | Share range |
|---|---|---|---|---|---|---|
| CUBIC | stock_stock | 44.78 | 45.54 | 90.32 | 50.42 | 37.69-67.57 |
| CUBIC | stock_rlt | 43.81 | 47.02 | 90.30 | 51.77 | 43.78-67.16 |
| CUBIC | rlt_stock | 42.70 | 48.10 | 90.60 | 52.98 | 45.59-55.09 |
| CUBIC | clean_lossy | 48.47 | 41.60 | 90.07 | 46.19 | 33.28-53.02 |
| CUBIC | lossy_clean | 36.78 | 53.31 | 90.09 | 59.18 | 45.33-66.01 |
| CUBIC | self | 40.90 | 48.31 | 89.01 | 54.15 | 40.94-59.06 |
| Cuback | stock_stock | 43.29 | 47.36 | 89.89 | 52.24 | 41.65-58.86 |
| Cuback | stock_rlt | 32.88 | 56.21 | 89.58 | 63.09 | 52.77-66.38 |
| Cuback | rlt_stock | 56.61 | 33.42 | 89.39 | 37.12 | 29.27-43.42 |
| Cuback | clean_lossy | 42.75 | 46.81 | 88.69 | 52.27 | 36.72-62.21 |
| Cuback | lossy_clean | 48.50 | 39.76 | 88.27 | 45.05 | 35.26-58.94 |
| Cuback | self | 40.98 | 48.04 | 88.56 | 53.96 | 45.70-57.33 |
Add cumulative counters for congestion-avoidance CWND growth, the portion selected by accelerated increase, accelerated periods, ECN-terminated accelerated periods, and recalibrations. Export the retained full RTT and current and past period-minimum estimates alongside those counters. Track whether Cuback's active bytes-per-MTU interval was selected by ABBA so that growth is attributed when the interval completes. Preserve this pending attribution and the active-period bit across late-ACK undo, while leaving the cumulative observations intact. Use a small local EWMA for the optional smoothed period-minimum gate instead of embedding a general QUIC RTT estimator. The exported variance uses a large positive sentinel when smoothing is disabled, and the recalibration counter uses UINT64_MAX when recalibration is unavailable. Extend the CUBIC and Cuback tests to cover growth attribution, period and ECN counts, recalibration counts, estimator updates, and disabled-mode sentinels.
ABBA now maintains its period-minimum EWMA locally and no longer needs to customize the initial variance of quicly_rtt_t. Remove the unused wrapper and its dedicated test, restoring the ordinary RTT estimator API and implementation to the shape on master.
Recalibration is useful only when accelerated increase indicates that the bottleneck might be underutilized. Track the CWND growth selected by ABBA during each congestion-avoidance period and require it to reach one quarter of CWND times the latest reduction fraction before returning to calibration slow start. Use the loss or ECN beta corresponding to the congestion event that opened the period. Replace the former accel_in_current_period bit with the byte counter. Continue to use its zero-to-nonzero transition for num_accel_periods, reset it at period boundaries, and preserve it through late-ACK undo as part of the accelerated-adaptation snapshot. Evaluate the high-queue observation before the new suppression predicate so that an insufficient-gain period does not hide evidence that the queue remains occupied. Extend the congestion-control tests to cover accumulation, loss and ECN thresholds, period reset, ECN accounting, and restoration by late-ACK undo. build/default/test.t passes all 31 top-level groups.
Recalibration slow start deliberately probes beyond the CWND at which ABBA decided that the path might have changed. A congestion signal ending that probe is expected to be synchronous with competing flows. Retain the CWND at which recalibration began and establish the next congestion-avoidance epoch as if this flow had received the signal there: reduce the retained CWND by the ordinary loss or ECN beta and use it as Wmax. This avoids retaining the probe peak while competing flows reduce their established share. The policy state reset performed on entering recalibration continues to suppress Fast Convergence. Establish the expected high-RTT interval before evaluating the queue and gain guards. When fullRTT clears the high-queue threshold, continue to require ABBA to recover one quarter of the latest reduction before recalibrating. When fullRTT does not clear that threshold, accelerated increase cannot provide the same evidence in the default modes, so permit time-based recalibration but wait eight expected intervals rather than two. The longer interval treats the absence of high RTT as weaker evidence of underutilization. Extend the CUBIC and Cuback tests to cover retained-CWND reduction, Wmax, suppressed Fast Convergence, Cuback's bandwidth estimate, late-ACK undo, high- RTT interval initialization, the accelerated-gain guard, and the longer low-fullRTT interval. build/default/test.t passes all 31 top-level groups. Focused benchmark ----------------- The previously worst clean tail-drop cases use one stock and one ABBA flow, 80ms RTT, a 400-packet BDP, 5ms or 10ms queues, 50 expected congestion periods, and ten repetitions. The saved pre-change results are from 31f8be8 (HEAD^^), whereas HEAD^ already controls recalibration using the accelerated-gain guard. The lower pre-change utilization shows that recalibration is firing and its slow-start probes are producing synchronous congestion losses, making this the appropriate baseline for evaluating the changed recalibration response. Share is the second flow's share for stock/stock and ABBA's share for stock/ABBA. Throughput and utilization are percentages of link capacity. Order indicates whether the ABBA flow was created first or last. | Mode | CC | Queue | Order | Share stock/pre/new | Util stock/pre/new | New stock/ABBA throughput | |---|---|---:|---|---:|---:|---:| | 0x2 | Cuback | 5ms | first | 49.37/63.63/50.49 | 91.01/83.34/89.03 | 43.64/45.08 | | 0x2 | Cuback | 5ms | last | 49.74/61.96/50.46 | 90.72/82.30/87.89 | 44.11/44.64 | | 0x6 | Cuback | 5ms | first | 49.37/64.48/50.51 | 91.01/83.20/88.34 | 43.48/44.38 | | 0x6 | Cuback | 5ms | last | 49.74/62.11/48.74 | 90.72/83.22/87.61 | 44.85/42.60 | | 0x2 | CUBIC | 5ms | first | 51.23/66.61/50.91 | 91.68/84.41/89.25 | 43.56/45.18 | | 0x2 | CUBIC | 5ms | last | 47.57/62.97/48.75 | 91.91/83.04/88.69 | 45.27/43.22 | | 0x6 | CUBIC | 5ms | first | 51.23/66.09/50.66 | 91.68/84.52/89.26 | 44.26/45.34 | | 0x6 | CUBIC | 5ms | last | 47.57/64.12/47.14 | 91.91/83.29/89.00 | 47.01/42.06 | | 0x2 | Cuback | 10ms | first | 49.56/67.69/50.40 | 95.32/91.88/93.69 | 46.42/47.16 | | 0x2 | Cuback | 10ms | last | 50.57/67.41/51.59 | 95.19/92.05/93.77 | 45.07/48.21 | | 0x6 | Cuback | 10ms | first | 49.56/69.93/49.87 | 95.32/92.06/93.32 | 46.60/46.35 | | 0x6 | Cuback | 10ms | last | 50.57/67.15/52.27 | 95.19/91.84/93.64 | 44.83/49.10 | | 0x2 | CUBIC | 10ms | first | 50.07/69.13/50.35 | 95.52/92.51/93.72 | 46.48/47.15 | | 0x2 | CUBIC | 10ms | last | 49.74/68.09/49.76 | 95.58/92.67/93.85 | 47.47/47.02 | | 0x6 | CUBIC | 10ms | first | 50.07/70.01/51.52 | 95.52/92.58/94.30 | 45.71/48.58 | | 0x6 | CUBIC | 10ms | last | 49.74/68.39/50.69 | 95.58/92.65/94.24 | 46.68/48.01 | With the old recalibration response, ABBA receives 61.96--70.01% of delivered bandwidth while total utilization falls to 82.30--92.67%, compared with 90.72--95.58% for stock/stock. The table therefore shows the allocation after recalibration-induced synchronous loss: changing that response brings ABBA's share to 47.14--52.27%, closely tracking the 47.57--51.23% stock/stock share. In a controlled comparison retaining the new congestion response, extending only the low-fullRTT timeout from two to eight expected intervals reduces recalibrations during the measured half from 22--28 to 5--7 and raises utilization from 78.95--90.93% to 87.61--94.30%.
Random loss is evaluated for every packet crossing the impairment node. Calling the TLS context's OpenSSL random callback for every sample adds substantial overhead to large simulator sweeps. Seed an AES-128-CTR context once from OpenSSL and use it to refill a static 1KB buffer, serving the simulator's small random-byte requests from that buffer. Keep this generator local to simulated impairments; the QUIC TLS context continues to use its normal random callback. Use the same full-width samples for ACK-scheduler decisions. This removes the separate rand() state and the scheduler's 1/65536 probability quantization while retaining nondeterministic loss and stall placement between simulator runs. The simulator builds successfully, and a smoke run exercising random packet loss and probabilistic ACK scheduling completes successfully.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Radio paths violate an assumption CUBIC depends on: that available bandwidth is roughly stable. Radio quality varies, and handover between stations or satellites moves capacity in steps. When capacity drops the queue overflows; when it recovers the flow is left well under the pipe, and CUBIC's cubic-curve recovery is too slow to climb back before the next disturbance.
What's needed is to increase CWND faster whenever the flow is demonstrably below the pipe.
The same condition — an empty queue while the flow is not the constraint — is what random loss also produces, so the mechanism additionally mitigates underutilization on lossy paths. On a lossy Corporate_WiFi profile CUBIC holds 46.7% of link goodput at 5% loss-per-RTT and 34.3% at 10%.
Approach
ABBA combines two ideas.
1. Increase rapidly while RTT sits at the floor. When the latest RTT is at its minimum and being driven down, the bottleneck queue is empty and the flow is not the constraint. ABBA adds a second growth term alongside the CUBIC/Cuback curve and takes the larger of the two, at
max(2ms / rtt_threshold, 2.5%)per RTT — about 2 ms of additional queue per round. RTT feedback lags a round, so this self-limits near 4.5 ms of standing queue and stops. The threshold adapts:(minRTT + previous_period_min) / 2, floored atminRTT + 2ms, capped atcurrent_period_min + 2ms.2. Gate on confirmed queue existence. Acceleration requires prior evidence that this path has a queue to refill:
full_rtt— the smoothed RTT captured when the first recovery exits — must exceedminRTT + 10msand sit more than 5% above the latest RTT.The gate is not only a safety guard. Because
full_rttis a live estimate of what a full queue looks like, it also drives the second recovery mechanism: if smoothed RTT stays below(minRTT + full_rtt) / 2for twice the time a non-losing CUBIC flow would need to rebuild the queue, the path characteristics may have changed. The controller retains CWND, discards the CA trajectory, and re-enters slow start to re-learnfull_rtt.That second path is what carries the design under frequent loss, where the flow never rebuilds a queue on its own and the RTT gate alone has nothing to work with. It is directly visible in the policy comparison: LTE CUBIC standalone at 10% loss/RTT reaches 90.6% with recalibration enabled and 80.6% without.
ECN-CE counts as a high-queue observation, including marks received inside a recovery period.
Safety: increase-side only
ABBA never suppresses, defers, or scales a congestion response. Every loss and every CE mark produces the same multiplicative decrease as stock CUBIC/Cuback.
betais derived solely from the controller type and whether the signal was ECN; nothing on the reduction path is conditioned on ABBA state or policy.This is deliberately not a random-loss classifier. A classifier decides a loss was non-congestive and withholds the reduction, which stakes correctness on the classification being right — and it is wrong precisely when real congestion resembles random loss. ABBA declines that trade: it buys recovery entirely on the increase side and pays full price on every signal. The consequence is that a misfiring RTT gate on some path nobody simulated costs one round of over-growth followed by a normal decrease, rather than a missed congestion response. The bound holds by construction, not by calibration.
The same invariant covers the capacity drop described above: the reduction path is untouched, so the resulting queue overflow produces the standard response, with ABBA contributing at most its ~4.5 ms of extra queue at the moment of the drop.
Recalibration re-enters slow start from a large CWND, which needs its own argument. It is gated on the absence of queue pressure from any source:
last_high_queue_atis refreshed whenever smoothed RTT reaches the midpoint betweenminRTTandfull_rtt, and whenever a CE mark arrives, so the timer matures only after sustained evidence that neither the flow itself nor any competitor is queueing at the bottleneck. The wait is measured in CUBIC's own units —high_rtt_intervalis how long a flow at this window scale takes to climb back from a reduction and refill the queue — and recalibration needs twice that to pass untouched. CUBIC would have filled the pipe twice over; nothing did.Design criteria and results
Simulator, 18 network profiles × {tail-drop, CoDel}. Loss probability is set so a full pipe sees at least one loss per RTT with the stated probability. Standalone: 7×100 s runs measuring the last 50 s. Competition: 7×160 s per flow order measuring the last 80 s. Self-competition: 5×320 s, final 40 s window. Full tables are in the commit messages of
2766165(0x2) and2a2cde1(0x1).On par with stock when the network is stable and lossless. Clean-path competition against stock sits at parity on every profile; the widest deviations are Corporate_WiFi 58.1/44.1 and WiFi@Office 53.3/45.3, both inside the stock-vs-stock baseline spread. On the shallow synthetic queues the gate correctly keeps acceleration off entirely:
queue5ms49.6/49.6,queue2.5ms51.0/50.8.Recovers quickly under random loss (standalone goodput, stock → ABBA, tail-drop):
Stays below a competing stock flow that is not experiencing loss. This was a design criterion, and it is met with margin: a lossy ABBA flow against a clean stock flow takes 17–49% across all profiles — never parity. Ten clean CUBIC flows against one ABBA flow on DSL (15 repetitions, mean of flow-order medians): the ABBA flow takes 10.21% with no loss and 9.62% at 5% loss/RTT, against a 10% fair share.
Self-converges. When loss is rare the gates stay shut and behavior reduces to stock, which converges; acceleration is additionally self-limiting, since a flow that opens its gate builds queue and closes it again. When loss is frequent, recalibration is the convergence driver — both flows re-probe symmetrically. Self-competition at 5% loss gives medians near 50% with 85–98% utilization across all profiles.
Policy flags
quicly_context_t::accel_adaptationreplaces the earlier boolean. Default is 0 (off).QUICLY_CC_ACCEL_ADAPTATION_INCREASE_ALWAYS0x1full_rttguard; adaptive RTT gate still appliesQUICLY_CC_ACCEL_ADAPTATION_RECALIBRATE0x2full_rtt, enables recalibration, and (unless0x1) usesfull_rttas the increase guardQUICLY_CC_ACCEL_ADAPTATION_ON= 0x2-Tselectsfull_rttand high-queue observations are maintained regardless of policy; the flags govern only how they are consumed.0x1drops both roles of the gate at once — it is weaker standalone under heavy loss (LTE CUBIC 80.6% vs 90.6% at 10%/RTT, for the reason above) and on the syntheticqueue5ms/queue2.5msprofiles takes 63–77% share against stock. Those profiles are stress cases rather than representative access-network queues, but they show what the gate is buying.Open items
0x3has unit coverage but no benchmark run.-Ttakes no argument, so0x1/0x3aren't selectable from the simulator; the0x1figures come from a separate always-increase build.(rtt->minimum + min_rtt_previous_period) / 2, andrtt->minimumonly ever moves down.Closes #687.