I have an application that uses overlapped sockets. I run two instances of
the application on different PCs; one instance connects to another, then
both instances exchange some data. I am having troubles with certain PCs,
which send out malformed TCP packets with wrong TCP checksums or IP headers
partially overwritten by user data.
The problem happens with Win2k SP3 machines, and SP4 seems to help.
Now I have an XP SP1 machine (A) and XP SP2 machine (B).
When A connects to B, all works fine. When B connects to A (i.e. A is
listening), then some TCP packets coming out of A are malformed. When two
instances of the appliction are running on A, all is fine. Other XP SP1 and
2003 machines work fine. So it must be something wrong with the machine A.
Even if I did something wrong in my user-mode program, this woudn't affect
the packet headers, would it?
Is it possible to get the list of all the drivers in the TCP stack? I would
then compare the stacks on A and B to see if there's any difference.
Any other suggestions?
Thanks.