3

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?

3

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.

  • 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? – Benjamin Lindqvist Sep 2 '15 at 18:36
  • Ok I might get it now - we're broadcasting to 23.235.37.xx? – Benjamin Lindqvist 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
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.