Internet Control Protocol and Address Resolution Protocol

Internet Control Protocol

  • IP packets use logical (host to host) addresses and need to be encapsulated in a frame with the help of physical (node-to-node) addresses.
  • Some protocols are needed to create mapping between physical and logical addresses.

Static Mapping

  • It creates a table that associates a logical address with a physical address.
  • This address is stored on each machine in the network.
  • Each machine has an IP address of another machine but not its physical address. Hence, physical addresses are usually seen in the table.

Dynamic Mapping

In this mapping, each machine knows one of the two addresses (logical or physical address) and tries to find the other one.

Address Resolution Protocol (ARP)


  • Host or router has an IP address and needs to send another host or router (it has the logical (IP) address of the receiver).
  • The logical address is obtained from the routing table, if the sender is a router.
  • But, the IP datagram is encapsulated in a frame, which is able to pass through the physical network. This means that the sender needs the physical address of the receiver.
  • The host or the router sends an ARP query packet (packet contains the physical and IP addresses of the sender and the IP address of the receiver).
  • Considering that, the sender does not know the physical address of the receiver, the query is broadcast over the network.
  • Every host or router on the network receives and processes the ARP query packet,  but only the desired recipient recognizes its IP address and sends back ARP response (response packet contains the recipients IP and physical addresses).
  • The packet is unicasted directly to the inquirer by using the physical address which is received in the query packet.
arp request broadcast


arp reply unicas

ARP Packet Format

arp packet

1. Hardware type
This is 16 bit field used to define the type of the network on which ARP is running.

2. Protocol Length
This is 16 bit length used to define the protocol. For example, the value of this field in IPv4 is 0800H.

3. Hardware length
This is 8 bit field used to define the length of physical address in bytes. This value is 6 for ethernet.

4. Protocol Length
This is 8 bit field used to define the length of logical address in bytes. This value is 4 for IPv4.

5. Operation
This is 16 bit field used to define a type of packet; ARP reply or request.

6. Sender Hardware Length
This is a variable length field used to define the physical address of the sender.

7. Sender Protocol Address
This is a variable length field used to define the logical address of the sender. This field is 4 bytes long for IP protocol.

8. Target Hardware Address
This is a variable length field used to define the physical address of the target. This field is 6 bytes long for ethernet. For ARP request message, this field is '0' because the sender does not know the physical address of the target.

9. Target  Protocol Address
This is a variable length used to define the logical address of the target. This is 4 byte long for the IPv4 protocol.