I wrote a SOCKS module for Apache 2. I started off with the proxy_connect code and added the SOCKS handshake plus the filter chain on the client socket. I use it to pass ICA traffic. The ICA protocol is a very chatty protocol; it sends very small packets back and forth.
At first I was experiencing very large latency but it was because the socket created to the backend had nagling enabled. I disabled that and latency drop to almost zero.
On Linux, I still experience some latency but I can not identify the problem. The httpd process is not saturating at all. I'm wondering if there is another type of hidden buffering that is causing that delay.
On Windows, the problem is a lot less noticeable but still there is a delay.
I'm using the worker mpm on Linux.
Do you guys know about anything in particular specific to Linux or the Linux implementation of Apache that might be causing the artificial delay?
Or is it simply the overhead of going through the filter chain for a bunch of 4 bytes packets?
Best regards,
Juan C. Rivera
Citrix Systems, Inc.