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 RTO | 64000 | ipeng -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 |
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
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 2TCP 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 onConsult 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
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