TCP/IP Performance Issues on XP vs. Windows 2003 Server - TCP-IP

This is a discussion on TCP/IP Performance Issues on XP vs. Windows 2003 Server - TCP-IP ; Hello all,
I was wondering if there are any major differences in the TCP/IP stacks
for Windows XP vs. 2003 Server. Let me say up front that I'm not an
expert in performance tuning, however I'm trying to tune these ...

TCP/IP Performance Issues on XP vs. Windows 2003 Server

Hello all,

I was wondering if there are any major differences in the TCP/IP stacks
for Windows XP vs. 2003 Server. Let me say up front that I'm not an
expert in performance tuning, however I'm trying to tune these two
operating systems to get maximum performance out of a TCP/IP-based
server built with Java NIO. I'm able to simulate 5000 clients
connecting to
the server and sending a single message every 1 minute without any
problems on the Windows XP machine. I don't get any connection refused
messages or abrupt connection closings from the clients connecting to
the Windows XP machine. However, with the same scenario I get a bunch
of "remote end has closed the connection" IOException errors on the
client side for Windows 2003 Server:

java.io.IOException: An existing connection was forcibly closed by the
remote host
at sun.nio.ch.SocketDispatcher.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(Unknown Source)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source)
at sun.nio.ch.IOUtil.write(Unknown Source)
at sun.nio.ch.SocketChannelImpl.write(Unknown Source)
....

I have set the following TCP/IP parameters in the registry on both
machines:

Are there any special settings that I should attempt to set on Windows
2003 Server that I would not normally have to set on Windows XP? Do
you know of any problems with NIO performance on Windows 2003 Server
vs. Windows XP? I would definitely expect better performance on
Windows 2003 Server since it doesn't suffer from some of the same
socket limitations as Windows XP (such as backlog limit, etc).

I'd definitely appreciate any advice that you may be able to provide!

Thanks,
Ryan

Re: TCP/IP Performance Issues on XP vs. Windows 2003 Server

Hi,

AFAIK know 2003 server and XP have the same TCP/IP stack.

The only difference I can think of is that SYN attack protection is
enabled by default on 2003 Server (SP1) and is disabled by default on
XP (all Service Packs).

Can you tell us what is the value of the following parameter on both
machines ?

Re: TCP/IP Performance Issues on XP vs. Windows 2003 Server

Hello Vivek,

Thank you for responding. I just checked for the presence of
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\Tcpip\Parameters\SynAttackProtect
in the registry on the Windows 2003 Server machine, and I don't see
the parameter specified. Would you expect it to be specified by default
on a new Windows 2003 Server installation? Should I try explicitly
setting this value and running the test over again?

Thanks,
Ryan

Re: TCP/IP Performance Issues on XP vs. Windows 2003 Server

Hi Vivek,

I went ahead and set the
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\Tcpip\Parameters\SynAttackProtect
parameter to "0" (DWORD) in the registry. I ran my test again, however
I'm still seeing the "java.io.IOException: An existing connection was
forcibly closed by the
remote host" errors on the client side, however I still don't see these
exceptions when I run the server on Windows XP Service Pack 2. Do you
have any other ideas or know of something else that I could try? I'd
love to get the same results on Windows 2003 Server...

Thanks,
Ryan

Re: TCP/IP Performance Issues on XP vs. Windows 2003 Server

Hi Ryan,

Did you shutdown and restart the server ? You need to do this.

If that still doesnt fix the problem - you might want to stick a
protocol analyzer like Ethereal or a full stream analyzer like Unsniff
Analyzer on the client machine to see what is going on. You can observe
at what point your client received an RST from the server.

Regards,
Vivek

lecompte@gmail.com wrote:
> Hi Vivek,
>
> I went ahead and set the
> HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\Tcpip\Parameters\SynAttackProtect
> parameter to "0" (DWORD) in the registry. I ran my test again, however
> I'm still seeing the "java.io.IOException: An existing connection was
> forcibly closed by the
> remote host" errors on the client side, however I still don't see these
> exceptions when I run the server on Windows XP Service Pack 2. Do you
> have any other ideas or know of something else that I could try? I'd
> love to get the same results on Windows 2003 Server...
>
> Thanks,
> Ryan