A MAC address (media access control, or LAN, or physical, or Ethernet address) is a 48-bit identifier assigned to a NIC. It is used locally to get a frame in the link layer from one interface to another physically connected interface.

MAC addresses are written in 6 groups of 2 hexadecimal digits, separated by hyphens or colons in transmission order, like 01:23:45:67:89:ab. MAC address allocations is administered by IEEE. Manufacturers buy portions of the MAC address space (to ensure uniqueness). This allows for portability — you can move interface from one LAN to another.

Recall that IP addresses are not portable and depend on the IP subnet to which a node is attached.

Addresses can either be universally administered or locally administered.

  • Universally administered addresses are uniquely assigned to a device by its manufacturer. It is burned into the device’s ROM.
  • Locally administered addresses are assigned to a device by a network administrator, overriding the burned-in address.

There are certain types of MAC addresses:

  • Unicast is used for one-to-one communication. The least significant bit of the first byte is 0.
  • Multicast addresses are used for one-to-many communication. The least significant bit of the first byte is 1, and they map to IP multicast addresses.
  • Broadcast addresses are used for one-to-all communication on a local network segment. All bits are set to 1 (FF:FF:FF:FF:FF:FF). This is typically used for ARP requests, DHCP, and other protocols that need to reach all devices.

MAC addresses are discovered via the ARP. This is because 2 machines on a given physical network can only communicate if they know each other’s physical addresses.