Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Byte counting at Congestion avoidance
There is an issue in current congestion avoidance pseudocode when `max_datagram_size * acked_packet.sent_bytes < congestion_window` cwnd increment effectively becomes zero, especially because most implementations use integer operation to calculate cwnd. This happens when `acked_packet.sent_bytes` is a small value or `congestion_window` is very big. It may lead to too conservative cwnd growth during congestion avoidance. To fix the issue, I propose to use a TCP ABC style cwnd growth during congestion avoidance: https://www.rfc-editor.org/rfc/rfc3465.html#section-2.1 Basically it stores accumulated acked bytes in a new variable `bytes_acked` and increase cwnd by `max_datagram_size` when `bytes_acked` reaches to cwnd.
- Loading branch information