HP-UX TCP/IP Performance White Paper, March 2008

72
tcp_ip_ttl:
TTL value inserted into IP header for TCP packets only.
[1, 255] Default: 64
A default value of 64 means that TCP will not communicate with any system that is more than 64 hops
(routers) away. This should be sufficient for 99.999% of all cases. However, increasing this value to 255
would have no downside in a non-error case. It would make things a bit worse in the case of a routing loop
(router A sends to router B which sends back to router A and the like) as it would take that many more trips
through the loop to "kill-off" the IP datagram containing that TCP segment.
tcp_ip6_hop_limit:
Hop-Limit value inserted into IPv6 header for TCP packets only.
[1, 255] Default: 64
tcp_keepalive_detached_interval:
Interval for sending keep-alive probes when TCP is detached.
When a TCP instance exists without a corresponding stream or
queue, that TCP instance is referred as "detached". When a stream
closes before the TCP FIN-ACK handshake is complete, TCP must
retain information stored in its instance data to complete the
handshake.
If the ACK to terminate a connection in FIN_WAIT_2 state never
arrives, then a detached TCP instance could remain allocated
indefinitely with no way to delete it. To avoid this potential
problem, a keep-alive timer is started when a TCP stream closes
before the TCP state is CLOSED.
The time-out interval is tcp_keepalive_detached_interval. If this
timer expires, the keep-alive algorithm will ensure that the TCP
instance will eventually be deleted.
[10000,10*24*3600000] Default: 120000 (2 minutes)
Here "without a stream or queue" (ie detached) in essence means "no socket." That is to say, the
application has close()'d the socket.
This value determines when keepalive probes will start for a detached connection in FIN_WAIT_2. So long
as the remote (or something taking responsibility for the remote - for instance a firewall) responds to the
keepalive probes, the connection will remain after all, if the firewall is still responding when the remote is
really gone, the firewall is broken and must be fixed.
Once keepalive probes start, they will be retransmitted, and the connection possibly aborted, based on the
regular TCP retransmission timer settings.
tcp_keepalive_detached_interval is only for detached connections in the FIN_WAIT_2 or
LAST_ACK state. The classic TCP keepalive mechanism for connections in other active states and enabled
by a call to setsockopt() is controlled via tcp_keepalive_interval.