带你整理面试过程中关于ARP 协议的相关知识点

Posted 南淮北安

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带你整理面试过程中关于ARP 协议的相关知识点相关的知识,希望对你有一定的参考价值。

文章目录

一、什么是 ARP 协议

ARP 是地址解析协议,用于通过目标 IP 地址,定位下一个接收数据包的网络设备的 MAC 地址。如果目标主机处在同一个数据链路上,那么可以直接得到目标主机的 MAC 地址,否则会得到下一条路由器的 MAC 地址。

MAC 和 IP 地址虽然看上去功能类似(都是用于唯一区分主机),但是两者缺一不可。

如果只有 IP 地址,虽然可以跳过 ARP,直接在数据链路上发一个广播,但是这仅适用于通信双方处于同一个数据链路下的情况。

如果双方处于不同的数据链路,数据报无法穿透中间的路由器。

同样如果只有 MAC 地址,这个过程也会耗费巨大的流量

mac地址就好像人的身份证,这个身份证和人的户口所在的城市,出生的日期相关,但是和人的位置没有关系,人是会移动的,知道这个身份证,并不能找到这个人。而ip地址表示这个人在网络中的位置,类似城市名+道路号+门牌号。所以通过ip寻址配合mac地址才能完成两台计算机的通信。
具体就是通过mac定位到城市,在通过ip定位到具体的人。

所以才产生 ARP 这样的协议将两者关联起来

二、ARP 协议的工作原理

ARP 协议的工作原理可以分为两部分:ARP 请求和 ARP 响应。

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

因为一般来说,一旦源主机向目标地址发送一个数据包,接下来继续发送多次的概率非常大,因此这种缓存非常容易命中,可以提高使用效率

(2)当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机 IP地址,源主机MAC地址,目的主机的IP 地址。

(3)当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。

(4)源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败

广播发送ARP请求,单播发送ARP响应

参考:

【1】https://blog.csdn.net/A_LINGYUAN/article/details/80036329
【2】https://juejin.cn/post/6844903521268006926
【3】https://blog.csdn.net/nanhuaibeian/article/details/109398562

以上是关于带你整理面试过程中关于ARP 协议的相关知识点的主要内容,如果未能解决你的问题,请参考以下文章

带你整理面试过程中关于Innodb的相关知识点

带你整理面试过程中关于数据库的索引的相关知识点

带你整理面试过程中关于Redis 中的持久化的相关知识点

带你整理面试过程中关于Redis 中数据结构的相关知识点

带你整理面试过程中关于消息队列MQ的相关知识

带你整理面试过程中关于Redis 的删除策略的相关知识点