I am writing tiny socket server that processes a lot of small requests (5-10
characters) and as result of each request -answers with a simple string -
average 100-150 characters.
Becasue of the small requests (ans answers) - I observe a lot of delays in
the TCP/IP stack (on Win32 & Linux) - consequence of so called Nagle
algorithm and the delayed ACK.
The recommendations in such cases is to set TCP_NODEALY on the socket (which
turns of the Nagle algorithm). After I traced SOCKET-STATUS function to the
source code - it seems the TCP_NODELAY is not supported?
Am I right?
How difficult it will be to add it (I do not have experience with the source
code base of CLISP).
From: Sam Steingold <sds@gn...> - 2005-05-12 13:33:12
> * vlado tzankov <igmnaxbi@...> [2005-05-12 10:03:25 +0300]:
> The recommendations in such cases is to set TCP_NODEALY on the socket
> (which turns of the Nagle algorithm). After I traced SOCKET-STATUS
> function to the source code - it seems the TCP_NODELAY is not
I think what needs to be modified is SOCKET-OPTIONS, not SOCKET-STATUS.
in fact, I think we should move SOCKET-OPTIONS away from the core.
the only question is to where - syscalls or rawsock?
syscalls is always available, and SOCKET-OPTIONS is applicable to
SOCKET-STREAMs, so it is _useful_ to keep it in a BASE_MODULE.
OTOH, rawsock is the more logical location for SOCKET-OPTIONS.
The "ultimate solution" is to move SOCKET-OPTIONS to rawsock and make
rawsock a BASE_MODULE (except that rawsock implements very rarely used
functionality, albeit rather portably).
what do people think?
Sam Steingold (http://www.podval.org/~sds) running w2k
Software is like sex: it's better when it's free.