Example scenario

Consider the following network:

[Host1]if12----------if21[Host2]if23----------if32[Host3]

Step 0 (Initialization)

ARP caches of all hosts are initially empty.

 

Step1 (Host1 pings Host2)

  1. Host1 checks its ARP cache whether there is an entry for Host2's MIP address. Host1 broadcasts ''who is Host2?'' (a broadcast Ethernet frame with SDU Type set to MIP-ARP, containing a MIP-ARP Request message). Note that Host2 will reply back the MAC address of the interface where the broadcast message was received (RAW sockets descriptor can distinguish different interfaces).
  2. Host2 receives the broadcast message, replies back to Host1 with a MIP-ARP response (unicast message to Host1, SDU Type: MIP-ARP, with a payload containing a Response message), and both update their caches.
  3. Host1 sends the ping packet to Host2, and Host2 responds.

The updated ARP caches of all hosts will be as following:

Host1

MIP address

MAC address

         2

if_21 MAC address

Host2
MIP address MAC address
         1 if_12 MAC address
Host3
MIP address MAC address
          

 

Step 2 (Host3 pings Host2)

  1. Host3 checks its ARP cache whether there is an entry for Host2's MIP address. Host3 broadcasts "who is Host2" (see above).
  2. Since Host2 receives the broadcast message from if_23 interface, it will reply back to Host3 the MAC address of if_23 interface. Host3 receives the ARP Response and updates its cache.
  3. Host3 sends the ping packet to Host2, and Host2 responds.

After this step, the ARP caches will be as following:

Host1
MIP address MAC address
         2 if_21 MAC address
Host2
MIP address MAC address
         1 if_12 MAC address
         3