[ih] IPv4 address size debate

Noel Chiappa jnc at mercury.lcs.mit.edu
Fri Nov 13 13:34:10 PST 2009


    > From: Jack Haverty <jack at 3kitty.org>

    > Since I was one of the people arguing for fixed-length addresses back
    > in those days, I guess maybe it's time to explain why...

I don't disagree that fixed-length addresses were the right choice _at the
time_; I was actually interested in why we didn't pick something with a
little more long-term flexibility (i.e. flexible syntax, with 'temporarily'
subsetted semantics to produce _effectively_ fixed-length addresses), and if
that option was even considered.

Did people think 32 bits was 'more than enough for any conceivable
circumstances', or did they not think that TCP/IP would be anything other
than a large-scale trial that would be supplanted by something new, or what?

Had someone suggested a format with address-length fields, and the only
allowed/supported value in them being '4', do you think that would have been
accepted?


    > It was very very desirable to have the hardware put the data into the
    > "right place" for subsequent processing.

I take your point (I used techniques to do the same thing in the router code
I did, to avoid having to ever move data), but at the same time it undermines
the then-current reasoning that 'if we need to do anything else, we can do it
with a header option' - since (as you point out below) using options produces
variable-length headers, and those negate the advantages of a fixed-length
header.

    > IP packets with no options would be fast, those with options would
    > suffer.

Which is still the situation today... I was going to say 'sadly', but I'm not
sure that's warranted. But it is certainly a very high bar to the use of
options for extensions that are anything other than 'low-duty-cycle' (i.e. in
few packets), and that definitely limits the value of the option-based
extensibility mechanism.

    > There was at least one implementation of Ethernet (MIT? IIRC) that put
    > the Ethernet header at the *back end* of the packet on the wire - i.e.,
    > it became a trailer rather than a header. 

Ah, no. That was Berzerkley. (See RFC 893.) (Gratuitous comment suppressed... ;-)

    > This would have required, among other things, redefining the IP header
    > so that the checksum was kept in a trailer - since you couldn't finish
    > computing the checksum until all of the data had come in.

??? The IP checksum covers only the IP header, no?


    > Essentially you would end up with a circuit-switched network that had
    > an IP datagram interface ... In this architecture, IP is an interface
    > spec at the edges only, and what goes on inside is hidden and could be
    > anything. I wonder if today's routers play such tricks....

That's exactly how today's networks actually operate. Things like Frame Relay
and MPLS avoid processing IP headers on many hops - although on a local basis
only (i.e. not system-wide).

I do forsee IP becoming an interface-spec at the edges, with something new
being used _inside_ the network, i.e. router-router (much like an RJ11 analog
jack is an old interface to a wholly different/modern internals), but then
again this is hardly a new idea - the Nimrod deployment plan used the same
concept! So my crystal ball may be a bit out of focus, timewise... :-)

At the moment IP is in fact still used for the generic router-router
interface, but I do think the day is drawing closer when something else will
(slowly, admittedly) replace it in that role.

	Noel



More information about the Internet-history mailing list