]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sbin/ping/ping.8
Merge llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and openmp
[FreeBSD/FreeBSD.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$
30 .\"
31 .Dd August 22, 2019
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 AaDdfHnoQqRrv
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 AaDdfHLnoQqRrv
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
161 Hostname output.
162 Try to do a reverse DNS lookup when displaying addresses.
163 This is the opposite of the
164 .Fl n
165 option.
166 .It Fl h Ar sweepincrsize
167 Specify the number of bytes to increment the size of
168 .Tn ICMP
169 payload after
170 each sweep when sending sweeping pings.
171 The default value is 1.
172 .It Fl I Ar iface
173 Source multicast packets with the given interface address.
174 This flag only applies if the ping destination is a multicast address.
175 .It Fl i Ar wait
176 Wait
177 .Ar wait
178 seconds
179 .Em between sending each packet .
180 The default is to wait for one second between each packet.
181 The wait time may be fractional, but only the super-user may specify
182 values less than 1 second.
183 This option is incompatible with the
184 .Fl f
185 option.
186 .It Fl L
187 Suppress loopback of multicast packets.
188 This flag only applies if the ping destination is a multicast address.
189 .It Fl l Ar preload
190 If
191 .Ar preload
192 is specified,
193 .Nm
194 sends that many packets as fast as possible before falling into its normal
195 mode of behavior.
196 Only the super-user may use this option.
197 .It Fl M Cm mask | time
198 Use
199 .Dv ICMP_MASKREQ
200 or
201 .Dv ICMP_TSTAMP
202 instead of
203 .Dv ICMP_ECHO .
204 For
205 .Cm mask ,
206 print the netmask of the remote machine.
207 Set the
208 .Va net.inet.icmp.maskrepl
209 MIB variable to enable
210 .Dv ICMP_MASKREPLY
211 and
212 .Va net.inet.icmp.maskfake
213 if you want to override the netmask in the response.
214 For
215 .Cm time ,
216 print the origination, reception and transmission timestamps.
217 Set the
218 .Va net.inet.icmp.tstamprepl
219 MIB variable to enable or disable
220 .Dv ICMP_TSTAMPREPLY .
221 .It Fl m Ar ttl
222 Set the IP Time To Live for outgoing packets.
223 If not specified, the kernel uses the value of the
224 .Va net.inet.ip.ttl
225 MIB variable.
226 .It Fl n
227 Numeric output only.
228 No attempt will be made to lookup symbolic names for host addresses.
229 This is the opposite of
230 .Fl H ,
231 and it is the default behavior.
232 .It Fl o
233 Exit successfully after receiving one reply packet.
234 .It Fl P Ar policy
235 .Ar policy
236 specifies IPsec policy for the ping session.
237 For details please refer to
238 .Xr ipsec 4
239 and
240 .Xr ipsec_set_policy 3 .
241 .It Fl p Ar pattern
242 You may specify up to 16
243 .Dq pad
244 bytes to fill out the packet you send.
245 This is useful for diagnosing data-dependent problems in a network.
246 For example,
247 .Dq Li \-p ff
248 will cause the sent packet to be filled with all
249 ones.
250 .It Fl Q
251 Somewhat quiet output.
252 .No Don Ap t
253 display ICMP error messages that are in response to our query messages.
254 Originally, the
255 .Fl v
256 flag was required to display such errors, but
257 .Fl v
258 displays all ICMP error messages.
259 On a busy machine, this output can be overbearing.
260 Without the
261 .Fl Q
262 flag,
263 .Nm
264 prints out any ICMP error messages caused by its own ECHO_REQUEST
265 messages.
266 .It Fl q
267 Quiet output.
268 Nothing is displayed except the summary lines at startup time and
269 when finished.
270 .It Fl R
271 Record route.
272 Includes the
273 .Tn RECORD_ROUTE
274 option in the
275 .Tn ECHO_REQUEST
276 packet and displays
277 the route buffer on returned packets.
278 Note that the IP header is only large enough for nine such routes;
279 the
280 .Xr traceroute 8
281 command is usually better at determining the route packets take to a
282 particular destination.
283 If more routes come back than should, such as due to an illegal spoofed
284 packet, ping will print the route list and then truncate it at the correct
285 spot.
286 Many hosts ignore or discard the
287 .Tn RECORD_ROUTE
288 option.
289 .It Fl r
290 Bypass the normal routing tables and send directly to a host on an attached
291 network.
292 If the host is not on a directly-attached network, an error is returned.
293 This option can be used to ping a local host through an interface
294 that has no route through it
295 (e.g., after the interface was dropped by
296 .Xr routed 8 ) .
297 .It Fl S Ar src_addr
298 Use the following IP address as the source address in outgoing packets.
299 On hosts with more than one IP address, this option can be used to
300 force the source address to be something other than the IP address
301 of the interface the probe packet is sent on.
302 If the IP address
303 is not one of this machine's interface addresses, an error is
304 returned and nothing is sent.
305 .It Fl s Ar packetsize
306 Specify the number of data bytes to be sent.
307 The default is 56, which translates into 64
308 .Tn ICMP
309 data bytes when combined
310 with the 8 bytes of
311 .Tn ICMP
312 header data.
313 Only the super-user may specify values more than default.
314 This option cannot be used with ping sweeps.
315 .It Fl T Ar ttl
316 Set the IP Time To Live for multicasted packets.
317 This flag only applies if the ping destination is a multicast address.
318 .It Fl t Ar timeout
319 Specify a timeout, in seconds, before ping exits regardless of how
320 many packets have been received.
321 .It Fl v
322 Verbose output.
323 .Tn ICMP
324 packets other than
325 .Tn ECHO_RESPONSE
326 that are received are listed.
327 .It Fl W Ar waittime
328 Time in milliseconds to wait for a reply for each packet sent.
329 If a reply arrives later, the packet is not printed as replied, but
330 considered as replied when calculating statistics.
331 .It Fl z Ar tos
332 Use the specified type of service.
333 .El
334 .Pp
335 When using
336 .Nm
337 for fault isolation, it should first be run on the local host, to verify
338 that the local network interface is up and running.
339 Then, hosts and gateways further and further away should be
340 .Dq pinged .
341 Round-trip times and packet loss statistics are computed.
342 If duplicate packets are received, they are not included in the packet
343 loss calculation, although the round trip time of these packets is used
344 in calculating the round-trip time statistics.
345 When the specified number of packets have been sent
346 (and received)
347 or if the program is terminated with a
348 .Dv SIGINT ,
349 a brief summary is displayed, showing the number of packets sent and
350 received, and the minimum, mean, maximum, and standard deviation of
351 the round-trip times.
352 .Pp
353 If
354 .Nm
355 receives a
356 .Dv SIGINFO
357 (see the
358 .Cm status
359 argument for
360 .Xr stty 1 )
361 signal, the current number of packets sent and received, and the
362 minimum, mean, and maximum of the round-trip times will be written to
363 the standard error output.
364 .Pp
365 This program is intended for use in network testing, measurement and
366 management.
367 Because of the load it can impose on the network, it is unwise to use
368 .Nm
369 during normal operations or from automated scripts.
370 .Sh ICMP PACKET DETAILS
371 An IP header without options is 20 bytes.
372 An
373 .Tn ICMP
374 .Tn ECHO_REQUEST
375 packet contains an additional 8 bytes worth of
376 .Tn ICMP
377 header followed by an arbitrary amount of data.
378 When a
379 .Ar packetsize
380 is given, this indicated the size of this extra piece of data
381 (the default is 56).
382 Thus the amount of data received inside of an IP packet of type
383 .Tn ICMP
384 .Tn ECHO_REPLY
385 will always be 8 bytes more than the requested data space
386 (the
387 .Tn ICMP
388 header).
389 .Pp
390 If the data space is at least eight bytes large,
391 .Nm
392 uses the first eight bytes of this space to include a timestamp which
393 it uses in the computation of round trip times.
394 If less than eight bytes of pad are specified, no round trip times are
395 given.
396 .Sh DUPLICATE AND DAMAGED PACKETS
397 The
398 .Nm
399 utility will report duplicate and damaged packets.
400 Duplicate packets should never occur when pinging a unicast address,
401 and seem to be caused by
402 inappropriate link-level retransmissions.
403 Duplicates may occur in many situations and are rarely
404 (if ever)
405 a good sign, although the presence of low levels of duplicates may not
406 always be cause for alarm.
407 Duplicates are expected when pinging a broadcast or multicast address,
408 since they are not really duplicates but replies from different hosts
409 to the same request.
410 .Pp
411 Damaged packets are obviously serious cause for alarm and often
412 indicate broken hardware somewhere in the
413 .Nm
414 packet's path (in the network or in the hosts).
415 .Sh TRYING DIFFERENT DATA PATTERNS
416 The
417 (inter)network
418 layer should never treat packets differently depending on the data
419 contained in the data portion.
420 Unfortunately, data-dependent problems have been known to sneak into
421 networks and remain undetected for long periods of time.
422 In many cases the particular pattern that will have problems is something
423 that does not have sufficient
424 .Dq transitions ,
425 such as all ones or all zeros, or a pattern right at the edge, such as
426 almost all zeros.
427 It is not
428 necessarily enough to specify a data pattern of all zeros (for example)
429 on the command line because the pattern that is of interest is
430 at the data link level, and the relationship between what you type and
431 what the controllers transmit can be complicated.
432 .Pp
433 This means that if you have a data-dependent problem you will probably
434 have to do a lot of testing to find it.
435 If you are lucky, you may manage to find a file that either
436 cannot
437 be sent across your network or that takes much longer to transfer than
438 other similar length files.
439 You can then examine this file for repeated patterns that you can test
440 using the
441 .Fl p
442 option of
443 .Nm .
444 .Sh TTL DETAILS
445 The
446 .Tn TTL
447 value of an IP packet represents the maximum number of IP routers
448 that the packet can go through before being thrown away.
449 In current practice you can expect each router in the Internet to decrement
450 the
451 .Tn TTL
452 field by exactly one.
453 .Pp
454 The
455 .Tn TCP/IP
456 specification recommends setting the
457 .Tn TTL
458 field for
459 .Tn IP
460 packets to 64, but many systems use smaller values
461 .No ( Bx 4.3
462 uses 30,
463 .Bx 4.2
464 used 15).
465 .Pp
466 The maximum possible value of this field is 255, and most
467 .Ux
468 systems set
469 the
470 .Tn TTL
471 field of
472 .Tn ICMP ECHO_REQUEST
473 packets to 255.
474 This is why you will find you can
475 .Dq ping
476 some hosts, but not reach them with
477 .Xr telnet 1
478 or
479 .Xr ftp 1 .
480 .Pp
481 In normal operation
482 .Nm
483 prints the ttl value from the packet it receives.
484 When a remote system receives a ping packet, it can do one of three things
485 with the
486 .Tn TTL
487 field in its response:
488 .Bl -bullet
489 .It
490 Not change it; this is what
491 .Bx
492 systems did before the
493 .Bx 4.3 tahoe
494 release.
495 In this case the
496 .Tn TTL
497 value in the received packet will be 255 minus the
498 number of routers in the round-trip path.
499 .It
500 Set it to 255; this is what current
501 .Bx
502 systems do.
503 In this case the
504 .Tn TTL
505 value in the received packet will be 255 minus the
506 number of routers in the path
507 .Em from
508 the remote system
509 .Em to
510 the
511 .Nm Ns Em ing
512 host.
513 .It
514 Set it to some other value.
515 Some machines use the same value for
516 .Tn ICMP
517 packets that they use for
518 .Tn TCP
519 packets, for example either 30 or 60.
520 Others may use completely wild values.
521 .El
522 .Sh EXIT STATUS
523 The
524 .Nm
525 utility exits with one of the following values:
526 .Bl -tag -width indent
527 .It 0
528 At least one response was heard from the specified
529 .Ar host .
530 .It 2
531 The transmission was successful but no responses were received.
532 .It any other value
533 An error occurred.
534 These values are defined in
535 .In sysexits.h .
536 .El
537 .Sh SEE ALSO
538 .Xr netstat 1 ,
539 .Xr icmp 4 ,
540 .Xr ifconfig 8 ,
541 .Xr routed 8 ,
542 .Xr traceroute 8
543 .Sh HISTORY
544 The
545 .Nm
546 utility appeared in
547 .Bx 4.3 .
548 .Sh AUTHORS
549 The original
550 .Nm
551 utility was written by
552 .An Mike Muuss
553 while at the US Army Ballistics
554 Research Laboratory.
555 .Sh BUGS
556 Many Hosts and Gateways ignore the
557 .Tn RECORD_ROUTE
558 option.
559 .Pp
560 The maximum IP header length is too small for options like
561 .Tn RECORD_ROUTE
562 to be completely useful.
563 .No There Ap s
564 not much that can be done about this, however.
565 .Pp
566 Flood pinging is not recommended in general, and flood pinging the
567 broadcast address should only be done under very controlled conditions.
568 .Pp
569 The
570 .Fl v
571 option is not worth much on busy hosts.