1. 简介
地址解析协议(Address Resolution Protocol),其基本功能为透过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。它是IPv4中网络层必不可少的协议,不过在IPv6中已不再适用,并被邻居发现协议(NDP)所替代。
2. 格式

注意,arp包不是ip包,没有ip层。字段比较简单,看着就知道了。
3. arp request包:

arp requst是一个广播包,可以被交换机广播。
4.arp reply包:

arp reply是一个单播包。
5. arp应用场景
在以太网协议中规定,同一局域网中的一台主机要和另一台主机进行直接通信,必须要知道目标主机的MAC地址。而在TCP/IP协议中,网络层和传输层只关心目标主机的IP地址。这就导致在以太网中使用IP协议时,数据链路层的以太网协议接到上层IP协议提供的数据中,只包含目的主机的IP地址。于是需要一种方法,根据目的主机的IP地址,获得其MAC地址。这就是ARP协议要做的事情。所谓地址解析(address resolution)就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。
6. arp proxy
arp代理,这个用的也不多,典型用法是https://www.cisco.com/c/en/us/support/docs/ip/dynamic-address-allocation-resolution/13718-5.html cisco 这个例子,路由器不能转发二层广播,所以host d 不会收到arp 请求,但是路由器知道host d的mac地址,而且默认开了arp proxy,所以路由器将自己接口的mac地址回复给了host a,这样a就能和d通信。