Ping is commonly used to check connectivity between devices. It's the most common protocol used for availability polling. It can also used for troubleshooting more complex problems in the network.
Ping uses Internet Control Message Protocol (ICMP) Echo and Echo Reply packets to determine whether one IP device can talk to another. Most implementations of ping allow you to vary the size of the packet. Table 8-1 shows packet size statistics for Cisco IOS and Catalyst devices.
Most host-based implementations of ping send one packet per second. Cisco IOS allows you to send packets as fast as the CPU and the network device can generate them and the network can take them. Of course, such stress testing should be done with discretion on production networks.
There are several issues that you should be aware of when using ping. Pings are generated and answered by using the CPU on Cisco devices. Although pings do not usually take a huge amount of CPU time, you should be cautious about using heavily loaded devices to generate or answer pings. On Cisco IOS devices, the task that processes pings runs at low priority. Therefore, it is possible for a busy device to fail to respond to a ping. If a device you are trying to ping is not in the ARP table, the first ping will often time out on Cisco devices. Because of this, most network-management applications using ping will send several pings before announcing a connectivity loss event. For the same reason, you should be cautious about using ping to determine latency or throughput on a network because you may be measuring the ICMP performance of the end points more than the actual network performance.