History: Ping Is A
History: Ping Is A
ping is a computer network tool used to test whether a particular host is reachable across an IP
network; it is also used to self test the network interface card of the computer, or as a latency
test. It works by sending ICMP “echo request” packets to the target host and listening for ICMP
“echo response” replies. The "echo response" is sometimes called a pong. Ping measures the
round-trip time[1] and records any packet loss, and prints when finished a statistical summary of
the echo response packets received, the minimum, mean, max and in some versions the standard
deviation of the round trip time.
The word ping is also frequently used as a noun or verb, where it is used to refer to the round-trip
time, or measuring the round-trip time.[citation needed]
The tool is also used in a type of simple denial-of-service attack, known as a ping flood, in which
the attacker overwhelms the victim with ICMP echo request packets.
[edit] History
A server denying a ping request because of the request's size.
Mike Muuss wrote the program in December, 1983, as a tool to troubleshoot odd behavior on an
IP network. He named it after the pulses of sound made by a sonar, since its operation is
analogous to active sonar in submarines, in which an operator issues a pulse of sound at the
target, which then bounces from the target and is received by the operator. (The pulse of sound in
sonar is analogous to a network packet in ping).[1][2]
The usefulness of ping in assisting the "diagnosis" of Internet connectivity issues was impaired
from late in 2003, when a number of Internet Service Providers began filtering out ICMP Type 8
(echo request) messages at their network boundaries.
This was partly due to the increasing use of ping for target reconnaissance, for example by
Internet worms such as Welchia that flood the Internet with ping requests in order to locate new
hosts to infect. Not only did the availability of ping responses leak information to an attacker, it
added to the overall load on networks, causing problems for routers across the Internet.
Although RFC 1122 prescribes that any host must accept an echo-request and issue an echo-
reply in return, this is supposedly a security risk. Thus, hosts that no longer follow this standard
are frequent on the public Internet.
[edit] ICMP packet
ICMP packet
Bit 0 - 7 Bit 8 - 15 Bit 16 - 23 Bit 24 - 31
Type of
Version/IHL Length
service
Identification flags and offset
IP Header
Time To Live
(160 bits OR 20 Bytes) Protocol Checksum
(TTL)
Source IP address
Destination IP address
Type of message Code Checksum
ICMP Payload
Quench
(64+ bits OR 8+ Bytes)
Data (optional)
Note that ICMP (and therefore Ping) resides on the Network layer (level 3) of the OSI (Open
Systems Interconnection) model. This is the same layer as IP (Internet Protocol). Consequently,
Ping does not use a port for communication.
The following is a sample output of pinging en.wikipedia.org under Linux with the iputils
version of ping:
This article may contain original research or unverified claims. Please improve the article
by adding references. See the talk page for details. (September 2009)
admin@localhost# ping en.wikipedia.org
PING rr.pmtpa.wikimedia.org (66.230.200.100) 56(84) bytes of data.
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=1 ttl=52
time=87.7 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=2 ttl=52
time=95.6 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=3 ttl=52
time=85.4 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=4 ttl=52
time=95.8 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=5 ttl=52
time=87.0 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=6 ttl=52
time=97.6 ms
The output then shows the results of making 10 pings to 66.230.200.100 with the results
summarized at the end. (To stop the program in Linux or Windows, press Ctrl+C.)
While a ping session is running, under some Linux systems, you can get the overall status of the
session without quitting by sending the Ctrl+\ key combination. This will give you a summary
similar to the following.
Windows appears not to inform the user about duplicated return packets.
While a ping session is running you can get the overall status of the session without quitting by
sending the Ctrl+Break key combination.
The following is a sample output of pinging en.wikipedia.org under Mac OS X Leopard using
the Terminal:
While a ping session is running you can get the overall status of the session without quitting by
sending the Ctrl+t key combination. This will give you a summary similar to the following.
The echo request is an ICMP message whose data is expected to be received back in an echo
reply ("ping"). The host must respond to all echo requests with an echo reply containing the
exact data received in the request message.
The echo reply is an ICMP message generated in response to an echo request, and is mandatory
for all hosts and routers.
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
Data :::
In case of error, destination host or intermediate router will send back an ICMP error message,
i.e. host unreachable or TTL exceeded in transit. This messages additionally have first 8 bytes of
original message (in this case header of ICMP echo request, including quench value), so ping
utility can match it to originating query.[citation needed]
[edit] Payload
The payload of the packet is generally filled with letters of the alphabet as this ASCII tcpdump
shows
Some values of this payload indicates timestamp when message was sent to the network. This
allows to compute round trip time in stateless manner - ping doesn't need to remember anywhere
internally what and when packets was sent. When they return, all the data needed will be
contained in the message. In case of no answer and no error message, most implementation of
ping displays nothing, or periodically prints notification about timeout.[citation needed]
[edit] In gaming
Main article: ping (video gaming)
In various network multiplayer games, the server notes the time it requires for a game packet to
reach a client and a response to be received. This round-trip time is usually reported as the
player's 'ping'. It is used as an effective measurement of the player's latency, with lower ping
times being desirable. Note that this style of ping typically does not use ICMP packets.
Occasionally Packet InterNet Groper is suggested as a retronym or backronym, but the original
author of ping says that it is based on the sound of a sonar return.[1].
The term 'ping' has been generalized to a word used to query if someone is available over Instant
Messenger.[citation needed] The term is typically used in this fashion among computer professionals or
other people who are familiar with the ping utility and its functionality.[citation needed]
[edit] References
1. ^ a b c "The Story of the PING Program". http://ftp.arl.mil/~mike/ping.html. Retrieved 29
December 2008.
2. ^ Salus, Peter (1994). A Quarter Century of UNIX. Addison-Wesley. ISBN 0201547775.
3. ^ RFC 792
The word ping is also frequently used as a noun or verb, where it is used to refer to the round-trip
time, or measuring the round-trip time.[citation needed]
The tool is also used in a type of simple denial-of-service attack, known as a ping flood, in which
the attacker overwhelms the victim with ICMP echo request packets.
[edit] History
A server denying a ping request because of the request's size.
Mike Muuss wrote the program in December, 1983, as a tool to troubleshoot odd behavior on an
IP network. He named it after the pulses of sound made by a sonar, since its operation is
analogous to active sonar in submarines, in which an operator issues a pulse of sound at the
target, which then bounces from the target and is received by the operator. (The pulse of sound in
sonar is analogous to a network packet in ping).[1][2]
The usefulness of ping in assisting the "diagnosis" of Internet connectivity issues was impaired
from late in 2003, when a number of Internet Service Providers began filtering out ICMP Type 8
(echo request) messages at their network boundaries.
This was partly due to the increasing use of ping for target reconnaissance, for example by
Internet worms such as Welchia that flood the Internet with ping requests in order to locate new
hosts to infect. Not only did the availability of ping responses leak information to an attacker, it
added to the overall load on networks, causing problems for routers across the Internet.
Although RFC 1122 prescribes that any host must accept an echo-request and issue an echo-
reply in return, this is supposedly a security risk. Thus, hosts that no longer follow this standard
are frequent on the public Internet.
Note that ICMP (and therefore Ping) resides on the Network layer (level 3) of the OSI (Open
Systems Interconnection) model. This is the same layer as IP (Internet Protocol). Consequently,
Ping does not use a port for communication.
The following is a sample output of pinging en.wikipedia.org under Linux with the iputils
version of ping:
This article may contain original research or unverified claims. Please improve the article
by adding references. See the talk page for details. (September 2009)
admin@localhost# ping en.wikipedia.org
PING rr.pmtpa.wikimedia.org (66.230.200.100) 56(84) bytes of data.
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=1 ttl=52
time=87.7 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=2 ttl=52
time=95.6 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=3 ttl=52
time=85.4 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=4 ttl=52
time=95.8 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=5 ttl=52
time=87.0 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=6 ttl=52
time=97.6 ms
--- rr.pmtpa.wikimedia.org ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 8998ms
rtt min/avg/max/mdev = 78.162/89.213/97.695/6.836 ms
The output then shows the results of making 10 pings to 66.230.200.100 with the results
summarized at the end. (To stop the program in Linux or Windows, press Ctrl+C.)
While a ping session is running, under some Linux systems, you can get the overall status of the
session without quitting by sending the Ctrl+\ key combination. This will give you a summary
similar to the following.
Windows appears not to inform the user about duplicated return packets.
While a ping session is running you can get the overall status of the session without quitting by
sending the Ctrl+Break key combination.
The following is a sample output of pinging en.wikipedia.org under Mac OS X Leopard using
the Terminal:
Macintosh:~ user$ ping -c 10 en.wikipedia.org
PING rr.knams.wikimedia.org (91.198.174.2): 56 data bytes
64 bytes from 91.198.174.2: icmp_seq=0 ttl=53 time=40.019 ms
64 bytes from 91.198.174.2: icmp_seq=1 ttl=53 time=47.502 ms
64 bytes from 91.198.174.2: icmp_seq=2 ttl=53 time=43.208 ms
64 bytes from 91.198.174.2: icmp_seq=3 ttl=53 time=50.851 ms
64 bytes from 91.198.174.2: icmp_seq=4 ttl=53 time=46.556 ms
64 bytes from 91.198.174.2: icmp_seq=5 ttl=53 time=42.180 ms
64 bytes from 91.198.174.2: icmp_seq=6 ttl=53 time=49.853 ms
64 bytes from 91.198.174.2: icmp_seq=7 ttl=53 time=45.556 ms
64 bytes from 91.198.174.2: icmp_seq=8 ttl=53 time=41.186 ms
64 bytes from 91.198.174.2: icmp_seq=9 ttl=53 time=48.836 ms
While a ping session is running you can get the overall status of the session without quitting by
sending the Ctrl+t key combination. This will give you a summary similar to the following.
The echo request is an ICMP message whose data is expected to be received back in an echo
reply ("ping"). The host must respond to all echo requests with an echo reply containing the
exact data received in the request message.
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
Data :::
The echo reply is an ICMP message generated in response to an echo request, and is mandatory
for all hosts and routers.
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
Data :::
In case of error, destination host or intermediate router will send back an ICMP error message,
i.e. host unreachable or TTL exceeded in transit. This messages additionally have first 8 bytes of
original message (in this case header of ICMP echo request, including quench value), so ping
utility can match it to originating query.[citation needed]
[edit] Payload
The payload of the packet is generally filled with letters of the alphabet as this ASCII tcpdump
shows
Some values of this payload indicates timestamp when message was sent to the network. This
allows to compute round trip time in stateless manner - ping doesn't need to remember anywhere
internally what and when packets was sent. When they return, all the data needed will be
contained in the message. In case of no answer and no error message, most implementation of
ping displays nothing, or periodically prints notification about timeout.[citation needed]
[edit] In gaming
Main article: ping (video gaming)
In various network multiplayer games, the server notes the time it requires for a game packet to
reach a client and a response to be received. This round-trip time is usually reported as the
player's 'ping'. It is used as an effective measurement of the player's latency, with lower ping
times being desirable. Note that this style of ping typically does not use ICMP packets.
Occasionally Packet InterNet Groper is suggested as a retronym or backronym, but the original
author of ping says that it is based on the sound of a sonar return.[1].
The term 'ping' has been generalized to a word used to query if someone is available over Instant
Messenger.[citation needed] The term is typically used in this fashion among computer professionals or
other people who are familiar with the ping utility and its functionality.[citation needed]
[edit] References
1. ^ a b c "The Story of the PING Program". http://ftp.arl.mil/~mike/ping.html. Retrieved 29
December 2008.
2. ^ Salus, Peter (1994). A Quarter Century of UNIX. Addison-Wesley. ISBN 0201547775.
3. ^ RFC 792