]> git.baikalelectronics.ru Git - kernel.git/commit
tcp: RFC2988bis + taking RTT sample from 3WHS for the passive open side
authorJerry Chu <hkchu@google.com>
Wed, 8 Jun 2011 11:08:38 +0000 (11:08 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 9 Jun 2011 00:05:30 +0000 (17:05 -0700)
commit2c7415a1477728fad76e85054c63f6a68ec74a17
tree4b930b213f7a050afe9fae78432c1a4a6dce08a5
parent9eadf652c2343242195fa222f9c21b7ec51c2834
tcp: RFC2988bis + taking RTT sample from 3WHS for the passive open side

This patch lowers the default initRTO from 3secs to 1sec per
RFC2988bis. It falls back to 3secs if the SYN or SYN-ACK packet
has been retransmitted, AND the TCP timestamp option is not on.

It also adds support to take RTT sample during 3WHS on the passive
open side, just like its active open counterpart, and uses it, if
valid, to seed the initRTO for the data transmission phase.

The patch also resets ssthresh to its initial default at the
beginning of the data transmission phase, and reduces cwnd to 1 if
there has been MORE THAN ONE retransmission during 3WHS per RFC5681.

Signed-off-by: H.K. Jerry Chu <hkchu@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/tcp.h
include/net/tcp.h
net/ipv4/syncookies.c
net/ipv4/tcp_input.c
net/ipv4/tcp_ipv4.c
net/ipv4/tcp_minisocks.c
net/ipv6/syncookies.c
net/ipv6/tcp_ipv6.c