"TCPv4 bad checksum" errors: a little more debugging

Jamie Lokier (lkd@tantalophile.demon.co.uk)
Fri, 4 Dec 1998 14:57:06 +0000

Is it linux.kernel.org's fault? Is it Demon Internet? :-)

My ISP is Demon Internet. I have seen bursts of TCPv4 checksum errors
while transferring SMTP mail from Demon's servers, and recently from
linux.kernel.org. Probably others too.

I've looked at some recent packet traces in detail, to see what's going

I wrote:
> Since 2.1.127 or thereabouts, I've noticed lots of "TCPv4 bad checksum"
> errors in my kernel logs. This is over a PPP connection.

I checked it is not VJ header compression bugs or serial overruns. Now
I've summed the contents of several bad packets (and good ones) by hand,
I can confirm that the problem is *not* kernel processing of incoming
packets: the packets really are faulty.

The interesting part is that all the errors I've looked at recently are
from the same address, linux.kernel.org. Probably this is a burst of
errors, as I've seen previous bursts from Demon's servers too, but I
haven't looked at those packets in detail. I had VJ header compression
on then too.

The other interesting thing is that the _faulty_ packets are from port
80, the HTTP port even though I did *not* send an HTTP request. They
arrive at about the same time as I have an FTP connection, which I *did*
request, which seems to be fine.

One of the packets is clearly from the middle of an HTTP stream, but has
an odd segment length (127). While not strictly a bug, this looks like
a peculiar artefact of the TCP sender. The packet header looks fine
(complete with correct length and IP checksum), but the TCP checksum is
faulty. And of course, I wasn't expecting the packet.

My first guess is that some router is rewriting the destination IP
address (but not the CRC) and sending the packet to me instead of its
real destination.

The errors usually come in bursts lasting a few minutes. I've noticed
fewer of them recently, since I switched of VJ header compression. I've
turned it back on now, we'll see what happens.

Packet log (about 16k for these errors) available on request. Much
larger log including VJ compressed packets and more errors also
available (152k).

-- Jamie

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/