如果是的话,我们可以从ping服务器所需的时间中找到互联网带宽吗?
7 回答
不,ping 不会告诉您有关带宽的任何信息,它只是测量延迟。测量带宽最好通过专门的测试来完成,即传输一堆比特并测量需要多长时间。您可能需要考虑带宽可能会因许多因素而发生巨大变化,例如:
- 方向; A 到 B 可能比 B 到 A 快,反之亦然
- 一天中的时间;取决于所涉及链接的一般负载水平
- 采取的确切路线,而路线又可以随机变化
您可以通过创建不同大小的 ping 来进行非常粗略的测量
然后,您可以使用较小和较大 ping 之间的延迟差异来形成延迟计算的基础。
实际上,尽管使用宽带速度,这不会产生有意义的数据。在调制解调器速度或更慢的情况下,您可能能够获得带宽指示,但它不太可能是准确和可重复的。
但是正如其他人已经指出的那样,ping 最好用作延迟的指示,并且有更好的方法来测量带宽。
几年前,我对电缆上的延迟和带宽使用之间的关系进行了一些调查。
基本上,如果您从零带宽开始并增加带宽使用,延迟会非常缓慢地增加 - 直到您达到大约 90% 的带宽。然后延迟穿过屋顶,到达另一个高原,之后它再次缓慢增加。
不,但您可能能够估计延迟。
如果您事先知道通道的延迟,则可以测量带宽。
您可以使用大 ping 包并在了解信道类型和预期 RTT 的情况下估计带宽。
我问过同样的事情,但每个人都说真正的 ping 不能很好地测量带宽。下面列出的这批是使用 ping 进行的带宽速度测试,但它的最大速度限制为 1000kb/s,并且在这种简单的形式中不会四舍五入,但您可以使用它并进行实验。
@echo off
:begin
color 0b
MODE CON:COLS=15 LINES=3
for /F "tokens=10 delims=ms=," %%a in ('ping -n 1 -w 1000 -l 1024 8.8.8.8^| find "Average"') do set "A1=%%a"
set /a T=%A1%
set /a varia=1000/%T%
set /a answer=%varia%
set /a varia2=%answer%
set /a answer2=%varia2%
echo.
echo Speed %answer2% Kb/s
sleep 5
goto begin