Showing posts with label ARP. Show all posts
Showing posts with label ARP. Show all posts

RARP Q&A


  1. What is RARP?
  2. Reverse Address Resolution Protocol (RARP) is a network protocol used to resolve a data link layer address to the corresponding network layer address. For example, RARP is used to resolve a Ethernet MAC address to an IP address.

  3. To which OSI layer does RARP belong?
  4. RARP belongs to the OSI data link layer (layer 2).

  5. Which RFC specifies the requirements for RARP?
  6. RFC 903 specifies the RARP packet format and other details.

  7. Why is RARP needed?
  8. Normally, the IP address of a system is stored in a configuration file in the local disk. When the system is started, it determines its IP address from this file. In the case of a diskless workstation, its IP address cannot be stored in the system itself. In this case, RARP can be used to get the IP address from a RARP server.

  9. What is a RARP server?
  10. All the mappings between the hardware MAC addresses and the IP addresses of the hosts are stored in a configuration file in a host in the network. This host is called the RARP server. This host responds to all the RARP requests.

  11. Where is the mapping between the MAC address and IP addresses stored in a RARP server?
  12. The mapping between MAC addresses and IP addresses is usually stored in a configuration file in the local hard disk in the RARP server.

  13. Can RARP be used in a network other than Ethernet?
  14. Yes. RARP is a general protocol, which can be used to map any type of hardware MAC address to any type of network layer protocol address.

  15. How does RARP resolve an Ethernet MAC address to an IP address?
  16. When a diskless system is booted up, it broadcasts a RARP request packet with its MAC address. This packet is received by all the hosts in the network. When the RARP server receives this packet, it looks up this MAC address in the configuration file and determines the corresponding IP address. It then sends this IP address in the RARP reply packet. The diskless system receives this packet and gets its IP address.

  17. When is a RARP request packet generated?
  18. A RARP request packet is usually generated during the booting sequence of a host. A host must determines its IP address during the booting sequence. The IP address is needed to communicate with other hosts in the network.

  19. What happens when a RARP server receives a RARP request packet?
  20. When a RARP server receives a RARP request packet it performs the following steps:

    1. The MAC address in the request packet is looked up in the configuration file and mapped to the corresponding IP address.
    2. If the mapping is not found, the packet is discarded.
    3. If the mapping is found, a RARP reply packet is generated with the MAC and IP address. This packet is sent to the host, which originated the RARP request.

  21. What happens when a host receives a RARP reply packet?
  22. When a host receives a RARP reply packet, it gets its IP address from the packet and completes the booting process. This IP address is used for communicating with other hosts, till it is rebooted.

  23. What is the length of a RARP request and reply packet?
  24. The length of a RARP request or a RARP reply packet is 28 bytes.

  25. What is the RARP packet format?
  26. The various fields of a RARP request/reply packet and their length are shown below:

        +--------+
    Hardware 2 bytes
    MAC
    Address
    Type
    +--------+
    Protocol 2 bytes
    Address
    Type
    +--------+
    Hardware 1 byte
    MAC
    Address
    Size
    +--------+
    Protocol 1 byte
    Address
    Size
    +--------+
    Op 2 bytes
    +--------+
    Sender 6 bytes (depends on the above size field)
    MAC
    Address
    +--------+
    Sender 4 bytes (depends on the above size field)
    IP
    Address
    +--------+
    Target 6 bytes (depends on the above size field)
    MAC
    Address
    +--------+
    Target 4 bytes (depends on the above size field)
    IP
    Address
    +--------+
    The fields are further explained below:
        +---------+-------------------------------------------------------+
    Ethernet For a RARP request, source MAC address is the MAC
    Header address of the host sending the RARP request,
    destination MAC address is the Ethernet broadcast
    address (FF:FF:FF:FF:FF:FF), frame type field is 0x8035
    For RARP reply, source MAC address is the MAC address
    of the RARP server replying to the RARP request,
    destination MAC address is the MAC address of the host
    that sent the RARP request, and the frame type field is
    0x8035.
    +---------+-------------------------------------------------------+
    Hardware Type of the hardware MAC address present in the packet.
    Address For Ethernet the value of this field is 1.
    Type
    +---------+-------------------------------------------------------+
    Protocol Type of the protocol address requested for the MAC
    Address address. For IP address the value of this field is
    Type 0x800.
    +---------+-------------------------------------------------------+
    Hardware Size of the hardware MAC address. For Ethernet, the
    Address value of this field is 6.
    Size
    +---------+-------------------------------------------------------+
    Protocol Size of the protocol address. For IP, the value of
    Address this field is 4.
    Size
    +---------+-------------------------------------------------------+
    OperationType of operation being performed. The value of this
    field can be 3 (RARP request) or 4 (RARP reply).
    +---------+-------------------------------------------------------+
    Source In a RARP request packet, this is the hardware MAC
    MAC address of the source host. In a RARP reply packet,
    address this is the hardware MAC address of the RARP server
    sending the RARP reply.
    +---------+-------------------------------------------------------+
    Source In a RARP request packet, this is undefined. In a
    IP RARP reply packet, this is the IP address of the RARP
    address server sending the RARP reply.
    +---------+-------------------------------------------------------+
    Target In a RARP request packet, this is the hardware MAC
    MAC address of the source host. In a RARP reply packet,
    address this is the hardware MAC address of the host, that sent
    the RARP request packet.
    +---------+-------------------------------------------------------+
    Target In a RARP request packet, this is undefined. In a RARP
    IP reply packet, this is the IP address of the host
    address that sent the RARP request packet.
    +---------+-------------------------------------------------------+

  27. Does RARP use the same packet format as ARP?
  28. Yes. RARP uses the same packet format as ARP.

  29. How is a RARP packet differentiated from an ARP packet?
  30. The frame type in the Ethernet header is used to differentiate a RARP packet from an ARP packet. The value of the opcode field in the RARP header can also be used.

  31. Is the format of a RARP request packet the same as that of a RARP reply packet?
  32. Yes. The packet format of a RARP request packet is same as that of a RARP reply packet.

  33. How is a RARP request differentiated from a RARP reply packet?
  34. The 'operation' field in the RARP packet is used to differentiate between a RARP request and a RARP reply packet.

  35. What are the values for the source and destination IP address fields in a RARP request packet?
  36. In an RARP request packet, the source and destination IP address values are undefined.

  37. What are the values for the source and destination IP address values in a RARP reply packet?
  38. In a RARP reply packet, the source IP address is the IP address of the RARP server responding to the RARP request and the destination IP address is the IP address of the host that sent the RARP request.

  39. Do all the hosts in a network process a RARP packet?
  40. Since a RARP request packet is a broadcast packet, it is received by all the hosts in the network. But only a RARP server processes a RARP request packet, all the other hosts discard the packet. The RARP reply packet is not broadcast, it is sent directly to the host, which sent the RARP request.

  41. What will happen if more than one RARP server in a network responds to a RARP request?
  42. If more than one RARP server respond to a RARP request, then only the first RARP reply received is used. All other replies are discarded.

  43. What will happen if a RARP reply is not received for a RARP request?
  44. If a RARP reply is not received within a reasonable amount of time, the host, which sent the RARP request, will not be able to complete its booting sequence. Usually the host will again retry sending the RARP request after a timeout period.

  45. Are there any alternative protocols to RARP?
  46. The BOOTP and DHCP protocols can be used instead of RARP to get the IP address from the MAC address.

