How Address Resolution Protocol (ARP) works? - GeeksforGeeks

22 Oct, 2021
Most of the computer programs/applications use logical address (IP address) to send/receive messages, however, the actual communication happens over the physical address (MAC address) i.e from layer 2 of the OSI model. So our mission is to get the destination MAC address which helps in communicating with other devices. This is where ARP comes into the picture, its functionality is to translate IP address to physical addresses.  
The acronym ARP stands for Address Resolution Protocol which is one of the most important protocols of the Network layer in the OSI model. Note: ARP finds the hardware address, also known as Media Access Control (MAC) address, of a host from its known IP address.  
 
Let’s look at how ARP works. 
Imagine a device that wants to communicate with the other over the internet. What ARP does? Is it broadcast a packet to all the devices of the source network. The devices of the network peel the header of the data link layer from the protocol data unit (PDU) called frame and transfer the packet to the network layer (layer 3 of OSI) where the network ID of the packet is validated with the destination IP’s network ID of the packet and if it’s equal then it responds to the source with the MAC address of the destination, else the packet reaches the gateway of the network and broadcasts packet to the devices it is connected with and validates their network ID 
The above process continues till the second last network device in the path reaches the destination where it gets validated and ARP, in turn, responds with the destination MAC address.  
ARP: ARP stands for (Address Resolution Protocol) it is responsible to find the hardware address of a host from a know IP address there are three basic ARP terms.The important terms associated with ARP are: 
(i) Reverse ARP
(ii) Proxy ARP
(iii) Inverse ARP 
ARP Cache: After resolving the MAC address, the ARP sends it to the source where it is stored in a table for future reference. The subsequent communications can use the MAC address from the tableARP Cache Timeout: It indicates the time for which the MAC address in the ARP cache can resideARP request: This is nothing but broadcasting a packet over the network to validate whether we came across the destination MAC address or not. The physical address of the sender.The IP address of the sender.The physical address of the receiver is FF:FF:FF:FF:FF:FF or 1’s.The IP address of the receiverARP response/reply: It is the MAC address response that the source receives from the destination which aids in further communication of the data.  
ARP Cache: After resolving the MAC address, the ARP sends it to the source where it is stored in a table for future reference. The subsequent communications can use the MAC address from the table
ARP Cache Timeout: It indicates the time for which the MAC address in the ARP cache can reside
ARP request: This is nothing but broadcasting a packet over the network to validate whether we came across the destination MAC address or not. The physical address of the sender.The IP address of the sender.The physical address of the receiver is FF:FF:FF:FF:FF:FF or 1’s.The IP address of the receiver
The physical address of the sender.The IP address of the sender.The physical address of the receiver is FF:FF:FF:FF:FF:FF or 1’s.The IP address of the receiver
The physical address of the sender.
The IP address of the sender.
The physical address of the receiver is FF:FF:FF:FF:FF:FF or 1’s.
The IP address of the receiver
ARP response/reply: It is the MAC address response that the source receives from the destination which aids in further communication of the data.  
 
 
CASE-1: The sender is a host and wants to send a packet to another host on the same network.Use ARP to find another host’s physical address
Use ARP to find another host’s physical address
CASE-2: The sender is a host and wants to send a packet to another host on another network. The sender looks at its routing table.Find the IP address of the next-hop (router) for this destination.Use ARP to find the router’s physical address
The sender looks at its routing table.
Find the IP address of the next-hop (router) for this destination.
Use ARP to find the router’s physical address
CASE-3: the sender is a router and received a datagram destined for a host on another network. The router checks its routing table.Find the IP address of the next router.Use ARP to find the next router’s physical address.
The router checks its routing table.
Find the IP address of the next router.
Use ARP to find the next router’s physical address.
CASE-4: The sender is a router that has received a datagram destined for a host in the same network. Use ARP to find this host’s physical address.
Use ARP to find this host’s physical address.
NOTE: An ARP request is a broadcast, and an ARP response is a Unicast. 
Test Yourself : 
 
Connect two PC, say A and B with a cross cable. Now you can see the working of ARP by typing these commands:  
1. A > arp -a
There will be no entry at the table because they never communicated with each other.  
 
2. A > ping 192.168.1.2

IP address of destination is 192.168.1.2
Reply comes from destination but one packet is lost because of ARP processing.
 
Now, entries of the ARP table can be seen by typing the command. This is how ARP table looks like:  
This article is contributed by Vivek Reddy. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks. 
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above. 
VaibhavRai3
priteshverma
ahmedmalick79
akshaysingh98088
marcosarcticseal
Computer Networks
GATE CS
Computer Networks
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Socket Programming in Python
Caesar Cipher in Cryptography
UDP Server-Client implementation in C
Differences between IPv4 and IPv6
Socket Programming in Java
ACID Properties in DBMS
Page Replacement Algorithms in Operating Systems
Types of Operating Systems
Normal Forms in DBMS
Semaphores in Process Synchronization