Possible improvement in I/O performance when enabling TCP_NODELAY TCP/IP socket option

Date: 6th March 2008
Product/Release: Visual LANSA
Abstract: Enable TCP_NODELAY TCP/IP option in Listener/Host Route can improve application performance
Submitted By: LANSA Technical Support


The "Enable TCP_NODELAY TCP/IP socket option" on the LANSA Listener and Host Route is usually not given much attention when setting up LANSA communications, however it can have a large effect on the performance of LANSA I/O in some network configurations.

Screen showing Listener Information


By enabling this option, communications containing small amounts of data are sent as-is as soon as they are ready. Normally, these bits of data are buffered until a full packet worth of data is ready to be sent. But on some networks this buffering can add to some significant delays, hence switching this option on may improve performance.

The documentation contains the following about the Enable TCP_NODELAY TCP/IP socket Option:

Select this option to disable the Nagle algorithm to allow small data packets to be delivered to the remote host without delay.

The Nagle algorithm combines multiple send calls in a small data buffer and delays sending it until an acknowledgement for the previous data packet sent is received from the remote host. It is enabled as the default in TCP/IP socket.

As the LANSA Communication Extensions implements its own data buffering, the Nagle algorithm is not needed.