The question "What is MAC for?", "What is IP for?", and even "What is the difference between MAC and IP?" have been asked many times, even on these forums.

Yet, there is STILL no clear explanation, of Why do we need both?

The question has two facets:

  1. Every device - or more specifically every network card - has a MAC address. If I want to send a message from Device A with MAC address 101 to Device B with MAC address 102, why do I need to add more address systems? What does IP tell me that MAC doesn't? It's clearly not more unique than MAC. It doesn't seem to add anything special.
  2. Every device on the network has an IP address. Pretty much exactly like the above question, if we can find devices using their IP address, why do we need to add another address system like MAC address? Why isn't IP enough?

What does each one bring to the table and why do we need them both? I'm looking for a clear explanation and example of why MAC alone would not work and why IP alone would not work.

  • 1
    Answer to question 1, and Answer to question 2. If you have any further questions, please explain what exactly you don't understand about the answers in those questions. Commented Jun 25, 2014 at 17:25
  • 1
    I rarely downvote questions, but I'm tired of seeing this s***. All I can think is Why Won't It Read!!! MAC is one of many layer 2's. IP is one of many layer 3's.
    – Ricky
    Commented Jun 25, 2014 at 17:39
  • 2
    @RickyBeam I'm sorry to ask it but I've read so many Q&A's over the past couple of hours and nobody explains it in a way that would answer the way I asked it above Commented Jun 25, 2014 at 17:43
  • 2
    Why won't it read? Because "why won't it explain," that's why. It's a logical question that rarely seems to be addressed in training/instruction.
    – Smithers
    Commented Dec 2, 2014 at 19:55

4 Answers 4


Why not MAC alone?

  • IP routing
    • A MAC address has no information about routing contained as part of the address. There is no grouping of systems. Every device/router in the world would have to know about every network and single computer in the world. That is each router would have to to keep the mac address of billions of other computers.
  • Because some things do not have mac addresses. My old PPP or SLIP connection had no mac address at all. Encapsulated PPP links between routers have no mac addresses. VPN end points have no mac addresses. Basically all point-to-point link technologies completely lack any unique identification.

Why not IP alone?

  • Because other protocols exist, and some people need to use them (i.e IPv6, IPX, etc).

1 - MAC Collision: Many manufacturers simply roll-over their MAC once they're they assign the last one. You're never guaranteed to have a Unique MAC.

2 - The Internet routing table would be Humongus (it's already Huge) as you wouldn't have any ways to have "bigger networks" in the routing table, as each MAC is given by the Manufacturer and not the user. It can be overwritten on some devices, but it's a pain to do network wide, and good luck to have a global addressing scheme

3 - That's not how the Protocol Stack operates. MAC addresses are for Layer 2 communication, that is Device-to-Device (PC-2-switch, switch-2-router, PC-2-router, PC-2-WIFI) etc. IP Addresses are for NETWORK communications (Host-2-Host, Client-2-Server, etc). That doesn't mean that you cannot use IP to communicate on your own LAN, but just that it's not necessary for you to do so. On the other hand, you HAVE to use a Network Protocol to go outside (IP, IPX, Appletalk, Banyan Vines, etc). Each layer is encapsulated in the one below it: TCP Segments are in IP Packets running on Ethernet Frames (or ATM Cells, OC-x Timeslots, Token Ring Frames, etc).

That's the way things were designed before Ethernet and TCP/IP became the de-facto standard, for LAN & Network. There were is NO guarantee that any devices would use L2 Addresses: Point-to-Point serial links do not have MAC Addresses and there were multi-points serial technologies that didn't use MAC addresses either - some used polling with 8 bit addresses (HDLC), way shorter than a MAC address

  • I was under the impression that MAC addresses were hardcoded into the network cards Commented Jun 26, 2014 at 9:47
  • They are, but many devices can be configured to send out frames with another MAC. Any managed switch/router from big vendor (Cisco, Juniper, etc) will let you change the MAC address. Many PC NIC drivers will let you change the MAC address Commented Jun 26, 2014 at 13:22
  • I added to this question by giving a more specific case: stackoverflow.com/questions/24434719/… Commented Jun 26, 2014 at 17:35

First of all, not all topologies, protocols, and devices make use of/require/have a MAC address.

Second of all, there is no service for MAC addresses equivalent of DNS.

Third of all, networking is layered. MAC addresses are only meaningful on layer 2 (of OSI model) using a protocol, most likely ethernet. That is; your MAC address is only locally significant. When you leave your local, you need something else to identify yourself.

You may also look into how to derive unique address using MAC address in IPv6. Not exactly "one or the other" kind of answer to your question, but more of an "amalgamation of both".

  • Third is begging the question, since the question is asking why it is layered Commented Apr 4, 2023 at 21:01

No. MAC address and IP address are not doing the same job. One is for local segment of network and is limited in scope, while IP address is (generally) global in scope and can be routed out of segment.

Coming to the question - why do we need both? Why can't we do the whole Internet routing with the MAC address alone and why do we need IP address on top of MAC address - one of the answer is that MAC address comes hardcoded in the NIC card - it can't be configured dynamically or assigned. The network admin won't have any control over the MAC addresses that are part of the network. Hence he/she can't design a hierarchical network.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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