gpt4 book ai didi

networking - 如何衡量网络压力?

转载 作者:可可西里 更新时间:2023-11-01 02:31:01 24 4
gpt4 key购买 nike

假设我正在构建自己的下载加速器。

让我们将其简化为:

  • 我的代码在我无法控制的网络参数的第 3 方运行
  • 从单个 IP 下载一个项目
  • 并行范围传输的数量是可调的
  • 将有很多迁移来学习理想参数
  • 客户端运行 Linux
  • 服务器不在我的控制范围内
  • 路径通过 WAN,下载通过 HTTPS
  • 下载的片段很大

如何衡量是否使用了足够多的连接来使客户端和服务器之间的路径饱和?

getsockopt(..., TCP_INFO) 中的哪些位实际上有用?

我能以多快的速度适应不同的网络条件?

可以测量客户端系统的 CPU 和内存压力,网络压力如何?

最佳答案

答案很简单:一个 TCP 连接足以填满客户端和服务器之间的路径。

至少,客户端和服务器之间的标准 TCP/IP 协议(protocol)和标准网络设备是这样。如果路径中的某些设备正在执行某种“限制”单个 TCP 连接的自定义处理,那么答案可能会有所不同。但在那种情况下,除非您确切指定自定义处理是什么,否则无法回答。正如其他人评论的那样,在大多数情况下,网络流量整形或限制可能是基于 IP 地址而不是 TCP header 完成的,因此创建额外的 TCP 连接无济于事。如果您的情况不同,那可能很有趣 - 请进一步解释。

在我看来(当然,这只是一个意见,您可能不同意)关于构建自定义“下载加速器”的问题的真正答案是:不要那样做。 TCP 就这样工作得很好。除了一些特殊情况(例如 SCPS-TP ),您不太可能通过玩弄多个连接或弄乱套接字选项来提高 TCP 性能。如果您确实设法提高了性能,那么您这样做的代价可能是降低其他用户的整体网络性能。这是不明智的。

关于networking - 如何衡量网络压力?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26970606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com