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