Skip to content

[cubic/cuback] optionally use alpha=1 after loss - #688

Open
kazuho wants to merge 1 commit into
masterfrom
kazuho/cubic-loss-alpha-one
Open

[cubic/cuback] optionally use alpha=1 after loss#688
kazuho wants to merge 1 commit into
masterfrom
kazuho/cubic-loss-alpha-one

Conversation

@kazuho

@kazuho kazuho commented Aug 28, 2026

Copy link
Copy Markdown
Member

Summary

  • add quicly_context_t::cubic_loss_alpha_one
  • when enabled, use alpha=1 for Cubic and Cuback packet-loss epochs below cwnd_prior
  • retain the existing Reno-friendly alpha for ECN epochs
  • preserve the setting across CC initialization, reset, and switching
  • add unit coverage for Cubic, Cuback, ECN behavior, and policy switching

Simulation results

Each point below contains 60 paired runs, with the same randomized flow starts for stock, alpha-one, and Pico. Each run used a 10-second warmup followed by a 30-second measurement interval. Pacing and Rapid Start were enabled, ECN was disabled, and bottleneck utilization was approximately 100%.

Values are the tested flow's mean bottleneck share, with per-run SD in parentheses.

Against one stock Cubic contender

Fair share is 50%.

Profile Tested CC Stock Alpha-one Pico
BDP20 Cubic 50.26% (2.25) 51.12% (2.16) 53.82% (1.93)
BDP20 Cuback 48.88% (2.30) 51.44% (1.98) 53.84% (2.22)
BDP40 Cubic 50.82% (3.55) 53.25% (2.97) 53.17% (2.83)
BDP40 Cuback 48.24% (3.90) 52.16% (3.06) 53.71% (2.34)

Paired alpha-one minus stock differences, with 95% confidence intervals:

Profile Tested CC Difference
BDP20 Cubic +0.86 points [0.03, 1.68]
BDP20 Cuback +2.56 points [1.77, 3.34]
BDP40 Cubic +2.43 points [1.30, 3.57]
BDP40 Cuback +3.92 points [2.75, 5.09]

Against three stock Cubic contenders

Fair share is 25%.

Profile Tested CC Stock Alpha-one Pico
BDP20 Cubic 24.83% (1.58) 27.22% (1.49) 28.44% (1.84)
BDP20 Cuback 24.11% (1.52) 26.72% (1.53) 28.32% (1.59)
BDP40 Cubic 25.03% (1.45) 27.69% (1.72) 28.53% (1.68)
BDP40 Cuback 23.85% (2.13) 27.57% (1.59) 28.74% (1.63)

Paired alpha-one minus stock differences, with 95% confidence intervals:

Profile Tested CC Difference
BDP20 Cubic +2.39 points [1.92, 2.86]
BDP20 Cuback +2.61 points [2.09, 3.13]
BDP40 Cubic +2.66 points [2.12, 3.21]
BDP40 Cuback +3.72 points [2.99, 4.45]

In the three-contender experiment, alpha-one closed 62% to 76% of the stock-to-Pico share gap. The BDP20 Cuback runs were almost entirely Reno-friendly: stock recorded four non-friendly/crossover updates in total, and alpha-one recorded one. The lower-end bandwidth distributions were unimodal, without steep secondary peaks.

The heavily congested profile was excluded from the roofline tables because it was predominantly Cubic-controlled and Pico was less aggressive than Cubic there.

Tests

  • cmake --build build/default -j2
  • build/default/test.t

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant