[comp.protocols.ibm] SNA reliability above DLC

stevens@hsi.UUCP (Richard Stevens) (09/22/88)

After going through a many SNA manuals, including the friendly FAPLs,
I've come to realize that SNA provides no reliability in terms
of a checksum at any level above the data link.  Obviously you'll
have the data link reliability (16-bit CRC for SDLC, 32-bit FCS
for the token ring, etc.), but unlike TCP, UDP or Xerox's IDP,
there is no "checksum".  Am I missing something ??

I'll assume the designers of SNA assumed that a DLC check was
adequate.  Do TCP or UDP really need a checksum, especially when
running over an Ethernet, say ?  I see that ISO only specifies the
use of a checksum for TP-4.

	Richard Stevens
	Health Systems International, New Haven, CT
	   stevens@hsi.uu.net
           ... { uunet | yale } ! hsi ! stevens

stevens@hsi.UUCP (Richard Stevens) (09/22/88)

After going through a many SNA manuals, including the friendly FAPLs,
I've come to realize that SNA provides no reliability in terms
of a checksum at any level above the data link.  Obviously you'll
have the data link reliability (16-bit CRC for SDLC, 32-bit FCS
for the token ring, etc.), but unlike TCP, UDP or Xerox's IDP,
there is no "checksum".  Am I missing something ??

I'll assume the designers of SNA assumed that a DLC check was
adequate.  Do TCP or UDP really need a checksum, especially when
running over an Ethernet, say ?  I see that ISO only specifies the
use of a checksum for TP-4.

        Richard Stevens
        Health Systems International, New Haven, CT
           stevens@hsi.uu.net
           ... { uunet | yale } ! hsi ! stevens

NJG@CORNELLA.BITNET (Nick Gimbrone) (09/23/88)

It certainly is a bad idea (in my opinion) to 'count' on the reliability
of the data link layer. A few years back we spent months discovering
that a set of our modems had a failure mode which allowed bad data to
be passed by the bisync CRC check being used in the 3705s.

hedrick@athos.rutgers.edu (Charles Hedrick) (09/24/88)

Richard Stevens asks whether it's enough to do checksums at the data
link level.  He says SNA only checks those, but doesn't do anything at
a higher level.  This issue came up a few months ago in connection
with Sun's NFS.  NFS turns off checksumming of UDP packets.  It
depends upon the Ethernet link-level checksums.  That is actually
fairly good as long as you are operating on a local Ethernet.  The
problem comes when you start doing NFS through gateways and in our
case even serial lines.  We got corrupted files due to a hardware
problem in a gateway.  I don't think we have seen any problems due to
corruption by the serial line, but I wouldn't be surprised if we did
at some point.  A site I talked to about some DECnet problems (another
protocol that depends upon link-level reliability) was having trouble
due to a very noisy serial line.  To be fair to DEC, the line wasn't
under the control of a DEC router, and was using HDLC rather than
DEC's DDCMP.  On the other hand, the checksums being used by the HDLC
chip were as strong as (actually I think identical to) those used by
DDCMP.  I think the consensus in the IP community is that if you care
about your data, you do end to end checksums.  Also, you probably
don't want to depend upon the checksums to correct errors in high
error rate situations.  You want to clean up your lines, and depend
upon the checksums to protect you against occasional glitches (and to
tell you when a line needs fixing).  You can get away depending on the
link-level checksums if you go through only a few links, and you
maintain them yourself (so you know when they are being flaky).  But
it's dangerous as a general practice.  This is a major item of
contention between Sun and certain customers, since at least as of
SunOS 3.x there wasn't even a way to turn on checksumming for NFS.  I
don't know whether this is "Fixed In 4.0 (TM)".