如何将互联网连接下载/上传速度计算到一个主机

时间:2018-03-16 09:00:14

标签: javascript algorithm networking

这是软件工程Q / A的交叉帖子

有几个(很多)网站提供互联网速度测试,我试图建立同样的,但我仍然无法获得准确的结果。

尝试

在服务器上创建了几个文件,比如说(1,8,22,64,128,256,512,1024)KB。 然后在客户端,我下载每个。 测量

  • 请求服务器的开始时间
  • 服务器的第一个回复
  • 完成下载的时间

然后,互联网速度=所有转移的大小/时间,以秒为单位。

我检查了其他几个不下载大文件/大数据(超过5Kb)的网站,但是并行地向服务器发出了很多请求,

还有一些平滑因子或稳定因子,或者对数据进行采样的东西,并计算出更好的结果。

以下是speedtest.net的实施方式,但我仍然无法正确理解。

https://support.speedtest.net/hc/en-us/articles/203845400-How-does-the-test-itself-work-How-is-the-result-calculated-

有人可以指导我理解并指出计算网速的正确方向吗?

修改:我希望在我的网络/应用上向我的用户展示他们获得的速度。为此,我试图应用一般的creteria,类似于speedtest,但不是从多个服务器中获取,只想尝试使用一台服务器。

1 个答案:

答案 0 :(得分:1)

一般的想法是计算能够填充物理通信信道的参数。主要部分是确定哪些并行下载将达到目标。

单个通信显然是不够的,因为存在许多开销,在此期间您可以发送其他数据包。在非常粗略的近似中,您需要从A发送数据包到B以请求一些数据,然后将数据从B发回A,您可以在发回数据时明确请求其他内容。您还可以考虑从X到Y的链路可以发送多少数据包?就像你可以在从B到A的同一条路上有几辆车。每辆车都是来自特定通信的包。

确定连接的速度在很大程度上取决于许多因素,所获得的只是一种近似值。