Dim*_*nek 8 optimization networking tcp measurement
假设我正在构建自己的下载加速器.
让我们简化它到以下地步:
如何测量是否使用足够的连接来使客户端和服务器之间的路径饱和?
什么位getsockopt(..., TCP_INFO)实际上有用?
我可以根据不同的网络条件调整多快?
可以测量客户端系统的CPU和内存压力,网络压力如何?
答案非常简单:一个 TCP 连接足以使客户端和服务器之间的路径饱和。
至少,对于客户端和服务器之间的标准 TCP/IP 协议和标准网络设备来说确实如此。如果路径中的某些设备正在执行某种自定义处理,即“限制”各个 TCP 连接,那么答案可能会有所不同。但在这种情况下,除非您准确指定自定义处理是什么,否则无法回答。正如其他人评论的那样,在大多数情况下,网络流量整形或限制可能是基于 IP 地址而不是 TCP 标头来完成的,因此创建额外的 TCP 连接不会有帮助。如果您的情况不同,可能会很有趣 - 请进一步解释。
在我看来(只是一个意见,当然你可能不同意)关于构建自定义“下载加速器”的问题的真正答案是:不要这样做。TCP 就这样工作得很好。除了一些特殊情况(例如SCPS-TP)之外,您不太可能通过使用多个连接或弄乱套接字选项来提高 TCP 性能。如果您确实设法提高性能,那么您可能会以降低其他用户的整体网络性能为代价。这是不明智的。