Yolinux.com

ping manpage

Search topic Section


PING(8)		       System Manager's Manual: iputils		       PING(8)



NAME
       ping, ping6 - send ICMP ECHO_REQUEST to network hosts

SYNOPSIS
       ping  [-aAbBdDfhLnOqrRUvV]  [-c count] [-F flowlabel] [-i interval] [-I
       interface] [-l  preload]	 [-m  mark]  [-M  pmtudisc_option]  [-N	 node-
       info_option] [-w deadline] [-W timeout] [-p pattern] [-Q tos] [-s pack-
       etsize] [-S sndbuf] [-t ttl] [-T timestamp option] [hop	...]  destina-
       tion


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.

       ping6  is  IPv6	version	 of  ping,  and can also send Node Information
       Queries (RFC4620).  Intermediate hops may not be allowed, because  IPv6
       source routing was deprecated (RFC5095).

OPTIONS
       -a     Audible ping.

       -A     Adaptive	ping.  Interpacket interval adapts to round-trip time,
	      so that effectively not more than one (or more,  if  preload  is
	      set)  unanswered probe is present in the network. Minimal inter-
	      val is 200msec for not super-user.  On  networks	with  low  rtt
	      this mode is essentially equivalent to flood mode.

       -b     Allow pinging a broadcast address.

       -B     Do  not  allow  ping  to	change	source address of probes.  The
	      address is bound to one selected when ping starts.

       -c count
	      Stop after sending count	ECHO_REQUEST  packets.	With  deadline
	      option, ping waits for count ECHO_REPLY packets, until the time-
	      out expires.

       -d     Set the SO_DEBUG option on the socket being used.	  Essentially,
	      this socket option is not used by Linux kernel.

       -D     Print  timestamp	(unix  time + microseconds as in gettimeofday)
	      before each line.

       -f     Flood ping. For  every  ECHO_REQUEST  sent  a  period  ``.''  is
	      printed,	while  for  ever  ECHO_REPLY  received	a backspace is
	      printed.	This provides a rapid display of how many packets  are
	      being  dropped.	If  interval is not given, it sets interval to
	      zero and outputs packets as fast as they come back or  one  hun-
	      dred  times  per second, whichever is more.  Only the super-user
	      may use this option with zero interval.

       -F flow label
	      ping6 only.  Allocate and set 20 bit flow label (in hex) on echo
	      request packets.	If value is zero, kernel allocates random flow
	      label.

       -h     Show help.

       -i interval
	      Wait interval seconds between sending each packet.  The  default
	      is  to  wait for one second between each packet normally, or not
	      to wait in flood mode. Only super-user may set interval to  val-
	      ues less 0.2 seconds.

       -I interface
	      interface is either an address, or an interface name.  If inter-
	      face is an address, it sets source address to  specified	inter-
	      face address.  If interface in an interface name, it sets source
	      interface to specified interface.	 For ping6, when doing ping to
	      a link-local scope address, link specification (by the '%'-nota-
	      tion in destination, or by this option) is required.

       -l preload
	      If preload is specified, ping sends that many packets not	 wait-
	      ing for reply.  Only the super-user may select preload more than
	      3.

       -L     Suppress loopback of multicast packets.  This flag only  applies
	      if the ping destination is a multicast address.

       -m mark
	      use  mark to tag the packets going out. This is useful for vari-
	      ety of reasons within the kernel such as using policy routing to
	      select specific outbound processing.

       -M pmtudisc_opt
	      Select  Path  MTU	 Discovery  strategy.	pmtudisc_option may be
	      either do (prohibit fragmentation, even  local  one),  want  (do
	      PMTU  discovery, fragment locally when packet size is large), or
	      dont (do not set DF flag).

       -N nodeinfo_option
	      ping6 only.  Send ICMPv6	Node  Information  Queries  (RFC4620),
	      instead of Echo Request.

	      help   Show help for NI support.

	      name   Queries for Node Names.

	      ipv6   Queries  for  IPv6 Addresses. There are several IPv6 spe-
		     cific flags.

		     ipv6-global
			    Request IPv6 global-scope addresses.

		     ipv6-sitelocal
			    Request IPv6 site-local addresses.

		     ipv6-linklocal
			    Request IPv6 link-local addresses.

		     ipv6-all
			    Request IPv6 addresses on other interfaces.

	      ipv4   Queries for IPv4 Addresses.  There is one	IPv4  specific
		     flag.

		     ipv4-all
			    Request IPv4 addresses on other interfaces.

	      subject-ipv6=ipv6addr
		     IPv6 subject address.

	      subject-ipv4=ipv4addr
		     IPv4 subject address.

	      subject-name=nodename
		     Subject  name.   If it contains more than one dot, fully-
		     qualified domain name is assumed.

	      subject-fqdn=nodename
		     Subject name.   Fully-qualified  domain  name  is	always
		     assumed.

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

       -O     Report outstanding ICMP ECHO reply before sending	 next  packet.
	      This is useful together with the timestamp -D to log output to a
	      diagnostic file and search for missing answers.

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

       -Q tos Set Quality of Service -related bits in ICMP datagrams.  tos can
	      be decimal (ping only) or hex number.

	      In RFC2474, these fields are interpreted as 8-bit Differentiated
	      Services (DS), consisting of: bits 0-1 (2 lowest bits) of	 sepa-
	      rate  data, and bits 2-7 (highest 6 bits) of Differentiated Ser-
	      vices Codepoint (DSCP).  In RFC2481 and RFC3168,	bits  0-1  are
	      used for ECN.

	      Historically  (RFC1349, obsoleted by RFC2474), these were inter-
	      preted as: bit 0 (lowest	bit)  for  reserved  (currently	 being
	      redefined	 as  congestion	 control), 1-4 for Type of Service and
	      bits 5-7 (highest bits) for Precedence.

       -r     Bypass the normal routing tables and send directly to a host  on
	      an  attached  interface.	 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 provided the option -I is also used.

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

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

       -S sndbuf
	      Set  socket  sndbuf.  If not specified, it is selected to buffer
	      not more than one packet.

       -t ttl ping only.  Set the IP Time to Live.

       -T timestamp option
	      Set special IP  timestamp	 options.   timestamp  option  may  be
	      either  tsonly  (only  timestamps),  tsandaddr  (timestamps  and
	      addresses) or tsprespec host1 [host2 [host3 [host4]]] (timestamp
	      prespecified hops).

       -U     Print  full  user-to-user	 latency (the old behaviour). Normally
	      ping prints network round trip time, which can be different f.e.
	      due to DNS failures.

       -v     Verbose output.

       -V     Show version and exit.

       -w deadline
	      Specify  a  timeout, in seconds, before ping exits regardless of
	      how many packets have been sent or received. In this  case  ping
	      does  not	 stop after count packet are sent, it waits either for
	      deadline expire or until count probes are answered or  for  some
	      error notification from network.

       -W timeout
	      Time to wait for a response, in seconds. The option affects only
	      timeout in absence of any responses, otherwise  ping  waits  for
	      two RTTs.

       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  run-
       ning.  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 calculation, 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 dis-
       played. Shorter current statistics can be obtained without  termination
       of process with signal SIGQUIT.

       If  ping	 does  not  receive any reply packets at all it will exit with
       code 1. If a packet count and deadline are both	specified,  and	 fewer
       than  count  packets are received by the time the deadline has arrived,
       it will also exit with code 1.  On other error it exits	with  code  2.
       Otherwise  it exits with code 0. This makes it possible to use the exit
       code to see if a host is alive or not.

       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 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 packetsize 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 of size of struct timeval ping  uses  the
       beginning  bytes	 of this space to include a timestamp which it uses in
       the computation of round trip times.  If the data space is shorter,  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  inappropriate  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 indi-
       cate broken hardware somewhere in the ping packet's path (in  the  net-
       work or in the hosts).

TRYING DIFFERENT DATA PATTERNS
       The (inter)network layer should never treat packets differently depend-
       ing on the data contained in the data  portion.	 Unfortunately,	 data-
       dependent  problems  have  been known to sneak into networks and remain
       undetected for long periods of time.  In many cases the particular pat-
       tern  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 relationship between what you type and what the controllers	trans-
       mit 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 man-
       age  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	decre-
       ment 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 tel-
       net(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 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
	 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
       o Many Hosts and Gateways ignore the RECORD_ROUTE option.

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

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

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

HISTORY
       The ping command appeared in 4.3BSD.

       The version described here is its descendant specific to Linux.

SECURITY
       ping requires CAP_NET_RAW capability to be executed. It may be used  as
       set-uid root.

AVAILABILITY
       ping  is part of iputils package and the latest versions are  available
       in   source    form    at    http://www.skbuff.net/iputils/iputils-cur-
       rent.tar.bz2.



iputils-121221			  17 May 2016			       PING(8)