Re: [Exim] Using TCP_NODELAY?

Top Page
Delete this message
Reply to this message
Author: Steven Hanley
Date:  
To: exim-users
Subject: Re: [Exim] Using TCP_NODELAY?
On Tue, Oct 09, 2001 at 09:03:25AM +0100, Philip Hazel wrote:
> On 8 Oct 2001 michael@??? wrote:
>
> > Quickly grepping through the sources, I can't find that exim uses
> > TCP_NODELAY. I don't know if that slows down e.g. the greeting,
> > but since Exim only does small write()s when there isn't more data,
> > it should at least not hurt to use that TCP option. Any objection?
>
> It would save me some research if you summarized what TCP_NODELAY
> actually does, or referenced a man page.


enabling this will turn off the nagle algorithm on the socket.

The nagle algorithm is deisgn to decrease number of small packets on a large
network (wan's, buy networks, etc). When the nagle algorithm is in operation,
if a connection has outstanding data then no small packets will be sent until
the existing data is acknoloedged. Small packet means any packet smaller than
the MSS. TCP of course will always send a full-sized packet if possible.

The main use people make of TCP_NODELAY is in telnet or ssh or similar where
many small packets get sent and people want feedback as fast as possible.

Personally I would suggest for an MTA TCP_NODELAY will make no appreciable
difference either way so leave it off.

For more details look in W R Stevens TCP Illustrated v1 Section 19.4 or v2 pp
858-859. Or where I just looked for the breif detail. W R Stevens Unix Network
Programming v1 p202.

        See You
            Steve


-- 
sjh@??? http://wibble.net/~sjh
Look Up In The Sky
    Is it a bird?   No
        Is it a plane    No
            Is it a small blue banana?
Yes