-
Notifications
You must be signed in to change notification settings - Fork 114
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow congestion window to grow even when the window is not completely full and determine window utilization in on_packet_sent #474
Conversation
…ion avoidance add up to 3X MTU
…row for 1 RTT past that time
2980d2c
to
3a74f44
Compare
Thought of another approach: Check Here is a Gist containing this approach: https://gist.github.com/WesleyRosenblum/6e74c9944e3e27405d047bdf669e62c2 Edit: I've gone ahead and committed this approach. The difference between this approach and the previous RTT based approach can be seen here |
/// without further evidence of the stability of the current window. | ||
fn is_congestion_window_under_utilized(&self) -> bool { | ||
// This value is based on kMaxBurstBytes from Chromium | ||
// https://source.chromium.org/chromium/chromium/src/+/master:net/third_party/quiche/src/quic/core/congestion_control/tcp_cubic_sender_bytes.cc;l=23 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a minor thing: it might be best to pin the reference to a commit just in case the line gets shifted:
while cwnd >= MINIMUM_MTU as u32 { | ||
congestion_controller.on_packet_sent(timestamp, bytes); | ||
|
||
let ack_receive_time = timestamp + rtt_estimator.min_rtt() / 2; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure this actually affects the results but wouldn't it just be the RTT
(without / 2
)? Like if i send a packet and get an ack back that would be 1 RTT.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah yep
1: cwnd: 25200, | ||
2: cwnd: 51600, | ||
3: cwnd: 104400, | ||
4: cwnd: 210000, | ||
5: cwnd: 421200, | ||
6: cwnd: 843600, | ||
7: cwnd: 1688400, | ||
8: cwnd: 3378000, | ||
9: cwnd: 6757200, | ||
10: cwnd: 13515600, | ||
11: cwnd: 27032400, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is much better!
Issue: #458
To address the congestion window growing too slowly (as detailed in #458), this change introduces two improvements:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.