📜  ARP请求

📅  最后修改于: 2020-11-10 05:45:27             🧑  作者: Mango

ARP(地址解析协议)请求

ARP代表地址解析协议。该协议用于查找与设备IP地址相对应的设备的MAC地址。该协议旨在通过提供其他设备的MAC地址在局域网(Ethernet)上的两个设备之间创建通信。为了在两个设备之间建立通信,源设备需要生成ARP请求消息。

ARP请求

  • 当两个设备(例如源和目标)要在局域网(以太网)中相互通信时。源设备知道目标设备的IP地址,但不知道目标设备的MAC地址。要知道MAC地址,源设备会查询ARP缓存(表)。如果设备的MAC地址存储在ARP缓存中,则它们将使用该地址并开始通信。
  • 如果目标的MAC地址未存储在ARP缓存中,则源设备将生成ARP请求消息。该ARP请求由设备源和目标的IP和MAC地址组成。目标设备的Mac地址字段保持为空。
  • ARP请求消息在局域网(Ethernet)上广播。网络上存在的所有设备都会收到ARP请求消息,并将其IP地址与源设备的IP地址进行比较。当源设备的IP地址与局域网中的任何设备匹配时,该设备将生成ARP答复消息。如果源设备的IP地址与局域网上存在的任何设备都不匹配,则这些设备将自动丢弃该数据包。
  • 然后将ARP回复消息发送到源设备。 ARP回复消息包含目标设备的MAC地址。
  • 当源设备接收到ARP答复消息时,由ARP答复消息获得的MAC地址将连同其IP地址一起在ARP缓存中更新。
  • 维护ARP表的原因在于,当源设备要与当时与之通信的设备进行通信时,源无需再次广播ARP请求消息。该信息已存储在ARP缓存中,直到系统再次重新启动。源设备必须查找ARP缓存并从那里获取设备的MAC地址。

以下是与ARP请求相关的一些要点:

  • ARP请求实际上是广播的,但ARP答复是单播的。
  • 设备的MAC地址保持为空,因为源已请求它。
  • ARP缓存具有较少的内存存储。因此,它会定期删除其条目以释放空间。
  • 如果设备不知道其IP地址,则它将使用RARP(反向地址解析协议)代替ARP并广播RARP请求。

需要ARP请求

当设备想知道源要与之通信的设备的MAC地址时,就需要ARP请求。两个设备都必须彼此知道IP和MAC地址。网络中的每个设备都知道其他设备的IP地址,但不知道MAC地址。因此,源设备会生成ARP请求以获得目标设备的MAC地址。

注意:ARP请求仅针对与源设备位于同一网络中的设备生成。如果目标设备存在于另一台设备中,则不会生成ARP请求。