net: tcp: Support SACK
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 14 Jul 2017 20:38:56 +0000 (16:38 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 21 Jul 2017 15:56:20 +0000 (11:56 -0400)
commit682b414ddb840006ab670e3a128ef0695a9e256b
tree7241053074ee7b99b7ad7449c8204e1446cfc2cf
parent99f8cace6aa65006cb113cd0361c9bf61aa54af2
net: tcp: Support SACK

This uses Selective Acknowledgment for send and receive.

I also added something not in the RFC.  If we have multiple sacks and get
an update to a sack that isn't the last one, that is a sign of a lost,
retransmitted packet.  That way we don't need to wait for the retrans
timeout (RTO).  I see it kick in nearly as often as the RTO, though that's
just from glancing at netlogs.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/src/net/tcp.c