为什么本地网络上其他计算机的数据包不会使我们的带宽饱和?

Ste*_*e M 3 networking bandwidth

在 Unix 或 Linux 计算机上,我们可以运行iftop命令并监视本地网络上所有其他计算机的数据包。为什么这不会使我们的连接带宽完全饱和?

如果我们有一个 100 Mbs 的连接,而其他 10 台计算机在网络上也有 100 Mbs 的连接,为什么我们的网络适配器一直在接收所有打算发送给其他计算机的数据包,为什么我们还有可用的带宽?

Gia*_*968 5

在 Unix 或 Linux 计算机上,我们可以运行iftop命令并监视本地网络上所有其他计算机的数据包。为什么这不会使我们的连接带宽完全饱和?

你的前提是不正确的。iftop不“监视我们本地网络上所有其他计算机的数据包”。如官方文档中所述iftop

iftop - 按主机显示接口上的带宽使用情况

另外在说明中;重点是我的:

iftop侦听命名接口上的网络流量,或者在第一个接口上它可以找到看起来像外部接口(如果没有指定),并显示主机对当前带宽使用情况的表。

所有iftop做是因为它是对包括发往特定机器的数据包本机运行目前的网络数据。但是,除非iftop从作为路由器的服务器或位于所有网络流量中间的某种设备运行,否则除了本地机器网络端口上的流量外,它不会显示任何内容。

也就是说,如果您看到来自其他机器的数据包,它们很可能来自通过 ARP 和/或多播广播其存在的设备。通过 Bonjour 或 Avahi 等技术线路。但这不是成吨的数据包,而是一阵阵“我在这里!” 来自设备的通知,可帮助您的界面了​​解这些设备是谁/在哪里。

在某些环境中,ARP 流量和广播因此被禁用。与其说它使带宽饱和,不如说是不断的公告只会对交换机等造成混乱。