TCP/IP Address Resolution Protocol - ARP
The basic operation of ARP is a request/response pair of transmissions on the local network.
The source transmits a broadcast containing information about the destination. The destination then responds unicast back to the source, telling the source the hardware address of the destination.
ARP Message types and address designations
There are two different messages sent in ARP, one from the source to the destination and one from the destination to the source.
The sender is the one that is transmitting the message and the target is the one receiving it. The identity of sender and target change for each message they trade.
The overall operation that ARP uses to resolve an address is described in the next nine steps:
ARP Message Format
The message format includes a field describing the type of message (its operational code or opcode) and information on both layer two and layer three address.
In order to support addresses that may vary on length, the format specifies the type of protocol used at both layer two and three and the length of addresses used at each of these layers.
Proxy ARP
ARP was designed to be used by devices directly connected on a local network.
Each device should be capable of sending both unicast and broadcast transmissions directly to each other.
So if device A and device B are separated by a router, they aren't local to each other. Device A would not send directly to B or vice-versa; they would send to the router at layer two, and will be considered "two hops apart" at layer three.
Proxy ARP Operation
The router that sits between the two networks is configured to respond to device A's broadcast on behalf of device B. It does not send back to A the hardware address of device B; since they are not on the same network, A cannot send directly to B anyway.
Instead, the router send A its own hardware address. A then sends to the router, which forwards the message to B on the other network. And the router does the same thing on A's behalf for B.
Proxy ARP provides flexibility for networks where hosts are not all actually on the same physical network.
Remeber, ARP cannot function between devices on different physical networks.
The source transmits a broadcast containing information about the destination. The destination then responds unicast back to the source, telling the source the hardware address of the destination.
ARP Message types and address designations
There are two different messages sent in ARP, one from the source to the destination and one from the destination to the source.
The sender is the one that is transmitting the message and the target is the one receiving it. The identity of sender and target change for each message they trade.
- Request: For the initial request, the sender is the source, the device with the IP datagram to send, and the target is the destination.
- Reply: The sender is the destinations; it replies to the source, which becomes the target.
- Sender Hardware Address: The layer two address (MAC)
- Sender Protocol Address: The layer three address (IP)
- Target Hardware Address: The layer two address (MAC)
- Target Protocol Address: The layer three address (IP)
The overall operation that ARP uses to resolve an address is described in the next nine steps:
- Source Device Checks Cache: The source device will check its cache to see if already has a resolution of the destination device, if it has, it can skip to the last step.
- Source Device Generates ARP Request Message: It puts its own data link layer as the Sender Hardware Address and its own IP address as the Sender Protocol Address.
Fills the IP address of the destination as the Target Protocol Address and the Target Hardware Address, that we must discover, goes blank. - Source Device Broadcasts ARP Request Message
- Local Devices Process ARP Request Message: Message is received by each device on the local network and them look for a match on Target Protocol Address.
- Destination Device Generates ARP Reply Message: The device whose IP address matches will generate an ARP Reply message.
It takes the Sender Hardware Address and Sender Protocol Address fields from the ARP Request message and uses these as the values for the Target Hardware Address and Target Protocool Address fo the reply.
Finally it fills the Sender Protocol Address with its IP and the Sender Hardware Address with its MAC. - Destination Device Updates ARP Cache: The destination will now add an entry to its own ARP cache containing the hardware and IP addresses of the source that sent the ARP Request.
- Destination Device Sends ARP Reply Message: This is sent as unicast to the source device.
- Source Device Processes ARP Reply Message
- Source Device Updates ARP Cache
ARP Message Format
The message format includes a field describing the type of message (its operational code or opcode) and information on both layer two and layer three address.
In order to support addresses that may vary on length, the format specifies the type of protocol used at both layer two and three and the length of addresses used at each of these layers.
Proxy ARP
ARP was designed to be used by devices directly connected on a local network.
Each device should be capable of sending both unicast and broadcast transmissions directly to each other.
So if device A and device B are separated by a router, they aren't local to each other. Device A would not send directly to B or vice-versa; they would send to the router at layer two, and will be considered "two hops apart" at layer three.
Proxy ARP Operation
The router that sits between the two networks is configured to respond to device A's broadcast on behalf of device B. It does not send back to A the hardware address of device B; since they are not on the same network, A cannot send directly to B anyway.
Instead, the router send A its own hardware address. A then sends to the router, which forwards the message to B on the other network. And the router does the same thing on A's behalf for B.
Proxy ARP provides flexibility for networks where hosts are not all actually on the same physical network.
Remeber, ARP cannot function between devices on different physical networks.