【发布时间】:2014-11-17 10:30:32
【问题描述】:
假设我正在构建自己的下载加速器。
让我们将其简化为:
- 我的代码在我无法控制网络参数的第 3 方运行
- 从单个 IP 下载项目
- 并行范围传输的数量是可调的
- 为了学习理想的参数,会有很多迁移
- 客户端运行 Linux
- 服务器不在我的控制范围内
- 路径通过 WAN,下载通过 HTTPS
- 下载的片段很大
如何衡量是否使用了足够的连接来使客户端和服务器之间的路径饱和?
getsockopt(..., TCP_INFO) 中的哪些位实际上有用?
我可以多快适应不同的网络条件?
可以测量客户端系统上的 CPU 和内存压力,网络压力如何?
【问题讨论】:
-
祝您工作顺利;但是我已经失去了回答有关此问题的更多问题的兴趣。
-
鉴于具有大窗口或小 RTT 的单个 TCP 连接可以使任何网络链接饱和,我看不出您期望从多个 TCP 会话中获得什么好处。每个新片段都将以慢启动开始,因此传输速率低于已建立的连接。
-
我同意@BrianWhite。这个问题,正如所写的,似乎表明对 TCP 网络如何运行存在很大的误解。
-
@qarma,网络通常不进行深度数据包检查以根据“连接”调整流量。因此,无论数据包是单个连接还是多个连接的一部分,结果都是一样的。此外,无论使用多少不同的连接,任何想要限制流量的东西都会找到方法。
-
要测试黑盒链接是否处于饱和状态,似乎必须不断增加流量,直到带宽停止按比例增加。即,必须使链接饱和。我不确定这是否是个好主意。
标签: networking optimization tcp measurement