【计算机网络】ARP协议工作原理

ARP协议是局域网中实现IP地址到MAC地址转换的关键。当主机需要发送数据时,首先检查ARP缓存,如有目的MAC地址则直接封装,否则广播ARP请求,目的主机响应后将其MAC地址写入缓存,完成数据帧封装。ARP在不同网络通信场景中扮演重要角色,确保数据正确路由。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

地址解析协议ARP

一 发送数据的过程

在学习ARP协议的工作原理之前,我们需要先知道为什么需要ARP协议,它在数据传输过程中有怎样的作用。

以下是计算机网络中发送数据的一个大致过程。

首先要知道,源主机发送数据要经过5层的封装,目的主机接收数据也要经过5层的解封装,中间系统只有低三层,只负责数据传输,数据在中间系统传输时,也要反复进行3层的封装和解封装。

以下是5层模型中发生数据的步骤:

  • 应用层有一个文件需要传输,也就是一个数据报文需要传输。
  • 传输层将数据报文进行分段,分成多段数据报
  • 网络层拿到数据报,加上首部,封装成IP数据报,再对IP数据报进行分片,以便分组转发,首部应该包含源IP地址和目的IP地址。
  • 数据链路层拿到IP数据报,加上首部和尾部(一般是帧检验序列FCS)封装成数据帧,首部应该包含源MAC地址和目的MAC地址。
  • 物理层拿到数据帧后,以比特流的形式去传输。

备注:MAC地址,即硬件地址,和IP地址不同的是,IP地址是网络层标志各主机和路由器的地址,而MAC地址是实际的物理地址。

发送数据的过程

由于每当数据到达链路层,都需要加上源MAC地址和目的MAC地址,所以就需要用到ARP解析协议,去完成下一跳的IP地址到MAC地址的映射,确定下一跳具体走哪,也就是确定下一跳的硬件地址。

二 ARP工作原理

  • 首先要知道,每一台主机都设有一个ARP高速缓存,里面存有本局域网上的各主机和路由器的IP地址到MAC地址的映射表,这些都是该主机目前知道的一些MAC地址。

  • 当主机A要向本局域网上的某台主机发送IP数据报时,就先在其ARP缓存中查看有无主机B的IP地址,如果有,就在ARP缓存中查找其对应的MAC地址,再把这个MAC地址写入MAC帧,然后通过局域网把该MAC帧发往此MAC地址。

  • 如果ARP缓存中没有该MAC地址,就需要经过以下步骤去获取目的MAC地址。

    • ARP进程在本局域网上广播发送一个ARP请求分组。ARP请求分组的主要内容为源IP地址和源MAC地址,以及目的IP地址。
    • 在本局域网上的所有主机(或路由器)上运行的ARP进程都收到此ARP请求分组。
    • 若主机B的IP地址与ARP请求分组中要查询的目的IP地址一致,就收下这个ARP请求分组,并向主机A发送ARP响应分组,同时在这个ARP响应分组中写入自己的MAC地址。
    • 主机A收到主机B的ARP响应分组后,就在其高速缓存中写入主机B的IP地址到MAC地址的映射。至此,链路层就可以写入目的MAC地址,封装成MAC帧了。

下面是主机1要向主机3发送数据的过程(主机1和主机3在同一个网络,没有经过路由器)

备注:如果主机之间不在同一个网络,比如上图的主机1和主机5,则在数据传输过程中,需要经过多个路由器转发,可以发现,网络层的源IP地址和目的IP地址通常是保持不变的(NAT的情况可能改变),而链路层的源MAC地址和目的MAC地址是随着传输过程而发生变化的

三 小结

ARP协议简介

由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址。

所以我们需要ARP协议:完成主机或路由器IP地址到MAC地址的映射。(解决下一跳走哪的问题)

ARP协议使用过程

检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单薄一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)。

ARP协议4种典型情况

  • 主机A发给本网络上的主机B:用ARP找到主机B的硬件地址;
  • 主机A发给另一网络上的主机B:用ARP找到本网络上一个路由器(网关)的硬件地址;
  • 路由器发给本网络的主机A:用ARP找到主机A的硬件地址;
  • 路由器发给另一个网络的主机B:用ARP找到本网络上的一个路由器的硬件地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值