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


Reply via email to