以太网是一种局域网,而现在大部分的局域网都是以太网,所以一般提及局域网都会默认为以太网。

arp(address resolution protocol)称为地址解析协议,工作在数据链路层
以太网环境中,数据传输依赖于mac地址,而不是ip地址。arp的作用就是采用广播的形式将ip解析成mac地址。


arp的工作流程

arp请求
当a想要找到b的物理地址时,先查找arp缓存是否有b的mac,如果没有就会发送给一个arp请求,请求中包含了发送方a的mac和ip和b的ip,由于a不知道b的mac地址,所以a会在以太网中向所有主机进行广播。

arp响应
a对所有主机广播后,以太网里的每一台主机都会接收这个请求并验证,将arp请求的目标ip与自己匹配,如果和自己不一样就抛弃,如果是自己,就会以单播的方式将自己的mac发送给a。

arp相应后续
a收到了b发来的mac,会用b的ip和mac地址映射去更新arp缓存,一段时间后会被清除。当本地arp缓存中没有b的mac地址后,会继续重复上述操作。


实验验证

操作环境:kali+ubuntu虚拟机
第一步:kali中tcpdump捕获数据包​​​tcpdump -i eth0 -nn arp and host ubuntu_ip​​​ 第二步:kali中向ubunt发起一次ping命令​​ping -c 1 ubuntu_ip​​ 第三步:查看捕获的数据包
ARP协议原理及验证_缓存

arp请求:kali(140)发出请求,广播谁是136。arp回应:136(ubuntu)mac是xxxx
arp请求:ubuntu(136)发出请求,广播谁是140。arp回应:140(kali)mac是xxxx