ARP (енгл. Address Resolution Protocol) je protokol trećeg sloja, definise metode nalaženja fizičke adrese korisnika na osnovu poznate mrežne adrese. S obzirom na najširu upotrebu internet protokola kao protokola adresiranja sloja mreže i etherneta kao protokola najniža dva sloja, ARP ima najvišu primenu pri mapiranju MAC adrese sa IP adresom. Opisan je u RFC dokumentu pod rednim brojem 826.Address Resolution Protocol. Uspešna komunikacija na mreži traži da oba računara poznaju fizičke MAC adrese. ARP protokol radi prevođenje IP adrese odredišnog računara u MAC adresu. Međutim, kada izlazimo na Internet ( bar većina nas) to radimo preko servera. Da ne bi stalno radio upit za MAC adresu servera, ARP koristi keš memoriju. U kešu se nalazi lista IP adresa koje su već ranije prevedene u MAC adrese. Svaki novi zapis u keš memoriji ima svoj TTL (time-to-live) parametar, čija vrijednost zavisi od operativnog sistema. Ako se novi zapis u kešu ne iskoristi u prva dva minuta od kreiranja, on se automatski uklanja, a postoji i maksimalan broj zapisa koji se mogu uneti u keš. U slučaju da je keš memorija puna, briše se najstariji zapis. Šta se dešava na nivou ARP protokola pri inicijaciji konekcije na lokalnoj mreži? Prva stvar koju računar koji traži konekciju radi jeste provjeravanje ARP keša u potrazi za zapisom IP adrese odredišnog računara. Ako ga nađe, kreira se ARP paket sa upitom za MAC adresu računara kome je upućena. U paket se također stavlja IP i MAC adresa izvorišnog računara. Ovaj paket se šalje na ethernet broadcast adresu FF-FF-FF-FF-FF-FF (najveći mogući heksadecimalni zapis u ovom slučaju), što znači da svi računari na mreži primaju paket, upoređuju IP adresu sa svojom i ako nije odgovarajuća, odbacuju je.Ukoliko se podaci o paru adresa u paketu ne poklapaju sa njihovim zapisom para u kešu, oni ga prepravljaju u skladu sa novim informacijama i tek onda odbacuju. Odredišni računar po primanju paketa, unosi IP i MAC adresu izvorišnog računara u ARP keš i pravi paket-odgovor u koji pored IP i MAC adresa računara kome odgovara, stavlja i svoju IP i MAC adresu. Izvorišni računar prima paket i zapisuje adrese odredišnog u keš memoriju. Konekcija može da počne. Upoređivanjem IP adrese odredišnog računara sa svojom, izvorišni računar provjerava da li se računar sa kojim želi ostvariti konekciju nalazi na istoj mreži kao i on. Ako se nalazi na nekoj drugoj mreži, računar provjerava ARP keš u potrazi za MAC adresu gatewaya na svojoj mreži. Gateway je ruter koji povezuje mrežu na kojoj se računar nalazi sa nekom drugom mrežom i preko njega se odvija saobraćaj između dve mreže. On je dakle izlaz iz lokalne mreže. Ako se u kešu ne nalazi njegova adresa, računar šalje upit paketom na gore opisan način, konektuje se na gateway i šalje podatak za odredišni računar do gatewaya. Gateway analizira IP adresu odredišnog računara i utvrđuje na kojoj se mreži nalazi. Ukoliko je gateway direktno povezan sa mrežom, pretražuje se ARP keš u potrazi za zapisom o odredišnom računaru. Ukoliko nije direktno povezan sa tom mrežom, on koristi ruting tabelu i traži mreže koje su sa njom povezane i utvrđuje putanju ka njima. Kada se ruta utvrdi, u ARP kešu se traži MAC adresa prvog rutera koji čini putanju. Ukoliko ne postoji koristi se pomenuti upit i pravi konekcija, a gateway rutom prosleđuje podatak do odredišnog računara. Računar prima paket, pravi zapis u ARP kešu i odgovor sa IP i MAC adresom koji šalje izvorišnom računaru. On ga prima, smešta IP i MAC adresu odredišnog računara u keš i konekcija može da počne.



