ARP
ARP 是“Address Resolution Protocol”的缩写,译为“地址解析协议”,它是根据 IP 地址获取物理地址的一个 TCP/IP 协议。

ARP 协议通过 IP 地址向 MAC 地址的转换,解决网际层和网络访问层的衔接问题。

在网络访问层中,同一局域网中的一台主机要和另一台主机进行通信,需要通过 MAC 地址进行定位,然后才能进行数据包的发送。而在网络层和传输层中,计算机之间是通过 IP 地址定位目标主机,对应的数据报文只包含目标主机的 IP 地址,而没有 MAC 地址。由于 IP 地址和 MAC 地址定位方式不同,ARP 协议成为数据传输的必备协议。主机发送信息前,必须通过 ARP 协议获取目标 IP 地址对应的 MAC 地址,才能正确地发送数据包。

工作过程:request+reply

  1. 先在本机ARP缓存中查找
  2. 主机广播发送ARP请求 #思考 如何在wireshark中查看是广播方式
  3. 同一链路中的所有设备收到请求后,拆包比对自身IP
  4. 发现IP一致的远端设备,添加本机MAC地址到其ARP缓存,并发送ARP响应给对端主机;不一致的设备,丢弃
  5. 本机收到ARP回复后,更新本机ARP缓存,并过期自动清除

抓包
请求和响应包相差不大,Opcode不同,Sender/Target相反

ARP请求
image.png
ARP响应
image.png

查看ARP缓存
arp -a

RARP
根据MAC地址获取其IP地址,常见如打印机等小型嵌入设备接入网络
工作过程

  1. 架设RARP服务器,并注册设备(如打印机)的MAC和IP地址映射表
  2. 设备接入网路后,发送RARP请求(带MAC地址)
  3. RARP服务器返回RARP响应(带IP地址)

定义

地址解析协议
处于网络层
只作用于局域网

作用

确定IP地址的MAC地址

工作原理(流程)

  1. 客户端广播发送请求给局域网所有主机
  2. 目的IP的主机收到请求后返回响应
  3. 客户机将IP与MAC地址的映射保存到ARP表中

在局域网内找不到目标IP,会交给路由器

报文格式

查看ARP表

每台主机都有一张ARP表(缓存),存放在
由驱动程序和操作系统完成。
arp -a

cat /proc/net/arp

其他

局域网通信表面使用IP地址,实际使用MAC地址——ARP

RARP

(4条消息) ARP协议详解_沉默的鹏先生-CSDN博客_arp协议
彻底搞懂系列之:ARP协议 - 知乎 (zhihu.com)