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 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 address.
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 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 transfers 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 to reach the destination where it gets validated and ARP, in turn, responds with the destination MAC address.
The important terms associated with ARP are :
- ARP Cache: After resolving MAC address, the ARP sends it to the source where it stores 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 destination MAC address or not.
- ARP request packet contains:
- The physical address of the sender.
- The IP address of the sender.
- The physical address of the receiver is 0s.
- The IP address of the receiver
Note, that the ARP packet is encapsulated directly into data link frame.
- ARP response/reply: It is the MAC address response that the source receives from the destination which aids in further communication of the data.
- Cases when ARP is used:
- 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
- CASE-2: The sender is a host and wants to send a packet to another host on another network.
- 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.
- Router check 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.
NOTE: An ARP request is a broadcast, and an ARP response is a Unicast.
Test Yourself :
Connect two PC, say A and B with cross cable. Now you can see the working of ARP by typing these commands:
1. A > arp -a
There will be no entry in 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 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 contribute.geeksforgeeks.org or mail your article to email@example.com. 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.
- Address Resolution in DNS (Domain Name Server)
- Difference between Stop and Wait protocol and Sliding Window protocol
- Hot Standby Router Protocol (HSRP) and Virtual Router Redundancy Protocol (VRRP)
- Difference between Serial Line Internet Protocol (SLIP) and Point-to-Point Protocol (PPP)
- Difference Between Network Address Translation (NAT) and Port Address Translation (PAT)
- Difference between MAC Address and IP Address
- Difference between File Transfer Protocol (FTP) and Secure File Transfer Protocol (SFTP)
- Cisco Discovery Protocol (CDP) and Link Layer Discovery Protocol (LLDP) in Data Link Layer
- How message authentication code works?
- Three address code in Compiler
- Network Address Translation (NAT)
- Finding IP address of a URL in Java
- Extracting MAC address using Python
- C Program to display hostname and IP address
- Transition from IPv4 to IPv6 address
Improved By : VaibhavRai3