TCP UTO - Weekly Report 12

Catalin Nicutar catalin.nicutar at gmail.com
Mon Aug 22 14:20:41 UTC 2011


Hello!

This is the twelfth report for TCP UTO.

* Short TCP UTO description
UTO stands for User Timeout Option (it is described in RFC5482). TCP UTO
specifies a peer should be allowed to advertise its chosen `User Timeout'
for a connection.
The wiki page for this project: http://wiki.freebsd.org/CatalinNicutar/TCPUTO



* Work completed last week
 * I have merged the UTO drain functionality into tcp_drain and replaced
 the later with a wrapper
 * I have submitted the change to TCP_RCVUTO_TIMEOUT handling (now the
 application can impose a per-connection maximum acceptable timeout)
 * I have cleaned up the tests and removed duplicate code and added two
 new scenarios
 * I made net.inet.tcp.uto.enable control the usability of UTO
 * I have cleaned up the kernel and userland UTO code and updated tcp.4.
 * I have updated the wiki page and attached patches and tests


* Future goals, as I intend to help to get it into the kernel after GSoC:
 * Currently the purging of misbehaving UTO connections remains partly
 unsolved. The drain function can't be called too often for performance
 reasons and calling it in a timer on fixed intervals is also problematic
 * The option should be attached to the first non-SYN segment sent (such
 that it gets resent if retransmissions need to be performed)
 * UTO is not included in the options if there is not enough space (perhaps
 because of SACK or MD5). Dropping SACK from one segment wouldn't impact
 performance and would allow UTO
 * Broken TCPs might expect SACK to be the last option in a segment. I must
 test to find out if UTO might cause interoperability issues
 * More interoperability tests with Linux need to be performed



If you have questions, suggestions or advices drop me an email to
cnicutar at FreeBSD.org.

Catalin Nicutar


More information about the soc-status mailing list