ARP协议详解,ARP协议执行原理、ARP协议如何根据IP地址寻找Mac地址?

「作者主页」:士别三日wyx
「作者简介」:CSDN top200、阿里云博客专家、华为云享专家、网络安全领域优质创作者

一、什么是ARP协议

我们平时想要联系一个人的时候,可以给她打电话,电话号码是用户的「唯一标识」,只要知道了对方的电话号码,就可以与对方通话。

计算机也是如此,计算机之间想要进行通信,也需要知道对方的 “电话号码”,计算机的“电话号码” 称为「Mac地址」,也叫计算机的物理地址。

1. Mac地址

使用命令 ipconfig -all ,可以查看电脑的 Mac地址。
在这里插入图片描述
当前网络中,物理地址这一项,就是计算机的 Mac地址。

「Mac地址与计算机一一对应」,是计算机的唯一标识。

计算机之间想要通信,就必须知道对方的 Mac地址。

2. 网络层的数据

数据到达网络层的时候,网络层会为数据添加「源IP」「目的IP」

随后网络层需要将数据传递到数据链路层,但数据链路层传输数据需要知道「源Mac地址」「目的Mac地址」,因此,网络层需要根据IP地址找到对应的Mac地址。大致流程如下:

在这里插入图片描述

这个「根据IP地址寻找Mac地址」的动作,就是由ARP协议完成的。

源Mac地址就是发送数据的计算机的Mac地址,可以轻易的获取到,就比如你给别人打电话,你肯定是知道自己的手机号;但对方的手机号就不一定知道了。

因此,寻找目的IP地址对应的Mac地址,是ARP协议的主要工作。

3. ARP协议

ARP协议设定了几条不证自明的公理:

  1. 每一个计算机或者路由器中都有一个「ARP高速缓存表」,也就是IP地址与Mac地址的映射表
  2. ARP 高速缓存表只会存储「当前局域网」内的设备信息,这些设备包括但不限于计算机、交换机、路由器连接此局域网的接口所对应的「IP 和 Mac 映射信息」

ARP高速缓存也叫ARP地址缓存表,使用命令 arp -a 可以查看ARP地址缓存表
在这里插入图片描述

二、ARP协议执行原理

首先,计算机会判断目的IP地址是否是同网段的IP,如果是同网段,则在「当前局域网」内查询。

1. 局域网内

计算机先在自己的「ARP地址表」中查询目的IP地址。

如果ARP地址表能查询到,就会获取IP地址对应的Mac地址,将信息发送到这个Mac地址对应的计算机中;

如果ARP地址表中查询不到,就会在局域网内「广播」请求,请求的内容中带有源IP地址和目的IP地址。局域网内所有的设备都会收到广播请求。

  • 如果请求中的IP地址不是自己的,就不会理会。
  • 如果是自己的IP地址,则会通过单播的方式,将自己的IP地址和Mac地址根据请求中的源IP地址,响应给计算机;计算机会将接收到的IP地址和Mac地址添加到自己的ARP地址表中,然后根据Mac地址,将数据发送给对方。

上面的这种情况,源主机和目标主机是在一个局域网内的。

2. 局域网外

如果是不同的局域网,计算机会通过路由器与局域网的连接口,先将数据发送给「路由器」(路由器的每个接口都有对应的IP地址和Mac地址),路由器通过路由算法选择最优的路线将信息发送到「目标」主机所在「局域网」的路由器上。

目标主机的路由器收到信息后,也会先检查自己的「ARP地址表」

  • 如果有目标IP地址,就直接发送信息
  • 如果没有目标IP地址,则会在局域网内「广播」,目标主机收到广播后返回自己的IP地址和Mac地址,路由器将收到的IP地址和Mac地址存储到自己的ARP地址表中,然后将数据发送给Mac地址对应的目标主机

3. ARP执行流程图

在这里插入图片描述

  • 32
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

士别三日wyx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值