How does a NIC process an incoming Ethernet frame?
It compares the frame's destination MAC to its own burned-in MAC (in ROM); on a match — or if the address is broadcast or a multicast group it joined — it passes the frame up the stack, otherwise it silently discards it.
A NIC (network interface card) sees every frame on its segment, but it should only spend effort on frames meant for it. So on each arriving frame it does a quick hardware check before bothering the CPU:
* The NIC accepts a frame only if the destination matches its burned-in MAC or is a broadcast or joined-multicast address; otherwise it silently discards it. *
- It reads the destination MAC (Media Access Control) address from the frame header.
- It compares that to its own physical MAC address stored in ROM (read-only memory).
- Match → accept: hand the frame up the OSI stack for de-encapsulation. No match → discard it immediately.
There are two deliberate exceptions where a NIC accepts a frame that isn't addressed to its unicast MAC:
- the broadcast address
FF-FF-FF-FF-FF-FF(meant for everyone on the LAN), and - a multicast address of a group the host has joined.
This per-NIC filtering is why a shared or switched LAN scales: it offloads the work of ignoring other hosts' traffic to the hardware, so the operating system only processes frames that are actually relevant.
Go deeper:
MAC address — unicast, multicast, broadcast (Wikipedia) — the address types a NIC must recognise, including the all-ones broadcast and the I/G group bit.