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