ARP operation

If Host A and Host B are on the same subnet and Host A sends a packet to Host B, as shown in Figure 2, the resolution process is:

  1. Host A looks in its ARP table to see whether there is an ARP entry for Host B. If yes, Host A uses the MAC address in the entry to encapsulate the IP packet into a data link layer frame and sends the frame to Host B.

  2. If Host A finds no entry for Host B, Host A buffers the packet and broadcasts an ARP request using the following information:

    • Source IP address and source MAC address—Host A’s own IP address and the MAC address

    • Target IP address—Host B’s IP address

    • Target MAC address—An all-zero MAC address

    All hosts on this subnet can receive the broadcast request, but only the requested host (Host B) processes the request.

  3. Host B compares its own IP address with the target IP address in the ARP request. If they are the same, Host B:

    1. Adds the sender IP address and sender MAC address into its ARP table.

    2. Encapsulates its MAC address into an ARP reply.

    3. Unicasts the ARP reply to Host A.

  4. After receiving the ARP reply, Host A:

    1. Adds the MAC address of Host B to its ARP table.

    2. Encapsulates the MAC address into the packet and sends it to Host B.

Figure 2: ARP address resolution process

If Host A and Host B are on different subnets, the resolution process is as follows:

  1. Host A sends an ARP request to the gateway. The target IP address in the ARP request is the IP address of the gateway.

  2. After obtaining the MAC address of the gateway from an ARP reply, Host A sends the packet to the gateway.

  3. If the gateway maintains the ARP entry of Host B, it forwards the packet to Host B directly; if not, it broadcasts an ARP request, in which the target IP address is the IP address of Host B.

  4. After obtaining the MAC address of Host B, the gateway sends the packet to Host B.