我知道广播已从 IPv6 中删除,而只是多播。然而,最近我读了
“这个过程 (ARP) 现在是通过一个称为请求节点地址的多播地址来实现的,因为所有主机在连接到网络时都会加入这个多播组。”
现在我的问题是,如果所有主机在进入网络时加入该节点,然后向该节点上的所有主机发送“多播”数据包,这与 IPv4 中的广播不一样吗?
我知道广播已从 IPv6 中删除,而只是多播。然而,最近我读了
“这个过程 (ARP) 现在是通过一个称为请求节点地址的多播地址来实现的,因为所有主机在连接到网络时都会加入这个多播组。”
现在我的问题是,如果所有主机在进入网络时加入该节点,然后向该节点上的所有主机发送“多播”数据包,这与 IPv4 中的广播不一样吗?
您误解了请求节点多播地址的工作原理。每个主机可以有不同的请求节点多播地址。请求节点多播地址基于 IPv6 单播或任播地址。来自RFC 4291:
请求节点多播地址是根据
节点的单播和任播地址计算的。请求节点多播
地址是通过取地址
(单播或任播)的低 24 位并将这些位附加到前缀
FF02:0:0:0:0:1:FF00::/104.. .
广播,如ARP,会中断局域网上的每一台主机,并要求局域网上的每一台主机处理请求,以查看ARP是否是针对该主机的。组播是选择性广播,只有订阅组播组的主机才会收到组播。
这种方法只会影响局域网中的一台或几台主机,而不是局域网中的所有主机。
首先简要介绍以太网上的广播和多播。在“教科书”以太网网络上,交换机会将所有组播视为广播,并将它们泛洪到所有端口。许多更高级的以太网交换机可以检测一些但不是所有类型的多播并限制它们的传播。
终端设备中的网络控制器通常支持按目标 MAC 地址过滤多播。此过滤的确切细节各不相同,过滤可能是也可能不是终端设备想要侦听的多播 MAC 地址列表的精确表示。
回到邻居发现,发送主机制作邻居发现数据包。为了选择目标 IP 地址,它使用目标 IPv6 地址的后 24 位。这些位将依次复制到多播 MAC 地址中(以太网上的 IPv6 将多播 IP 的底部 32 位复制到多播 MAC)。
对于这种特定类型的多播,以太网交换机无法真正做任何花哨的事情,因此数据包几乎肯定会被发送到网络上每个设备的 NIC。然而,对于大多数节点,它将被网络控制器中的多播过滤停止,而不是被传递到设备的主处理器。