4

I'm a complete beginner at networking, but if I've understood this correctly, the gist of ARP is:

We want to use high level adresses to the highest degree possible but ultimately, we actually need the sinks MAC adress to transmit to it.

  • We route a packet to the host with ip adress I. But we do not know which MAC adress to send it to.
  • Now we broadcast a message in the style of "hey, who does this IP adress belong to?"
  • The sink recognizes its IP and responds by sending its MAC adress.

So, we are doing ARP because we do not want to broadcast the entire packet?

Follow-up #1: I recall reading that at least for Ethernet networks, broadcasting is basically as cheap as single transmissions. But at the time of sending the packet, we do not know if the sink is on Ethernet so we can not assume broadcasting is cheap?

Follow-up #2: At what point do we broadcast? Say the sink is at 23.235.37.67. Do we actually broadcast to 23.235.37.67? If so, what makes it a broadcast, rather than a single user transmission? Why not broadcast the entire packet if there is only a single computer on this IP?

4

Broadcasts interrupt every host on the broadcast domain, which is not a good thing. ARP must broadcast in order to find the MAC address, but, after that, the MAC address gets cached in an ARP table (it eventually times out). Caching the MAC address prevents excessive broadcasts from ARP - only the first packet needs to ARP (broadcast), and the rest of the stream can use the ARP cache.

4
  • That certainly makes sense. But I'm not entirely sure why, if we're broadcasting to a single-computer IP, broadcasting is so much worse than transmitting? Sep 2 '15 at 18:36
  • Ok I might get it now - we're broadcasting to 23.235.37.xx? Sep 2 '15 at 18:37
  • Broadcasting is not to a single IP address, it goes to every device on the broadcast domain. You ARP to relate the IP address with the MAC address, and you must ask every host on the broadcast domain if that is its IP address. Every host on the broadcast domain must look at a broadcast, interrupting what every it was doing.
    – Ron Maupin
    Sep 2 '15 at 18:44
  • You don't broadcast to 23.235.37.xx, you broadcast to every host on the broadcast domain asking who has this address.
    – Ron Maupin
    Sep 2 '15 at 18:46
4

The address resolution protocol (arp) is a protocol used by the Internet Protocol (IP) [RFC826], specifically IPv4, to map IP network addresses to the physical addresses of host operates at layer 2 of OSI model . The protocol operates below the network layer as a part of the interface between the OSI network and OSI link layer. It is used when IPv4 is used over Ethernet is address resolution protocol it maps ip address to device Mac address . From layer 3 devices toward end devices traffic will be forwarded on basis of arp and Mac address table. Arp main function is to discover physical address of machine with network address. Arp acts as communication bridge between layer 2 and layer 3

We can see arp table in desktop with command arp -a

enter image description here

In router with command sh ip arp

1
  • The TCP/IP suite is not based on the OSI model. See RFC 1122.
    – Ron Trunk
    Jul 20 '20 at 12:01
3

The key to answer your questions is that for PC1 to communicate with PC2 what PC1 has and what PC1 want and how PC1 get what it want
First of all here in network we don't have any thing called high level address or low level address but we have physical address (MAC address) which is L2 address and have logical address (IP address) which is L3 address. And by using ARP we map both to gather to get something called ARP table. enter image description here
This tables contains the hosts which PC can communicate with them (like phone book, you will call the persons you have there numbers only, and for person you don't have his number you will ask)
First part of the key what PC1 has???
In case of ARP, PC1 has the L3 address (IP) of PC2 which it need to communicate with. Second part of the Key what PC1 want??? it want L2 address (MAC address) of PC2 to establish communication with him
Note that
PC to communicate with other PC will send him something like that

                      |SRC MAC | SRC IP | payload |DST IP|DSP MAC | 

So simply in our case we know 4 things from 5, we know SRC MAC, SRC IP , payload ,DST IP but we don't know DSP MAC. So the PC1 will send this packet as it is and for the part which it don't know it will send the Broadcast address of it (FF:FF:FF:FF:FF:FF) and only the PC which has this DST IP will replay this broadcast by its own MAC address which exactly what the PC1 need . enter image description here

sending packet with Broudcast MAC address is ARP Request and sure the PC2 replay by some thing called ARP replay

and also you can find a very good Example for ARP in this link ARP EXAMPLE

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.