MachTen implements the ping program to send ICMP Echo requests to remote
TCP implementations and monitor ICMP Echo reply packets. Ping is a basic
application to confirm the presence of a successful link between to internet
hosts. Ping will repeatly send echo requests at a one second interval. The
time delay between ping requests and cooresponding replies is printed. The
interval between requests can be varied as a ping parameter.
Ping can be used in tandem with the traceroute
application to isolate network congestion and failure.
Ping Example Output
root@scratch% ping apple.com
PING apple.com (130.43.2.2): 56 data bytes
64 bytes from 130.43.2.2: icmp_seq=0. time=266. ms
64 bytes from 130.43.2.2: icmp_seq=1. time=199. ms
64 bytes from 130.43.2.2: icmp_seq=2. time=266. ms
64 bytes from 130.43.2.2: icmp_seq=3. time=216. ms
64 bytes from 130.43.2.2: icmp_seq=4. time=233. ms
64 bytes from 130.43.2.2: icmp_seq=5. time=133. ms
^C
----apple.com PING Statistics----
6 packets transmitted, 6 packets received, 0% packet loss
round-trip (ms) min/avg/max = 133/218/266
root@scratch%
Gross packet loss information can be obtained by following the icmp_seq
numbers for missing numbers in sequence. One or two packets lost within
a ten packet run is unusual but acceptable. Packet loss in the 30% range
implies that there is a serious problem with the link. Unless this problem
is isolated and corrected, poor or unacceptable end-user operations will
be result.
Ping Reference
NAME
ping - send ICMP ECHO_REQUEST packets to network hosts
DESCRIPTION
The DARPA Internet is a large and complex aggregation of network
hardware, connected together by gateways. Tracking a single-point
hardware or software failure can often be difficult. Ping utilizes
the ICMP protocol's mandatory ECHO_REQUEST datagram to elicit an
ICMP ECHO_RESPONSE from a host or gateway. ECHO_REQUEST datagrams
("pings") have an IP and ICMP header, followed by a struct
timeval, and then an arbitrary number of "pad" bytes used to fill
out the packet. Default datagram length is 64 bytes, but this may
be changed using the command-line option. Other options are:
-r Bypass the normal routing tables and send directly to a host
on an attached network. If the host is not on a directly-
attached network, an error is returned. This option can be
used to ping a local host through an interface that has no
route through it (e.g., after the interface was dropped by
routed(8)).
-v Verbose output. ICMP packets other than ECHO_RESPONSE that
are received are listed.
When using ping for fault isolation, it should first be run on the
local host, to verify that the local network interface is up and
running. Then, hosts and gateways further and further away should
be "pinged". Ping sends one datagram per second, and prints one
line of output for every ECHO_RESPONSE returned. No output is
produced if there is no response. If an optional count is given,
only that number of requests is sent. Round-trip times and packet
loss statistics are computed. When all responses have been
received or the program times out (with a count specified), or if
the program is terminated with a SIGINT, a brief summary is
displayed.
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.