This question already has an answer here:

Don't think it's a duplicate. I've searched really many articles and couldn't find the satisfying answer.

I understand :

  • how ARP works

  • MAC address is an unique address for each NIC

  • IP is network layer protocol and MAC address is for link layer

  • switches use MAC address and routers use IP address

Please don't answer like that. I know how the Internet works.

My question is why Internet is created like that. Why are people using both an ethernet mac-address and an IP address instead of just using an IP address.

IP is good for packet sending since it is hierarchical and has subnet info. So I think we can create the Internet-like network using only the IP address! Packets will be sent appropriately.

marked as duplicate by Mike Pennington, rnxrx, Ricky Beam, Teun Vink Aug 19 '18 at 18:50

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 1
    This question comes up with different phrasing every couple of months. Everybody asking thinks they must be the first person asking. – Mike Pennington Aug 18 '18 at 23:47

In purely technogical terms, of course you could have designed something which doesn't have two layers of addressing.

Consider two questions: 1) how should we send IP packets when it's not ethernet underneath? 2) how should we send packets which aren't IP?

You have to remember that when the internet was being designed, ethernet was not ubiquitous; when ethernet was designed, many other upper layer protocols were current.

So I'd say the real question is: what are the advantages of layering the protocols? Fundamentally this comes down to cost. Ethernet, in particular, was designed to be as widely deployable as possible, with the explicit goal of minimising the unit cost. It comes with an addressing scheme which is convenient for LANs and unrelated to any upper addressing, and which allows for the ethernet hardware to recognise incoming frames without interrupting the CPU. This addressing is extremely low maintenance. The internet protocols, correspondingly, were designed to work on top of whatever links you might have, and have addresses which make sense in terms of organisations, and are convenient for routing. But they're reasonably high maintenance in comparison.

So we have two layers of addressing to cover the requirements of the two layers.

[EDIT] Some afterthoughts:

The proof you could do it with a single kind of addressing is that you could reprogram all your ethernet cards to 02:00:a:b:c:d where the IP address is a.b.c.d. The situation where there are multiple IP addresses for a single ethernet would pretty much force the same kinds of mechanisms as we have now, ie something like ARP.

A benefit of ethernet addresses being supplied as part of the hardware is that BOOTP (and hence DHCP) is easy. Without hardware MAC addresses you'd need something like a serial number locked to the hardware, OS installation (like an SSH host key), or manually configured (like a hostname). If you've got a serial number locked to the hardware, you could use it as a MAC address!


You should keep in mind that Ethernet (with MAC addresses) and IP (with IP addresses) were independent developments.

As far as I understand correctly, MAC addresses were originally intended to be used like we use "layer-3" addresses (IP addresses) today; you could say that they were not intended to be used together with IP addresses but instead of IP addresses. (However if I understand correctly IP did not exist, yet.)

On the other hand IP was not designed to be compatible to Ethernet; Ethernet was not as important as it is today but it was one of many different local network technologies at that time.

The necessity of sending IP packets over Ethernet came much later because there was a lot of already existing hardware working with MAC addresses and no hardware working with IP addresses.

The solution used to send IP packets over Ethernet is the same used to send IPv4 packets over an IPv6 network: Packets are encapsulated.

And just like in the IPv4-over-IPv6 case you will need two different (destination) addresses: One for the "outer" protocol (IPv6 or MAC in the two examples) and one for the "inner" protocol (IPv4).

My question is why Internet is created like that. Why we use double addresses instead of IP address.

Protocols that were already developed to be compatible with Ethernet do not use two different kinds of addresses but the MAC address is a part of the layer-3 address:

  • The 80-bit IPX address consists of the 32-bit (sub-)network and the MAC address
  • Originally the 128-bit IPv6 address was intended to consist of the 64-bit (sub-)network and the MAC address (16 bits were reserved in the case of IPv6-over-Ethernet)
  • Good point. Ethernet was conceived as a local area network using unstructured, hardware addresses while IP was designed as a global network using structured, logical addresses. – Zac67 Aug 18 '18 at 20:41
  • IPv6 started out 80bit network plus 48bit MAC. However, they were making the same mistake as the OP -- assuming the entire universe is ethernet. It was later corrected to EUI-64, which is where the modern 64+64 comes from. – Ricky Beam Aug 19 '18 at 1:11

Ethernet requires MAC addresses to transport its payload to the destination node. Ethernet is a point-to-multipoint network, ie. a single physical link allows you to communicate with any node on your network - this requires some kind of addressing. MAC addressing is inherent in Ethernet's design, so without it Ethernet wouldn't work.

The Internet uses TCP/IP (IPv4 and IPv6) which is one layer higher up. TCP/IP doesn't care how the underlying layer functions, so it doesn't require it to use MAC addresses. IP works fine over point-to-point layers without additional addressing as well.

However, Ethernet is the prevalent layer-2 technology and it does use MAC. Other layer-2 implementations may or may not use MAC addresses.

  • Yes so what is the benefit using it? – Cauchy Aug 18 '18 at 14:13
  • Ethernet doesn't work without it. – Zac67 Aug 18 '18 at 14:22
  • Yes so why Ethernet uses it then? – Cauchy Aug 18 '18 at 14:23
  • Reread my answer's first sentence. – Zac67 Aug 18 '18 at 16:05

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