地址解析协议(英语:Address Resolution Protocol,缩写:ARP)是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议,它在IPv4中极其重要。ARP是通过网络地址来定位MAC地址。
在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。而在TCP/IP协议中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
另外,当发送主机和目的主机不在同一个局域网中时,即便知道对方的MAC地址,两者也不能直接通信,必须经过路由转发才可以。所以此时,发送主机通过ARP协议获得的将不是目的主机的真实MAC地址,而是一台可以通往局域网外的路由器的MAC地址。于是此后发送主机发往目的主机的所有帧,都将发往该路由器,通过它向外发送。这种情况称为委托ARP或ARP代理(ARP Proxy)。
现在1号主机想要和3号主机通信,可是ARP高速缓存里面没有3号主机的MAC地址,怎么办?
1号主机和5号主机想要通信,可是ARP高速缓存(只会存储局域网内部主机的MAC地址)里面没有5号主机的MAC地址,怎么办呢?
总结:
由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址。
ARP协议:完成主机或路由器IP地址到MAC地址的映射。解决下一跳走哪的问题
ARP协议使用过程:
检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存( 10-20min更新一次)。
ARP协议4种典型情况:
1.主机A发给本网络上的主机B:用ARP找到主机B的硬件地址;
2.主机A发给另一网络上的主机B:用ARP找到本网络.上一个路由器(网关)的硬件地址;
3.路由器发给本网络的主机A:用ARP找到主机A的硬件地址;
4.路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址。
ARP协议自动进行的