2

Mac addresses are used in networks, not in internetworks. So, why to not create a protocol, that will automatically assign to connected devices MAC address in that way, so they don't repeat in network? So, we could use less number of bits in MAC address or more devices can be created not worrying about address.

More generally, why uniqueness of MAC addresses are so important? We use them just in networks, so we shouldn't worry about their uniqueness, except in the same network.

  • 3
    Back in the early days, there were many different LAN protocols that had DIP switches on the network interface to set the address. Usually eight switches, so 0 to 255 for the address. This was a giant pain in the rear end to maintain the documentation so that you would not duplicate addresses, and limiting the LAN to 256 total devices. Ethernet was designed so that the manufacturer would have a unique OUI, and it could assign the rest of the address in such a way that is is very unlikely to be repeated on the same LAN. This made life so much easier. – Ron Maupin Feb 25 at 16:32
5

You can create your own MAC address. It's called a Locally Administered Address. You indicate it by setting the the second-least-significant bit of the first octet of the MAC address to 1.

So, why to not create a protocol, that will automatically assign to connected devices MAC address in that way, so they don't repeat in network?

Consider how you would use your new protocol if every device on the network wasn't addressable (didn't have a MAC address). How would you distinguish one from the other?

So, we could use less number of bits in MAC address or more devices can be created not worrying about address.

There are dozens of ways how networks could be built. MAC addresses and the rest were developed at a particular time for particular reasons.

With hindsight, it's easy to look back and say, "I have a different idea that works better." Even if that were true, ask youself, is your idea so much better that it is worth replacing the hardware of every single Ethernet device in the world and updating the software on each of those devices? Does your new protocol improve things so much more that it is worth the millions (billions) of dollars and tens of thousands of hours of work to replace everything? Do you want to buy a new computer, an new phone, a new tablet, a new television, etc. just to use your new protocol?

There are many, many things in the world that are the way they are because that's what someone decided, and changing it years later for the sake of change is simply not worth it.

| improve this answer | |
  • "I have a different idea that works better." No, of course, I didn't mean that. It wasn't some sort of idea. I was just interesting. So let me rephrase, why things have not been implemented as I described? – pedal Feb 25 at 16:35
  • Ethernet was created as a LAN technology, before the idea of internetworking was developed. The people who created Ethernet are not the same people who created TCP/IP. – Ron Trunk Feb 25 at 16:40
  • I know. I didn't say a word about TCP/IP features. "Consider how you would use your new protocol if every device on the network wasn't addressable (didn't have a MAC address). How would you distinguish one from the other?" Don't know why didn't think about that. Thanks – pedal Feb 25 at 16:42
  • Why uniqueness of MAC addresses are so important? It's important in a LAN, and that's what Ethernet was designed for. – Ron Trunk Feb 25 at 16:47
  • I mentioned that. "We use them just in networks, so we shouldn't worry about their uniqueness, except in the same network." – pedal Feb 25 at 16:48
2

The problem with any multiple-access network (Ethernet, radio protocols and so on) is that even to assign an address at startup, you need be able to communicate with the device to tell it "here's your address".

Now, how do you tell THAT device the communication is intended for them? Well, you need some kind of unique identifier (think DHCP which relies on layer 2 MAC addresses to do this). So you have a bit of a chicken-and-egg problem. You could use a random identifier, but we all know "random" is a lot more difficult than it looks like if you want to avoid any collisions.

So nearly every protocol with multiple access has some kind of unique identifier, be it the MAC address (of various lengths), or some other. Check Ethernet, Wi-Fi, Bluetooth, Zigbee, LoRaWAN... I suppose cellular networks use the IMEI for this purpose.

Nowadays, Ethernet is not really multiple-access (there is no shared medium on switched full-duplex networks), so with managed switches one could imagine assigning addresses based on what port of what switch they are connected to, but this can quickly become quite complex (How do you assign switch identifiers? How many bits do you assign to the port number?), and with the move to the all-wireless world this is not an universal solution anyway.

Remember also that MAC addresses are used in many higher level constructs (ARP, DHCP, IPv6 addresses...), and that networks span multiple physical technologies (Ethernet and Wi-Fi), and that makes getting rid of MAC addresses quite difficult, even if it were practical or useful at layer 2 in some network technologies.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.