ARP Q&A


  1. What is ARP?
  2. Address Resolution Protocol (ARP) is a network protocol, which maps a network layer protocol address to a data link layer hardware address. For example, ARP is used to resolve IP address to the corresponding Ethernet address.

  3. To which OSI layer does ARP belong?
  4. ARP belongs to the OSI data link layer (Layer 2). ARP protocol is implemented by the network protocol driver. ARP packets are encapsulated by Ethernet headers and transmitted.

  5. Which RFC specify the requirements for ARP?
  6. RFC 826 specifies the ARP packet format and other details.

  7. What is the use of ARP?
  8. A host in an Ethernet network can communicate with another host, only if it knows the Ethernet address (MAC address) of that host. The higher level protocols like IP use a different kind of addressing scheme (like IP address) from the lower level hardware addressing scheme like MAC address. ARP is used to get the Ethernet address of a host from its IP address. ARP is extensively used by all the hosts in an Ethernet network.

  9. Why a IP address needs to be mapped to a MAC address, why can't the MAC address itself is represented using the IP address?
  10. The length of a MAC address is 6 bytes and the length of an IP address is 4 bytes. Obviously, the MAC address cannot be represented using the IP address. So an IP address must be mapped to the corresponding MAC address.

  11. Can ARP be used in a network other than Ethernet?
  12. ARP is a general protocol, which can be used in any type of broadcast network. The fields in the ARP packet specifies the type of the MAC address and the type of the protocol address. ARP is used with most IEEE 802.x LAN media. In particular, it is also used with FDDI, Token Ring, and Fast Ethernet, in precisely the same way as it is with Ethernet.

  13. How does ARP resolve an IP address to an Ethernet MAC address?
  14. When ARP needs to resolve a given IP address to Ethernet address, it broadcasts an ARP request packet. The ARP request packet contains the source MAC address and the source IP address and the destination IP address. Each host in the local network receives this packet. The host with the specified destination IP address, sends an ARP reply packet to the originating host with its IP address.

  15. What is an ARP cache?
  16. ARP maintains the mapping between IP address and MAC address in a table in memory called ARP cache. The entries in this table are dynamically added and removed.

  17. When is an ARP request packet generated?
  18. The following steps results in the generation of an ARP request packet:

    1. The IP module sends a packet, destined for another host in the network, to the ARP module.
    2. The ARP module looks up the ARP table (cache) to resolve the IP address.
    3. If the supplied IP address is present in the ARP cache, it is resolved into its Ethernet address.
    4. If the ARP module is not able to find an entry for this IP address in the ARP cache, then it sends an ARP request packet to the Ethernet driver, to resolve the IP address to the Ethernet address.
    5. After the IP address is resolved by the ARP module, the packet is sent to the Ethernet driver for transmission.

  19. What happens when a host receives an ARP request packet?
  20. The ARP request is received and processed by all the hosts in the network, since it is a broadcast packet. The following steps are carried out when a ARP request packet is received by a host:

    1. If the IP address to be resolved is for this host, then the ARP module sends an ARP reply packet with its Ethernet MAC address.
    2. If the IP address to be resolved is for this host, then the ARP module updates its ARP cache with the source Ethernet MAC address to source IP address mapping present in the ARP request packet. If the entry is already present in the cache, it is overwritten. If it is not present, it is added.
    3. If the IP address to be resolved is not for this host, then the ARP module discards the ARP request packet.

  21. Will a host update its ARP cache upon receiving any ARP request?
  22. A host will update its ARP cache, only if the ARP request is for its IP address. Otherwise, it will discard the ARP request.

  23. What is the disadvantage if a host updates its ARP cache upon receiving any ARP request?
  24. The host will exhaust the ARP cache with a lot of unused ARP entries, if it updates the ARP cache for any ARP request.

  25. What happens when a host receives an ARP reply packet?
  26. The ARP reply packet is received only by the host, which transmitted the ARP request packet. The ARP module adds the Ethernet hardware address to IP address mapping present in the ARP reply packet to the ARP cache.

  27. Is there a separate packet format for ARP request and ARP reply?
  28. No. Both the ARP request and ARP reply packets use the same format.

  29. Which MAC address is an ARP request directed to?
  30. All ARP request packets are transmitted with the Ethernet broadcast address, so that all hosts in the network will receive the request.

  31. To which MAC address is an ARP reply packet directed to?
  32. ARP reply packet is directed to the host, which transmitted the ARP request packet.

  33. If a host is not able to get the MAC address of a host, how it knows about its IP address?
  34. A host will either use a static file like /etc/hosts or DNS protocol to get the IP address of another host.

  35. What will happen if an ARP reply is not received for an ARP request?
  36. If an ARP reply is not received, then that IP address cannot be resolved to an Ethernet address. Without a Ethernet address, the packets cannot be transmitted.

  37. When is an entry added to the ARP cache?
  38. A new entry is added to the ARP cache when an IP address is successfully mapped to a MAC address. Usually, entries are added dynamically to the ARP cache. Static entries can also be added.

  39. What will happen if a new ARP request packet is received, but the MAC address to IP address is already present in the ARP cache?
  40. If a ARP request packet is received and the mapping already exists in the ARP cache, it will be overwritten with the values present in the request.

  41. When is an entry removed from an ARP cache?
  42. An entry in an ARP cache is removed after a pre-determined timeout period (e.g. 20 minutes).

  43. What is the format of an ARP packet?
  44. The various fields of a ARP request/reply packet and their length are shown below:

        +--------+
    Hardware 2 bytes
    MAC
    Address
    Type
    +--------+
    Protocol 2 bytes
    Address
    Type
    +--------+
    Hardware 1 byte
    MAC
    Address
    Size
    +--------+
    Protocol 1 byte
    Address
    Size
    +--------+
    Op 2 bytes
    +--------+
    Sender 6 bytes (depends on the above size field)
    MAC
    Address
    +--------+
    Sender 4 bytes (depends on the above size field)
    IP
    Address
    +--------+
    Target 6 bytes (depends on the above size field)
    MAC
    Address
    +--------+
    Target 4 bytes (depends on the above size field)
    IP
    Address
    +--------+
    The fields are further explained below:
        +---------+-------------------------------------------------------+
    Ethernet For a ARP request, source MAC address is the MAC
    Header address of the host sending the ARP request,
    destination MAC address is the Ethernet broadcast
    address (FF:FF:FF:FF:FF:FF), frame type field is 0x806.
    For ARP reply, source MAC address is the MAC address of
    the host replying to the ARP request, destination MAC
    address is the MAC address of the host that sent the
    ARP request, and the frame type field is 0x806.
    +---------+-------------------------------------------------------+
    Hardware Type of the hardware MAC address which is being mapped.
    Address For Ethernet the value of this field is 1.
    Type
    +---------+-------------------------------------------------------+
    Protocol Type of the protocol address to which the MAC address
    Address is mapped. For IP address the value of this field is
    Type 0x800.
    +---------+-------------------------------------------------------+
    Hardware Size of the hardware MAC address. For Ethernet, the
    Address value of this field is 6.
    Size
    +---------+-------------------------------------------------------+
    Protocol Size of the protocol address. For IP, the value of
    Address this field is 4.
    Size
    +---------+-------------------------------------------------------+
    OperationType of operation being performed. The value of this
    field can be 1 (ARP request), 2 (ARP reply)
    +---------+-------------------------------------------------------+
    Source The hardware MAC address of the host sending the ARP
    MAC request or reply. This is same as the source MAC
    address address present in the Ethernet header.
    +---------+-------------------------------------------------------+
    Source The IP address of the host sending the ARP request or
    IP reply.
    address
    +---------+-------------------------------------------------------+
    Target The hardware MAC address of the host receiving the ARP
    MAC request or reply. This is same as the destination MAC
    address address present in the Ethernet header.
    +---------+-------------------------------------------------------+
    Target The IP address of the host receiving the ARP request
    IP or reply.
    address
    +---------+-------------------------------------------------------+

  45. What is the size of an ARP request and reply packet?
  46. The size of an ARP request or reply packet is 28 bytes.

  47. How to differentiate between a ARP request packet and a ARP reply packet, as the Ethernet type field is same on both the packets?
  48. An ARP request packet can be differentiated from an ARP reply packet using the 'operation' field in the ARP packet. For a ARP request it is 1 and for an ARP reply it is 2.

  49. Why is the hardware MAC address present in both the Ethernet header and the ARP packet (request and reply)?
  50. The Ethernet header is processed by the data link driver and removed from the packet. When the ARP layer gets the packet, it needs to know the hardware and protocol addresses in order to update the table. That is why the hardware MAC address is present in both the Ethernet header and the ARP packet.

  51. What is proxy ARP?
  52. Proxy ARP is the process in which one system responds to the ARP request for another system. For example, host A sends an ARP request to resolve the IP address of host B. Instead of Host B, Host C responds to this ARP request.

  53. What is the use of proxy ARP?
  54. When routers receive ARP requests from one network for hosts on the network, they will respond with a ARP reply packet with their MAC address. For example, let us say host A is in one network, host B is in another network and router C connects these two networks. When host A sends an ARP request to resolve the IP address of host B, the router C receives this packet. The router C sends an ARP reply with its MAC address. So host A will send all the packets destined for host B to the router C. Router C will then forward those packets to host B. Proxy ARP is also used if a host in a network is not able to understand subnet addressing. For example, if host A and host B are actually in two different subnets, but host A cannot understand subnet addressing. So host A assumes that host B is present in the same network. In this case a router, host C, can use proxy ARP to route packets between host A and host B.

  55. What is gratuitous ARP?
  56. When a host sends an ARP request to resolve its own IP address, it is called gratuitous ARP. In the ARP request packet, the source IP address and destination IP address are filled with the same source IP address itself. The destination MAC address is the Ethernet broadcast address (FF:FF:FF:FF:FF:FF).

  57. What is the use of gratuitous ARP?
  58. Gratuitous ARP is used for the following:

    1. In a properly configured network, there will not be an ARP reply for a gratuitous ARP request. But if another host in the network is also configured with the same IP address as the source host, then the source host will get an ARP reply. In this way, a host can determine whether another host is also configured with its IP address.
    2. When the network interface card in a system is changed, the MAC address to its IP address mapping is changed. In this case, when the host is rebooted, it will send an ARP request packet for its own IP address. As this is a broadcast packet, all the hosts in the network will receive and process this packet. They will update their old mapping in the ARP cache with this new mapping.