Subject: Re: Variable length internet addresses in TCP/IP: history

From: [email-masked] (Noel Chiappa)
Date: Wed, 15 Feb 2012 13:23:38 -0500 (EST)

> From: Bob Braden <[email-masked]>

    > You probably remember this, but...

I was on the very edge at the time (more below), but yes. A few things that
caught my eye (including a minor date offset - I like to get noise out of the
record before it gets engrained):

    > argued strenuously for variable length addresses. (This must have
    > been around 1979. I cannot name most of the other 10 people in the
    > room, but I have a clear mental picture of Jon, in the back of the
    > room, fuming over this issue. Jon believed intensely in protocol
    > extensibility.)

There was a discussion about this on the internet-history list (although
in the content of TCP/IP-v4's birthday) back at the end of March, 2006:

  http://mailman.postel.org/pipermail/internet-history/2006-March/date.html

It turned out that the relevant meeting was the one held at MIT on 15-16
June 1978 (minutes are in IEN-68); the final formats for TCP4 and IPv4
were picked on 16 June, and documented in IEN-44 ("Latest Header Formats")
immediately thereafter.

I don't know about Jon or Danny, but I have a _very_ clear memory of David
Reed coming out of the meeting and being totally disgusted! (My office was
just a few feet down the hall from the conference room - I wasn't in the
meeting, I guess I wasn't considered 'real' enough yet! My first meeting
was the August, 1978 meeting.)

    > His argument was that TCP/IP had to be simple to implement if it
    > were to succeed
    > ...
    > variable length addresses seemed to be (and in fact would be) harder
    > to program and would make packet dumps harder to interpret.

The sad part is that we could have had our cake, and eaten it too! If we'd
kept the variable length packet format, and said 'for now, the only supported
length is 4', we'd have had the best of both worlds: simple implementations,
and longer-term flexibility. (I have no problems with implementation hacks:
e.g. the early MIT router code for subnets initially had a 'MyANet' static
variable in it, which was non-0 on a subnetted network! :-)

It would have been so _easy_, if only we'd thought of it!  And look how much
it would have saved us!!  Oh well, 20/20 hindsight. But this need to have a
perfect balance between implementability and long-term flexibility is a lesson
that has stayed with me very forcefully.

    > (and survive the juggernaut of the ISO OSI protocol suite).

I don't really recall the ISO suite being a big concern at that point? I
know some years later it was, but it was totally off my personal radar at
that point.

I do recall very clearly some mutterings in the hallway after the June 78
meeting about the number of pointer registers available at interrupt time
in TENEX (although to be fair I doubt that was the reason fixed-length was
chosen)!

	Noel

---

From: Martin Millnert <[email-masked]>
Date: Wed, 15 Feb 2012 19:29:23 +0100

On Wed, 2012-02-15 at 13:23 -0500, Noel Chiappa wrote:
> The sad part is that we could have had our cake, and eaten it too! 

If a (hierarchical) variable length addressing would not have mandated a
hierarchical routing as well, then yeah, cake would have tasted well as
it remained there on the table.

/M