[e2e] node addresses vs. interface addresses
David P. Reed
dpreed at reed.com
Wed Jul 31 20:15:50 PDT 2002
OK, back in 1976-7 John Shoch and Steve Crocker and I (among others)
discussed this in the original TCP design meetings. Shoch had a paper, as
I recall, on Naming, Addressing, and Routing. I know we talked about this
choice at a host level (whether it was in the paper I know not). I know I
strongly advocated for a host name space independent of topology (UID)
based on an end-to-end argument. But we all ended up agreeing that that
was too hard to implement at the routing level, so the "address" (in
between) would have to be based on routing topology, at least at the
inter-network gateway level. If you may recall, what we now call a
"subnet" was in those days thought of as a black box, and that the gateway
between them had network specific mapping from subnet address to the
destination address. Since most of the network is now composed of
relatively small "subnets" that are not routed by IP addresses directly
(e.g. Ethernet segments), today's network has a lot more "gateways" and
much smaller subnets.
The idea of multiple interfaces on a host was not considered important in
those days, because the idea of a host among a large subnet being on two
different gatewayed nets was pretty odd, so it was treated as a special
case except for gateways. And for gateways, since their internal
forwarding had zero cost, a single address could be used as its canonical
address. It is only hosts that had a significant problem with
multihoming, since they typically don't want to have to forward, so their
ability to handle traffic for their "other interface" couldn't be
represented in routing tables.
So the idea of multihomed hosts was not thought through in the early design
in the late 70's, was forced on the architecture by the success of the
Internet in eliminating its role as an overlay network, and came later as a
Jerry Saltzer's paper came later, and I believe references Shoch's paper.
At 08:58 PM 7/31/2002 -0400, J. Noel Chiappa wrote:
> > From: Roop Mukherjee <bmukherj at shoshin.uwaterloo.ca>
> > Why do IP interfaces have addresses not the nodes themselves? Is there
> > an architectural reason for this? I thought since people here seem to
> > have a better perspective of the history of IP
>Actually, in the beginning (especially back in the ARPANet), the distinction
>between the two wasn't at all clear. That lack of clarity carried across to
>the early TCP/IP work. To the best of my (admittedly now dim due to the
>passage of time) memory, the question of whether to name them from separate
>namespaces simply never even came up.
>The first person I know of to clarify that we needed to think of them
>separately was (as usual!) Jerry Saltzer, in his 1982 paper "On the Naming
>and Binding of Network Destinations", now available as RFC 1498.
>As things stand, it's not completely true that interfaces completely "own"
>the addresses - there are many places in the architecture (e.g. the TCP
>checksum pseudo-header) where the IP address is used to identify a host
>(with consequent problems).
>This continuing confusion over whether IP addresses name hosts or interfaces
>causes problems in numerous places, e.g. multi-homing, mobility, etc, etc.
>Had we to do it all over again, I suspect we'd have a separate namespace for
>each of them.
More information about the end2end-interest