In the usual networks, since every host has a unique IP address recognised among the stations in the network, why is a MAC address still necessary?

Suppose a station A wants to send to Station B. Station A knows Station B's IP address. But Station A would still send out an ARP to request for B's MAC address before sending. And then after having B's MAC address, A would then send the data with B's MAC address as destination address.

Why can't B just accept the packet just like how it respond to the ARP sent out by A? Then this way, station A wouldn't have to send out an ARP to ask for the MAC address and this would also remove the need for having a MAC address. Moreover, the IP addresses are unique among the network stations, why need another MAC address to recognise the stations?

  • 2
    xEnOn, this is the fourth question you've asked which is all part of understanding how networks work on a fundamental level. You need to gain an understanding of the OSI model and where different things fit in, for a start. Personally, I'd suggest starting to read through some CCNA documentation - although it's a vendor specific qualification, the theory is applicable across the board. I appreciate this board is a Q&A board, but you're not going to be able to get a handle on all of this by just asking one off questions.
    – Dan
    Nov 16, 2011 at 11:13
  • 1
    @xEnOn - as Dan mentioned you're not using this site as it was designed - it's for pro sysadmins who have the basics down already, there are books and other sites that'll teach you the ABC's better than here - please consider this in any future interaction you have with this site.
    – Chopper3
    Nov 16, 2011 at 13:13
  • What happens when station A changes network cards? Or when it adds another? Apr 7, 2012 at 15:16

3 Answers 3


Because you need a unique identifier build into the network card for station identification in case you don't have an IP address. Or how should a system get a valid IP address using DHCP, when there is no identification of the station who wants to get one?

And since IP is not the only protocol you can send over ethernet, ethernet itself has to provide an unique identifier to allow for different protocols.


Firstly, may I endorse Dan's answer; proper research into the subject is much better than asking questions each of which shines but one individual light into the darkness. I'd recommend Steven's TCP/IP Illustrated, which is the networking bible; my copy of Vol. 1 is pretty much broken at the spine from over-use. But since you asked the question, and I'd typed half an answer when Dan's came up, let me press "Post anyway", with my Old Admins hat on.

Partly, it's historical. MAC addresses are a layer-2 thing, while IP addresses are layer-3 (see, eg, this Wikipedia page for more detail on the layers).

Why this separation? Well, when ethernet was invented, IP was not the only networking technology that could be carried on an ethernet network. I myself, in the mid-'80s, made extensive use of DECnet running over ethernet, and that didn't have IP addresses. Moreover, it's perfectly possible to run IP over non-ethernet network technologies that don't have MAC addresses; token-ring networks come to mind, as does SLIP).

If ethernet and IP had been welded together as you suggest, neither of the above things would have been possible. Yes, it's clear in retrospect that IP was the Big Win in internetworking, but that wasn't so clear in 1981, and decoupling the two layers was definitely the Right Thing back then.


xENOn, This is a question I asked myself many times in the past. Fact is, it's kind of arbitrary, because, as MadHatter had kindly mentioned, there are IP network types which run well without a need for a physical address. That is, there is no theoretical need for an extra address type. However, MAC address comes in handy when IP addresses are distributed automatically, e.g. by DHCP, because the DHCP server needs to unabiguously know which host reveived which IP or that no single host is granted unsolicited additional IP addresses. Without the MAC address you'd need to manually set IP addresses for each host, i.e. not very practical when you have a large number of hosts, and something of a nightmare for IT admistrators. When it comes to Ethernet local links, you don't have much choice, as the Ethernet subsystem only recognizes Ethernet frames, that is each Ethernet interface circuit filters out all Ethernet frames which does not bear either their own or a broadcast/multicast MAC address as destination address. Only those frames which survive this front end filtering actually deliver their IP payload to the IP layer. Hope it somewhat helped you clear up the mystery.

Not the answer you're looking for? Browse other questions tagged .