ping 有多轻?

use*_*971 4 networking ping

希望这个问题不是太愚蠢。我想知道 ping 有多昂贵(系统资源和带宽)。如果我有一个内存、CPU 和带宽非常有限的小型嵌入式 linux 设备,那么启动 ping 命令并让它继续运行几天会不会很糟糕?

我正在努力弄清楚如何将影响最小化。查看 ping 的选项,看起来我可以指定大小。我应该这样做以使其更小吗?还有什么我可以做的让它变小吗?我需要它运行,但我不希望它对 ram、cpu 或带宽(任何方面的性能)产生任何负面影响。

在我的测试中,我没有观察到运行时 ram 或 cpu 的任何差异。我还没有非常彻底地测试网络速度,但我也没有注意到任何东西。想法?

Fal*_*mot 9

处理 ping 之间的成本差异几乎不会因字节大小而异。响应一个的大部分成本是在发送回复时的路由表查找中,以及用于侦听和接收数据包的各种套接字逻辑(因操作系统而异)。这在几乎所有情况下也可以忽略不计。

ICMP 回声 (ping) 数据包大小可调的原因是,您可以根据数据包大小确定网络特征(例如,查找 MTU)。

因为大部分成本都在内核中的协议栈、网卡操作和网络驱动程序中,开发人员或硬件设计人员可能可以做很多事情来使其(以及一般的网络操作)更高效,但总的来说作为系统管理员,这些呈现出固定且可忽略不计的负载。

实际上,许多人喜欢在防火墙上限制 ICMP 请求,以防止基于 ping 的 DoS 攻击(这是可用的最不有效的 DoS 攻击之一)。