大多数计算机程序/应用程序使用逻辑地址(IP地址)来发送/接收消息,然而实际的通信发生在物理地址(MAC地址)上,即从OSI模型的第2层。所以我们的任务就是获取目标MAC地址,这有助于与其他设备进行通信。这就是ARP出现的地方,它的功能是把IP地址转换成物理地址。。
首字母缩写ARP代表地址解析协议,它是OSI模型中网络层最重要的协议之一。
注意:ARP从其已知IP地址中找到主机的硬件地址, 也称为媒体访问控制(MAC)地址。
让我们看一下ARP的工作原理。
想象一下, 一台设备想通过互联网与另一台设备通信。什么是ARP?它是否将数据包广播到源网络的所有设备。
网络的设备皮头数据链路层的协议数据单元(PDU)称为帧,传输数据包的网络层(第三层OSI)网络ID验证了数据包的目的地IP数据包的网络ID和如果是相等的,那么它对源与目的地的MAC地址,否则,信息包到达网络的网关,并向它连接的设备广播信息包,并验证它们的网络ID
上面的过程一直持续到到达路径中的倒数第二个网络设备为止, 该设备将在此经过验证, 并且ARP依次使用目标MAC地址进行响应。
与ARP相关的重要术语是:
- ARP缓存:解析MAC地址后, ARP会将其发送到源, 并将其存储在表中以备将来参考。后续通信可以使用表中的MAC地址
- ARP缓存超时:它表示ARP缓存中的MAC地址可以驻留的时间
- ARP请求:这无非是在网络上广播数据包以验证我们是否遇到了目标MAC地址。
- 发件人的物理地址。
- 发送者的IP地址。
- 接收方的物理地址为FF:FF:FF:FF:FF:FF或1。
- 接收方的IP地址
- ARP响应/回复:源从目的地接收到的是MAC地址响应, 这有助于进一步进行数据通信。
- 情况1:发件人是主机, 想要将数据包发送到同一网络上的另一主机。
- 使用ARP查找其他主机的物理地址
- 情况2:发件人是主机, 想要将数据包发送到另一个网络上的另一个主机。
- 发件人查看其路由表。
- 查找此目标的下一跳(路由器)的IP地址。
- 使用ARP查找路由器的物理地址
- 情况3:发送者是路由器, 并接收了发往另一个网络上主机的数据报。
- 路由器检查其路由表。
- 查找下一个路由器的IP地址。
- 使用ARP查找下一个路由器的物理地址。
- 情况4:发送者是已经接收到发往同一网络中主机的数据报的路由器。
- 使用ARP查找该主机的物理地址。
注意:ARP请求是广播, 而ARP响应是单播。
测试自己 :
用交叉电缆连接两台PC, 例如A和B。现在, 你可以通过键入以下命令来查看ARP的工作方式:
1. A > arp -a
表中将没有任何条目, 因为它们从未相互通信。
2. A > ping 192.168.1.2
IP address of destination is 192.168.1.2
Reply comes from destination but one packet is lost because of ARP processing.
现在, 可以通过键入命令查看ARP表的条目。
ARP表如下所示:
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。