ARP协议的工作原理

一、ARP的定义

ARP协议(地址解析协议):根据IP地址以广播方式获取与其对应的目标主机MAC地址,并将MAC地址存入ARP缓存表。

注意:IP地址是可变的,而MAC地址(即物理地址)是唯一的。 

二、ARP的工作原理

1、在PC1给PC2发送数据之前,先查看PC1的缓存表中是否有目标主机PC2的MAC地址记录。(若没有)

2、PC1发送ARP请求报文(广播),用来查找目标主机IP所对应的MAC地址。由于不知道目标主机的MAC地址,所以目标MAC地址设置为广播地址0xFFFFFFFFFFFF,此报文便会发送给局域网中的所有主机设备。

 

3、所有主机在收到ARP请求消息后,由于请求的目标IP地址与PC2的IP地址匹配上了,故目标主机PC2回复ARP应答报文给PC1(单播);而其它不匹配的主机则丢弃该ARP请求

4、PC1更新ARP缓存,将目标主机的IP地址与MAC地址的对应关系存储在ARP缓存表中,并使用目标主机的MAC地址发送数据目标主机。(在缓存表里的MAC地址可以用来直接发送数据,而不用在广播查找MAC地址了)

 三、ARP报文在链路层进行封装

ARP报文不是直接在网络层上发送的,它还是需要向下传输到数据链路层,所以当ARP报文传输到数据链路层之后,需要再次进行封装。以以太网为例,ARP报文传输到以太网数据链路层后会形成ARP帧。ARP帧如下图所示,他就是在ARP报文前面加了一个以太网首部。 

  • 目的MAC地址:为广播MAC地址(FF-FF-FF-FF-FF-FF),其目标主机是网络上的所有主机。
  • 源MAC地址:为发送ARP帧的源MAC地址。
  • 帧类型:这里用来标识帧封装的上层协议,因为本帧的数据部分是ARP报文,所以直接用ARP的协议号 0x0806。(若是IP协议号,为0x0800)

四、ARP工作流程

### ARP协议工作原理 ARP (Address Resolution Protocol) 是一种用于局域网中解析 MAC 地址的协议[^2]。当一台设备需要与另一台位于同一网络中的设备通信时,发送方会广播一个 ARP 请求报文来询问目标 IP 对应的物理地址是什么。这个请求包含了源主机自己的 IP 和硬件地址以及目的主机的 IP 地址。 一旦拥有被查询 IP 地址的目标机器收到此广播消息,则该机会回应一个包含其 MAC 地址的信息给发起者。这样,原始发件人就可以知道如何通过第二层数据链路层直接寻址到达目的地了。此外,为了提高效率并减少重复查找的时间开销,每次成功获取到映射关系之后都会将其存储在一个称为 ARP 缓存表里的地方一段时间[^3]。 #### ARP 协议交互过程简化描述如下: 1. **发出 ARP 请求** 发送端构建一个 ARP 查询包,其中含有自身的 IP 及 MAC 地址,并指明想要获得哪个 IP 所属节点的 MAC 地址; 2. **等待响应** 此 ARP 请求会被扩散至整个本地子网内的所有计算机上;只有那个具有匹配 IP 的接收者才会做出反应; 3. **接收到 ARP 应答** 如果有符合条件的目的站点存在的话,那么它就会回复一条携带自己真实硬件地址的数据帧回传给提问者; 4. **更新 ARP 表项** 提问者的操作系统将新得到的信息加入到内部维护着的一张临时性的对照列表——即所谓的 ARP Cache 中去以便将来快速访问相同对象而不必再次经历上述繁琐的过程。 以下是 ARP 协议工作的简单图解表示形式: ```mermaid graph LR; A[HostA: 192.168.0.1, MAC_A] -->|Broadcast ARP Request| B((Subnet Broadcast)); C[HostC: 192.168.0.2, MAC_C]) -.-> |Listen but not respond|B; D[HostD: 192.168.0.3, MAC_D)] --|Unicast ARP Reply to HostA| A; ``` 在此图表中: - `HostA` 向所在子网上所有的成员广播了一个 ARP 请求。 - `HostC` 收到了这条信息但由于不是要找的对象所以保持沉默。 - 被指定为目标 (`192.168.0.3`) 的 `HostD` 则单独地向 `HostA` 返回了自己的实际硬件地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值