我创建了一个(Java)工具,能够每秒向单个主机发出数十个ICMP ping。例如,对于1000个不同的主机,发送ping并等待并收集来自各个主机的任何响应大约需要一分钟。
此工具的目的是定期监视远程主机集合的网络连接功能。
我可以自由地将此工具推到极限,设置每秒ping值和主机总数的高值吗?或者我应该限制这一点,以避免被任何人禁止或阻止? ICMP Pings在网络上有多昂贵或烦人?
答案 0 :(得分:1)
简单的PING数据包长度为74个字节,包括以太网帧头和IP + ICMP头,加上ICMP有效负载的最小32个字节 - 所以它甚至不到1000个。
但在我看来,你不应该过多地使用PING。网络管理员可以检测到此类异常网络行为,并尝试与您联系或阻止您的IP。此外,IDS和路由器可能会因为他们的政策而将您切断。
ICMP PING数据包的目的是帮助网络管理员诊断网络基础设施问题。典型用途是将少量数据包发送到目标计算机,例如:
$ ping stackoverflow.com
Pinging stackoverflow.com [151.101.129.69] with 32 bytes of data:
Reply from 151.101.129.69: bytes=32 time=72ms TTL=57
Reply from 151.101.129.69: bytes=32 time=73ms TTL=57
Reply from 151.101.129.69: bytes=32 time=73ms TTL=57
Reply from 151.101.129.69: bytes=32 time=72ms TTL=57
Ping statistics for 151.101.129.69:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 72ms, Maximum = 73ms, Average = 72ms
正如您所看到的,系统ping命令发送四个数据包 - 它足以诊断问题。当然,您可以更改数据包的大小及其数量。
在我看来,ICMP PING的任何其他用法(更大数量的数据包,高速发送或大量数据包)都是异常使用的标志。它经常与病毒/木马/蠕虫网络感染,黑客攻击端口扫描或DDoS攻击有关。
你想发送~1000个数据包 - 恕我直言。你应该有可能改变这个数字。