Initial import from FreeBSD RELENG_4:
[dragonfly.git] / sbin / ping / ping.8
1 .\" Copyright (c) 1985, 1991, 1993
2 .\"     The Regents of the University of California.  All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\" 3. All advertising materials mentioning features or use of this software
13 .\"    must display the following acknowledgement:
14 .\"     This product includes software developed by the University of
15 .\"     California, Berkeley and its contributors.
16 .\" 4. Neither the name of the University nor the names of its contributors
17 .\"    may be used to endorse or promote products derived from this software
18 .\"    without specific prior written permission.
19 .\"
20 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 .\" SUCH DAMAGE.
31 .\"
32 .\"     @(#)ping.8      8.2 (Berkeley) 12/11/93
33 .\" $FreeBSD: src/sbin/ping/ping.8,v 1.25.2.11 2003/02/23 21:03:24 trhodes Exp $
34 .\"
35 .Dd September 25, 2001
36 .Dt PING 8
37 .Os
38 .Sh NAME
39 .Nm ping
40 .Nd send
41 .Tn ICMP ECHO_REQUEST
42 packets to network hosts
43 .Sh SYNOPSIS
44 .Nm
45 .Op Fl AQRadfnqrv
46 .Op Fl c Ar count
47 .Op Fl i Ar wait
48 .Op Fl l Ar preload
49 .Op Fl m Ar ttl
50 .Op Fl p Ar pattern
51 .Op Fl P Ar policy
52 .Op Fl s Ar packetsize
53 .Op Fl S Ar src_addr
54 .Op Fl t Ar timeout
55 .Bo
56 .Ar host |
57 .Op Fl L
58 .Op Fl I Ar interface
59 .Op Fl T Ar ttl
60 .Ar mcast-group
61 .Bc
62 .Sh DESCRIPTION
63 .Nm Ping
64 uses the
65 .Tn ICMP
66 .No protocol Ap s mandatory
67 .Tn ECHO_REQUEST
68 datagram to elicit an
69 .Tn ICMP ECHO_RESPONSE
70 from a host or gateway.
71 .Tn ECHO_REQUEST
72 datagrams
73 .Pq Dq pings
74 have an IP and
75 .Tn ICMP
76 header, followed by a
77 .Dq struct timeval
78 and then an arbitrary number of
79 .Dq pad
80 bytes used to fill out the packet.
81 The options are as follows:
82 .Bl -tag -width indent
83 .It Fl A
84 Audible.
85 Output a bell
86 .Tn ( ASCII
87 0x07)
88 character when no packet is received before the next packet
89 is transmitted.
90 To cater for round-trip times that are longer than the interval
91 between transmissions, further missing packets cause a bell only
92 if the maximum number of unreceived packets has increased.
93 .It Fl a
94 Audible.
95 Include a bell
96 .Tn ( ASCII
97 0x07)
98 character in the output when any packet is received.
99 This option is ignored
100 if other format options are present.
101 .It Fl c Ar count
102 Stop after sending
103 (and receiving)
104 .Ar count
105 .Tn ECHO_RESPONSE
106 packets.
107 If this option is not specified,
108 .Nm
109 will operate until interrupted.
110 .It Fl d
111 Set the
112 .Dv SO_DEBUG
113 option on the socket being used.
114 .It Fl f
115 Flood ping.
116 Outputs packets as fast as they come back or one hundred times per second,
117 whichever is more.
118 For every
119 .Tn ECHO_REQUEST
120 sent a period
121 .Dq .\&
122 is printed, while for every
123 .Tn ECHO_REPLY
124 received a backspace is printed.
125 This provides a rapid display of how many packets are being dropped.
126 Only the super-user may use this option.
127 .Bf -emphasis
128 This can be very hard on a network and should be used with caution.
129 .Ef
130 .It Fl i Ar wait
131 Wait
132 .Ar wait
133 seconds
134 .Em between sending each packet .
135 The default is to wait for one second between each packet.
136 The wait time may be fractional, but only the super-user may specify
137 values less than 1 second.
138 This option is incompatible with the
139 .Fl f
140 option.
141 .It Fl I Ar interface
142 Source multicast packets with the given interface address.
143 This flag only applies if the ping destination is a multicast address.
144 .It Fl l Ar preload
145 If
146 .Ar preload
147 is specified,
148 .Nm
149 sends that many packets as fast as possible before falling into its normal
150 mode of behavior.
151 Only the super-user may use this option.
152 .It Fl m Ar ttl
153 Set the IP Time To Live for outgoing packets.
154 If not specified, the kernel uses the value of the
155 .Va net.inet.ip.ttl
156 MIB variable.
157 .It Fl L
158 Suppress loopback of multicast packets.
159 This flag only applies if the ping destination is a multicast address.
160 .It Fl n
161 Numeric output only.
162 No attempt will be made to lookup symbolic names for host addresses.
163 .It Fl p Ar pattern
164 You may specify up to 16
165 .Dq pad
166 bytes to fill out the packet you send.
167 This is useful for diagnosing data-dependent problems in a network.
168 For example,
169 .Dq Li \-p ff
170 will cause the sent packet to be filled with all
171 ones.
172 .It Fl P Ar policy
173 .Ar policy
174 specifies IPsec policy for the ping session.
175 For details please refer to
176 .Xr ipsec 4
177 and
178 .Xr ipsec_set_policy 3 .
179 .It Fl Q
180 Somewhat quiet output.
181 .No Don Ap t
182 display ICMP error messages that are in response to our query messages.
183 Originally, the
184 .Fl v
185 flag was required to display such errors, but
186 .Fl v
187 displays all ICMP error messages.
188 On a busy machine, this output can
189 be overbearing.
190 Without the
191 .Fl Q
192 flag,
193 .Nm
194 prints out any ICMP error messages caused by its own ECHO_REQUEST
195 messages.
196 .It Fl q
197 Quiet output.
198 Nothing is displayed except the summary lines at startup time and
199 when finished.
200 .It Fl R
201 Record route.
202 Includes the
203 .Tn RECORD_ROUTE
204 option in the
205 .Tn ECHO_REQUEST
206 packet and displays
207 the route buffer on returned packets.
208 Note that the IP header is only large enough for nine such routes;
209 the
210 .Xr traceroute 8
211 command is usually better at determining the route packets take to a
212 particular destination.
213 If more routes come back than should, such as due to an illegal spoofed
214 packet, ping will print the route list and then truncate it at the correct
215 spot.
216 Many hosts ignore or discard the
217 .Tn RECORD_ROUTE
218 option.
219 .It Fl r
220 Bypass the normal routing tables and send directly to a host on an attached
221 network.
222 If the host is not on a directly-attached network, an error is returned.
223 This option can be used to ping a local host through an interface
224 that has no route through it
225 (e.g., after the interface was dropped by
226 .Xr routed 8 ) .
227 .It Fl s Ar packetsize
228 Specify the number of data bytes to be sent.
229 The default is 56, which translates into 64
230 .Tn ICMP
231 data bytes when combined
232 with the 8 bytes of
233 .Tn ICMP
234 header data.
235 Only the super-user may use this option.
236 .It Fl S Ar src_addr
237 Use the following IP address as the source address in outgoing packets.
238 On hosts with more than one IP address, this option can be used to
239 force the source address to be something other than the IP address
240 of the interface the probe packet is sent on.
241 If the IP address is not one of this machine's interface addresses,
242 an error is returned and nothing is sent.
243 .It Fl t Ar timeout
244 Specify a timeout, in seconds, before ping exits regardless of how
245 many packets have been received.
246 .It Fl T Ar ttl
247 Set the IP Time To Live for multicasted packets.
248 This flag only applies if the ping destination is a multicast address.
249 .It Fl v
250 Verbose output.
251 .Tn ICMP
252 packets other than
253 .Tn ECHO_RESPONSE
254 that are received are listed.
255 .El
256 .Pp
257 When using
258 .Nm
259 for fault isolation, it should first be run on the local host, to verify
260 that the local network interface is up and running.
261 Then, hosts and gateways further and further away should be
262 .Dq pinged .
263 Round-trip times and packet loss statistics are computed.
264 If duplicate packets are received, they are not included in the packet
265 loss calculation, although the round trip time of these packets is used
266 in calculating the round-trip time statistics.
267 When the specified number of packets have been sent
268 (and received)
269 or if the program is terminated with a
270 .Dv SIGINT ,
271 a brief summary is displayed, showing the number of packets sent and
272 received, and the minimum, mean, maximum, and standard deviation of
273 the round-trip times.
274 .Pp
275 If
276 .Nm
277 receives a
278 .Dv SIGINFO
279 (see the
280 .Cm status
281 argument for
282 .Xr stty 1 )
283 signal, the current number of packets sent and received, and the
284 minimum, mean, and maximum of the round-trip times will be written to
285 the standard error output.
286 .Pp
287 This program is intended for use in network testing, measurement and
288 management.
289 Because of the load it can impose on the network, it is unwise to use
290 .Nm
291 during normal operations or from automated scripts.
292 .Sh ICMP PACKET DETAILS
293 An IP header without options is 20 bytes.
294 An
295 .Tn ICMP
296 .Tn ECHO_REQUEST
297 packet contains an additional 8 bytes worth of
298 .Tn ICMP
299 header followed by an arbitrary amount of data.
300 When a
301 .Ar packetsize
302 is given, this indicated the size of this extra piece of data
303 (the default is 56).
304 Thus the amount of data received inside of an IP packet of type
305 .Tn ICMP
306 .Tn ECHO_REPLY
307 will always be 8 bytes more than the requested data space
308 (the
309 .Tn ICMP
310 header).
311 .Pp
312 If the data space is at least eight bytes large,
313 .Nm
314 uses the first eight bytes of this space to include a timestamp which
315 it uses in the computation of round trip times.
316 If less than eight bytes of pad are specified, no round trip times are
317 given.
318 .Sh DUPLICATE AND DAMAGED PACKETS
319 .Nm Ping
320 will report duplicate and damaged packets.
321 Duplicate packets should never occur when pinging a unicast address,
322 and seem to be caused by
323 inappropriate link-level retransmissions.
324 Duplicates may occur in many situations and are rarely
325 (if ever)
326 a good sign, although the presence of low levels of duplicates may not
327 always be cause for alarm.
328 Duplicates are expected when pinging a broadcast or multicast address,
329 since they are not really duplicates but replies from different hosts
330 to the same request.
331 .Pp
332 Damaged packets are obviously serious cause for alarm and often
333 indicate broken hardware somewhere in the
334 .Nm
335 packet's path (in the network or in the hosts).
336 .Sh TRYING DIFFERENT DATA PATTERNS
337 The
338 (inter)network
339 layer should never treat packets differently depending on the data
340 contained in the data portion.
341 Unfortunately, data-dependent problems have been known to sneak into
342 networks and remain undetected for long periods of time.
343 In many cases the particular pattern that will have problems is something
344 that does not have sufficient
345 .Dq transitions ,
346 such as all ones or all zeros, or a pattern right at the edge, such as
347 almost all zeros.
348 It is not
349 necessarily enough to specify a data pattern of all zeros (for example)
350 on the command line because the pattern that is of interest is
351 at the data link level, and the relationship between what you type and
352 what the controllers transmit can be complicated.
353 .Pp
354 This means that if you have a data-dependent problem you will probably
355 have to do a lot of testing to find it.
356 If you are lucky, you may manage to find a file that either
357 cannot
358 be sent across your network or that takes much longer to transfer than
359 other similar length files.
360 You can then examine this file for repeated patterns that you can test
361 using the
362 .Fl p
363 option of
364 .Nm .
365 .Sh TTL DETAILS
366 The
367 .Tn TTL
368 value of an IP packet represents the maximum number of IP routers
369 that the packet can go through before being thrown away.
370 In current practice you can expect each router in the Internet to decrement
371 the
372 .Tn TTL
373 field by exactly one.
374 .Pp
375 The
376 .Tn TCP/IP
377 specification states that the
378 .Tn TTL
379 field for
380 .Tn TCP
381 packets should be set to 60, but many systems use smaller values
382 .No ( Bx 4.3
383 uses 30,
384 .Bx 4.2
385 used 15).
386 .Pp
387 The maximum possible value of this field is 255, and most
388 .Ux
389 systems set
390 the
391 .Tn TTL
392 field of
393 .Tn ICMP ECHO_REQUEST
394 packets to 255.
395 This is why you will find you can
396 .Dq ping
397 some hosts, but not reach them with
398 .Xr telnet 1
399 or
400 .Xr ftp 1 .
401 .Pp
402 In normal operation
403 .Nm
404 prints the ttl value from the packet it receives.
405 When a remote system receives a ping packet, it can do one of three things
406 with the
407 .Tn TTL
408 field in its response:
409 .Bl -bullet
410 .It
411 Not change it; this is what
412 .Bx
413 systems did before the
414 .Bx 4.3 tahoe
415 release.
416 In this case the
417 .Tn TTL
418 value in the received packet will be 255 minus the
419 number of routers in the round-trip path.
420 .It
421 Set it to 255; this is what current
422 .Bx
423 systems do.
424 In this case the
425 .Tn TTL
426 value in the received packet will be 255 minus the
427 number of routers in the path
428 .Em from
429 the remote system
430 .Em to
431 the
432 .Nm Ns Em ing
433 host.
434 .It
435 Set it to some other value.
436 Some machines use the same value for
437 .Tn ICMP
438 packets that they use for
439 .Tn TCP
440 packets, for example either 30 or 60.
441 Others may use completely wild values.
442 .El
443 .Sh RETURN VALUES
444 The
445 .Nm
446 command returns an exit status of zero if at least one response was
447 heard from the specified
448 .Ar host ;
449 a status of two if the transmission was successful but no responses
450 were received; or another value
451 (from
452 .Aq Pa sysexits.h )
453 if an error occurred.
454 .Sh SEE ALSO
455 .Xr netstat 1 ,
456 .Xr ifconfig 8 ,
457 .Xr routed 8 ,
458 .Xr traceroute 8
459 .Sh HISTORY
460 The
461 .Nm
462 command appeared in
463 .Bx 4.3 .
464 .Sh AUTHORS
465 The original
466 .Nm
467 command was written by
468 .An Mike Muuss
469 while at the US Army Ballistics
470 Research Laboratory.
471 .Sh BUGS
472 Many Hosts and Gateways ignore the
473 .Tn RECORD_ROUTE
474 option.
475 .Pp
476 The maximum IP header length is too small for options like
477 .Tn RECORD_ROUTE
478 to be completely useful.
479 .No There Ap s
480 not much that can be done about this, however.
481 .Pp
482 Flood pinging is not recommended in general, and flood pinging the
483 broadcast address should only be done under very controlled conditions.
484 .Pp
485 The
486 .Fl v
487 option is not worth much on busy hosts.