# Il protocollo ARP Il protocollo `Address Resolution Protocol` (`ARP`) opera a livello di rete (layer 3) e ha il compito di associare un indirizzo IP a un indirizzo MAC. Conoscendo il MAC di destinazione, un host può infatti costruire il frame appropriato (layer 2) per inoltrare i dati sulla rete. Ogni computer mantiene una ARP cache table, ovvero una memoria temporanea che memorizza le associazioni già note. Quando un host deve comunicare con un altro dispositivo, verifica innanzitutto se l'associazione IP-MAC è presente nella propria ARP cache; in caso contrario, viene utilizzato il protocollo ARP per determinare l'indirizzo MAC corrispondente all'IP di destinazione. L'ARP request viene inoltrata in broadcast a tutti i dispositivi raggiungibili nella LAN. Gli host che non sono associati all'IP target ignorano la richiesta, mentre il computer in possesso dell'indirizzo IP richiesto risponde inviando un ARP response in modalità unicast, indirizzata direttamente all'host che ha originato la richiesta. In Linux, il comando per vedere la ARP cache table é `ip neighbour` o `ip n`: ```bash ip neighbour 192.168.0.1 dev wlp4s0 lladdr 10:3c:59:c3:ec:73 REACHABLE 192.168.0.200 dev wlp4s0 lladdr 6a:f8:b0:92:ea:94 STALE 192.168.0.42 dev wlp4s0 lladdr 84:2a:fd:f2:d7:12 STALE 192.168.0.97 dev wlp4s0 lladdr 4e:a0:f9:eb:c5:63 STALE ```