2.11BSD/man/cat8/ping.0

Compare this file to the similar file:
Show the results in this format:




PING(8)             UNIX Programmer's Manual		  PING(8)



NAME
     ping - send ICMP ECHO_REQUEST packets to network hosts

SYNOPSIS
     ping [-dfnqrvR] [-c _c_o_u_n_t] [-i _w_a_i_t] [-l _p_r_e_l_o_a_d] [-p _p_a_t_-
     _t_e_r_n] [-s _p_a_c_k_e_t_s_i_z_e]

DESCRIPTION
     Ping uses 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.  The options are as follows:

     -c _c_o_u_n_t	    Stop after sending (and receiving) _c_o_u_n_t
		    ECHO_RESPONSE packets.

     -d             Set the SO_DEBUG option on the socket being
		    used.

     -f             Flood ping.  Outputs packets as fast as they
		    come back or one hundred times per second,
		    whichever is more.	For every ECHO_REQUEST
		    sent a period ``.'' is printed, while for
		    every ECHO_REPLY received a backspace is
		    printed.  This provides a rapid display of
		    how many packets are being dropped.  Only the
		    super-user may use this option.  This can be
		    very hard on

     -i _w_a_i_t	    Wait _w_a_i_t seconds between sending each
		    packet.  The default is to wait for one
		    second between each packet.  This option is
		    incompatible with the -f option.

     -l _p_r_e_l_o_a_d     If _p_r_e_l_o_a_d is specified, ping sends that many
		    packets as fast as possible before falling
		    into its normal mode of behavior.

     -n             Numeric output only.  No attempt will be made
		    to lookup symbolic names for host addresses.

     -p _p_a_t_t_e_r_n     You may specify up to 16 ``pad'' bytes to
		    fill out the packet you send.  This is useful
		    for diagnosing data-dependent problems in a
		    network.  For example, `` -p ff'' will cause
		    the sent packet to be filled with all ones.

     -q             Quiet output.  Nothing is displayed except
		    the summary lines at startup time and when
		    finished.



Printed 11/24/99	December 22, 1995			1






PING(8)             UNIX Programmer's Manual		  PING(8)



     -R             Record route.  Includes the RECORD_ROUTE
		    option in the ECHO_REQUEST packet and
		    displays the route buffer on returned pack-
		    ets.  Note that the IP header is only large
		    enough for nine such routes.  Many hosts
		    ignore or discard this option.

     -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).

     -s _p_a_c_k_e_t_s_i_z_e  Specifies the number of data bytes to be
		    sent. The default is 56, which translates
		    into 64 ICMP data bytes when combined with
		    the 8 bytes of ICMP header data.

     -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 inter-
     face is up and running.  Then, hosts and gateways further
     and further away should be ``pinged''.  Round-trip times and
     packet loss statistics are computed.  If duplicate packets
     are received, they are not included in the packet loss cal-
     culation, although the round trip time of these packets is
     used in calculating the minimum/average/maximum round-trip
     time numbers.  When the specified number of packets have
     been sent (and received) or if the program is terminated
     with a SIGINT, a brief summary is displayed.

     This program is intended for use in network testing, meas-
     urement and management.  Because of the load it can impose
     on the network, it is unwise to use ping during normal
     operations or from automated scripts.

ICMP PACKET DETAILS
     An IP header without options is 20 bytes.	An ICMP
     ECHO_REQUEST packet contains an additional 8 bytes worth of
     ICMP header followed by an arbitrary amount of data.  When a
     _p_a_c_k_e_t_s_i_z_e is given, this indicated the size of this extra
     piece of data (the default is 56).  Thus the amount of data
     received inside of an IP packet of type ICMP ECHO_REPLY will
     always be 8 bytes more than the requested data space (the
     ICMP header).

     If the data space is at least eight bytes large, ping uses
     the first eight bytes of this space to include a timestamp



Printed 11/24/99	December 22, 1995			2






PING(8)             UNIX Programmer's Manual		  PING(8)



     which it uses in the computation of round trip times.  If
     less than eight bytes of pad are specified, no round trip
     times are given.

DUPLICATE AND DAMAGED PACKETS
     Ping will report duplicate and damaged packets.  Duplicate
     packets should never occur, and seem to be caused by inap-
     propriate link-level retransmissions.  Duplicates may occur
     in many situations and are rarely (if ever) a good sign,
     although the presence of low levels of duplicates may not
     always be cause for alarm.

     Damaged packets are obviously serious cause for alarm and
     often indicate broken hardware somewhere in the ping
     packet's path (in the network or in the hosts).

TRYING DIFFERENT DATA PATTERNS
     The (inter)network layer should never treat packets dif-
     ferently depending on the data contained in the data por-
     tion.  Unfortunately, data-dependent problems have been
     known to sneak into networks and remain undetected for long
     periods of time.  In many cases the particular pattern that
     will have problems is something that doesn't have sufficient
     ``transitions'', such as all ones or all zeros, or a pattern
     right at the edge, such as almost all zeros.  It isn't
     necessarily enough to specify a data pattern of all zeros
     (for example) on the command line because the pattern that
     is of interest is at the data link level, and the relation-
     ship between what you type and what the controllers transmit
     can be complicated.

     This means that if you have a data-dependent problem you
     will probably have to do a lot of testing to find it.  If
     you are lucky, you may manage to find a file that either
     can't be sent across your network or that takes much longer
     to transfer than other similar length files.  You can then
     examine this file for repeated patterns that you can test
     using the -p option of ping.

TTL DETAILS
     The TTL value of an IP packet represents the maximum number
     of IP routers that the packet can go through before being
     thrown away.  In current practice you can expect each router
     in the Internet to decrement the TTL field by exactly one.

     The TCP/IP specification states that the TTL field for TCP
     packets should be set to 60, but many systems use smaller
     values (4.3BSD uses 30, 4.2 used 15).

     The maximum possible value of this field is 255, and most
     Unix systems set the TTL field of ICMP ECHO_REQUEST packets
     to 255.  This is why you will find you can ``ping'' some



Printed 11/24/99	December 22, 1995			3






PING(8)             UNIX Programmer's Manual		  PING(8)



     hosts, but not reach them with telnet(1) or ftp(1).

     In normal operation ping prints the ttl value from the
     packet it receives.  When a remote system receives a ping
     packet, it can do one of three things with the TTL field in
     its response:

     o+	  Not change it; this is what Berkeley Unix systems did
	  before the 4.3BSD-tahoe release.  In this case the TTL
	  value in the received packet will be 255 minus the
	  number of routers in the round-trip path.

     o+	  Set it to 255; this is what current Berkeley Unix sys-
	  tems do.  In this case the TTL value in the received
	  packet will be 255 minus the number of routers in the
	  path from the remote system _t_o the ping'ing host.

     o+	  Set it to some other value.  Some machines use the same
	  value for ICMP packets that they use for TCP packets,
	  for example either 30 or 60.	Others may use completely
	  wild values.

BUGS
     Many Hosts and Gateways ignore the RECORD_ROUTE option.

     The maximum IP header length is too small for options like
     RECORD_ROUTE to be completely useful.  There's not much that
     that can be done about this, however.

     Flood pinging is not recommended in general, and flood ping-
     ing the broadcast address should only be done under very
     controlled conditions.

SEE ALSO
     netstat(1), ifconfig(8), routed(8)

HISTORY
     The ping command appeared in 4.3BSD.

















Printed 11/24/99	December 22, 1995			4