希望这个问题不是太愚蠢。我想知道 ping 有多昂贵(系统资源和带宽方面)。如果我有一个小型嵌入式 Linux 设备,其 RAM、CPU 和带宽非常有限,启动 ping 命令并让它持续运行几天会不会很糟糕?
我正在尝试找出如何将影响降到最低。查看 ping 的选项,似乎我可以指定大小。我应该这样做来使其变小吗?我还能做些什么来使其变小吗?我需要它运行,但我不想让它对 RAM、CPU 或带宽(任何方面的性能)产生任何负面影响。
在我的测试中,我没有观察到运行时内存或 CPU 有任何差异。我没有非常彻底地测试网络速度,但我也没有注意到任何变化。有什么想法吗?
答案1
处理 ping 的成本差异几乎不会因字节大小而发生变化。响应 ping 的大部分成本在于发送回复时的路由表查找,以及用于监听和接收数据包的各种套接字逻辑(因操作系统而异)。这在几乎所有情况下都可以忽略不计。
ICMP 回显(ping)数据包大小可调的原因是您可以根据数据包大小确定网络特性(例如,查找 MTU)。
因为大部分成本是在内核中的协议栈、NIC 操作和网络驱动程序中,所以开发人员或硬件设计人员可以做很多事情来使其(以及一般的网络操作)更加高效,但在一般情况下,作为系统管理员,这些只会带来固定且可忽略不计的负载。
顺便说一下,许多人喜欢在防火墙处限制 ICMP 请求,以防止基于 ping 的 DoS 攻击(这是最无效的 DoS 攻击之一)。