Skip to content

Instantly share code, notes, and snippets.

@kosekmi
Last active May 4, 2026 17:52
Show Gist options
  • Select an option

  • Save kosekmi/0c279641463e2cc94e0d4742431cff3f to your computer and use it in GitHub Desktop.

Select an option

Save kosekmi/0c279641463e2cc94e0d4742431cff3f to your computer and use it in GitHub Desktop.
CC of QUIC Implementations

CC of QUIC Implementations

Note on (New)Reno: Implementations seem to mix the terms Reno and NewReno. It is safe to assume, that all variants of Reno actually refer to the implementation stated in Section 7 of RFC9002^7^.

Note on CUBIC: Some implementations actually implement the CUBIC CCA, other use this term in their code to reference the cubic-based congestion window growth. Figuring out what CC is actually used can thereby often not be answered by a simple code search.

Name Repository Lang CC Algorithms Default CC HowTo Example Server Valid as of Source of Information
lsquic https://github.com/litespeedtech/lsquic C CUBIC, BBRv1, Adaptive Adaptive^1^ http_server -o cc_algo=1 11/2023 Repository / own experience
quiche https://github.com/cloudflare/quiche Rust Reno, CUBIC, BBRv1, BBRv2 Reno quiche-server --cc-algorithm cubic 11/2023 Repository / own experience
quicly https://github.com/h2o/quicly C CUBIC, Reno Reno 11/2023 Repository / own experience
 quic-go  https://github.com/quic-go/quic-go  Go Reno^3^, BBR^2^  Reno 11/2023 Repository / own experience
msquic https://github.com/microsoft/msquic C CUBIC, BBR(v1 or v2?) CUBIC 11/2023 Repository / Paper^4^
picoquic https://github.com/private-octopus/picoquic C Reno, CUBIC, BBR(v1 or v2?), Prague, (fastcc^5^, dcubic^6^) Reno 11/2023 Repository / own experience
mvfst https://github.com/facebook/mvfst C++ CUBIC, Reno, BBRv1, BBRv2, Copa, Copa2 CUBIC^0^ 11/2023 Repository / Paper^4^
tquic https://github.com/Tencent/tquic Rust CUBIC, BBR, BBRv3 (?), COPA ? 12/2023 Repository

Footnotes:

^0^ Not 100% sure, needs to be re-checked and updated

^1^ The "Adaptive" congestion control of lsquic decides between CUBIC and BBRv1 depending on the estimated RTT.

^2^ Quic-Go BBR Work in Progress: quic-go/quic-go#4054

^3^ Quic-Go does not provide cubic, the references in code are outdated: quic-go/quic-go#3189 (comment)

^4^ Understanding Speciation in QUIC Congestion Control, 2022, https://dl.acm.org/doi/pdf/10.1145/3517745.3561459

^5^ Not documented, not sure if this is the same as https://en.wikipedia.org/wiki/FAST_TCP

^6^ Delay-based cubic hack, see https://github.com/private-octopus/picoquic/blob/master/picoquic/cubic.c#L464C4-L464C41

^7^ RFC9002 CC: https://www.rfc-editor.org/rfc/rfc9002.html#name-congestion-control

Links/References:

@kosekmi
Copy link
Copy Markdown
Author

kosekmi commented May 4, 2026

Thanks!

You‘re welcome! Please note that this is most likely outdated - last update was in 12/2023

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