Why couldn't MAC addresses be used instead of IPv4|6 for networking? [closed]
I am reading up on TCP/IP and other related protocols and technologies. MAC addresses are described as being (reasonably :) unique, and as having a large possibility space (several hundred trillions), while also being assigned to all network interfaces. What are the historical and technical reasons why IPv4 or IPv6 addresses are used instead of MAC addresses for internetwork communication?
Am I missing something fundamental or is it just a silly reason (e.g. building on top of legacy tech)?
The MAC address might be unique, but there's nothing special about the number that would indicate where it is. MAC 00-00-00-00-00-00
might be on the other side of the planet from 00-00-00-00-00-01
.
IP is an arbitrary numbering scheme imposed in a hierarchical fashion on a group of computers to logically distinguish them as a group (that's what a subnet is). Sending messages between those groups is done by routing tables, themselves divided into multiple levels so that we don't have to keep track of every single subnet. For instance, 17.x.x.x
is within the Apple network. From there, Apple will know where each of its thousands of subnets are located and how to get to them (nobody else needs to know this information, they just need to know that 17.anything goes to Apple).
It's also pretty easy to relate this to another pair of systems. You have a State Issued ID Number, why would you need a mailing address if that ID number is already unique to just you? You need the mailing address because it's an arbitrary system that describes where the unique destination for communications to you should go.
Because the routing tables would become impossibly large.
IP addresses are allocated hierarchically, so a router can group routes by address prefixes. The number of autonomous systems present on the net now is reasonable enough to fit in today's hardware.
On the other hand, the distribition of MAC addresses across the network is random and completely unrelated to topology. Routes grouping would be impossible, every router would need to keep track of routes for every single device that relays traffic trough it. That is what layer 2 switches do, and that does not scale well beyond a certain number of hosts.
The world doesn't run exclusively on ethernet(at least historically). The IP layer is independant of the hardware layer beneath it.
PPP nodes don't have Mac addresses. Neither do arcnet, token ring, fddi, hppi. Those other standards may not be as relevent today, but ethernet may be replaced with other technologies in the future and it would be transparent to the IP layer.
There's a longer discussion about how we keep inventing new hardware protocols and calling them ethernet, but I digress...
Further to the hierarchical routing of IP, having them separate from MAC addresses allows you to change your network card or whole computer while retaining the same IP address (and thus logical network topology).
This abstraction allows for much more flexible and maintainable networking.