Files
scylladb/net
Asias He ee023f4f84 tcp: Fix delayed ack
When doing tcp rx testing, I saw a lot of retransmission because of the
delayed ACK.  Our current delayed ACK algorithm does not comply with
what RFC 1122 suggests.

As described in RFC 1122, a host may delay sending an ACK response by up
to 500 ms. Additionally, with a stream of full-sized incoming segments,
ACK responses must be sent for every second segment.

=== Before ===
[asias@hjpc pingpong]$ go run client-rxrx.go
Bytes Sent(MiB):  100
Total Time(Secs):  322.620879376
Bandwidth(MiB/Sec):  0.30996133974160595

78 2.412385 192.168.66.100 -> 192.168.66.123 TCP 32174 37672 > 10000
   [ACK] Seq=2149425323 Ack=1000001 Win=229 Len=32120
79 2.612985 192.168.66.100 -> 192.168.66.123 TCP 1514 [TCP Retransmission]
   37672 > 10000 [ACK] Seq=2149425323 Ack=1000001 Win=229 Len=1460
80 2.613131 192.168.66.123 -> 192.168.66.100 TCP 54 10000 > 37672
   [ACK] Seq=1000001 Ack=2149457443 Win=29200 Len=0

=== After ===
[asias@hjpc pingpong]$ go run client-rxrx.go
Bytes Sent(MiB):  100
Total Time(Secs):  0.244951095
Bandwidth(MiB/Sec):  408.2447559583271

No retransmission is seen.
2014-11-17 11:50:51 +02:00
..
2014-11-06 10:30:30 +02:00
2014-11-06 10:30:30 +02:00
2014-11-06 10:30:30 +02:00
2014-11-06 10:30:30 +02:00
2014-11-10 10:17:49 +02:00
2014-11-05 14:50:56 +02:00
2014-11-06 10:30:30 +02:00
2014-11-10 10:17:49 +02:00
2014-10-28 11:01:37 +02:00
2014-11-04 10:55:04 +02:00
2014-10-07 11:04:03 +03:00
2014-11-06 10:30:30 +02:00
2014-11-17 11:50:51 +02:00
2014-09-22 11:22:59 +03:00
2014-11-09 14:41:01 +02:00