| Among the various
measurement packages is the original PING (Packet InterNet Groper) program used
over the last six years for numerous tests and measurements of the Internet system
and its client nets. This program contains facilities to send various kinds of
probe packets, including ICMP Echo messages, process the reply and record elapsed
times and other information in a data file, as well as produce real-time snapshot
histograms and traces.
- Mills, D. L; "Internet Delay Experiments"; RFC
889; Dec 1983. |
| This program is intended for use in network testing, measurement
and management.
It should be used primarily for manual fault isolation.
Because of the load it could impose on the network,
it is unwise to use
ping
during normal operations or from automated scripts...
- Muuss, Mike; Ping source code comments; 7 August 1992. |
The Internet Ping command
bounces a small packet
off a domain or IP address to test network communications, and then tells how
long
the packet took
to
make the round trip. The Ping command is one of the most commonly used utilities
on the Internet by both people and automated programs for conducting the most
basic network
test: can your computer
reach another computer on the network, and if so how long does it take?
Every
second of the day there are untold millions of pings flashing back and forth
between
computers on the Internet like
a continuous shower
of electronic
neural
sparks. The following subsections
provide information on how
Ping was invented, how
Ping works, how to use Ping, Ping web
sites,
and info on the original Unix Ping version.
How Ping was invented. The original PING command
stood for "Packet Internet Groper", and was
a package of diagnostic utilities used by DARPA
personnel to test the performance of the ARPANET.
However, the
modern Internet Ping command refers to a program was written by Mike
Muuss in December, 1983, which has since become one of the most versatile
and widely used diagnostic tools on the Internet. Muuss named his program after
the
sonar
sounds used for echo-location by submarines and bats; just like in old movies
about submarines, sonar probes do sound
something like a metallic "ping".
How Ping works. The Internet Ping program works
much like a sonar echo-location, sending a small packet of information containing
an ICMP
ECHO_REQUEST to a specified computer, which then sends an ECHO_REPLY packet in
return. The IP address 127.0.0.1 is set by convention to always indicate your
own computer. Therefore, a ping to that address will always ping yourself and
the
delay should be very short. This provides the most basic test of your local
communications.
How to use Ping. You can use the Ping command to
perform several useful Internet network diagnostic tests, such as
the following:
- Access. You can use Ping to see if you
can reach another computer. If you can't ping a site at all, but you
can ping other sites, then it's a pretty good sign that your Internet network
is fine and that site is down. On the other hand, if you can't ping any site,
then
likely your
entire network connection is down -- try rebooting.
- Time & distance. You can use the Ping
command to determine how long it takes to bounce a packet off of another site,
which tells you its Internet distance in network terms. For example, a website hosted on
your neighbor's computer next door with a different Internet service provider
might go through more routers and be farther
away in network distance than a site on the other side of the ocean with
a direct connection to the Internet backbone.
If a site seems slow, you can compare ping distances to other Internet sites
to determine whether it is the site, the network, or your system that is slow.
You
can
also compare ping times to get an idea of which sites have
the fastest network access and would be most efficient for downloading, chat,
and other applications.
- Domain IP address.
You can use the Ping command to probe either a domain name or an IP
address.
If you ping a domain name, it helpfully displays the corresponding IP address
in the response.
You
can run the ping command on a Windows computer by opening an MSDOS window and
then
typing "ping" followed by the domain name or IP address of the computer you wish
to ping. You
can list the available options for the Windows ping command with "ping
-?".

Online ping. If you can't use the Ping command from
your own computer because of a firewall or other restriction, or want to do
an Internet
ping from
another
location than your own, you can use one of the following websites that offer
online ping services:
Remember when doing an online ping that the packets are sent from
that website, so the times
that are returned reflect the path from that location and not from your computer.
Nevertheless, a ping from an online website can be useful to test if an address
can be reached
from different places around the
Internet, to do comparative timing to test
how long it takes to reach one site compared to others.
If the times returned
by
several online ping sites to an Internet address are consistently long, then
the destination site's network is likely having problems. On the other hand,
if
you can ping
an address from an online ping site
but not
from
your own computer, then
there is likely some block in your network preventing you from communicating
with that site.
Unix version. Muuss
originally created the ping command for the Unix system,
with
the
options summarized below:
ping [-q] [-v] [-R] [-c Count] [-i Wait] [-s PacketSize] Host
|
Option
| Example
| Definition
|
| ping
-c count | ping
-c 10 | Specify
the number of echo requests to send. |
|
Ping -d |
ping -d |
Set the SO_DEBUG option.
|
| Ping
-f | ping
-f | Flood
ping. Sends another echo request immediately after receiving a reply to the last
one. Only the super-user can use this option. |
|
Ping host |
ping 121.4.3.2
| Specify
the host name (or IP address) of computer to ping |
|
ping -i wait |
ping -i 2 |
Wait time. The number
of seconds to wait between each ping |
|
ping -l preload
| ping
-l 4 | Sends
"preload" packets one after another. |
|
Ping -n |
ping -n |
Numeric output, without
host to symbolic name lookup. |
|
Ping -p pattern
| ping
-p ff00 | Ping
Pattern. The example sends two bytes, one filled with ones, and one with zeros.
|
| Ping
-q | ping
-q | Quiet
output. Only summary lines at startup and completion |
|
ping -r |
ping -r |
Direct Ping. Send to a
host directly, without using routing tables. Returns an error if the host is not
on a directly attached network. |
|
Ping -R |
Ping -R |
Record Route. Turns on
route recording for the Echo Request packets, and display the route buffer on
returned packets (ignored by many routers). |
|
ping -s PacketSize
| ping
-s 10 | Sets
the packet size in number of bytes, which will result in a total packet size of
PacketSize plus 8 extra bytes for the ICMP header |
|
ping -v |
ping -v |
Verbose Output. Lists
individual ICMP packets, as well as Echo Responses |