ARP协议
ARP协议
功能:通过IP地址解析出对应的MAC地址
ARP高速缓存(ARP cache):每一台主机都有一个ARP高速缓存,里面有本局域网上的各主机和路由器的IP地址到MAC地址的映射表。主机A要向本局域网上的主机B发送IP数据包时,就先从ARP高速缓存中查看有无B的IP地址,有,就取出对应的MAC地址,在将其写入Mac帧中,然后通过局域网吧该Mac帧发往此物理地址。如果没有,则主机A自动运行ARP程序:
(1) ARP进程会在本局域网内广播发送一个ARP请求分组,(内容大概是:我的IP地址是119.11.0.2,硬件地址是00-00-cc-15-ad-12.我想知道IP地址为119.11.0.19的主机的物理地址)
(2) 在本局域网上的所有主机上运行的ARP进程都会收到此ARP请求分组。
(3) 主机B的地址与ARP请求分组中要查询的IP地址一致,就收下这个分组,并向主机A发送一个ARP响应分组,同时在ARP响应分组中写入自己的硬件地址。其余主机的IP地址与ARP请求分组中要查询的不一致,因此不理睬这个ARP请求分组。(ARP响应分组是一对一发送)
(4) 主机A在接到B的ARP响应分组后,就在其ARP高速缓存写入B的IP地址到物理地址的映射。主机B也通过A发送的ARP请求分组将A的IP地址到物理地址的映射写入ARP高速缓存。
ARP对保存在告诉缓存中的每一个映射地址项目都设置生存时间,凡是超过生存时间的项目就从ARP高速缓存中删掉。
ARP是解决同一个局域网上的主机或路由器的IP地址与物理地址映射问题。如果要查找的主机在另一个局域网,则主机A不能解析出另一个局域网上主机B的硬件地址。(实际上也不需要知道远程主机的硬件地址)
(1) 主机A发送给主机B的数据报首先要通过与源主机A连接在同一个局域网(网络1)的路由器R1来转发,因此主机A把路由器R1的IP地址解析为硬件地址,以便把数据报传送到路由器R1。剩下工作由R1完成。
(2) 路由器R1发送ARP请求分组(在网络2上广播)找到路由器R2,同时使用ARP解析出R2的物理地址,于是IP数据报通过此物理地址传送到R2。剩下工作有R2完成
(3) R2在网络3广播ARP请求分组找到主机B的硬件地址,将IP数据报传送给主机B。