Ping is one of the most useful network debugging tools available. The first ping
program was written by Mike Muuss in December 1983 for use on Unix machines. Muuss
named his program after the sonar sounds used for echolocation by submarines,
although some say ping stands for "Packet InterNet Grouper". Ping sends a small
packet of information containing an ICMP ECHO_REQUEST to a specified computer,
which then sends an ECHO_REPLY packet in return. The ping program then evaluates
this reply, and a report is shown. You can check several things with the ping
program: can you reach another computer, how long does it take to bounce a packet
off of another site (what is the distance), ... You can ping either a domain name,
or an IP address. Functionality to show domain names when using IP addresses is
supported. Even routing options are available, alas only 9 routes can be shown due
to the structure of the IP header (RFC 792). Why did I write my own ping program?
There are two main reasons: a) It wanted to know how the ping program worked. I
found it really intriguing and was very curious and b) There was a need for a
better ping program here at the lab where I work.