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

本文阅读 6 分钟
首页 安全分享,WEB安全 正文

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

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

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

1. Mac地址

使用命令ipconfig -all ,可以查看电脑的 Mac地址。 img 当前网络中,物理地址这一项,就是计算机的 Mac地址。

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

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

2. 网络层的数据

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

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

img

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

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

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

3. ARP协议

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

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

ARP高速缓存也叫ARP地址缓存表,使用命令 arp -a可以查看ARP地址缓存表 img

首先,计算机会判断目的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执行流程图

img

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/wangyuxiang946/article/details/122541067
-- 展开阅读全文 --
Redis底层数据结构--跳跃表
« 上一篇 04-28
BUUCTF Web [强网杯 2019]随便注
下一篇 » 06-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复