Ethereal-dev: Re: [Ethereal-dev] Loopback packets have incorrect checksum

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

From: "Guy Harris" <gharris@xxxxxxxxx>
Date: Thu, 17 Jun 2004 10:25:17 -0700 (PDT)
Jerry Talkington said:
> There's a preference that allows you to ignore the checksums already...

For those curious about this:

That preference exists in order to handle packets sent by the machine
running Ethereal on interfaces that do TCP checksum offloading, as those
packets do *NOT* have valid TCP checksums - the capture is done by the
networking code on the host, by looping the packet around to the packet
capture mechanism, before the packet is transmitted, but the checksum
isn't added to the packet until the network interface computes it, so the
looped-around packet doesn't have a valid checksum.

The same probably applies to the Linux loopback device; it might register
itself as a device that does checksum offloading - on input and output if
possible, so that no checksum is computed before sending the packet *and*
so that it's assumed that the interface checks the checksum on input so
the TCP code doesn't have to - but might, in fact, not bother computing a
checksum or checking it, under the assumption that you're not going to get
packets corrupted if they're just being wrapped around inside the host.