arp 协议全称地址解析协议,核心作用就是在同一个局域网里面,把已知的目标 ip 地址解析成对应的 mac 物理地址,网络通信当中 ip 地址是网络层逻辑地址,数据帧在局域网二层转发的时候必须依靠 mac 地址才能完成帧的投递,arp 协议就是负责完成这一层转换工作,主机想要发送数据包到同网段其他设备,首先查询 arp 缓存表,如果缓存里面没有对应的 ip 和 mac 映射记录,就会通过 arp 协议发送广播请求,获取目标设备的 mac 地址,拿到 mac 地址之后,主机才能封装二层数据帧,把数据准确送到目标网卡,arp 协议工作在 tcpip 模型的数据链路层和网络层之间,是局域网通信必不可少的基础协议,也是计算机网络考试当中的核心知识点,理解 arp 协议的作用之后,就能明白为什么跨网段通信需要经过网关,跨网段场景下 arp 协议只会解析网关的 mac 地址,不会直接解析远端主机的 mac 地址。
基础概念对照表
表格
| 项目 | 说明 |
|---|---|
| 协议全称 | 地址解析协议 |
| 工作层级 | 网络层与数据链路层之间 |
| 核心目标 | ip 地址转换为 mac 地址 |
| 通信范围 | 仅局域网内部生效 |
| 存储位置 | 主机内部 arp 缓存表 |
| 报文类型 | arp 请求报文 arp 响应报文 |
arp 协议完整工作流程
1 源主机准备发送数据,先查询本机 arp 缓存表,查找目标 ip 对应的 mac 地址。
2 如果缓存命中,直接取出 mac 地址封装数据帧,开始发送数据。
3 如果缓存没有记录,源主机发送 arp 广播请求报文,局域网内所有主机都可以收到这个广播包。
4 广播报文里面携带源主机 ip 源 mac,还有需要查询的目标 ip 地址。
5 局域网内所有设备收到广播之后对比目标 ip,只有 ip 匹配的目标主机才会回复 arp 单播响应报文。
6 响应报文里面带上目标主机的 mac 地址,源主机收到响应之后,把 ip 和 mac 映射写入 arp 缓存表。
7 后续通信就可以直接读取 arp 缓存,不用重复发送 arp 广播请求。
arp 协议拓展知识点
- arp 缓存存在老化机制,映射记录会设置超时时间,超时之后记录自动删除,下次通信需要重新解析。
- 免费 arp 是 arp 协议的特殊类型,主机主动广播自身 ip 和 mac 映射,用来检测局域网里面是否存在 ip 冲突。
- 反向 arp 也就是 rarp,和 arp 协议作用方向相反,是根据已知 mac 地址查找对应的 ip 地址,现在已经很少使用。
- 代理 arp,中间设备代替目标主机回复 arp 响应,实现特殊网段通信场景。
- arp 协议是无状态协议,主机收到 arp 请求之后,会顺带把请求方的 ip mac 映射更新到自身 arp 缓存,这个优化机制可以减少后续 arp 广播数量。
关键区分要点
很多学习者容易混淆 arp 协议和 dns 协议,dns 是域名解析成 ip 地址,属于应用层协议,arp 协议的作用是 ip 解析成 mac,属于局域网二层通信配套协议,两者解析对象完全不同,不要把两个协议的功能搞混。跨路由器的广域网上,每一跳设备都会重新执行 arp 协议,解析下一跳也就是网关的 mac 地址,不是直接解析最终目的主机 mac。
掌握 arp 协议的作用,理解 ip 地址与 mac 地址的转换逻辑,熟悉 arp 广播请求和单播响应的完整流程,就可以搭建起局域网二层通信的核心认知,后续学习交换机路由器网络排错相关内容的时候,arp 协议都是重要基础。
【相关 FAQ】
问题 1:arp 协议的作用是解析域名吗
回答 1:arp 协议的作用不是解析域名,域名解析是 dns 协议的功能,arp 协议的作用是把局域网内目标 ip 地址解析成 mac 物理地址。
问题 2:arp 协议的作用可以跨网段完成吗
回答 2:arp 协议的作用只在同一个局域网网段内部生效,跨网段通信的时候 arp 协议只会解析网关的 mac 地址,无法直接解析远端主机的 mac 地址。
问题 3:arp 协议的作用依赖 arp 缓存吗
回答 3:arp 协议的作用实现过程会使用 arp 缓存,主机优先读取 arp 缓存里面已经保存的 ip mac 映射,缓存不存在的时候才会发送 arp 广播请求完成解析。
问题 4:和 arp 协议的作用相反的是什么协议
回答 4:和 arp 协议的作用方向相反的是 rarp 反向 arp 协议,arp 协议是 ip 转 mac,rarp 是根据 mac 地址查找对应的 ip 地址。
【免责申明】
本文为 arp 协议的作用相关计算机网络科普内容,知识点参考通用计算机网络教材主流定义,不同教材表述细节略有差异,内容仅用于学习备考参考。


