最后更新:2022-06-29 07:24:45 手机定位技术交流文章
在前面的文章中,不要害怕IP协议, 我们了解到,网络层实现主机之间的通信,链层实现链的每个特定段之间的通信。也就是说,只要在网络层中确定IP地址,您可以向这个目标地址发送IP数据消息。然而,在底层数据链路层,在实际通信时,必须知道每个IP地址的MAC地址。
对于那些不熟悉这个话题的人,我强烈建议你阅读有关IP协议的前面的文章。不要担心IP协议。
那么,ARP是一个用于将IP地址转换为MAC地址的网络层协议。当然,还有一种可以将MAC地址转换为IP地址的RARP协议。两者原理都差不多,本文以ARP协议为例.

ARP(Address Resolution Protocol)地址分析协议:实现从IP地址转换为MAC地址。准确的来说,ARP协议使用目标IP地址作为线索,定位与下一个数据包的网络设备对应的MAC地址。
举个例子:我们把数据链层当作从苏州到南京的高速列车,然后转往南京的北京,然后在北京旅客转往西藏,因此网络层相当于每个站的工作人员,在数据链层的每次旋转中,网络层购买了带下MAC地址的车票.因此,即使乘客(数据链层)不知道他们的最终目的地,也不重要。职员(网络级别)会指导你。
因此ARP协议所做的是每次它通过时,它购买一个为数据链层的下一个MAC地址的机票

具体来说,网络层引导数据链层的过程称为路由控制.导导到数据链层的下游。为了向目标主机发送包,所有主机和路由器保持路由表。表 载有 下列 两 句 :
很不幸的是,路由控制表记录了该包下应发送的IP地址,但当数据链层通信时,它只识别MAC地址。所以,用于实现IP地址转换为MAC地址的ARP协议目前尤为重要。
那么ARP如何知道MAC地址?
简单地说,ARP通过两个类型的包:ARP请求和ARP响应来确定MAC地址,每个主机都有ARP高速缓存,该缓存包含本地网络上的主机和路由器的MAC地址的IP地址映射表。
如下图所示,假设主机A在同一链路上向主机B发送一个IP数据消息,知道主机A和主机B的IP地址,而它们不了解彼此的MAC地址:

1)首先,主机A为了获取主机B的MAC地址,它首先会询问主机B是否在其自己的ARP缓存中有相关记录;
2)在ARP高速缓存中没有将IP地址映射到B主机的MAC地址,主机A通过广播发送ARP请求包(该包载有自己的IP地址和MAC地址以及目标主机的IP地址),指示您想要得到主机B的MAC地址;
2)由于广播请求可以由同一链路的所有主机或路由器接收,因此,如果这个链上的主机或路径的IP地址与这个ARP请求包中包含的目标主机的IP地址相同,然后这个节点将自己的MAC地址插入ARP响应包,并将它返回主机A;

当然,ARP响应包是以单播的形式发送,毕竟ARP请求包已经包含了主机A的IP地址,因此主机B非常清楚该响应包应该向谁发送。
大多数网络协议在设计时仍然非常限制性,切断了不必要的交互、信息的合并和无广播的广播,从而增加带宽和加速网络。
3) 主机A接收主机B发送的ARP响应包后,将主机B的IP地址写入其ARP缓存中MAC地址的映射。

当然,缓存有一定时间,在此期间之后,缓存的内容将被清除。 这样,即使 MAC地址和IP地址之间的映射关系有所改变,也可以正确地发送数据包到目标地址。
本文由 在线网速测试 整理编辑,转载请注明出处。