![为什么发往本地网络上其他计算机的数据包不会耗尽我们的带宽?](https://linux22.com/image/1426585/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%8F%91%E5%BE%80%E6%9C%AC%E5%9C%B0%E7%BD%91%E7%BB%9C%E4%B8%8A%E5%85%B6%E4%BB%96%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%9A%84%E6%95%B0%E6%8D%AE%E5%8C%85%E4%B8%8D%E4%BC%9A%E8%80%97%E5%B0%BD%E6%88%91%E4%BB%AC%E7%9A%84%E5%B8%A6%E5%AE%BD%EF%BC%9F.png)
在 Unix 或 Linux 计算机上,我们可以运行该iftop
命令并监控本地网络上所有其他计算机的数据包。为什么这不会完全耗尽我们连接的带宽?
如果我们有一个 100 Mbs 的连接,并且网络上其他 10 台计算机也有一个 100 Mbs 的连接,那么既然我们的网络适配器始终接收发往其他计算机的所有数据包,为什么我们仍然有可用的带宽?
答案1
在 Unix 或 Linux 计算机上,我们可以运行该
iftop
命令并监控本地网络上所有其他计算机的数据包。为什么这不会完全耗尽我们连接的带宽?
你的前提是错误的。iftop
不“监控我们本地网络上所有其他计算机的数据包”。如官方文件iftop
:
iftop-显示主机接口的带宽使用情况
另外在描述中;重点是我的:
伊夫托普在指定接口上监听网络流量,或者在它可以找到的第一个接口上看起来像外部接口(如果未指定),并显示主机对当前带宽使用情况的表。
它iftop
所做的就是显示运行它的机器的网络数据,包括发往特定机器的数据包。但除非iftop
从路由器服务器或位于所有网络流量中间的某种设备运行,否则它永远不会显示本地机器网络端口上的流量以外的任何内容。
也就是说,如果您看到来自其他机器的数据包,它们很可能来自通过 ARP 和/或多播广播其存在的设备。通过 Bonjour 或 Avahi 等技术。但这不是大量的数据包,而是来自设备的“我在这里!”公告,这些公告可以帮助您的界面知道这些设备是谁/在哪里。
在某些环境中,ARP 流量和广播会因此被禁用。这不会占用过多的带宽,但持续不断的通告可能会给交换机等设备造成混乱。
答案2
您不会收到本地网络上其他计算机的所有数据包。您只会收到恰巧泄漏到您的连接的数据包。