The case for SLIP CRCs


Paul Milazzo (milazzo@rice.edu)
Thu, 31 Mar 88 22:36:16 CST


The lack of link-level checking in SLIP has caused us no end of
trouble. Higher-level checksums help, but NOT enough.

The connection in question is a link to a site located a few blocks off
campus. Engineered for the lowest possible cost, the link consists of
two leased cable pairs, each 4 to 5 miles long, driven by limited-
distance "modems"; it connects two SUN 3/1xx machines speaking SLIP at
9600 baud through console serial ports. The MTU is 576 bytes.

The link performs poorly: late at night, perhaps 2% of 50-byte
datagrams and 30% of 500-byte datagrams delivered contain errors; the
daytime error rate is usually higher. Fortunately, the link, while
important, is lightly used.

UDP sans checksums was predictably a disaster; the off-campus domain
server contained the strangest cached information imaginable.
Activating UDP checksumming on all our name server hosts protects local
domain traffic; it does NOT protect the off-campus site from errors in
non-checksummed domain packets originating elsewhere in the Internet.

TCP traffic is of course immune to link-level vagaries, right? Wrong.
I have rcp'ed and FTPed many large files over this link; more often
than not they arrive damaged in some subtle way. Let me repeat: files
transmitted via image (TYPE I) FTP between identical hosts separated by
a single SLIP link often fail to survive the trip.

I have not analysed in detail the damage to the data, but the effect is
real, if difficult to explain. I can only imagine that at the error
rates we experience, damage transparent to the IP checksum algorithm
sometimes occurs. I believe a link-level CRC would pass fewer errors.
If not, it would at least pass DIFFERENT errors, substantially
improving the error detection when used together with the IP checksum
algorithm.

The morals of our story:

    1) Make sure your domain server host checksums UDP packets.
    2) Sometimes TCP checksums are not enough.

                                Paul G. Milazzo <milazzo@rice.EDU>
                                Dept. of Computer Science
                                Rice University, Houston, TX



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