Link to home
Start Free TrialLog in
Avatar of Castlewood
Castlewood

asked on

Why doesn't a ping activity automatically create an ARP record in the local ARP table in Windows?

Please help me understand about ARP.
I know the local ARP table is cached and records also can be manually added. But how come when I ping a remote IP it doesn't automatically create a corresponding ARP table record?
Avatar of Jeremy Weisinger
Jeremy Weisinger

The ARP table only contains MAC to IP mappings of the local subnet. It is not routable.
Avatar of Castlewood

ASKER

understand that, But how come when I ping a remote IP it doesn't automatically create a corresponding ARP table record? What activities will automatically create an ARP table record in my local computer?
ASKER CERTIFIED SOLUTION
Avatar of Jeremy Weisinger
Jeremy Weisinger

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Thanks.
Under what kind of situations do we need to manually add static ARP table records to the computer or a router?
Well normally you don't need static entries. There are some cases with equipment configuration or non-valid IP setups where a static ARP entry would be useful. But generally you would just leave things dynamic.
http://www.dummies.com/programming/networking/cisco/cisco-networking-static-arp-entry-managment/
To fully clarify this (Jeremy kind of missed the most critical piece).

When you are pinging a IP, your computer does a number of things:

1. Looks at the remote IP & compares it to your local subnet
2. If it is local, it will consult the ARP table.  If it is in the arp table, it will encapsulate the IP datagram within a ethernet frame with a destination address obtained from the ARP table.
3. If it is not in the ARP table, it will attempt to send a ARP request within the local broadcast domain.  Once it has a IP address, it will perform the encapsulation detailed above.
3. If it is not local, it will consult the host routing table.  It will compare the requested IP with the routing table using the longest-match (most specific match) first.
4. It will then check the next hop address of that route, and if the next hop address is on the local subnet, it will consult the ARP table and if it has a entry for the next-hop, it will encapsulate the IP datagram in the ethernet header with a destination MAC address of the next-hop as obtained from the ARP table.  If it is local but not in the ARP table, it will attempt to send a ARP request for the next hop ip address.  If it is not local, it will consult the routing table for a entry for that gateway (this is a recursive route lookup).

The key is when you are pinging (or communicating in any way) with a subnet that is not on your local subnet, it does perform a ARP lookup/request, but for the next hop address, not for the destination address
Daniel, Thank you so much. Your answer is exactly what I was looking for. Really appreciated that you cleared my question about this area. I owe you double thumbs up.