*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->OpenBSD man pages -> ping (8)              



NAME    [Toc]    [Back]

     ping - send ICMP ECHO_REQUEST packets to network hosts

SYNOPSIS    [Toc]    [Back]

     ping [-DdfLnqRrv] [-c  count]  [-I  ifaddr]  [-i  wait]  [-l
          [-p  pattern]  [-s  packetsize]  [-T  tos] [-t ttl] [-w
maxwait] host

DESCRIPTION    [Toc]    [Back]

     ping uses the ICMP protocol's mandatory  ECHO_REQUEST  datagram to elicit
     an  ICMP  ECHO_REPLY  from  a host or gateway.  ECHO_REQUEST
     (``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 count
             Stop after sending count ECHO_REQUEST packets.

     -D      Set the Don't Fragment bit.

     -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
             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
             superuser  may  use  this  option.  This can be very
hard on a net-
             work and should be used with caution.

     -I ifaddr
             Specify the interface to transmit from  on  machines
with multiple
             interfaces.  For unicast and multicast pings.

     -i wait
             Wait  wait seconds between sending each packet.  The
default is to
             wait for one second between each packet.   The  wait
time may be
             fractional,  but  only  the  superuser may specify a
value less than
             one second.  This option is incompatible with the -f

     -l preload
             If  preload is specified, ping sends that many packets as fast as
             possible before falling into its normal mode of  behavior.  Only
             root may set a preload value.

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

     -p pattern
             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.

     -R      Record route.  Includes the RECORD_ROUTE  option  in
             ECHO_REQUEST packet and displays the route buffer on
             packets.  Note that the  IP  header  is  only  large
enough for nine
             such  routes.  If more routes come back than should,
such as due
             to an illegal spoofed packet, ping  will  print  the
route list and
             then  truncate  it  at the correct spot.  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 packetsize
             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.  If the -D or -T
options are
             specified, or the -t option to  a  unicast  destination, a raw socket
  will  be used and the 8 bytes of header data are
included in

     -T tos  Use the specified type of service.

     -t ttl  Use the specified time-to-live.

     -v      Verbose output.  ICMP packets other than  ECHO_REPLY
that are received
 are listed.

     -w maxwait
             Specifies  the maximum number of seconds to wait for
a response to
             a packet before transmitting the next one.  The  default is 10.

     In  addition, the following option may be used for multicast

     -L      Disable  the  loopback,  so  the  transmitting  host
doesn't see the
             ICMP requests.

     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

     Round trip times and packet loss  statistics  are  computed.
If duplicate
     packets  are  received,  they are not included in the packet
loss calculation,
 although the round trip time of these packets is  used
in calculating
  the minimum/average/maximum round trip time numbers and
the standard

     When the specified number of packets have been sent (and received), or if
     the  program is terminated with a SIGINT, a brief summary is
     The summary information can also be displayed while ping  is
running by
     sending  it  a  SIGINFO  signal  (see the status argument of
stty(1) for more

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

ICMP PACKET DETAILS    [Toc]    [Back]

     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 packetsize is given, this indicates 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

     If  the  data space is at least eight bytes large, ping uses
the first
     eight bytes of this space to include a  timestamp  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.


     ping will report duplicate and damaged  packets.   Duplicate
packets should
     never  occur,  and  seem to be caused by inappropriate linklevel 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).


     The (inter)network layer should never treat packets  differently depending
     on  the  data contained in the data portion.  Unfortunately,
     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
     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  relationship 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    [Toc]    [Back]

     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
     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.3 BSD
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 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
         packet  will  be  255 minus the number of routers in the
round trip

     +o   Set it to 255; this is what current Berkeley  Unix  systems 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  to
the pinging

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

SEE ALSO    [Toc]    [Back]

     netstat(1), ifconfig(8), routed(8), spray(8)

HISTORY    [Toc]    [Back]

     The ping command appeared in 4.3BSD.

BUGS    [Toc]    [Back]

     Many hosts and gateways ignore the RECORD_ROUTE option.

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

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

OpenBSD      3.6                        December     11,     1993
[ Back ]
 Similar pages
Name OS Title
ping Tru64 Sends ICMP ECHO_REQUEST packets to network hosts
ping6 OpenBSD send ICMPv6 ECHO_REQUEST packets to network hosts
ping6 FreeBSD send ICMPv6 ECHO_REQUEST packets to network hosts
ping HP-UX send ICMP Echo Request packets to network host
nsip OpenBSD software network interface encapsulating NS packets in IP packets
l2ping FreeBSD send L2CAP ECHO_REQUEST to remote devices
spray FreeBSD send many packets to host
spray OpenBSD send many packets to host
dig FreeBSD send domain name query packets to name servers
ipresend FreeBSD resend IP packets out to network
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service