【问题标题】:Why do we need sender MAC address in ARP request?为什么我们在 ARP 请求中需要发送者 MAC 地址?
【发布时间】:2012-07-20 15:19:06
【问题描述】:

Here 是 ARP 请求 PNG 图像的 Wireshark 捕获,我在 ARP 数据包中包含发送方 MAC。接收站可以从以太网帧中获得 MAC。似乎是多余的。在 ARP 请求中单独包含发送者 MAC 地址有什么特殊用途吗?。

【问题讨论】:

    标签: wireshark arp tcp-ip


    【解决方案1】:

    “冗余”是设计使然 (RFC 826),可用于针对不同层。在 RFC 3927 中有所谓的免费地址解析协议 (GARP),在某些情况下,冗余或缺失起着重要作用,尤其是在故障排除和监控网络堆栈方面。

    实际上根本不是冗余,MAC(物理,第 2 层)和 IP(逻辑,第 3 层)地址不是一回事。它们在不同的网络层上服务于不同的目的。

    在大型网络中,观察 MAC/ARP/Source/Dest 信息的变化是很常见的,而且有时看起来几乎是不正确的。例如,您可能会看到主机发送 ARP 请求,并将其自己的地址作为目标地址。根据具体情况,它可能会告诉我们这是一个链接打开/关闭事件,可能它正在尝试更新其他设备的 ARP 表,或者可能检测到 ip 冲突并将 ip 移动到另一个 NIC。

    我可以进入集群、故障转移——这个列表还在继续,尽管我最终会写一本书试图解释这一切。希望这能让您对您所质疑的“冗余”有所了解。 ;-)

    更多信息:

    RFC 826 / RFC 3927 / Wireshark Gratuitous ARP

    【讨论】:

    • 很好的答案 :) 我改进了一点。
    • @ioi,谢谢,- 冗余对代理 ARP 有帮助吗?
    • 代理 ARP 可以帮助子网上的机器到达远程子网,而无需配置路由或默认网关,但是,您应该注意一些缺点...(请参阅:cisco.com/en/US/tech/tk648/tk361/… )。
    • 我仍然无法弄清楚为什么我们需要 MAC 地址。如果交换机/集线器知道具有特定 IP(可能是私有 IP)的计算机连接到哪个端口,它可以直接在该端口上发送该 IP 的数据包。为什么需要 Mac 地址及其映射。当然,要知道连接到交换机/集线器所有端口的所有 IP 地址,它需要一些协议,如 ARP。那么为什么不切换/集线器只使用 ARP 并存储连接到哪个端口的 IP 映射,然后在该端口上发送该 IP 的数据包。
    • @AnkushGatfane IP 地址是计算机和网络的逻辑可路由连接,而 MAC 地址负责物理连接。例如,您网络上的一台计算机能够了解另一台计算机的 IP 地址;如果没有某种方式来识别它会很困难。
    【解决方案2】:

    虽然经常与以太网结合使用,但 ARP 本身是一个独立的协议。想象一下其他不公开 MAC 地址的链路层协议。如果未提供发件人字段,ARP 将无法在这种情况下工作。

    【讨论】:

      【解决方案3】:

      没有规定 ARP 协议字段的发送者 MAC 地址必须与以太网源 MAC 地址相同。例如:在少数应用程序中,同一主机的多个接口在网络上,但只有一个接口为所有接口发送 arp 响应。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多