RFR: 8370024: HttpClient: QUIC congestion controller doesn't implement pacing
Daniel Fuchs
dfuchs at openjdk.org
Thu Nov 6 11:13:15 UTC 2025
On Wed, 5 Nov 2025 18:04:39 GMT, Daniel Jeliński <djelinski at openjdk.org> wrote:
> Implement pacing for QUIC.
>
> This is required by RFC 9002. Also, it improves the network utilization on links with long round-trip times.
>
> The pacing algorithm itself was created based on the suggestions found in RFC 9002, and on the description of the Linux pacing algorithm.
>
> Pacing is enabled when the round-trip time is less than twice the period at which the selector timeout fires. On Linux the selector timeout fires every millisecond, on Windows it's 15.6 milliseconds by default.
>
> HttpClient tests came back clean.
src/java.net.http/share/classes/jdk/internal/net/http/quic/QuicPacer.java line 177:
> 175: long rttMicros = rttEstimator.state().smoothedRttMicros();
> 176: long cwnd = congestionController.congestionWindow();
> 177: return lastUpdate.plus(Duration.ofNanos(rttMicros
you could consider using the two args version of `plus` that can take ChronoUnit.MICROS.
public Deadline plus(long amountToAdd, TemporalUnit unit) { ...
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28156#discussion_r2498537252
More information about the net-dev
mailing list