我目前已设置了一个家庭千兆网络,其中包括一个千兆路由器和几台配有千兆网络适配器的机器。连接通过 cat5.e 电缆进行,最长的电缆长约 20 米。
首先,我通过 FTP 进行了测试,传输速率在 300Mbit/s 左右,这相当差,但可能受到许多因素的限制,因此我为此使用了指定的实用程序。我iperf3
在两台机器上运行了它,并按照其他答案中的建议,首先我尝试在两台机器上运行环回测试,以查看系统本身是否能够处理流量,结果如下:
显然我不知道自己在做什么,但我认为环回不应该通过 NIC,如果是这样的话,这些结果是有意义的,意味着我的两台机器都能够处理连接。
接下来,我从一台机器转到另一台机器,结果如下
这并不像网络上其他一些问题那么糟糕,但 100 mbit 仍然就是 100 mbit。
我有兴趣找出导致这种情况的原因,我该如何进一步诊断问题?
答案1
您可能错误地读取了 iperf 输出,并将兆比特 (MB) 与兆字节 (MebiBytes) 混淆了。
网络速度以兆比特为单位:每秒 1,000,000 比特。文件复制速度以兆比字节为单位(每秒 1,048,576 个 8 位字节),因此 1 兆比字节 = 约 8.4 兆比特。
iperf 的“传输”列以兆比字节 (MebiBytes) 为单位,就像文件传输一样。iperf 的“带宽”列以兆比特 (MB) 为单位,就像网络一样。
由于以太网、IPv4 和 TCP 的开销,完美千兆以太网上的理论最大 TCP/IPv4 速度约为 942 兆比特/秒,即约 112 兆字节/秒。
因此,您从可能的 112 MebiBytes/sec 中获得 108 MebiBytes/sec,即 96% 的效率。还不错。您可以通过 TCP 调整(例如适当的 TCP 接收窗口大小)再挤出几个百分点。您还可以通过采用非标准“巨型帧”将上限提高几个百分点。使用 9000 字节帧可以使您的以太网效率接近 99%。
但实际上,iperf 显示您的网络运行良好。您最初的 300 兆比特/秒 FTP 速度一定是由于编写不良的 FTP 软件或磁盘 I/O 瓶颈所致。
答案2
您需要意识到,您永远无法获得 1000 Mbps 的吞吐量。您有至少每帧 18 字节的第 2 层(以太网)开销、至少每数据包 20 字节的第 3 层(IP)开销以及第 4 层(UDP、TCP 等)开销。您的数据将是第 4 层协议的有效负载。源主机和目标主机的网络堆栈(软件)中还会有一些处理开销。
如果您通过交换机,那么您可能会接近线速交换。如果您的数据包正在路由,那么您将无法获得线速,因为路由器开销较大。
您的最后两张图片(顺便说一句,永远不要将图片用作文本;将文本粘贴到您的问题中并使用按钮进行格式化{}
)看起来您的吞吐量非常接近 1 Gbps。我真的没有看到任何问题。