LAN 的 ping 频率

LAN 的 ping 频率

假设我有一个连接了 20 台设备的 LAN(例如交换机、路由器、接入点、XBOX、DirecTV、IP 摄像头等)。我想定期 ping 每个设备以查看所有设备是否处于活动状态。我的 ping 过程使用一些工作线程(比如 8 个线程)每次发送 8 个 ping,直到所有 20 台设备都已 ping 完。我知道我可以每分钟发送一次而不会导致任何网络负载问题。但我想知道在开始看到网络负载问题之前我可以多快发送 ping。例如,假设我想每 10 秒或每 5 秒发送一次 ping。是否有人有任何经验法则来确定在开始导致网络负载问题之前我可以多频繁地 ping 一个典型的 20 台设备的 LAN?

答案1

我认为问题归结于每秒可以通过网络发送的数据包数量。通常这个数字会相当高。

典型的 ping 数据包大约为 64 字节,因此非常小。如果所有设备都在同一个局域网中,您应该能够每秒进行多次 ping 而不会出现任何问题 - 即使大多数路由器也应该能够处理这种情况(但路由器是瓶颈开始出现的地方,因为需要检查数据包,这会占用 CPU)。

您可能想要获取一个 MTR 版本,并增加它发送到目的地的 ping 数量,以查看您获得的性能以及从哪里开始出现数据包丢失。(在 Linux 上,有一个值 --interval,可以以几分之一秒为单位设置,以便每秒发送多个数据包 - 如果您是 root 用户)。为了好玩,我决定每秒发送 1000 个数据包,并且收到 0% 的数据包丢失,并且直接连接的千兆设备之间的延迟没有明显的增加。MTR 的速度不够快。

如果您每秒向局域网中的所有设备发送一次 ping,那么它将产生大约 64 * 20 = 640 字节/秒 = 5120 比特/秒(大约)的负载,这几乎处于 10 兆位交换机的误差范围内 - 因此实际上,除非您真的用力推动东西,否则您不能使用常规大小数据包的 PING 在您的局域网上引起网络问题。

答案2

默认情况下,Windowsping.exe每次“ping”发送 32 字节数据。这是任何网络或设备都可以处理的极小数量。您必须同时发送大量 ping 才能引起注意。

相关内容