RFR: 8371475: HttpClient: Implement CUBIC congestion controller [v4]
Daniel Jeliński
djelinski at openjdk.org
Fri Nov 21 09:49:52 UTC 2025
>> CUBIC is a standard TCP congestion control algorithm that uses a cubic function instead of a linear congestion window increase function to improve scalability and stability over fast and long-distance networks. CUBIC has been adopted as the default TCP congestion control algorithm by the Linux, Windows, and Apple stacks.
>
> This PR adds a new congestion controller algorithm. It reuses a large part of the QuicRenoCongestionController, which was refactored to two classes - QuicBaseCongestionController, containing the shared code, and QuicRenoCongestionController, containing only the code that is unique to Reno.
>
> CUBIC is now the default congestion controller. Reno can still be selected by setting the system property `jdk.httpclient.quic.congestionController` to `reno`.
>
> A new test was added to exercise the new congestion controller. Existing tests continue to pass.
Daniel Jeliński has updated the pull request incrementally with four additional commits since the last revision:
- Add test coverage for Reno
- Refactor target calculations
- Refactor QuicBaseCC constructor
- remove useless protected keyword
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/28195/files
- new: https://git.openjdk.org/jdk/pull/28195/files/195b0f89..32160ef9
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=28195&range=03
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=28195&range=02-03
Stats: 78 lines in 6 files changed: 45 ins; 7 del; 26 mod
Patch: https://git.openjdk.org/jdk/pull/28195.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/28195/head:pull/28195
PR: https://git.openjdk.org/jdk/pull/28195
More information about the net-dev
mailing list