1个文件传输上限为5Mbps; 两个并行文件传输上限为10Mbps。 怎么来的?

我们有一个文件传输速度上限(最大速度)的情况如下:

  • 1个文件传输上限为5Mbps;
  • 2个并行文件传输(相同的文件)以10 Mbps上传

什么可以解释这样的行为?

它似乎不是IP层(networking)。 这是TCP层的设置吗?


编辑:

我会尝试澄清的背景和我的问题。

文件传输发生在两个FTP服务器之间(我不确定哪个操作系统或FTP软件),跨广域网(专用networking,不是互联网)。 所以我们有这样的东西:

FTP服务器A – > LAN – > WAN – > LAN – > FTP服务器B

第一个文件传输作业获得5Mbps的带宽。 我们认为广域网在某个地方有一个瓶颈,限制了带宽。 但是,然后额外的文件传输工作pipe理find另一个5Mbps的带宽…

如果延迟很高(例如,如果您通过Internet传输),则可能是因为连接的一端或两端不支持窗口缩放 。 如果你的ISP倾向于乱用你的数据包,这可能是由于stream量整形。 正如Robert Moir所指出的,这可能是一个应用程序或驱动程序问题。

你提出这个问题的方式有点令人困惑。 让我更明确地重述它。

在给定的networking上…

  1. 一个文件传输它传输大约5Mbps最大。 没有我们尝试做得到更多的吞吐量。
  2. 两个文件传输同时运行,最大传输速率约为10Mbps(5M + 5M)。

中间没有用于“stream量整形”的方框…限制是基于我们所拥有的networkingtypes。

为什么两个可以传输多个?

答案是TCP / IP是礼貌的协议。 它积极地尝试不要占用一个频道。 它实际上被优化,使得许多传输一次都获得了带宽的“公平份额”。

这样做的缺点是,在一个空的networking上进行一次传输的性能会非常糟糕。 这不是因为TCP / IP的创build者想这样。 多年的研究并没有很好地改善这种情况,因为主要的研究是使整个互联网更有效率,而不是使封闭networking上的一对特定机器做得好。 互联网不是关于你,而是关于“我们”。

根据您的具体情况调整networking很困难。 例如,当您的机器正在等待硬盘时,networking可以闲置,闲置。 同时进行两次传输,一次传输正在等待硬盘,另一次传输是“保持满pipe”。

如果您想提高转账率,可以将您的转账分成多个同时转账。 做基准,看1,2,3或者4是否能获得最好的挂钟时间。 使用什么效果最好。 (如果你改变你的networking,网卡速度等等,你应该重新做基准testing)

如果您不能将任务分解为多个传输,则需要考虑调整操作系统上的TCP / IP设置。 有一些参数可以改变,比如它应该提高带宽使用的速度(“快速启动定时器”)和其他设置。 这些对于不同的操作系统是不同的。 在网上searchfind像http://support.microsoft.com/kb/93444和http://www.psc.edu/networking/projects/tcptune/的文章不过,我应该警告你,你可以让事情变得更糟比你能把事情做得更好。 每次更改后,您应该build立一个基准并调整一个参数,然后运行整个基准。 保持良好的日志,看看是什么让事情变得更好,更糟。 另外,请记住,一旦你调整了这种转移的事情,做其他的networking任务(如网页冲浪)可能是不合适的。

不可能用你在这里提供的信息来说。 我已经看到文件传输速度超过5MB的单一下载,所以它不是一些不可改变的“interwebs法”。 当然,可能是您正在使用的应用程序。 可能是一个设置。 可能是一个司机。

有些networking中的每个TCPstream正在被覆盖到5 Mbps。 最有可能在WAN连接,但它可能在别处。