-
Notifications
You must be signed in to change notification settings - Fork 149
Open
Labels
questionFurther information is requestedFurther information is requested
Description
Currently on_packets_acked, we at most increase by 2 MSS per ACK:
neqo/neqo-transport/src/cc/classic_cc.rs
Lines 243 to 257 in 207d309
| // If enough credit has been accumulated already, apply them gradually. | |
| // If we have sudden increase in allowed rate we actually increase cwnd gently. | |
| if self.acked_bytes >= bytes_for_increase { | |
| self.acked_bytes = 0; | |
| self.congestion_window += self.max_datagram_size(); | |
| } | |
| self.acked_bytes += new_acked; | |
| if self.acked_bytes >= bytes_for_increase { | |
| self.acked_bytes -= bytes_for_increase; | |
| self.congestion_window += self.max_datagram_size(); // or is this the current MTU? | |
| } | |
| // The number of bytes we require can go down over time with Cubic. | |
| // That might result in an excessive rate of increase, so limit the number of unused | |
| // acknowledged bytes after increasing the congestion window twice. | |
| self.acked_bytes = min(bytes_for_increase, self.acked_bytes); |
I am not sure this artificial limit is needed, especially since outgoing packets will be paced.
This code was added in #1074.
Note that the pacer was already in place (#618) at this time, i.e. the 2 MSS limit was likely not due to missing a pacer.
I don't think the 2 MSS limit is specified anywhere. Please correct me if I am wrong. RFC 9002 suggests an increase relative to the amount of bytes acked. If I understand RFC 3465 correctly, the suggested behavior is as well allowed.
Metadata
Metadata
Assignees
Labels
questionFurther information is requestedFurther information is requested