作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

目前几乎所有的应用都会跟网络打交道,所以我们了解和熟悉网络对我们后续的排错是很有必要的,我这里讲解的部分主要是我个人理解来进行讲解。
arp的核心是mac地址,而所有网络设备厂商都遵循 IEEE 802 标准中对 MAC 地址的统一规范,这是 ARP 协议能正常工作的底层前提。
MAC 地址(物理地址)是网络设备的全球唯一标识,长度为 48 比特(6 字节),其编码格式由 IEEE(电气和电子工程师协会) 统一分配和规范:
正是因为所有厂商都遵循这个编码规则,才保证了全球所有网络设备的 MAC 地址不会重复,ARP 协议解析出的 MAC 地址才能精准定位到目标设备。但是实际上ARP更适合在局域网使用。
ARP 报文是封装在以太网帧中传输的,而以太网帧的格式也遵循 IEEE 802.3 标准,所有厂商的设备都严格按照这个格式处理 MAC 地址:
FF:FF:FF:FF:FF:FF,确保局域网内所有设备都能接收;这里的广播就是凡是接入这个网络都会收到这个报文,早期的网络设备hub,a发给b信息,在c的电脑里面都可以通过抓包获取。无论设备是华为、思科还是其他品牌,只要接入以太网,就必须按照这个格式解析帧头中的 MAC 地址,这是 ARP 协议能跨厂商互通的关键。
ARP(Address Resolution Protocol,地址解析协议)是TCP/IP协议栈中的一个基础但至关重要的协议,它的核心功能是根据IP地址解析出对应的MAC地址。
在以太网环境中,设备之间通信实际上依赖的是MAC地址而不是IP地址:
地址类型 | 作用 | analogy |
|---|---|---|
IP地址 | 逻辑地址,用于网络层寻址 | 相当于"收货人姓名" |
MAC地址 | 物理地址,用于数据链路层通信 | 相当于"具体门牌号" |
场景类比:
假设同一网段内:主机A(192.168.1.100)想向主机B(192.168.1.200)发送数据
+----------------+ +----------------+
| 主机A | | 主机B |
| 192.168.1.100 | | 192.168.1.200 |
| MAC: AA:AA:AA | | MAC: BB:BB:BB |
+-------+--------+ +-------+--------+
| |
| 1. 检查ARP缓存 |
| (没有找到B的MAC) |
| |
| 2. 广播ARP请求 |
| "谁是192.168.1.200?请告诉AA:AA:AA" |
+---------------------------------------->|
| (广播到所有设备) |
| |
| 3. 单播ARP响应 |
| <------------------------------------+
| "我是192.168.1.200,我的MAC是BB:BB:BB"|
| |
| 4. 更新ARP缓存 |
| 192.168.1.200 -> BB:BB:BB |
| |
| 5. 正常通信 |
+---------------------------------------->|
| 发送数据帧 (目的MAC: BB:BB:BB) |