Anders dan op internet communiceren apparaten binnen een LAN niet direct via IP-adressen. In plaats daarvan worden voor het adresseren binnen lokale IPv4-netwerken fysieke hardware-adressen gebruikt. Deze zogenoemde MAC-adressen (Media Access Control) zijn unieke 48-bits nummers die het mogelijk maken om ieder toestel apparaat binnen het LAN via de eigen netwerkkaart eenduidig te identificeren.
Voorbeeld van een MAC-adres: 00-80-41-ae-fd-7e
MAC-adressen worden door de fabrikant bepaald en zijn uniek. Theoretisch gezien is het daardoor mogelijk om de hardware-adressen wereldwijd te adresseren. In de praktijk is dit echter niet mogelijk, omdat IPv4-adressen te kort zijn om het MAC-adres in zijn geheel weer te geven. In netwerken op basis van IPv4 is de adresomzetting via ARP daarom onvermijdelijk.
Als computer A contact wil opnemen met computer B in hetzelfde netwerk, moet voor het IP-adres eerst het passende MAC-adres worden bepaald. Hierbij wordt gebruikgemaakt van het Address Resolution Protocol (ARP), een netwerkprotocol dat volgens het request-response-schema werkt.
Voor het bepalen van het bijbehorende MAC-adres stuurt computer A eerst een broadcastaanvraag (het zogenoemde ARP-request) naar alle apparaten in het netwerk. Deze omvat ongeveer de volgende informatie:
Een computer met het MAC-adres xx-xx-xx-xx-xx-xx en het IP-adres yyy.yyy.yyy.yyy wil contact opnemen met een computer met IP-adres zzz.zzz.zzz.zzz en heeft daarvoor het MAC-adres nodig.
Het ARP-request wordt aangenomen door alle computers in het LAN. Om te voorkomen dat je iedere keer een ARP-aanvraag moet indienen voordat je een gegevenspakket wilt versturen, houdt de computer in het netwerk een lokale tabel bij – de ARP-cache. Hierin worden alle bekende MAC-adressen inclusief bijbehorende IP tijdelijk opgeslagen.
Alle computers in het netwerk noteren op die manier de adrescombinatie van de afzender die via de broadcastaanvraag is gestuurd. Een antwoord op de broadcastaanvraag wordt echter alleen van computer B verwacht. De ARP-reply van deze computer omvat de volgende informatie:
Hier is het systeem met IP-adres zzz.zzz.zzz.zzz. Het gezochte MAC-adres is aa-aa-aa-aa-aa-aa.
Als computer A zo'n ARP-reply heeft ontvangen, beschikt hij over de benodigde informatie om gegevenspakketten naar computer B te versturen. Nu kunnen deze twee computers via het lokale netwerk met elkaar communiceren.
Maar wat gebeurt er als niet de doelcomputer reageert, maar een ander apparaat dat door een interne aanvaller met kwade opzet wordt gebruikt? Hier komt ARP-spoofing om de hoek kijken.