我的理解是,节点不知道它们想要与之通信的其他节点的mac地址,当创建一个帧以将节点A与节点B通信时,目标mac地址字段将为空,为了避免这一点,以太网可以“窥视”有效负载中的ip数据包,查看节点B的IP地址,并询问“谁拥有此IP地址”作为局域网中的广播,如果节点B在局域网中,它将被应答,然后将知道mac地址以及连接到哪个节点B的接口(Mac地址和ARP表更新)。如果没有响应,帧将被寻址到网关的mac地址,以开始在另一个网络中到达最终目的地的旅程。当重新阅读CCNA的书时,它表明未知的单播被淹没到所有接口,当一个人回复时,交换机就知道那个mac地址连接到的接口,如果我知道目的地的mac地址,并且条目还没有在交换机的mac地址表中,这就有意义了。虽然我理解“泛洪”过程,但它与节点知道其他节点的IP地址而不知道它们的mac地址的说法相冲突。在哪些情况下,节点知道其他节点的mac地址,或者ARP总是需要在ARP表中收集该信息?
发布于 2023-05-05 21:57:14
不完全同意。
在IP堆栈将数据包传递给NIC进行传输之前,它需要使用ARP (IPv4)或NDP (IPv6)来了解下一跳的MAC地址。一旦它知道了地址,它就可以将数据包作为有效负载传递给NIC和目的地的MAC,并进行封装和传输。
NIC (以太网的数据链路和物理层)并不关心它传输的有效负载,当然也不需要查看任何地方。提供目标MAC和有效负载数据是上层网络层的责任。(对于那些经常支持卸载功能的现代NIC来说,这已经不是真的了,但是现在让我们忽略这一点。)
淹没未知MAC是交换机中一个完全不同的过程,当目标MAC对交换机未知时,该进程用于模拟中继器/总线。当然,使用ARP也会填充任何交换机的MAC表,因此您可能会说存在某种关系。
在哪些情况下节点知道其他节点的mac地址,或者是否总是需要ARP才能在ARP表中收集该信息?
MAC地址只能通过ARP或NDP来学习。当然,以前使用的地址会在ARP缓存中停留很短时间。
https://networkengineering.stackexchange.com/questions/83130
复制相似问题