什么用作 ARP 请求目标硬件地址?

网络工程 协议理论 MAC地址 arp
2021-07-06 23:54:43

发送ARP请求时,目标硬件地址(THA)必须填写什么?这篇技术网博客文章说它用零 (0.0.0.0) 填充 - 虽然看起来不像 MAC 地址!,维基百科文章建议 FF:FF:FF:FF:FF:FF 将被所有人接受计算机,并声明该字段在请求中被忽略

从以上两篇文章中,我了解到有关该领域的 ARP 有几种实现。什么是广泛使用的实现,是否有进一步的标准化?是否存在任何问题,因此这些实现之间会产生误解?是否有任何应用程序需要对该领域进行特定实施?

3个回答

您正在混淆两种不同的信息。您链接的维基百科文章提到 FF:FF:FF:FF:FF:FF 作为目标地址,而不是目标地址。

目标地址是 L2 以太网报头的一部分,而 THA 是 ARP 数据包的一部分。

为了说明这一点,我从存储在 Wireshark 中的计算机上的随机捕获中提取了一个随机 ARP 数据包。请注意,在此图像中,目标是以太网标头部分中的 ff:ff:ff:ff:ff:ff(L2 广播),但在下面的 ARP 请求部分中,“目标 MAC 地址”应为全零。

在此处输入图片说明

编辑

还值得一提的是,Technet 作者的图表证实在他的博客中使用 0.0.0.0 作为 THA 是一个错字。

根据 RFC 5227:“目标硬件地址”字段被忽略并且应该设置为全零。

RFC 不要求设置 THA,但无论如何所有实现都应忽略该字段。

https://www.rfc-editor.org/rfc/rfc5227#page-5 - 第 5 页顶部

我查看了许多痕迹,但从未见过全 0 的 arp。RFC 826 说以太网全为 1。我会假设博客不正确或某种极端情况