据我了解,当主机 Alice 知道主机 Bob 的 IPv6 地址但不知道其 MAC 时,Alice 会向Bob的请求节点多播地址发送 NDP 邻居请求 (NS) 消息。
Alice 知道 Bob 的单播地址,那么为什么要将 NS 发送到多播呢?其他一些可能接收数据包的主机有什么用途?
据我了解,当主机 Alice 知道主机 Bob 的 IPv6 地址但不知道其 MAC 时,Alice 会向Bob的请求节点多播地址发送 NDP 邻居请求 (NS) 消息。
Alice 知道 Bob 的单播地址,那么为什么要将 NS 发送到多播呢?其他一些可能接收数据包的主机有什么用途?
我认为您不太明白 Alice 需要 Bob 的 MAC 地址才能向他发送任何内容。什么RFC 4861,IP 版本 6 (IPv6) 的邻居发现说:
4.3 . 邻居请求消息格式
节点发送邻居请求以请求目标节点的链路层地址,同时也向目标提供自己的链路层地址。当节点需要解析地址时,邻居请求是多播的,当节点试图验证邻居的可达性时,邻居请求是单播的。
当用作 IPv4 中的 ARP 等价物时,Alice 不知道 Bob 的 MAC 地址,因此 Alice 无法向 Bob 的 IPv6 地址发送任何内容。Alice 需要将 Bob 的 IPv6 地址解析为他的 MAC 地址,以便能够向 Bob 发送任何内容。Alice 通过根据 Bob 的 IPv6 地址的最后 24 位向请求的节点多播地址发送请求来完成此操作,因此很可能只有 Bob 会收到该请求。
将此与 IPv4 中的 ARP 形成对比,其中 ARP 请求被发送到广播地址,从而中断 LAN 上的所有主机。