Subject: TCP "reliability"

From: [email-masked]
Date: Tue, 10 Jul 2001 17:33:42 -0400

> With TCP you get reliable delivery and sending rate adaptability for free.
> Some posts on this thread have expressed sentiments doubting the
reliability
> of the transport which is surprising.

Careful - there are two meanings of the word reliability being confused
here.

(1) Data is delivered in the face of dropped packets.  TCP is definitely
	reliable in this sense - all the data is delivered, in order, or the
	connection closes.
(2) Data is correctly delivered in the face of corruption.  TCP's 16-bit
	checksum falls short of a 32-bit CRC in its ability to detect
	corruption, and hence TCP leaves something to be desired here.

The word "integrity" is a better term for (2) to avoid confusion.

Thanks,
--David
---------------------------------------------------
David L. Black, Senior Technologist
EMC Corporation, 42 South St., Hopkinton, MA  01748
+1 (508) 435-1000 x75140     FAX: +1 (508) 497-8500
[email-masked]       Mobile: +1 (978) 394-7754
---------------------------------------------------

---

From: Jonathan Stone <[email-masked]>
Date: Wed, 11 Jul 2001 02:25:20 -0700

>	reliable in this sense - all the data is delivered, in order, or the

Yep.

>	corruption, and hence TCP leaves something to be desired here.

David,

Can I quote that in my dissertation?

stricly, what you say is unquestionably true.  But I think you are
conflating two quite distinct properties here: 32-bit error-detecting
codes (EDCs) and the kinds of errors which a (32-bit) CRC guarantee to
catch, versus the errors which to which a transport-level error chehck
is, empirically, subjected.

It turns out that, on the best data we (I and Craig Partridge) have on
empirically-observed transport-level errors, CRCs are just not a whole
lot better than a 32-bit mod-M additive sum (where M ~= 2^32).

This is work in progress, so i cannot give a proper citation (best is
my nearly-complete dissertation).  OTOH, Julo Satran saw much of the
raw data at the recent framing/error-control meeting; i'd be very
happy to let Julo make a more impartial comment and see where that
goes.

>The word "integrity" is a better term for (2) to avoid confusion.

No argument there. The term "reliable transport" shoul,d perhaps, be
understood in contrast to the contatenated-x25-virtual-circuit model
which telcos were offering in serious competition to IP/TCP, once upon
a time.  (I think even Bob Braden would buy that.)

---

From: "Douglas Otis" <[email-masked]>
Date: Wed, 11 Jul 2001 17:16:29 -0700

Jonathan,

To be more exact about the differences between the various summations and
CRC, CRC offers a substantial improvement if due to bus related errors.  The
same could be true with respect to switch fabric cell re-ordering.  Your
sample data indicated errors with a prevalence at word bit locations that
could relate to either distinct locations or to an internal bus.
Assumptions as to a random nature of these errors could lead to conclusions
of equivalence but protections in this case are slight if due to an internal
bus for summations.  These concerns are based on empirical data but I find
this compelling to remain cautious about making such assertions.

Doug