【问题标题】:Determine available upload/download bandwidth确定可用的上传/下载带宽
【发布时间】:2013-11-25 10:59:13
【问题描述】:

我有一个文件上传和下载的应用程序。我还能够将上传/下载速度限制在所需的水平(可配置),这样我的应用程序就不会消耗整个可用带宽。我可以使用 libcurl (http) 库来实现这一点。

但我的问题是,如果我必须将上传速度限制为可用上传带宽的 75%,我如何以编程方式找出我的可用上传带宽?最好在 C/C++ 中。如果它是预先配置的,我没有问题,但如果它必须每次都学习和调整,就像我说的,75% 的可用上传限制,我不知道该找谁。同样适用于下载。任何指针都会有很大帮助。

【问题讨论】:

标签: c++ network-programming libcurl bandwidth-throttling


【解决方案1】:

无法确定常规网络上两点之间的绝对网络容量。 原因是流量可以在两者之间重新路由,其他数据流出现或消失或链接可能被切断。

您可以做的是弄清楚现在可用的带宽是多少。一种方法是尽可能快地上传/下载一大块数据(比如 1MB)(没有人为的上限),并测量需要多长时间。从那里您可以确定现在可用的带宽并从那里开始。

您可以定期再次测量带宽,以确保您不会偏离太多。

【讨论】:

  • 我的问题正是关于了解可用带宽。我已经知道我之前传输所需的字节数/秒(比如 1Mb 数据文件在 20 秒内以每秒 52428 字节的速率上传)。但是现在你怎么知道你可以访问多少带宽。我的问题来自此链接link 和“具体而言,Dropbox 会自动将自身限制为最大上传速度的 75%,以防止浏览出现任何明显的减慢。”
  • @sandeep,是的,您的观察是正确的。使用这种方法,您将永远无法使用更多可用带宽。我认为,您应该定期启动一些没有带宽上限的请求,以重新计算您可用的总带宽值。
  • 你可以检查速度测试命令行ulitity定期计算带宽。(github.com/sivel/speedtest-cli
  • 感谢您推荐命令行实用程序,但我正在寻找更多 API。
猜你喜欢
  • 2013-12-15
  • 1970-01-01
  • 2020-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多