409 lines
14 KiB
Plaintext
409 lines
14 KiB
Plaintext
.\" 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.
|