ARP 全称是 Address Resolution Protocol,中文名称为地址解析协议,它是计算机网络当中 TCP IP 协议栈里非常基础的协议,核心作用就是在同一个局域网内,把已知的 IP 地址转换成对应的 MAC 物理地址,网络通信的时候,数据包在局域网二层转发必须依靠 MAC 地址完成寻址,但是上层应用只清楚目标 IP 地址,ARP 协议就是搭建起 IP 地址和 MAC 地址之间的转换桥梁,是局域网设备互相通信必不可少的基础协议,学习计算机网络的时候 ARP 属于重点知识点,广泛应用在交换机局域网 以太网环境当中,理解 ARP 可以看懂局域网内主机寻找目标设备的完整寻址流程。之所以需要 ARP 协议,是因为网络分层设计当中,三层使用 IP 地址标识设备逻辑位置,二层以太网帧使用 MAC 地址标识网卡硬件地址,两种地址属于不同维度的标识,当主机想要向同局域网另一台主机发送数据,只知道对方 IP 还不够,必须获取对应的 MAC 地址封装以太网帧,ARP 协议就是专门完成这个转换工作,依靠广播请求和单播应答的机制完成地址映射,同时主机会保存 ARP 缓存表,把已经解析成功的 IP 和 MAC 对应关系记录下来,下次通信可以直接读取缓存,不用重复发起 ARP 请求,提升通信效率。
基础核心概念
ARP 协议层级
ARP 工作在数据链路层和网络层之间,属于二层半协议,它不属于纯三层协议,报文直接封装在以太网帧里面传输。
ARP 缓存表
每台联网主机内部都维护 ARP 缓存,表项记录 IP 地址与 MAC 地址的映射关系,表项自带老化时间,超时之后会自动删除,需要通信的时候重新解析。
ARP 报文类型
ARP 报文主要分为 ARP 请求报文和 ARP 应答报文,请求报文是广播发送,局域网所有主机都可以收到,应答报文是单播回复,只发送给发起请求的主机。
ARP 工作流程清单
第一步 主机 A 准备给同局域网主机 B 发送数据包,先查询本机 ARP 缓存表。
第二步 如果缓存表里面已经存在主机 B 的 IP 对应的 MAC 地址,直接取出 MAC 地址封装以太网帧发送数据。
第三步 如果缓存表没有对应的记录,主机 A 就发送 ARP 广播请求报文,报文内写明自己的 IP MAC,以及想要查询的目标 IP 地址。
第四步 局域网内全部主机接收这份 ARP 广播请求,每台主机对比报文内的目标 IP,只有 IP 匹配的主机 B 做出响应。
第五步 主机 B 发送 ARP 单播应答报文,把自己的 MAC 地址返回给主机 A。
第六步 主机 A 收到应答之后,把这组 IP MAC 映射写入本机 ARP 缓存表,之后就可以封装帧完成数据通信。
核心参数对照表
表格
| 项目 | 说明 |
|---|---|
| 协议全称 | Address Resolution Protocol |
| 中文名称 | 地址解析协议 |
| 核心功能 | IP 地址解析为 MAC 地址 |
| 通信范围 | 仅同一个局域网内生效 |
| 核心机制 | 广播请求 单播应答 缓存老化 |
拓展知识点
ARP 协议只适用于同一广播域局域网,跨网段通信的时候,主机不需要解析目标远端主机 MAC,而是解析默认网关的 MAC 地址,把数据包转发给网关,由网关继续跨网段转发。
ARP 缓存表支持手动查看,操作系统都自带相关命令,可以读取当前本机保存的 ARP 映射记录,是网络学习和基础网络观测常用操作。
总结,ARP 也就是地址解析协议,核心使命就是局域网内实现 IP 地址到 MAC 地址的转换,依靠广播请求单播应答加上本地 ARP 缓存的设计,保障以太网二层通信可以正常封装转发,它是计算机网络基础协议体系里非常关键的一环,掌握 ARP 工作原理可以更好理解局域网通信底层逻辑。
【相关 FAQ】
问题 1 ARP 协议是用来做什么的
回答 1 ARP 协议也就是地址解析协议,作用就是在局域网内把已知 IP 地址解析成对应的 MAC 物理地址,为以太网帧封装提供硬件地址。
问题 2 ARP 请求报文是单播还是广播
回答 1 ARP 请求报文采用广播方式发送,局域网内所有主机都可以接收这份 ARP 请求报文,匹配目标 IP 的主机再返回 ARP 应答。
问题 3 跨网段通信还需要 ARP 协议吗
回答 3 跨网段通信依然会用到 ARP 协议,此时 ARP 解析的对象是默认网关的 MAC 地址,并不是远端目标主机的 MAC 地址。
【免责申明】
本内容为计算机网络基础科普,相关协议标准以官方 RFC 规范文档为准,不同操作系统实现细节会存在小幅差异,学习参考请结合官方标准文档。


