Skip to main content

We've Moved!

Product Documentation has moved to docs.hitachivantara.com
Hitachi Vantara Knowledge

Advanced IP configuration using the CLI

The ipeng command permits the manipulation of low level IP parameters. Only use this command under instruction from your support provider.

To reset all parameters to their default values, use the following command:

ipeng -d

Some of the parameters can be set on a per-interface basis, the rest are global settings.

To create a specific configuration for an interface, use the following command:

ipeng -x create -g <interface>

An interface-specific configuration must be created before specific values can be set for that interface. The interface-specific configuration can be created prior to creating the interface.

To delete an interface-specific configuration, use the following command:

ipeng -x delete -g <interface>

The ipeng command has the following default settings:

Parameter Default value Command
Def wnd (bytes) 64240 ipeng -w 64240
Delayed acks On ipeng -y on
Slow start ca On ipeng -s off
SS restart double mss On ipeng -r on
Nagle Off ipeng -n off
Silly window avoid On ipeng -a on
Slow start on idle On ipeng -i on
Fast retx fast recovery On ipeng -f on
Intelliseg Off ipeng -l on
Loose Karn enable On ipeng -k on
Strict TIME_WAIT enable Off ipeng -T on
Quick R1 teardown Off ipeng -q off
Minimum RTO 300 ipeng -o 300
Maximum RTO64000ipeng -O 64000
SACK enable On ipeng -S on
PAWS enable On ipeng -P on
TCP Window Scaling enable On ipeng -W on
TCP Window Scale factor 2 ipeng -F 2
TCP Window Scale size 262143 For information only
TCP Rate Control On ipeng -R on
The following sections provide additional information on the most important ipeng settings.

TCP throughput

TCP throughput does not depend on the transfer rate itself. It depends on the product of the transfer rate and the round-trip delay (the bandwidth delay product). Standard TCP uses a 16-bit window size, which means that it can send a maximum of 64KBytes before it requires an acknowledgement from the receiver. By using window scaling, window sizes of up to 230 bytes (1 GiB) are possible.

We recommend using a default window size of 64240 bytes. To set this value, use the following command:

ipeng -w 64240

When the NAS server is receiving a stream of data packets, by sending fewer than one acknowledgment per data packet received, it can increase the efficiency of its own transmit path, of the network, and also that of the client. However, when the bandwidth delay product is large (for example, over a WAN), not delaying acknowledgements can increase write throughput.

A good practice is to enable delayed acknowledgements. Use the following command:

ipeng -y on
Window scaling

A good practice is to enable window scaling on networks where the bandwidth delay product is large. This will only affect connections if the client also supports window scaling.

To enable window scaling, use the following command:

ipeng -W on

To disable window scaling, use the following command:

ipeng -W off

This feature causes an increase in buffer usage in the server. Therefore, it has a 'factor' option which enables the user to change the scale of the window size. Each increment of the scale factor doubles the window size, so the value must be as low as possible in order to maximize performance. The window size set by the scale factor appears in the TCP Window Scale size parameter.

To change the scale factor, use the following command:

ipeng -F 2
TCP Rate Control

This feature aims to control the transmit rate on the NAS server to match the connected switch or clients.

To turn on TCP Rate Control, use the following command:

ipeng -R on
Consult your support provider before changing any of the TCP Rate Control parameters. Protection against wrapped sequence numbers (PAWS)

High transfer rates can threaten TCP reliability because TCP depends on the existence of a limit on the lifetime of a packet, the maximum segment lifetime (MSL). A TCP sequence number is 32 bits wide. At a high enough transfer rate, a 32-bit sequence number can wrap within the time that a packet is delayed in a queue. Protection against wrapped sequence numbers (PAWS) uses 32-bit TCP timestamps to effectively double the width of its sequence numbers.

A good practice is to enable PAWS. Use the following command:

ipeng -P on 
		

Avoiding packet loss

Beginning transmission into a network with unknown conditions requires TCP to slowly probe the network to determine the available capacity. This avoids congesting the network with a large burst of data. The TCP slow start algorithm performs this function at the beginning of a transfer or after repairing loss detected by the re-transmission timer.

However, in the case of packet loss, the slow start algorithm can lead to poor throughput. Therefore, a good practice is to turn off the slow start option. Use the following command:

ipeng -s off
Recovering from packet loss

The NAS server has a default minimum re-transmit time-out of 300ms. When the re-transmit timer expires, TCP doubles the value of the re-transmit time-out. We recommend enabling Karn's algorithm (which determines when to reset the re-transmit time-out value) on the NAS server. This can increase read throughput.

To enable Karn's algorithm, use the following command:

ipeng -k on

Another option, SACK (Selective ACKnowledgement), is useful when there are multiple dropped segments. Without SACK, the connection has to wait for the normal retransmit timeout to expire. SACK allows the receiver to tell the transmitter which segments are missing so the sender can re-transmit only the missing segments.

However, SACK implementation increases system load, and therefore does not work well when packet loss is high. Disable SACK under these circumstances.

To disable SACK, use the following command:

ipeng -S off

 

  • Was this article helpful?