Skip to content
  • Yuchung Cheng's avatar
    tcp: use RACK to detect losses · 4f41b1c5
    Yuchung Cheng authored
    This patch implements the second half of RACK that uses the the most
    recent transmit time among all delivered packets to detect losses.
    
    tcp_rack_mark_lost() is called upon receiving a dubious ACK.
    It then checks if an not-yet-sacked packet was sent at least
    "reo_wnd" prior to the sent time of the most recently delivered.
    If so the packet is deemed lost.
    
    The "reo_wnd" reordering window starts with 1msec for fast loss
    detection and changes to min-RTT/4 when reordering is observed.
    We found 1msec accommodates well on tiny degree of reordering
    (<3 pkts) on faster links. We use min-RTT instead of SRTT because
    reordering is more of a path property but SRTT can be inflated by
    self-inflicated congestion. The factor of 4 is borrowed from the
    delayed early retransmit and seems to work reasonably well.
    
    Since RACK is still experimental, it is now used as a supplemental
    loss detection on top of existing algorithms. It is only effective
    after the fast recovery starts or after the timeo...
    4f41b1c5