Skip to content

Introduce max_outgoing_bytes_per_second option#2556

Open
aochagavia wants to merge 1 commit intoquinn-rs:mainfrom
aochagavia:rate-limited-pacer
Open

Introduce max_outgoing_bytes_per_second option#2556
aochagavia wants to merge 1 commit intoquinn-rs:mainfrom
aochagavia:rate-limited-pacer

Conversation

@aochagavia
Copy link
Contributor

@aochagavia aochagavia commented Mar 6, 2026

cc @Ralith

This is something we discussed a while ago. It came up in the context of deep space QUIC networking, which requires being able to rate-limit outgoing traffic (traditional congestion control algorithms don't work when an ACK takes minutes to arrive 😅).

@marcblanchet
Copy link

fyi. requirement discussed in draft-many-tiptop-quic-profile

@aochagavia aochagavia force-pushed the rate-limited-pacer branch from cfcf4eb to 4a0acfe Compare March 7, 2026 12:56
@aochagavia aochagavia force-pushed the rate-limited-pacer branch from 4a0acfe to cc79677 Compare March 7, 2026 12:58
@aochagavia
Copy link
Contributor Author

aochagavia commented Mar 7, 2026

Looking at the code, it seems like it could also live inside a congestion controller because all we do is manipulate the congestion window. In all honesty, that approach seems cleaner to me than what I've implemented in this PR. What do you think? The only caveat I can think of right now is that the initial congestion window needs to be calculated based on the initial RTT (which is configurable), and the congestion controller doesn't have access to that information.

@Ralith
Copy link
Collaborator

Ralith commented Mar 7, 2026

I like that, as written, this feature will Just Work with any congestion controller. I'm not absolutely certain how broadly useful it is, but there's definitely a number of internet applications where a manual total bandwidth limit is handy.

@aochagavia
Copy link
Contributor Author

In that case, let's keep things as-is :)

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.

3 participants