![第一次发送数据包时,其他节点如何处理交换机的数据包?](https://linux22.com/image/631864/%E7%AC%AC%E4%B8%80%E6%AC%A1%E5%8F%91%E9%80%81%E6%95%B0%E6%8D%AE%E5%8C%85%E6%97%B6%EF%BC%8C%E5%85%B6%E4%BB%96%E8%8A%82%E7%82%B9%E5%A6%82%E4%BD%95%E5%A4%84%E7%90%86%E4%BA%A4%E6%8D%A2%E6%9C%BA%E7%9A%84%E6%95%B0%E6%8D%AE%E5%8C%85%EF%BC%9F.png)
说到交换机,我了解到,第一次将数据包从一个节点发送到另一个节点时,数据包会被发送到该网络的所有节点。然后,交换机会记住计算机 A 试图将数据包发送到的位置(例如计算机 D),当它了解到这一点时,它将只将数据包发送到计算机 D,而忽略所有其他计算机,从而减少流量并节省带宽。
问题 1:我的理解正确吗?还是我遗漏了什么?
问题 2:其他计算机如何处理第一次发送的数据包?它们会被忽略吗?
答案1
我的观点正确吗?或者我遗漏了什么?
是的,您说对了。一旦数据包被发送,交换机就会记住发送计算机的位置。此条目将保留,直到出现以下任一情况:
- 计算机在一段时间内(由交换机定义)不再发送数据包。
- 计算机被移动到不同的交换机端口,然后交换机将会看到从该端口到达的数据包。
- 交换机耗尽了用于记忆 MAC 地址的内存并删除了一些 MAC 地址。
交换机需要以极快的速度访问这些信息,因此无法将其存储在普通的 RAM 芯片中。而是使用 CAM。CAM 即内容寻址内存,对于交换机或路由器需要执行的操作来说,它速度很快,但容量非常小。通常,低端交换机最多可以记住几千台计算机。
其他计算机如何处理第一次发送出去的数据包?
通常,操作系统会告诉网络接口只移交发往其自身 MAC 地址的数据包。因此,硬件将忽略这些数据包,操作系统永远不会看到它们。在特殊情况下,这可能还不够,因此操作系统可以告诉网络接口移交所有数据包,然后操作系统必须决定忽略哪些数据包。例如,如果您运行的虚拟机具有连接到同一网段的不同 MAC 地址,则可以使用这种方法。
答案2
我的观点正确吗?或者我遗漏了什么?
是的。交换机会了解计算机可通过哪些端口访问,然后存储该信息以供将来使用。
第一次发送数据包时,其他计算机如何处理它们收到的数据包?它们被忽略了吗?
是的,其他主机忽略ARP请求。