为什么我的笔记本电脑向自己发送 ARP 请求?

为什么我的笔记本电脑向自己发送 ARP 请求?

我刚刚开始学习协议。在用 wireshark 研究数据包时,我偶然发现我的机器向我自己的 IP 发送了一个 ARP 请求。以下是该数据包的详细信息:

  No.     Time        Source                Destination           Protocol Info
     15 1.463563    IntelCor_aa:aa:aa     Broadcast             ARP      Who has 192.168.1.34?  Tell 0.0.0.0

Frame 15: 42 bytes on wire (336 bits), 42 bytes captured (336 bits)
    Arrival Time: Jan  7, 2011 18:51:43.886089000 India Standard Time
    Epoch Time: 1294406503.886089000 seconds
    [Time delta from previous captured frame: 0.123389000 seconds]
    [Time delta from previous displayed frame: 0.123389000 seconds]
    [Time since reference or first frame: 1.463563000 seconds]
    Frame Number: 15
    Frame Length: 42 bytes (336 bits)
    Capture Length: 42 bytes (336 bits)
    [Frame is marked: False]
    [Frame is ignored: False]
    [Protocols in frame: eth:arp]
    [Coloring Rule Name: ARP]
    [Coloring Rule String: arp]
Ethernet II, Src: IntelCor_aa:aa:aa (aa:aa:aa:aa:aa:aa), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
    Destination: Broadcast (ff:ff:ff:ff:ff:ff)
        Address: Broadcast (ff:ff:ff:ff:ff:ff)
        .... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast)
        .... ..1. .... .... .... .... = LG bit: Locally administered address (this is NOT the factory default)
    Source: IntelCor_aa:aa:aa (aa:aa:aa:aa:aa:aa)
        Address: IntelCor_aa:aa:aa (aa:aa:aa:aa:aa:aa)
        .... ...0 .... .... .... .... = IG bit: Individual address (unicast)
        .... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
    Type: ARP (0x0806)
Address Resolution Protocol (request)
    Hardware type: Ethernet (0x0001)
    Protocol type: IP (0x0800)
    Hardware size: 6
    Protocol size: 4
    Opcode: request (0x0001)
    [Is gratuitous: False]
    Sender MAC address: IntelCor_aa:aa:aa (aa:aa:aa:aa:aa:aa)
    Sender IP address: 0.0.0.0 (0.0.0.0)
    Target MAC address: 00:00:00_00:00:00 (00:00:00:00:00:00)
    Target IP address: 192.168.1.34 (192.168.1.34)

这里发送者的 MAC 地址是我的(这里我隐藏了我的 MAC 地址)。目标 IP 是我的。为什么我的机器向自己发送 ARP 请求?我发现了 3 个这种类型的数据包。这些数据包没有 ARP 回复。有人能解释一下为什么吗?(​​我的操作系统是 Windows-7。我直接连接到 wifi 调制解调器。我一启动连接就收到了这些数据包。)

我也想要一个建议。我读到的很多地方都说 RFC 足以研究协议。我研究了 ARP 上的 RFC 826。我个人觉得这根本不够。对此有什么建议吗?一个协议是否有多个 RFC?我想非常详细地研究协议。有人可以指导我吗?提前谢谢。

答案1

此行为是查找潜在重复 IP 的一种非常好的方法。

如果您的计算机没有得到答复,则说明它是唯一拥有该 IP 的计算机。如果您的计算机得到了答复,则说明有另一台计算机拥有相同的 IP,这显然是有问题的。

至于 RFC,我觉得读起来很可怕。我只在遇到具体问题时才用它们作为参考。我可能只从头到尾读过一本。其余的我都是一点一点读的。在我看来,学习某件事的最好方法是拿起 O'Reilly 或类似的纸质书阅读。

单个协议可以有多个 RFC。例如,IPv6 有 10 个不同的 RFC,仅涉及从 IPv4 到 v6 的过渡机制。还有许多其他 RFC,用于诸如邻居发现之类的事情。连续传输协议也包含在 4 RFC 中。

答案2

这是防止 IP 冲突的标准行为。RFC 5227IPv4 地址冲突检测。它还允许路由器和邻居更新其 ARP 表,以便它们可以与您的计算机通信。

通过询问谁拥有 IP 地址,可以确定 IP 地址是否正在使用。这至少允许计算机记录冲突的存在(如果存在)。

正是这种机制允许计算机使用自动 IP 地址配置来使用 169.254.0.0/16 地址块。计算机在此范围内生成一个地址,然后使用 APR 查看该地址是否可用。如果不行,它们会尝试其他地址,直到找到一个可用的地址。由于网络通常较小,地址范围覆盖超过 65000 个地址,因此它们可以快速找到地址。

arpwatch实用程序根据 arp 消息构建一个数据库,可用于在地址冲突或被移动到新硬件时通知管理员。

相关内容