ping
Ping is an application that tests host responses over a network connection. Ping uses ICMP at the network layer to send packets to a remote address. If there are network connectivity problems or the host has problems, the ping will fail, indicating a problem exists. Additional tests may be needed at that point to determine the cause of the problem.
  1. PING is not an acronym
  2. PING is an application
  3. PING probes distance
  4. PING utilizes ICMP

PING is Not an acronym

I named it after the sound that a sonar makes, inspired by the whole principle of echo-location.
-- Mike Muus, Author/Programmer of ping

Ping was written by Mike Muus at the U.S. Army Ballistics Research Laboratory as a tool for verifying the reachability of a networked host. The original ping program was 40k of code written for BSD UNIX. Ping was made freely available by Mike and was quickly ported to other platforms. At the time, the ICMP protocol supported ICMP_ECHO_REQUEST and ICMP_ECHO_REPLY functions, but the BSD kernel didn't support raw ICMP sockets, so Mike also wrote the kernel code to support the ICMP sockets and the Berkeley folks added it to the BSD source.

USENIX awarded Mike a joint Lifetime Achievment award in 1993 for his ping application. Mike was killed in a car accident in November 2000.

Ping as an Application

Ping is the name of a network diagnostic application (a binary executable file) installed on nearly every networked computer on the planet. Ping is designed to use Internet Control Message Protocol (ICMP) to calculate and display round trip times to a host over a LAN, not the Internet, though it can be used in any Internet Protocol-based network. From an OSI Model perspective, Ping is incorporated (per RFC 792) into the Internet Protocol (IP).

For such purposes this protocol, the Internet Control Message Protocol (ICMP), is used. ICMP, uses the basic support of IP as if it were a higher level protocol, however, ICMP is actually an integral part of IP, and must be implemented by every IP module.

Ping was designed as a tool to allow users to test whether a remote host is available and how long it takes that host to respond across the network. Getting a successful result from a ping indicates that the remote computer can be reached through the network and is responding to ICMP.

PING can provide round-trip times between the local host running the PING and the target host the local host is pinging; however, these round trip times are often deceiving and cannot be relied upon as the nature of IP networks has altered considerably since this tool was created.

Ping Probes Distance

[...] ping uses timed IP/ICMP ECHO_REQUEST and ECHO_REPLY packets to probe the "distance" to the target machine.
-- Mike Muus, Author/Programmer of ping

This application was written for a LAN environment (Token Ring). It was later ported to BSD and included in the kernel and since that time has been migrated to various platforms including Windows, Solaris, HP-UX and virtually every other network-capable operating system. Ping is not a reliable measure of distance in a mixed Internet environment, and was less than a thousand lines of code when first written. The author called ping, a hack.

Ping Utilizes ICMP

Ping utilizes raw ICMP sockets to send packets to a remote host, calculates the difference in system timeticks between transmission of an ICMP echo and receipt of the ICMP echo reply packet and produces printed, human-readable results of these measurements in milliseconds. ANY delay by any device anywhere in the chain between the source host and the destination host will create what is referred to as 'propagation delay' or more simply 'latency'. Long ping times are not necessarilly an indicator of a network problem. Unfortunately, ping was written in a time when there was no such thing as Quality/Cost of Service and ping predates queuing strategies and Denial of Service attacks. Ping was written on a BSD platform, not for a mixed network of routers, servers, switches and other gear, each with its own strategy for handling ICMP. Thus, ping is not as useful today for judging latency or packet loss as it once was.

See our online ICMP Tutorial for more informaton on how ping works.

  TOC ICMP Tutorial NEXT

Bookmark this page and SHARE:  

Search

Donations

Free Training