Ge van Geldorp wrote:
I'm not arguing that delayed ACK is incorrect, but 2.5 sec??? Searching the Internet, 200ms seems a much more accepted value. This is also the value used by the MS stack: http://www.microsoft.com/technet/itsolutions/network/deploy/depovg/tcpip2k.m spx (under "Delayed Acknowledgements").
That does sound like a more reasonable value, but if nagling is disabled, it should not matter.
You might want to cut them some slack, their code needs to be cross-platform. TCP/IP is available on every platform they support, otherwise a browser doesn't make much sense :-)
Yes, but shared memory is also available on every platform ;)
No, it is our job to make ReactOS behave like Windows, not the job of the app vendors to change their code to suite ReactOS.
Yes, that is true, but mozilla is still poorly behaved so it would be nice to let them know so they can improve on it eventually. Correctly implementing TCP_NODELAY should provide a decent work around to this poor behavior, but it would be much better if they would send the whole block of data at once instead of one byte at a time.
My test program does not set that flag and still works ok on Windows.
It may still be slow, just not AS slow due to the lower timeout. If that is the case then you should see a significant speed up by enabling TCP_NODELAY. You should also see that behavior on bsd or linux systems. Lowering the timeout will reduce the effects, but it will only be hiding the real problems.