I have 100 devices that I want to know the status of every 10 seconds. Can you tell me whether it would be better to use ICMP or SNMP in terms of traffic load, or are they all the same in clogging up the network?
2 Answers
A ping is invariably smaller and more reliable in terms of checking whether an interface is up or down. But SNMP is more reliable in terms of deciding whether application-layer frameworks are up and down and extracting important information from them.
IE, your question is not 100% simple because you haven't stated what exactly you want to know. If you only want to know if the remote interface is capable of receiving traffic, then use ICMP. If you want to know that the device is at least functioning at an ability able to return information back from the kernel and ideally the software layer, then use SNMP.

- 21,735
- 2
- 38
- 69
Your question title specifically says you want to ping, but the question body says vaguely that you want to know some status. What status information are you interested in?
A straightforward ICMP Echo message and the corresponding Echo Reply message are 8 bytes in size (in addition to the lower-level IP packet size.) You can pass additional data in the message, but that's optional. A core principle of ICMP is that it should not consume too much if IP's resources, bandwidth in particular. If you just want a simple ping arrangement, your protocol might specify a single Echo message and a response, sent every ten seconds. This would consume so little bandwidth that you might consider it cost-free.
SNMP is generally a bit more complicated. Messages are a good deal larger than 8 bytes, and there's the processing cost of assembling the messages and the data they contain. But if you want more sophisticated status information than a simple ping connectivity test, then this may be the protocol for you.
You could try both and measure their costs.

- 2,793
- 21
- 19