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

53
Appendix B: Annotated output of ndd h and discussions of the
TCP/IP tunables
Proper tuning can result in the operating system more efficiently using network bandwidth and system
resources like CPU and memory, and providing more of these resources to applications. In addition, in
many cases, network performance can be greatly improved by removing conditions which lead to long
protocol based delays. Network congestion, delayed or lost packets, and the dynamic nature of a network
topology itself may be addressed by tunable parameters to obtain the best performance under the given
circumstances.
The following section contains an annotated list of the TCP/IP tunables that can set with ndd and the file
/etc/rc.config.d/nddconf. The annotations provide additional information on the processes behind
the settings. It is presumed that the reader has some basic knowledge of the workings of the TCP and IP and
networking in general. Anyone who is unfamiliar with TCP/IP and related protocols should not be
attempting to alter these ndd tunables. Note that not all recommendations are appropriate for all types of
workloads and only some of the tunables are annotated.
The ndd -h output shown below is from HP-UX 11i v3. Where a tunable is specific to a particular release,
it will be so noted. Such a tunable is present on all releases of 11i. Although the tuning recommendations
are provided for HP-UX 11i v3 release, they can also be extended for previous releases like HP-UX 11i v1
and 11i v2.
This document will not discuss the "syntax" of setting ndd tunables via either ndd or the file
/etc.rc.config.d/nddconf. It presumes that the reader is already familiar with the syntactic
workings of ndd. See the ndd manpage and documentation available at http://docs.hp.com/ for
information on ndd.
The tunables are listed in alphabetical order, with the help text output by the command ndd h
parameter followed by additional discussion and tuning suggestions.
IPv4 Tunables
ip_def_ttl:
Sets the default time to live (TTL) in the IP header.
[1,255] Default: 255
The TTL field of the IP header is used to ensure that an IP datagram eventually "dies" on the network. Each
time an IP datagram goes through an IP router, the TTL is decremented by one hop. When an IP datagram's
TTL reaches zero, it is discarded. This can be rather useful in the face of routing loops - without the
decrementing TTL datagrams would run through the loop forever.
Note that this is the value used for generic IP purposes. The TTL of IP datagrams containing either UDP
datagrams or TCP segments is controlled via udp_def_ttl or tcp_ip_ttl respectively. The TTL used
for raw IP access is set via rawip_def_ttl.
It is unlikely that one would ever need to change this value. One possible case would be when the network
administrator wanted to prevent the system from reaching other systems more than N hops away where N
was the value selected for ip_def_ttl.