[e2e] TCP Framing

J. Noel Chiappa jnc at ginger.lcs.mit.edu
Mon Mar 26 11:24:12 PST 2001


    > From: Cannara <cannara at attglobal.net>

    > Craig, this has been a common test for years, to see how old a
    > "network-knowledgeable" student is. Ask the what UDP means. Prior to
    > the interesting RFC Jeremy [sic - JNC] produced .. You're younger than
    > I thought!

Well, this is kind of pointless, but in the name of historical accuracy:

Actually, those of us who are *really* "older" will remember that UDP was
*actually* done by Dave Reed (whose name appears nowhere on RFC-768, alas).
RFC-768 is simply a re-packaging of IEN-71, "User Datagram Protocol", by Dave
Reed.

The reason I recall this is that I seem to recall that Dave discussed the
design with me, and I've ever since had this bit set that we screwed up the
"no-checksum" value. (It should have been all-1's, since as the checksum is
the 1's complement of the 1's-completement sum, and as no sequence of numbers
[except all 0's, which you never see in a real packet] can be
1's-completement summed to 0, all 1-'s is the value you can never get - and
thus should have been the "no checksum" value. Making it 0 requires a check
of the complement of the sum, and inversion if it's 0, on all packets.)

Perhaps Dave Reed will correct me if my memory is wrong?

As to why it now bear's Jon's name, that was because he was editing all the
TCP/IP standards documents (IP, TCP, ICMP etc), and he edited the UDP
document to be part of the set.


As for the protocol's name, it was quite deliberately chosen to be "User". At
that point, the only user-accessible service was TCP. There were a number of
theorized services, including host-name lookup, which didn't want a
full-blown bi-directional stream connection. UDP - allowing "users" access to
a datagram protocol - was the answer.

It deliberately wasn't made reliable i) to allow its use by applications which
didn't care about reliability (we'd had experience of this problem, with
packet voice and TCP, where the enforced reliability got in the way of the
application), and ii) to keep it simple.

I believe Name Resolution (IEN-116, I think - not DNS, this was long before
DNS - it allowed a client with no disk, such as a terminal server, to allow
use of hostnames, which it queried a time-sharing machine which has a copy of
HOSTS.TXT to convert to an IP address) was the first service defined to run
on UDP.

	Noel



More information about the end2end-interest mailing list