unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Page:
Section:
Apropos / Subsearch:
optional field



ping(8)								      ping(8)



NAME

  ping - Sends ICMP ECHO_REQUEST packets to network hosts

SYNOPSIS

  /usr/sbin/ping [-dfnqruvLR] [-b num] [-c count] [-i wait] [-l	preload] [-p
  pattern] [-s packetsize] [-tnumber] [-I interface] [-G[!] @addr1@addr2...]
  [-V version] host

OPTIONS

  -b num
      Specifies	the size of the	receive	buffer.	 You can use this when speci-
      fying very large packet sizes with the -s	option.	 By default, the size
      of the receive buffer is set to 48K or to	the size specified by the -s
      option, whichever	is greater.  The -b option overrides the default.

  -c count
      Stops after sending (and receiving) count	ECHO_RESPONSE packets.

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

  -f  Floods ping.  Outputs packets as fast as they come back or 100 times
      per second, whichever is more. For every ECHO_REQUEST sent, a . (dot)
      is printed, while	for every ECHO_REPLY received a	backspace is used.
      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
      network and should be used with caution (see Cautions).

  -G [!]@addr1@addr2...
      Specifies	the source route for packets to	travel to the destination
      host.  The route consists	of one or more node names or addresses.	 Use
      the ampersand character (@) to separate multiple addresses.  You can
      specify up to 10 addresses.

      The exclamation mark (!) indicates that this is a	strict source route;
      ping uses	only the specified hosts for intermediate hops.

      If any of	the specified addresses	is a hostname, a lookup	is performed
      and the protocol common to all addresses is used.	 If there is no	com-
      mon protocol (for	example, one host has only IPv4	address	and one	host
      has only IPv6 address), an error is printed.  If all hosts have both
      IPv4 and IPv6 addresses, IPv6 is used.  You can override this option
      with the -V option.

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

  -I interface
      Sends packets through interface instead of using the interface
      specified	in the routing tables for the host.

  -L  Displays every 100th reply only and displays a message indicating	lost
      packets.

      A	packet loss rate of just 1% is enough to seriously impact UDP-based
      protocols	like NFS.  This	option enables you to measure loss rates and
      to determine how bursty they are.	 All lost messages are reported	with
      the following message:


	   Lost	sequence number(s) number

      The number value is a single number or a range or	numbers.

  -l preload
      If preload is specified, ping sends that many packets as fast as possi-
      ble before falling into its normal mode of behavior. Only	the superuser
      may use this option.  This can be	very hard on a network and should be
      used with	caution	(see Cautions).

  -n  Numeric output only.  No attempt will be made to look up symbolic	names
      for host addresses. This occurs only when	displaying ICMP	packets	other
      than ECHO_RESPONSE.

  -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 1s
      (ones).

  -q  Quiets output.  Nothing is displayed except the summary lines at
      start-up time and	when finished.

  -R  [ICMP over IPv4 only]   Records 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.

  -r  Bypasses the normal routing tables and directly sends 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	send ping to a local
      host  through an interface that has no route through it (for example,
      after the	interface was dropped by routed).

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

  -t number
      Sets the timeout period (in seconds) for ping to wait before terminat-
      ing.  The	default	timeout	period is 10 seconds.  This option is only
      useful with -c 1 option.

  -u  Displays the time	in microseconds	(three decimal places).	In order to
      ensure this microsecond precision, the NTP_TIME and MICRO_TIME kernel
      options must be on.  By default NTP_TIME and MICRO_TIME kernel options
      are off.	If these kernel	options	are off	and this option	is used, the
      time is displayed	to three decimal places, but in	milliseconds.

  -v  Specifies	verbose	output.	 ICMP packets other than ECHO_RESPONSE that
      are received are listed.

  -V version
      Specifies	the Internet Protocol (IP) version number to enable the
      resolver to return the correct address.  If you are issuing a ping com-
      mand to a	host name (not IP address) that	has both IPv4 and IPv6
      addresses, by default the	command	is issued using	the IPv6 address.
      Use the -V4 option if you	want to	use the	IPv4 address.



DESCRIPTION

  The ping command uses	the ICMP (Internet Control Message Protocol)
  protocol's mandatory ECHO_REQUEST datagram to	elicit an ICMP ECHO_RESPONSE
  from the specified host or gateway host, where host is a network name	or IP
  address.  ECHO_REQUEST datagrams (pings) have	an IP (Internet	Protocol) and
  ICMP header, followed	by a struct timeval and	then an	arbitrary number of
  pad bytes used to fill out the packet.  The operating	system supports	both
  ICMPv4 and ICMPv6.

  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	sent the ping com-
  mand.	 Round-trip times and packet loss statistics are computed.  If dupli-
  cate packets are received, they are not included in the packet loss calcu-
  lations, although the	round-trip time	of these packets is used in calculat-
  ing the minimum, average, and	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, 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.

  ICMPv4 Packet	Details


  An IPv4 header without options is 20 bytes. An ICMPv4	ECHO_REQUEST packet
  contains an additional 8 bytes worth of ICMPv4 header	followed by an arbi-
  trary	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	IPv4 packet of type ICMP ECHO_REPLY will always	be 8
  bytes	more than the requested	data space (the	ICMPv4 header).

  If the data space is at least	8 bytes	large, ping uses the first 8 bytes of
  this space to	include	a timestamp, which it uses in the computation of
  round-trip times. If less than 8 bytes of pad	are specified, no round-trip
  times	are given.

  Duplicate and	Damaged	Packets


  The ping command will	report duplicate and damaged packets. Duplicate	pack-
  ets 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 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 differently depending
  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 pattern that will have
  problems is something	that does not have sufficient transitions, such	as
  all 1s (ones)	or all 0s (zeros), or a	pattern	right at the edge, such	as
  almost all 0s	(zeros).  It is	not necessarily	enough to specify a data pat-
  tern of all 0s (zeros) (for example) on the command line because the pat-
  tern that is of interest is at the data-link level, and the relationship
  between what you enter and what the controllers transmit can be compli-
  cated.

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

  IPv4 TTL Details


  The TTL value	of an IPv4 packet represents the maximum number	of IPv4
  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 1 (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.2BSD
  used 15).

  The maximum possible value of	this field is 255, and most UNIX compatible
  systems set the TTL field of ICMP ECHO_REQUEST packets to 255. This is why
  you will find	you can	use the	ping command on	some hosts, but	not reach
  them with telnet or ftp.

  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:

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

    +  Set it to 255; this is what current Berkeley UNIX compatible 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
       host that received the ping command.

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

CAUTIONS

  Many hosts and gateways ignore the RECORD_ROUTE option.

  Flooding and preloading the ping command is not recommended in general, and
  flooding ping	on the broadcast address should	only be	done under very	con-
  trolled conditions.



FILES

  /usr/sbin/ping
      Specifies	the command path


SEE ALSO

  Commands: netstat(1),	ifconfig(8)

  Daemons: gated(8), routed(8)

  RFC 792, Internet Control Message Protocol, Postel, J.

  RFC 2463, Internet Control Message Protocol (ICMPv6) for the Internet	Pro-
  tocol	Version	6 (IPv6) Specification,	Conta, A., and Deering,	S.