ARP协议

一、ARP(地址解析协议)简介

1.1 ARP的使用场景#

在局域网中,当主机或其它网络设备有数据要发送给另一个主机或设备时,它必须知道对方的逻辑地址(即IP地址)。但是仅仅有逻辑地址是不够的,因为IP数据报文必须封装成帧才能通过物理网络发送,因此发送站还必须有接收站的物理地址,所以需要一个从逻辑地址到物理地址的映射。地址解析协议ARP用于将IP地址映射为以太网MAC地址(或称物理地址)。

二、ARP的机制

2.1 ARP Announcement(免费ARP)#

image-20250216152944734

当配置第一个IPv4接口地址时,也可以说链路up起来时,设备主动使用自己的IP地址作为目的IP地址发送ARP请求,此种方式称免费ARP。

目的是为了用于DAD(冲突地址检测),或VRRP设备切换时候宣告主备设备切换。

2.2 ARP报文结构#

image-20250216154852246

# 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表项#

image-20250216161924419

通过IP地址和MAC地址与接口进行关联的一张表。

动态ARP表项的表项老化时间一般为1200秒,即20分钟,时间快到时会发送ARP Request请求更新ARP表项。

关注此图,自身的192.169.1.1的地址没有生存时间。

三、ARP的工作原理

3.1 ARP协议的请求流程#

image-20250216160010909

3.2 ARP的工作过程#

在两端设备刚刚建立时,只发送了免费ARP进行DAD检测,并没有获取对方的MAC地址

# 逻辑上接受处理流程
# if 广播 or 组播同一组 or 单播是自己
#    二层type交给arp协议
#    target字段与自己无关 pass报文

image-20250216163350865

所以在ICMP的ping测试下会进行如下的报文封装,具体的过程如下

  1. 查询路由表

    • 如果没有路由不会发送
  2. 封装ICMP报文

    • 但是封装时不知MAC地址
    • 创建一条ARP表项 172.16.12.2 --- mac(incomplete)
  3. 发送ARP request请求

  • image-20250216163749897
  1. 对端发送 ARP Reply回应 也会创建自己ARP表
  • image-20250216163945151
posted @   江寒雨  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示
主题色彩