HomeFreeBSD

tcp: Rack rwnd collapse.

Description

tcp: Rack rwnd collapse.

Currently when the peer collapses its rwnd, we mark packets to be retransmitted
and use the must_retran flags like we do when a PMTU collapses to retransmit the
collapsed packets. However this causes a problem with some middle boxes that
play with the rwnd to control flow. As soon as the rwnd increases we start resending
which may be not even a rtt.. and in fact the peer may have gotten the packets. Which
means we gratuitously retransmit packets we should not.

The fix here is to make sure that a rack time has passed before retransmitting the packets.
This makes sure that the rwnd collapse was real and the packets do need retransmission.

Reviewed by: tuexen
Sponsored by: Netflix Inc
Differential Revision: https://reviews.freebsd.org/D35166

Details

Provenance
rrsAuthored on Aug 23 2022, 1:17 PM
Reviewer
tuexen
Differential Revision
D35166: tcp: Rack rwnd collapse.
Parents
rG4e0ce82b53e2: TCP Lro has a loss of timestamp precision and reorders packets.
Branches
Unknown
Tags
Unknown