I have several Windows Server 2008 R2 machines that act as clients and are connected to another server in the same datacenter. I don't have access to teh server. I need to minimize latency between clients and the server. They communicate via Macromedia Flash (Winsockets) and exchange very small commands (20-30 bytes). The usual latency is 200-400 microseconds, but from my experience and from some tests (done with MS Network Monitor) it seems that in the Flash application the response times are very often several milliseconds, at leaset, and this is not due to the software.
I suspect it could be because of Nagle algorithm or delayed ACKs. I tried disabling both via the registry, but it doesn't seem to have effect on Server 2008 R2. I know I can tweak MTU and some other values with the registry: DefaultSendWindow, DefaultReceiveWindow, GlobalMaxTcpWindowSize, TcpWindowSize. I assume I should try to set the sending buffer to 0 and receiving buffer to a large value, is this the right strategy?
I have the fastest CPU I could get, I disabled Interrupt moderation for the Network Card, what else can I do to minimize latency? Even 100microseconds is important for me.