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