Ethereal-users: Re: [Ethereal-users] CRC-check incorrect with win2000 if traffic goes to the own

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Guy Harris <guy@xxxxxxxxxx>
Date: Wed, 26 Feb 2003 13:11:06 -0800
On Wed, Feb 26, 2003 at 05:26:23PM +0100, hans-joachim.behnke@xxxxxxxxxxx wrote:
> I'm using ETHEREAL on windows 2000 OS.  If I sniff data flow to my own
> computer, I always get an incorrect crc - check on tcp-level.

Presumably by "crc" you mean "checksum" (the TCP checksum isn't a cyclic
redundancy check).

Do you see it on traffic *to* the computer running Ethereal - or on
traffic *from* the computer running Ethereal?

If it's the latter, I suspect the network interface on which you're
sniffing does TCP checksum offloading; that means that the networking
stack in the OS doesn't compute a checksum before handing the packet to
the network interface, as it's relying on the interface to do it, which
also means no checksum is computed before it's handed to the OS's packet
capture mechanism.

> I did not have this error when I've uses winNT4.

I think support for checksum offloading was added in Windows 2000.

> Is there any solution?

If it's a checksum-offloading issue, there's no solution (other than, if
possible, turning off checksum offloading) that would cause correct
checksums to appear on outgoing packets.

However, you *can* disable checksum checking - it's the "Check the
validity of the TCP checksum when possible" item in the preferences for
TCP; select "Preferences" from the "Edit" menu, open up the "Protocols"
list in the left-hand pane of the preferences dialog box, select "TCP",
turn off that option, click "Save", and click "OK".  That will get rid
of the checksum error indications, and will also allow reassembly of
packets split across TCP segments to occur even with those packets with
bogus checksums.