The Project: Implement TCP UTO
The objective of the project is to implement TCP UTO(User Timeout Option, defined by RFC 5482) in FreeBSD's TCP stack. The TCP user timeout controls how long transmitted data may remain unacknowledged before a connection is forcefully closed and it is a local, per-connection parameter. RFC 5482 specifies a new TCP option -- the TCP User Timeout Option -- that allows one end of a TCP connection to advertise its current user timeout value and provides advice to the other end of the TCP connection to adapt its user timeout accordingly. Increasing the user timeouts on both ends of a TCP connection allows it to survive extended periods without end-to-end connectivity in bad network condition. Decreasing the user timeouts allows busy servers to explicitly notify their clients that they will maintain the connection state only for a short time without connectivity.