转载自 http://blog.sina.com.cn/s/blog_62a9b1bb0100fyyw.html
由于各种原因(例如,更换网卡、网络中加入了新的主机等等),不能根据IP地址得出物理地址。这时,想到了在主机中存放一个从IP地址到硬件地址的映射表,并且这个表还得时常更新。这个映射表就是地址解析协议(ARP)。
每一个主机就有一个ARP高速缓存,这里面有所在局域网上的各主机和路由器的IP地址到硬件地址的映射表,这些就是目前该主机知道的一些地址。
如果A想和B通信,但是A是才入网,总之,在主机A的RAP查找不到B的物理地址。在这种情况下,主机A就自动运行ARP,然后进行一下的步骤:
1、ARP向本局域网广播发送一个ARP请求分组,ARP的内容包括自己的IP地址和硬件地址,以及主机B的IP地址。
2、在本局域网上的所有主机上运行的ARP进程都会收到这个ARP请求分组。
3、主机B在ARP请求分组中见到自己的IP地址,就向主机A发送ARP响应分组。并写入自己的硬件地址,其余的主机就不理睬这个ARP请求分组。注意:请求分组是广播发送的,但是响应分组是普通的单播。
4、主机A收到主机B的ARP响应分组后,就在它的ARP高速缓存中写入主机B的IP地址到硬件地址的映射。