TCP throughput

Network Administration Guide for Hitachi NAS Platform

Version
15.1.x
Audience
anonymous
Part Number
MK-92HNAS008-33

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

TCP Rate Control

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

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.

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