如何通过一些平均ping速率来计算互联网连接的速度。它涉及的计算是什么。可以通过ping速率计算上传/下载限制
修改 如果ping不是解决方案还有什么呢?
答案 0 :(得分:24)
我用ping来计算本地网络的带宽。我认为它与测量带宽的其他方法一样准确(例如下载大文件)。如果您有互联网的对称链接(即不是adsl),也可以将它用于您的互联网连接。
我是这样做的: 我有一个千兆以太网局域网,我想测量我的计算机和服务器机房中的主机之间的速度。我的MTU是1500,所以我使用数据包大小1472.随机,我在这个测试中使用83,333个数据包(大约1千兆位)。然后:
sudo ping -f -c 83333 -s 1472 192.168.3.103
结果我得到: 往返min / avg / max / stddev = 0.174 / 0.219 / 2.078 / 0.020 ms
因此平均需要0.219 ms才能发送1500个字节并接收1500个字节,即24 kb。 24 kb / 0.219 ms = 110 Mb / s
如果要将其用于互联网上的服务器,则需要将数据包大小降低到1464(对于MTU 1492),删除-f选项并降低计数以使其不会 花很长时间才能完成。
P.S。我认为这应该是超级用户,而不是stackoverflow。
答案 1 :(得分:11)
延迟与带宽不同。想象一下,全国各地都有一大堆DVD被驱动。带宽很高,但延迟巨大。
答案 2 :(得分:6)
实际上可以从类似ping的测量中获得带宽估计值。
在GigE链路上传输1500字节的数据包总是需要12.3μs。换句话说,如果您能够像协议允许的那样快速地通过非拥塞的GigE链路从一台机器向另一台机器发送两个1500字节的数据包,它们将相隔约12.3μs到达。观察发生的情况确认您的GigE链接实际上并不拥挤。
现在举一个简单的WAN测量示例(再次假设它没有拥塞):
HostA -------- RouterA -------- RouterB -------- HostB
GigE OC-3 GigE
主机A快速连续发送两个1500字节的数据包。当路由器A收到第一个数据包时,它开始通过OC-3 WAN链路(155Mbps)转发它。将一个1500字节的数据包转发到OC3需要81.5μs,因此当路由器A收到来自主机A的第二个数据包时,它将处于转发第一个数据包的过程中。它必须将第二个数据包排队,直到它完成传输第一
当路由器B收到第一个数据包后,它会转发给主机B,只需12.3μs;同时路由器B开始接收第二个数据包。当路由器B完成接收第二个数据包时,它会将其转发给主机B.
因此,主机B看到12.3μs的数据包接收,69.2μs的静音,然后是12.3μs的数据包接收 - 换言之,81.5μs的到达间隔时间。根据该观察,主机B可以推断出路径带宽限制在155Mbps。
现在这在理论上很棒,但实际上事情变得更加复杂。拥塞事件往往是突发性的,所以有一次路由器的队列可能已经很满,下一次它们是空的。许多样本是获得任何有意义的必要条件。进行精确测量也很棘手。端到端延迟可能在几十或几百毫秒之内,您正在查看几微秒的差异。如果从A到B有多条路径,祝你好运。
通常只是更容易爆炸流量,看看有多少通过。然后你就会确定你的可用带宽是零。
答案 3 :(得分:2)
不,不是。
ping数据包很小,只是用来验证从A点到B点所需的速度(或者更常见的用法 - 如果它们之间有路径,IE就是计算机完全响应)
Ping(对Pong)的过程是从A发送到B的小数据包 当B获得数据包时,它会以Pong响应,然后立即发送回A. 在A点获得Pong时,会记录总时间(以毫秒为单位,有希望),并且你的Ping有毫秒。
这当然假设B没有设置为拒绝ping或者根本没有到达那里,或者是在VPN或其他措施之后,这会降低响应速度。
最后,您获得的是Ping从A运行到B并返回A所需的时间。
为了比较,尝试穿过街道并返回。测量时间。现在找到一种方法来计算你的体重。
答案 4 :(得分:1)
ping是通过ICMP通过网络发送的单个数据包。通常每秒发送一个数据包来ping远程机器,该路由可能与通常用于数据传输的TCP和UDP不同;远程机器可能拒绝回复ping请求。因此,通过ping请求测量网络吞吐量是不可靠的,可能没用。
答案 5 :(得分:1)
Ping远程主机将允许您测量网络的延迟(主机是否响应)。它不会为您提供有关该网络连接上可用带宽的有用信息。
答案 6 :(得分:0)
正如其他人所说,ping会告诉你延迟而不是带宽 试试netperf。 http://www.netperf.org/netperf/。您可能必须提供特定选项(如TCP / UDP)等。
答案 7 :(得分:0)
这是可能的,尽管不切实际且不可靠。
在您的本地网络(LAN)上效果最好。
默认情况下,ping
发送小的数据包仅表示等待时间。但是,该命令使用参数来修改数据包的大小和速率。从理论上讲,可以将数据包的大小和速率增加到饱和链路的程度,然后可以使用数据包统计信息来计算发生这种情况的速度。
答案 8 :(得分:0)
Ping测量延迟(多快)。不是吞吐量(容量)。同样,时间以往返为单位。使用选项-c,您可以指定ping携带的有效负载大小(以字节为单位)。总数据大小为“有效负载大小+标头”。
为了测量数据速率(容量或吞吐率),您需要指定允许的最大有效负载大小,即65536字节(2字节报头长度字段允许的0xFFFF字节)。
这是我的命令,然后是我的测量值:
ping -v -f -c 100 -s 65507 192.168.0.24
我用它来连接到子网中的另一台PC。使用有线以太网连接。结果如下:
linuxlab@linuxlab-murugan:/boot$ sudo ping -v -f -c 100 -s 65507 192.168.0.24 [sudo] password for linuxlab: ping: socket: Permission denied, attempting raw socket... PING 192.168.0.24 (192.168.0.24) 65507(65535) bytes of data. --- 192.168.0.24 ping statistics --- 100 packets transmitted, 100 received, 0% packet loss, time 1146ms rtt min/avg/max/mdev = 11.428/11.490/11.702/0.153 ms, ipg/ewma 11.576/11.483 ms
计算
:65535字节x 2发送和接收100次。平均时间为11.490毫秒。
*因此:(65535字节x来回2)x每字节8位/ 0.01149秒= 91259878位/秒 即91.3 Mbps。
-如果我的回答不正确或需要改进,请输入评论-谢谢