Answers:
首先让我们承认你正在比较苹果和橘子。
nc
, scp
和 wget
通常使用单个TCP套接字进行传输。但是,当你使用 iperf -P 12
, 您正在使用 十二 并行TCP套接字。这是一个非平凡的区别。您拥有的并行连接越多,带宽消耗就越大。事实上, speedtest.net
使用多个并行TCP流来可靠地测量带宽容量,即使您的链路有明显的数据包丢失,可能会占用单个TCP套接字;我已经看到它们饱和1.5%的链路(这会在正常的TCP套接字上消耗吞吐量)。
次优单插槽TCP传输的主要原因是数据包丢失和延迟/抖动。您需要通过链接识别并纠正您是否有任何持续的数据包丢失...我通常使用 mtr
要么 winmtr
为了这...
mpenning@mpenning-T61:~$ mtr -n <destination_ip>
HOST: mpenning-T61 Loss% Snt Last Avg Best Wrst StDev
1. 10.239.84.1 0.0% 407 8.8 9.1 7.7 11.0 1.0
2. 66.68.3.223 0.0% 407 11.5 9.2 7.1 11.5 1.3
3. 66.68.0.8 0.0% 407 19.9 16.7 11.2 21.4 3.5
4. 72.179.205.58 0.0% 407 18.5 23.7 18.5 28.9 4.0
5. 66.109.6.108 5.2% 407 16.6 17.3 15.5 20.7 1.5 <----
6. 66.109.6.181 4.8% 407 18.2 19.1 16.8 23.6 2.3
7. 4.59.32.21 6.3% 407 20.5 26.1 19.5 68.2 14.9
8. 4.69.145.195 6.4% 406 21.4 27.6 19.8 79.1 18.1
9. <destination_ip> 6.8% 406 22.3 23.3 19.4 32.1 3.7
如果你看到随着时间推移你一直丢失数据包的跳跃, 和 它背后的跳跃正在丢失数据包,然后你需要修复导致数据包丢失的任何问题。如果我没有立即看到问题,我通常会测量至少五到十分钟......通常是几个小时。
另一种情况是延迟......在有人能够对此做出响应之前,您需要进一步量化有关端到端延迟以及src / dest OS信息的详细信息。
所以你有一些选择......要么: