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