In message <BB2831D3689AD211B14C00104B14623B1E7569@HAZEN04>, "David A Higginbot
ham" writes:
>I agree! Why create a finite anything when an infinite possibility exists?
>On another note, I have heard the argument that a unique identifier already
>exists in the form of a MAC address why not make further use of it?
Would it surprise anyone to hear that all of that was considered and
discussed, ad nauseum, in the IPng directorate? That's right -- we weren't
stupid or ignorant of technological history. There were proponents for
several different schemes, including fixed-length addresses of 64 and later
128 bits, addresses where the two high-order bits denoted the multiple of 64
to be used (that was my preference), or CLNP, where addresses could be quite
variable in length (I forget the maximum).
But the first thing to remember is that there are tradeoffs. Yes, infinitely
long addresses are nice, but they're much harder to store in programs (you can
no longer use a simple fixed-size structure for any tuple that includes an
address) and (more importantly) route, since the router has to use the entire
address in making its decision. Furthermore, if it's a variable-length
address, the router has to know where the end is, in order to look at the next
field. (Even if the destination address comes first, routers have to look at
the source address because of ACLs -- though you don't want address-based
security (and you shouldn't want it), you still need anti-spoofing filters.)
I should add, btw, that there's a considerable advantage to having addresses
be a multiple of the bus width in size, since that simplifies fetching the
next field.)
As I said, I (and others) preferred a limited form of variable-length addresses.
Given the various tradeoffs, we "lost". One reason is something that was
pointed out by a number of people: code that isn't exercised generally doesn't
work well. If we didn't have really long addresses in use from the beginning,
some major implementations wouldn't support them properly.
Some minor points. Using a MAC address was considered and rejected.
First, not all machines have them. Second, some machines have more than one
-- which should be used? Third, although MACs are supposed to be globally
unique, accidents happen and there have been collisions. Fourth, they're two
short -- 48 bits then, moving towards 64 bits today. Fifth, there's the issue
of privacy. Sixth -- and this rules out pure geographic addressing schemes --
IP addresses are tied to the routing system. We don't know any other way to
route large numbers of networks other than by using the high-order bits of the
address. If you want addresses allocated geographically, your routing has to
be geographic. (There have been designs for that, I should add, such as the
Metropolitan Area Exchanges. But for those to work, assorted ISPs would have
to co-operate on a large scale, something that I don't think will happen.)
Phone numbers are allocated geographically, but that only works because
historically, most areas only had one monopoly phone company. That has
changed today, in many parts of the world, leading to complexities such as (in
the U.S.) local number portability -- but telephone networks do one lookup per
call, not one per packet.
--Steve Bellovin