首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >计算机网络-ARP协议详解(一)

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

作者头像
运维小路
发布2026-04-02 13:11:51
发布2026-04-02 13:11:51
1540
举报
文章被收录于专栏:运维小路运维小路

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

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

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)        |
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. MAC 地址的全球统一编码规则
  • 2. 以太网帧对 MAC 地址的统一封装规则
  • 3. 什么是ARP?
  • 为什么需要ARP?
  • 4. ARP工作原理
    • ARP核心流程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档