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