Path: utzoo!mnetor!uunet!husc6!think!ames!pasteur!ucbvax!RICE.EDU!milazzo From: milazzo@RICE.EDU (Paul Milazzo) Newsgroups: comp.protocols.tcp-ip Subject: The case for SLIP CRCs Message-ID: <1988.03.31.22.36.16.milazzo.01312@titan.rice.edu> Date: 1 Apr 88 04:36:16 GMT References: <8803311518.AA16742@trantor.UMD.EDU> Sender: usenet@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 42 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 Dept. of Computer Science Rice University, Houston, TX