连接到交换机的接口在多个套接字上饱和时的预期行为是什么?

网络工程 转变 以太网
2022-02-25 04:05:36

假设我有一个千兆网络接口 eth0,它正在从同一交换机上的其他两台机器接收 1000 兆比特的传输。就如何分配吞吐量而言,预期的行为是什么?

当我们测试了这种情况时,似乎其中一台传输机器将“胜出”并通过(例如约 900 兆位),而另一台将减少到几乎没有(约 20 兆位)。似乎如果我们在交换机上有不同的操作系统,Linux->Linux 转移会胜出。

是否有已知因素决定如何在饱和接口上分配带宽?或者它只是操作系统/驱动程序/硬件/等的随机集合?

有问题的开关是普通的非智能开关。

2个回答

如果您尝试从交换机的端口运行多个流,这些流组合起来超过了端口的容量,则会丢弃帧。在很短的一段时间内 - 取决于交换机的缓冲能力 - 帧在缓冲区中排队,但它会很快溢出(几毫秒或更多毫秒)。

如果交换机上没有有效的 QoS,它不会做太多选择——如果有空间,它会将帧排入出口队列,如果没有,它会丢弃它们,实际上几乎是随机的。

整个流程的实际执行方式很大程度上取决于所使用的协议以及协议的实现方式。不管两端是什么,UDP 可能都是一样的。由于拥塞控制的确切参数,TCP 可以有很大的不同。更激进的参数将让一个流在端点上以不那么激进的参数战胜另一个流。

当以太网流量控制处于活动状态时,将出现线头阻塞,从而导致流量之间的分布更好,并且几乎没有丢帧,但很可能目标端口的饱和度也低于 100%。

这实际上与主机接口无关,主机接口只会以链路另一端接口发送的速率接收。您不能将其他两台主机连接到另一台主机的单个接口;中间必须有一些网络设备(路由器、交换机、WAP 等)。

例如,如果主机连接到其他两台主机所连接的交换机。在没有任何特殊配置的情况下,交换机将以先到先服务的方式按照其接口配置的速率将流量发送到目标主机。任何高于接口速率的流量都将被丢弃。


顺便说一下,洪水这个词在网络中具有特殊的意义。交换机泛洪(发送到所有其他接口,接收帧的接口除外)未知单播帧。