ignoring UDP checksums

John Romkey (spdcc!kaos!romkey@husc6.harvard.edu)
1 Apr 88 05:23:16 GMT

Datagrams without an end-to-end check are dangerous. There are lots
of places for the datagram to get damaged without the ethernet CRC
detecting it. An ethernet bridge with local memory might have a bad
bit and corrupt one out of 1000 packets; if it doesn't put some kind
of check in the packet when it's received and verify it again as the
packet is transmitted, one in 1000 packets would get corrupted and
lots of files accessed via NFS would lose lots of bits.

The same problem exists in IP routers, only worse because they're
more complicated.

I don't know how most ethernet chips do their CRC calculation but I
would imagine their receiving algorithm to be something like this:
        collect byte
        calculate into CRC
        store in memory
        repeat until done with packet
        verify CRC

If that's the way they work then a bad bit on your ethernet card
could also damage the packet and you wouldn't know unless you had an
end-to-end verification.

MIT had a problem years ago with a Chaosnet bridge which had a flaky
memory board; it would sometimes trash a couple of bits. Chaosnet had
no checksum in its packets; it depended solely on the network
hardware to verify the data. A lot of data transferred through this
bridge suffered true bit rot and the problem was a real pain to find.

I also know of people who use NFS through IP routers and they
sometimes have files corrupted because of damaged packets which would
be caught by enabling UDP checksums.

			- john romkey
UUCP: UUCP: romkey@kaos.uucp			ARPA: romkey@xx.lcs.mit.edu
 ...harvard!spdcc!kaos!romkey		Telephone: (617) 776-3121

This archive was generated by hypermail 2.0b3 on Thu Mar 09 2000 - 14:41:54 GMT