计算机网络-ARP协议详解(一)


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

目前几乎所有的应用都会跟网络打交道,所以我们了解和熟悉网络对我们后续的排错是很有必要的,我这里讲解的部分主要是我个人理解来进行讲解。

arp的核心是mac地址,而所有网络设备厂商都遵循 IEEE 802 标准中对 MAC 地址的统一规范,这是 ARP 协议能正常工作的底层前提。

1. MAC 地址的全球统一编码规则MAC 地址(物理地址)是网络设备的全球唯一标识,长度为 48 比特(6 字节),其编码格式由 IEEE(电气和电子工程师协会) 统一分配和规范:

前 24 比特(前 3 字节)OUI(组织唯一标识符),由 IEEE 分配给设备厂商(如华为、思科、Intel 等),每个厂商的 OUI 都是唯一的。例:华为的 OUI 包含 00:E0:FC,思科的 OUI 包含 00:00:0C。后 24 比特(后 3 字节)是厂商自定义编码,由厂商自行分配给每一台设备,确保同厂商设备的 MAC 地址不重复。正是因为所有厂商都遵循这个编码规则,才保证了全球所有网络设备的 MAC 地址不会重复,ARP 协议解析出的 MAC 地址才能精准定位到目标设备。但是实际上ARP更适合在局域网使用。

2. 以太网帧对 MAC 地址的统一封装规则ARP 报文是封装在以太网帧中传输的,而以太网帧的格式也遵循 IEEE 802.3 标准,所有厂商的设备都严格按照这个格式处理 MAC 地址:

以太网帧的前 6 字节是目的 MAC 地址,后 6 字节是源 MAC 地址;ARP 请求报文会将目的 MAC 地址设为广播地址 FF:FF:FF:FF:FF:FF,确保局域网内所有设备都能接收;这里的广播就是凡是接入这个网络都会收到这个报文,早期的网络设备hub,a发给b信息,在c的电脑里面都可以通过抓包获取。ARP 响应报文会将目的 MAC 地址设为请求方的 MAC 地址,实现单播回应。无论设备是华为、思科还是其他品牌,只要接入以太网,就必须按照这个格式解析帧头中的 MAC 地址,这是 ARP 协议能跨厂商互通的关键。

3. 什么是ARP?ARP(Address Resolution Protocol,地址解析协议)是TCP/IP协议栈中的一个基础但至关重要的协议,它的核心功能是根据IP地址解析出对应的MAC地址。

为什么需要ARP?在以太网环境中,设备之间通信实际上依赖的是MAC地址而不是IP地址:

地址类型

作用

analogy

IP地址

逻辑地址,用于网络层寻址

相当于"收货人姓名"

MAC地址

物理地址,用于数据链路层通信

相当于"具体门牌号"

场景类比:

你想给朋友寄快递,知道他的名字(IP地址),但快递员需要知道具体门牌号(MAC地址)才能送达ARP就是帮你查询"门牌号"的过程4. ARP工作原理ARP核心流程假设同一网段内:主机A(192.168.1.100)想向主机B(192.168.1.200)发送数据

代码语言:javascript复制+----------------+ +----------------+

| 主机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) |

红米手机截图方法详解:多种技巧轻松掌握
爱弹琴乐谱网>琴记> 《吉他弹唱APP大评测!哪个才是你的真命天子?(内附避坑指南)》