123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409 |
- .\" This manpage has been automatically generated by docbook2man
- .\" from a DocBook document. This tool can be found at:
- .\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
- .\" Please send any bug reports, improvements, comments, patches,
- .\" etc. to Steve Cheng <steve@ggi-project.org>.
- .TH "PING" "8" "24 Mayıs 2011" "iputils-101006" "System Manager's Manual: iputils"
- .SH NAME
- ping, ping6 \- send ICMP ECHO_REQUEST to network hosts
- .SH SYNOPSIS
- \fBping\fR [ \fB-LRUbdfnqrvVaAB\fR] [ \fB-c \fIcount\fB\fR] [ \fB-m \fImark\fB\fR] [ \fB-i \fIinterval\fB\fR] [ \fB-l \fIpreload\fB\fR] [ \fB-p \fIpattern\fB\fR] [ \fB-s \fIpacketsize\fB\fR] [ \fB-t \fIttl\fB\fR] [ \fB-w \fIdeadline\fB\fR] [ \fB-F \fIflowlabel\fB\fR] [ \fB-I \fIinterface\fB\fR] [ \fB-M \fIhint\fB\fR] [ \fB-N \fInioption\fB\fR] [ \fB-Q \fItos\fB\fR] [ \fB-S \fIsndbuf\fB\fR] [ \fB-T \fItimestamp option\fB\fR] [ \fB-W \fItimeout\fB\fR] [ \fB\fIhop\fB\fR\fI ...\fR] \fB\fIdestination\fB\fR
- .SH "DESCRIPTION"
- .PP
- \fBping\fR 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.
- .PP
- \fBping6\fR can also send Node Information Queries (RFC4620).
- .SH "OPTIONS"
- .TP
- \fB-a\fR
- Audible ping.
- .TP
- \fB-A\fR
- 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 interval is 200msec for not super-user.
- On networks with low rtt this mode is essentially equivalent to flood mode.
- .TP
- \fB-b\fR
- Allow pinging a broadcast address.
- .TP
- \fB-B\fR
- Do not allow \fBping\fR to change source address of probes.
- The address is bound to one selected when \fBping\fR starts.
- .TP
- \fB-m \fImark\fB\fR
- use \fImark\fR to tag the packets going out. This is useful
- for variety of reasons within the kernel such as using policy
- routing to select specific outbound processing.
- .TP
- \fB-c \fIcount\fB\fR
- Stop after sending \fIcount\fR ECHO_REQUEST
- packets. With
- \fIdeadline\fR
- option, \fBping\fR waits for
- \fIcount\fR ECHO_REPLY packets, until the timeout expires.
- .TP
- \fB-d\fR
- Set the SO_DEBUG option on the socket being used.
- Essentially, this socket option is not used by Linux kernel.
- .TP
- \fB-F \fIflow label\fB\fR
- Allocate and set 20 bit flow label on echo request packets.
- (Only \fBping6\fR). If value is zero, kernel allocates random flow label.
- .TP
- \fB-f\fR
- 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 hundred times per second,
- whichever is more.
- Only the super-user may use this option with zero interval.
- .TP
- \fB-i \fIinterval\fB\fR
- Wait \fIinterval\fR 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 values less 0.2 seconds.
- .TP
- \fB-I \fIinterface address\fB\fR
- Set source address to specified interface address. Argument
- may be numeric IP address or name of device. When pinging IPv6
- link-local address this option is required.
- .TP
- \fB-l \fIpreload\fB\fR
- If \fIpreload\fR is specified,
- \fBping\fR sends that many packets not waiting for reply.
- Only the super-user may select preload more than 3.
- .TP
- \fB-L\fR
- Suppress loopback of multicast packets. This flag only applies if the ping
- destination is a multicast address.
- .TP
- \fB-N \fInioption\fB\fR
- Send ICMPv6 Node Information Queries (RFC4620), instead of Echo Request.
- .RS
- .TP
- \fBname\fR
- Queries for Node Names.
- .RE
- .RS
- .TP
- \fBipv6\fR
- Queries for IPv6 Addresses. There are several IPv6 specific flags.
- .RS
- .TP
- \fBipv6-global\fR
- Request IPv6 global-scope addresses.
- .RE
- .RS
- .TP
- \fBipv6-sitelocal\fR
- Request IPv6 site-local addresses.
- .RE
- .RS
- .TP
- \fBipv6-linklocal\fR
- Request IPv6 link-local addresses.
- .RE
- .RS
- .TP
- \fBipv6-all\fR
- Request IPv6 addresses on other interfaces.
- .RE
- .RE
- .RS
- .TP
- \fBipv4\fR
- Queries for IPv4 Addresses. There is one IPv4 specific flag.
- .RS
- .TP
- \fBipv4-all\fR
- Request IPv4 addresses on other interfaces.
- .RE
- .RE
- .RS
- .TP
- \fBsubject-ipv6=\fIipv6addr\fB\fR
- IPv6 subject address.
- .RE
- .RS
- .TP
- \fBsubject-ipv4=\fIipv4addr\fB\fR
- IPv4 subject address.
- .RE
- .RS
- .TP
- \fBsubject-name=\fInodename\fB\fR
- Subject name. If it contains more than one dot,
- fully-qualified domain name is assumed.
- .RE
- .RS
- .TP
- \fBsubject-fqdn=\fInodename\fB\fR
- Subject name. Fully-qualified domain name is
- always assumed.
- .RE
- .TP
- \fB-n\fR
- Numeric output only.
- No attempt will be made to lookup symbolic names for host addresses.
- .TP
- \fB-p \fIpattern\fB\fR
- 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, \fB-p ff\fR will cause the sent packet
- to be filled with all ones.
- .TP
- \fB-D\fR
- Print timestamp (unix time + microseconds as in gettimeofday) before
- each line.
- .TP
- \fB-Q \fItos\fB\fR
- Set Quality of Service -related bits in ICMP datagrams.
- \fItos\fR can be either decimal or hex number.
- Traditionally (RFC1349), these have been interpreted as: 0 for reserved
- (currently being redefined as congestion control), 1-4 for Type of Service
- and 5-7 for Precedence.
- Possible settings for Type of Service are: minimal cost: 0x02,
- reliability: 0x04, throughput: 0x08, low delay: 0x10. Multiple TOS bits
- should not be set simultaneously. Possible settings for
- special Precedence range from priority (0x20) to net control (0xe0). You
- must be root (CAP_NET_ADMIN capability) to use Critical or
- higher precedence value. You cannot set
- bit 0x01 (reserved) unless ECN has been enabled in the kernel.
- In RFC2474, these fields has been redefined as 8-bit Differentiated
- Services (DS), consisting of: bits 0-1 of separate data (ECN will be used,
- here), and bits 2-7 of Differentiated Services Codepoint (DSCP).
- .TP
- \fB-q\fR
- Quiet output.
- Nothing is displayed except the summary lines at startup time and
- when finished.
- .TP
- \fB-R\fR
- 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.
- .TP
- \fB-r\fR
- 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 \fB-I\fR is also
- used.
- .TP
- \fB-s \fIpacketsize\fB\fR
- 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.
- .TP
- \fB-S \fIsndbuf\fB\fR
- Set socket sndbuf. If not specified, it is selected to buffer
- not more than one packet.
- .TP
- \fB-t \fIttl\fB\fR
- Set the IP Time to Live.
- .TP
- \fB-T \fItimestamp option\fB\fR
- Set special IP timestamp options.
- \fItimestamp option\fR may be either
- \fItsonly\fR (only timestamps),
- \fItsandaddr\fR (timestamps and addresses) or
- \fItsprespec host1 [host2 [host3 [host4]]]\fR
- (timestamp prespecified hops).
- .TP
- \fB-M \fIhint\fB\fR
- Select Path MTU Discovery strategy.
- \fIhint\fR may be either \fIdo\fR
- (prohibit fragmentation, even local one),
- \fIwant\fR (do PMTU discovery, fragment locally when packet size
- is large), or \fIdont\fR (do not set DF flag).
- .TP
- \fB-U\fR
- Print full user-to-user latency (the old behaviour). Normally
- \fBping\fR
- prints network round trip time, which can be different
- f.e. due to DNS failures.
- .TP
- \fB-v\fR
- Verbose output.
- .TP
- \fB-V\fR
- Show version and exit.
- .TP
- \fB-w \fIdeadline\fB\fR
- Specify a timeout, in seconds, before
- \fBping\fR
- exits regardless of how many
- packets have been sent or received. In this case
- \fBping\fR
- does not stop after
- \fIcount\fR
- packet are sent, it waits either for
- \fIdeadline\fR
- expire or until
- \fIcount\fR
- probes are answered or for some error notification from network.
- .TP
- \fB-W \fItimeout\fB\fR
- Time to wait for a response, in seconds. The option affects only timeout
- in absence of any responses, otherwise \fBping\fR waits for two RTTs.
- .PP
- When using \fBping\fR 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''. 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 displayed. Shorter current statistics
- can be obtained without termination of process with signal
- SIGQUIT.
- .PP
- If \fBping\fR does not receive any reply packets at all it will
- exit with code 1. If a packet
- \fIcount\fR
- and
- \fIdeadline\fR
- are both specified, and fewer than
- \fIcount\fR
- packets are received by the time the
- \fIdeadline\fR
- 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.
- .PP
- 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
- \fBping\fR during normal operations or from automated scripts.
- .SH "ICMP PACKET DETAILS"
- .PP
- 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 \fIpacketsize\fR 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).
- .PP
- If the data space is at least of size of struct timeval
- \fBping\fR 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.
- .SH "DUPLICATE AND DAMAGED PACKETS"
- .PP
- \fBping\fR 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.
- .PP
- Damaged packets are obviously serious cause for alarm and often
- indicate broken hardware somewhere in the
- \fBping\fR packet's path (in the network or in the hosts).
- .SH "TRYING DIFFERENT DATA PATTERNS"
- .PP
- 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 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 transmit can be complicated.
- .PP
- 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 \fB-p\fR option of \fBping\fR.
- .SH "TTL DETAILS"
- .PP
- 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.
- .PP
- 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).
- .PP
- 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
- \fBtelnet\fR(1)
- or
- \fBftp\fR(1).
- .PP
- 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:
- .TP 0.2i
- \(bu
- 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.
- .TP 0.2i
- \(bu
- 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 \fBfrom\fR
- the remote system \fBto\fR the \fBping\fRing host.
- .TP 0.2i
- \(bu
- 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.
- .SH "BUGS"
- .TP 0.2i
- \(bu
- Many Hosts and Gateways ignore the RECORD_ROUTE option.
- .TP 0.2i
- \(bu
- 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.
- .TP 0.2i
- \(bu
- Flood pinging is not recommended in general, and flood pinging the
- broadcast address should only be done under very controlled conditions.
- .SH "SEE ALSO"
- .PP
- \fBnetstat\fR(1),
- \fBifconfig\fR(8).
- .SH "HISTORY"
- .PP
- The \fBping\fR command appeared in 4.3BSD.
- .PP
- The version described here is its descendant specific to Linux.
- .SH "SECURITY"
- .PP
- \fBping\fR requires CAP_NET_RAWIO capability
- to be executed. It may be used as set-uid root.
- .SH "AVAILABILITY"
- .PP
- \fBping\fR is part of \fIiputils\fR package
- and the latest versions are available in source form at
- http://www.skbuff.net/iputils/iputils-current.tar.bz2.
|