ARP协议的工作原理

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。

为什么要有ARP协议

我们都知道,OSI 模式把网络工作分为七层,彼此不直接打交道,而是通过接口通信。 IP地址在第三层网络层, 物理地址(MAC地址)在第二层数据链路层。
协议在发生数据包时,首先要封装第三层 (IP地址)和第二层 (MAC地址)的报头, 但协议只知道目的节点的IP地址,不知道其物理地址,又不能跨第二、三层,这时候ARP协议应运而生。

ARP协议的工作原理如下:

(1)每台主机都会在自己的ARP缓冲区中 建立一个 ARP列表(地址转换表) ,以表示IP地址和MAC地址的对应关系;

(2)当源主机需要将一个数据包要发送到目的主机时,会首先检 查自己 ARP列表中 是否存在该 IP地址对应的MAC地址,如果有,就 直接将数据包发送到这个MAC地址 ;如果没有,就向本地网段 发起一个ARP请求的广播包 ,查询此目的主机对应的MAC地址。 此ARP请求数据包里包括 源主机的IP地址 、硬件地址、以及目的主机的IP地址

(3)网络中所有的主机收到这个ARP请求后,会 检查数据包中的目的IP是否和自己的IP地址一致 。如果 不相同就忽略此数据包 ;如果相同,该主机首先将发送端的MAC地址和IP地址 添加到自己的ARP列表中 ,如果ARP表中 已经存在该IP的信息,则将其覆盖 ,然后给源主机 发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址

(4)源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址 添加到自己的ARP列表中 ,并利用此信息 开始数据的传输 。如果源主机一直没有收到ARP响应数据包,表示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、付费专栏及课程。

余额充值