>> 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 with a new target base due to a merge or a rebase. The pull request now contains 24 commits: - Update test comments - Convert CubicTest to JUnit - Merge declaration and assignment - More aggressive target growth - Merge remote-tracking branch 'origin/master' into quic-cubic - Make classes final - Rename system property to internal - Add a system property to select congestion controller - Implement fast convergence - Add comments - ... and 14 more: https://git.openjdk.org/jdk/compare/1f1f7bb4...195b0f89 ------------- Changes: https://git.openjdk.org/jdk/pull/28195/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=28195&range=02 Stats: 970 lines in 6 files changed: 709 ins; 254 del; 7 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
