ARP协议
一、ARP(地址解析协议)简介
1.1 ARP的使用场景#
在局域网中,当主机或其它网络设备有数据要发送给另一个主机或设备时,它必须知道对方的逻辑地址(即IP地址)。但是仅仅有逻辑地址是不够的,因为IP数据报文必须封装成帧才能通过物理网络发送,因此发送站还必须有接收站的物理地址,所以需要一个从逻辑地址到物理地址的映射。地址解析协议ARP用于将IP地址映射为以太网MAC地址(或称物理地址)。
二、ARP的机制
2.1 ARP Announcement(免费ARP)#
当配置第一个IPv4接口地址时,也可以说链路up起来时,设备主动使用自己的IP地址作为目的IP地址发送ARP请求,此种方式称免费ARP。
目的是为了用于DAD(冲突地址检测),或VRRP设备切换时候宣告主备设备切换。
2.2 ARP报文结构#
# Hardware type 硬件地址类型 -指明硬件的类型,一般是以太网,值为1。
# Portocol type 协议类型 指明发送者映射到数据链路标识的网络层协议类型
# Hardware size 硬件地址长度。也就是MAC地址的长度,单位是字节
# Protocol size 硬件地址长度。也就是MAC地址的长度,单位是字节。
# Opcode: request (1) 指定了ARP报文的类型,包括ARP Request和 ARP Reply。
# Sender MAC address: 指的是发送ARP报文的设备的MAC地址
# Sender IP address: 指的是发送ARP报文的设备的IP地址
# Target MAC address: 目的MAC地址指的是接收者MAC地址 由于免费ARP通常作用于检测 所以目的MAC用全0填充
# Target IP address: 目的MAC地址指的是接收者IP地址 免费ARP用自己的IP地址进行填充,作用于重复检测
2.3 ARP表项#
通过IP地址和MAC地址与接口进行关联的一张表。
动态ARP表项的表项老化时间一般为1200秒,即20分钟,时间快到时会发送ARP Request请求更新ARP表项。
关注此图,自身的192.169.1.1的地址没有生存时间。
三、ARP的工作原理
3.1 ARP协议的请求流程#
3.2 ARP的工作过程#
在两端设备刚刚建立时,只发送了免费ARP进行DAD检测,并没有获取对方的MAC地址
# 逻辑上接受处理流程 # if 广播 or 组播同一组 or 单播是自己 # 二层type交给arp协议 # target字段与自己无关 pass报文
所以在ICMP的ping测试下会进行如下的报文封装,具体的过程如下
查询路由表
- 如果没有路由不会发送
封装ICMP报文
- 但是封装时不知MAC地址
- 创建一条ARP表项 172.16.12.2 --- mac(incomplete)
发送ARP request请求
- 对端发送 ARP Reply回应 也会创建自己ARP表
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具