我们有一个文件传输速度上限(最大速度)的案例,如下:
- 1 个文件传输上限为 5Mbps;
- 2 个并行文件传输(同一文件),上限为 10 Mbps
什么可以解释这种行为?
好像不是IP层(网络)。那会是TCP层的设置吗?
编辑:
我将尽力澄清背景和我的问题。
文件传输发生在两个 FTP 服务器(我不确定是哪个操作系统或 FTP 软件)之间,通过广域网(专用网络,不是互联网)。所以我们有这样的情况:
FTP 服务器 A --> LAN --> WAN --> LAN --> FTP 服务器 B
第一个文件传输任务获得 5Mbps 带宽。我们认为 WAN 某处存在瓶颈,限制了带宽。但随后,附加文件传输任务设法找到了另一个 5Mbps 带宽……
答案1
如果你的延迟很高(例如,如果你通过互联网传输),这可能是因为连接的一端或两端不支持窗口缩放。如果您的 ISP 倾向于干扰您的数据包,则可能是由于流量整形。正如 Robert Moir 指出的那样,这可能是应用程序或驱动程序问题。
答案2
你提问题的方式有点令人困惑。让我更明确地重述一下。
在给定的网络上...
- 一次文件传输的最大速度约为 5Mbps。我们尝试的任何方法都无法提高吞吐量。
- 两个文件传输同时运行,最大传输速度约为 10Mbps(5M + 5M)。
中间没有进行“流量整形”的盒子……限制取决于我们拥有的网络类型。
为什么两个可以传输多个?
答案是 TCP/IP 是一种礼貌协议。它积极尝试不霸占信道。它实际上经过了优化,以便同时进行的多次传输都能获得“公平份额”的带宽。
缺点是,在空网络上进行单次传输的性能会非常差。这并不是因为 TCP/IP 的创建者想要这样。多年的研究并没有改善这种情况,因为主要研究是让整个互联网更高效,而不是让封闭网络上的某对机器表现良好。互联网不是关于你的,而是关于“我们”的。
很难针对具体情况调整网络。例如,当您的机器正在等待硬盘时,网络可能会处于空闲状态,未被使用。如果同时进行两次传输,当一次传输正在等待硬盘时,另一次传输则“保持管道满载”。
如果您想提高传输速率,请将传输分为多个同时进行的传输。进行基准测试,看看 1、2、3 或 4 是否能获得最佳挂钟时间。使用效果最好的方法。(如果您更改了网络、NIC 速度等,则应重新进行基准测试)
如果您无法将任务拆分为多个传输,则需要考虑调整操作系统上的 TCP/IP 设置。您可以更改一些参数,例如带宽使用率增加的速度(“快速启动计时器”)和其他设置。这些设置因操作系统而异。搜索网络可以找到类似以下文章http://support.microsoft.com/kb/93444和http://www.psc.edu/networking/projects/tcptune/ 但是我应该警告你,让事情变得更糟和让事情变得更好一样容易。你应该建立一个基准,每次调整一个参数,每次更改后运行整个基准。保存好日志,看看是什么让事情变得更好或更糟。另外,请记住,一旦你为这种传输调整了事情,执行其他网络任务(如浏览网页)可能会不合适。
答案3
根据您在此处提供的信息,无法判断。我见过单次下载的文件传输速度超过 5mb,因此这不是某种不可改变的“互联网定律”。当然,可能是您正在使用的应用程序。可能是设置。可能是驱动程序。
答案4
网络中的某个地方,每个 TCP 流的速度都被限制在 5 Mbps。最有可能是在 WAN 连接中,但也可能在其他地方。