我知道 ping 指的是我的互联网连接发送数据包和接收响应所用的时间,而下载速度指的是我从服务器提取信息的速度。
从命令行,我首先运行 speedtest-cli,它打印出 28.05 Mbit/s 的下载速度。然后,我使用了以下命令,这是我见过的这里:
sudo ping -f -c 500 -s 1472 111.222.333.44
并打印
min/avg/max/mdev = 0.811/1.095/14.162/0.960 ms
因此,我将 24Kbit(显然 1472 不知何故变成了 1500,然后 1500*2*8 得到 24000,因为发送了 1500 个字节,接收了 1500 个字节)除以 1.095 毫秒,得到了 21.9Mbit/s。在我的情况下,错误百分比似乎不是太多。这是一种测量下载速度的好方法吗?如果不是,如何在不使用 speedtest-cli 和网络监控工具等工具的情况下测量下载速度?
答案1
不,这不是测量下载速度的好方法。ICMP 可能与网络上的正常流量具有不同的优先级(尤其是在公司/运营商网络上)。它完全绕过了 TCP 窗口机制,导致结果不准确。此外,某些流量整形机制无法通过这种方式可靠地测量(ipfw
例如,BSD 需要几秒钟才能启动)。
您将需要使用一种使用 TCP 的方法,例如 HTTP 或 FTP 以及相对较大的流(大文件)。有很多网站提供带有随机数据的二进制文件来测试您的下载速度。在 Google 上搜索“速度测试测试文件下载”,您可能会找到一些。然后您可以使用curl
或wget
来测量吞吐量。