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

75
preventing TCP from being able to back-off its retransmission timer far enough to be at or above the actual
round-trip time of the network.
tcp_rexmit_interval_min:
Lower limit for computed round trip time-out.
Unless you know that all TCP connections from the system are going
through links where the RTT is greater than 500 milliseconds, and are
also _highly_ variable in their RTTs you should not increase this
value. If you increase this value, and there are actual packet losses,
you could have a drop in throughput as TCP could sit longer waiting
for a TCP retransmission timer to expire.
Similarly, unless you have concrete proof that the RTT is never more
than 500 milliseconds, you should not decrease this value as it could
result in spurious TCP retransmissions which could also decrease
throughput by keeping the TCP congestion window artificially small.
[1,7200000] Default: 500ms
tcp_sack_enable:
Allows recipients to selectively acknowledge out-of-sequence
data. The TCP sender can then retransmit only the lost segments
and adjust its send window to reflect the actual amount of
received data.
The use of TCP SACK is controlled by the ndd parameter
tcp_sack_enable. Supported parameter values are:
0: Local system never uses SACK.
1: Local system sends the SACK option in SYN packet
2: Local system enables SACK if remote system negotiates
the use of SACK in SYN packet (default)
Negotiation of the use of SACK is done by sending TCP SYN packets
with an Option Kind value of 4 to indicate that the system can
receive (and process) SACKs.
TCP packets with SACK information will have an Option Kind value
of 5. [0-2] Default: 2
SACK or "Selective ACKnowledgment" is a TCP feature intended to increase performance for data transfers
over lossy links. It accomplishes this by extending TCP's original, simple "ACK to the first hole in the data"
algorithm with one that can describe which segments past the first lost segment are missing. This
information, sent from the receiver to the sender, allows the sender to both retransmit lost segments sooner,
and avoid retransmission of segments which were not lost (those segments received, coming after the first
hole in the sequence space).
The default value is a somewhat conservative value of two (2) - the system will not initiate the use of SACK.
However, if the remote initiates the connection to us, and asks for SACK, we will honour that request.
A value of one (1) should be used if you want the system to use SACK for those connections initiated from
the system itself (i.e. applications on the system calling connect() or t_connect()).