### 1、ARP概要

- Address Resolution Protocol
- 根据IP地址寻找MAC地址
- 底层数据链路层通信需要知道对方的MAC地址
- 以目标IP地址为线索，用来定位下一个应该接受数据分包的网络设备的MAC地址
- 如果目标主机不在同一个链路上，可以通过ARP查找下一跳路由器的MAC地址
- ARP协议只适用于IPv4，IPv6网络需要使用ICMPv6协议

### 2、一个链路内ARP工作机制

- 主机A 172.20.1.1，主机B 172.20.1.2
- 两个主机互相不知道MAC地址
- 主机A向主机B发送数据
- 主机A先发送一个ARP广播，包含目的主机的IP地址，广播包可以被同一个链路上的所有主机接受
- 主机B查看目的地址和自己的IP一致，返回包含自己MAC地址的ARP响应给主机A
- 主机A和主机B分别缓存对方的MAC地址

![image-20230709162452866](https://blog-heysq-1255479807.cos.ap-beijing.myqcloud.com/blog/note/image-20230709162452866.png)

### 3、不通链路ARP

- IP层的源IP和目的IP不会变
- 数据链路层的源MAC地址和目的MAC地址经过一跳后就会变化

![image-20230709163129978](https://blog-heysq-1255479807.cos.ap-beijing.myqcloud.com/blog/note/image-20230709163129978.png)

### 3、ARP包格式

![image-20230709162900405](https://blog-heysq-1255479807.cos.ap-beijing.myqcloud.com/blog/note/image-20230709162900405.png)

### 3、RARP

- Reverse Address Resolution Protocol
- ARP反向解析，从MAC地址定位IP地址

![image-20230709163531478](https://blog-heysq-1255479807.cos.ap-beijing.myqcloud.com/blog/note/image-20230709163531478.png)