解决方案协议(ARP)的初学者指南

地址解析协议处理本地IP地址在网络上的计算机之间解析的方式。

以最简单的形式想象一下,您有一台计算机,如笔记本电脑,并且您想与Raspberry PI进行通信,而这两者都作为本地宽带连接的一部分进行连接。

通常可以通过ping命令查看Raspberry PI是否可以在网络上使用。 只要你ping Raspberry PI或尝试与Raspberry PI建立任何其他连接,你就会开始解决地址解析的问题。 把它看作是一种握手形式。

ARP比较主机和目标计算机的地址和子网掩码 。 如果这些匹配,那么地址已经有效地解析到本地网络。

那么这个过程如何实际工作?

您的计算机将拥有一个首先被访问的ARP缓存以尝试并解析该地址。

如果缓存不包含解析地址所需的信息,则会向网络中的每台计算机发送一个请求。

如果网络上的一台机器没有搜索到IP地址,那么它只会忽略该请求,但如果机器有匹配,那么它会将呼叫计算机的信息添加到它自己的ARP缓存中。 然后,它会将回复发送回原始呼叫计算机。

在收到目标计算机地址的确认后,就会进行连接,因此可以处理ping或其他网络请求。

源计算机从目标计算机上搜索的实际信息是其MAC地址,或者有时称为HW地址。

使用Arp命令的工作示例

为了便于理解,您需要将2台计算机连接到您的网络。

确保两台计算机都已打开并能够连接到互联网。

现在使用Linux打开终端窗口并输入以下命令:

地址解析协议

显示的信息是当前存储在您计算机的ARP缓存中的信息。

结果可能只显示您的机器,您可能看不到任何内容,或者如果您之前已连接到其他计算机的名称,结果可能会包含其他计算机的名称。

。arp命令提供的信息如下所示:

如果你什么都没有显示,那么不要担心,因为这会很快改变。 如果您可以看到另一台计算机,那么您可能会看到硬件地址设置为(不完整)。

您需要知道您要连接的计算机的名称。 就我而言,我正在连接到我的Raspberry PI零点。

在终端内运行以下命令,将您所连接的计算机的名称替换为raspberrypizero。

ping raspberrypizero

发生的事情是,您正在使用的计算机已经查看了它的ARP缓存,并意识到它没有关于您尝试ping的计算机的信息或信息不足。 因此,它通过网络发出请求,询问网络中的所有其他机器是否确实是您正在寻找的计算机。

网络上的每台计算机都会查看所请求的IP地址和掩码,除了具有该IP地址的IP地址和掩码之外的所有计算机都将放弃请求。

具有请求的IP地址和掩码的计算机将喊出“嘿,那就是我!!!!” 并将其硬件地址发送回请求计算机。 然后这将被添加到呼叫计算机的ARP缓存中。

不要相信我? 再次运行arp命令。

地址解析协议

这次你应该看到你ping的计算机的名字,你也会看到硬件地址。

显示IP地址而不是计算机的主机名

默认情况下,arp命令将显示ARP缓存中项目的主机名,但您可以使用以下开关强制它显示IP地址:

arp -n

或者,您可能希望使用以下开关,以不同的方式显示输出:

arp -a

上述命令的输出结果如下所示:

rapberrypi(172.16.15.254)在d4:ca:6d:0e:d6:19 [ether]上wlp2s0

这次你得到计算机的名称,IP地址,硬件地址,硬件类型和网络。

如何从ARP缓存中删除条目

ARP缓存不会长时间保存其数据,但如果您在连接到特定计算机时遇到问题,并且您怀疑这是因为保存的地址数据不正确,则可以按以下方式从缓存中删除条目。

首先,运行arp命令以获取您希望删除的条目的HW地址。

现在运行以下命令:

arp -d HWADDR

将HWADDR替换为您希望删除的条目的HW地址。

概要

arp命令不是普通计算机用户常用的,只有在解决网络问题时才与大多数人相关。