]> git.saurik.com Git - apple/network_cmds.git/blob - ping.tproj/ping.8
network_cmds-606.100.3.tar.gz
[apple/network_cmds.git] / ping.tproj / ping.8
1 .\" Copyright (c) 1999-2013 Apple Inc. All rights reserved.
2 .\"
3 .\" @APPLE_OSREFERENCE_LICENSE_HEADER_START@
4 .\"
5 .\" This file contains Original Code and/or Modifications of Original Code
6 .\" as defined in and that are subject to the Apple Public Source License
7 .\" Version 2.0 (the 'License'). You may not use this file except in
8 .\" compliance with the License. The rights granted to you under the License
9 .\" may not be used to create, or enable the creation or redistribution of,
10 .\" unlawful or unlicensed copies of an Apple operating system, or to
11 .\" circumvent, violate, or enable the circumvention or violation of, any
12 .\" terms of an Apple operating system software license agreement.
13 .\"
14 .\" Please obtain a copy of the License at
15 .\" http://www.opensource.apple.com/apsl/ and read it before using this file.
16 .\"
17 .\" The Original Code and all software distributed under the License are
18 .\" distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
19 .\" EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
20 .\" INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
21 .\" FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
22 .\" Please see the License for the specific language governing rights and
23 .\" limitations under the License.
24 .\"
25 .\" @APPLE_OSREFERENCE_LICENSE_HEADER_END@
26 .\"
27 .\" Copyright (c) 1985, 1991, 1993
28 .\" The Regents of the University of California. All rights reserved.
29 .\"
30 .\" Redistribution and use in source and binary forms, with or without
31 .\" modification, are permitted provided that the following conditions
32 .\" are met:
33 .\" 1. Redistributions of source code must retain the above copyright
34 .\" notice, this list of conditions and the following disclaimer.
35 .\" 2. Redistributions in binary form must reproduce the above copyright
36 .\" notice, this list of conditions and the following disclaimer in the
37 .\" documentation and/or other materials provided with the distribution.
38 .\" 4. Neither the name of the University nor the names of its contributors
39 .\" may be used to endorse or promote products derived from this software
40 .\" without specific prior written permission.
41 .\"
42 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
43 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
44 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
45 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
46 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
47 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
48 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
49 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
50 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
51 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
52 .\" SUCH DAMAGE.
53 .\"
54 .\" @(#)ping.8 8.2 (Berkeley) 12/11/93
55 .\"
56 .Dd March 29, 2013
57 .Dt PING 8
58 .Os
59 .Sh NAME
60 .Nm ping
61 .Nd send
62 .Tn ICMP ECHO_REQUEST
63 packets to network hosts
64 .Sh SYNOPSIS
65 .Nm
66 .Op Fl AaCDdfnoQqRrv
67 .Op Fl b Ar boundif
68 .Op Fl c Ar count
69 .Op Fl G Ar sweepmaxsize
70 .Op Fl g Ar sweepminsize
71 .Op Fl h Ar sweepincrsize
72 .Op Fl i Ar wait
73 .Op Fl k Ar trafficclass
74 .Op Fl K Ar netservicetype
75 .Op Fl l Ar preload
76 .Op Fl M Cm mask | time
77 .Op Fl m Ar ttl
78 .Op Fl P Ar policy
79 .Op Fl p Ar pattern
80 .Op Fl S Ar src_addr
81 .Op Fl s Ar packetsize
82 .Op Fl t Ar timeout
83 .Op Fl W Ar waittime
84 .Op Fl z Ar tos
85 .Op Fl Fl apple-connect
86 .Op Fl Fl apple-time
87 .Ar host
88 .Nm
89 .Op Fl AaDdfLnoQqRrv
90 .Op Fl b Ar boundif
91 .Op Fl c Ar count
92 .Op Fl I Ar iface
93 .Op Fl i Ar wait
94 .Op Fl k Ar trafficclass
95 .Op Fl K Ar netservicetype
96 .Op Fl l Ar preload
97 .Op Fl M Cm mask | time
98 .Op Fl m Ar ttl
99 .Op Fl P Ar policy
100 .Op Fl p Ar pattern
101 .Op Fl S Ar src_addr
102 .Op Fl s Ar packetsize
103 .Op Fl T Ar ttl
104 .Op Fl t Ar timeout
105 .Op Fl W Ar waittime
106 .Op Fl z Ar tos
107 .Op Fl Fl apple-connect
108 .Op Fl Fl apple-time
109 .Ar mcast-group
110 .Sh DESCRIPTION
111 The
112 .Nm
113 utility uses the
114 .Tn ICMP
115 .No protocol Ap s mandatory
116 .Tn ECHO_REQUEST
117 datagram to elicit an
118 .Tn ICMP ECHO_RESPONSE
119 from a host or gateway.
120 .Tn ECHO_REQUEST
121 datagrams
122 .Pq Dq pings
123 have an IP and
124 .Tn ICMP
125 header, followed by a
126 .Dq struct timeval
127 and then an arbitrary number of
128 .Dq pad
129 bytes used to fill out the packet.
130 The options are as follows:
131 .Bl -tag -width indent
132 .It Fl A
133 Audible.
134 Output a bell
135 .Tn ( ASCII
136 0x07)
137 character when no packet is received before the next packet
138 is transmitted.
139 To cater for round-trip times that are longer than the interval
140 between transmissions, further missing packets cause a bell only
141 if the maximum number of unreceived packets has increased.
142 .It Fl a
143 Audible.
144 Include a bell
145 .Tn ( ASCII
146 0x07)
147 character in the output when any packet is received.
148 This option is ignored
149 if other format options are present.
150 .It Fl b Ar boundif
151 Bind the socket to interface
152 .Ar boundif
153 for sending.
154 This option is an Apple addition.
155 .It Fl C
156 Prohibit the socket from using the cellular network interface.
157 This option is an Apple addition.
158 .It Fl c Ar count
159 Stop after sending
160 (and receiving)
161 .Ar count
162 .Tn ECHO_RESPONSE
163 packets.
164 If this option is not specified,
165 .Nm
166 will operate until interrupted.
167 If this option is specified in conjunction with ping sweeps,
168 each sweep will consist of
169 .Ar count
170 packets.
171 .It Fl D
172 Set the Don't Fragment bit.
173 .It Fl d
174 Set the
175 .Dv SO_DEBUG
176 option on the socket being used.
177 .It Fl f
178 Flood ping.
179 Outputs packets as fast as they come back or one hundred times per second,
180 whichever is more.
181 For every
182 .Tn ECHO_REQUEST
183 sent a period
184 .Dq .\&
185 is printed, while for every
186 .Tn ECHO_REPLY
187 received a backspace is printed.
188 This provides a rapid display of how many packets are being dropped.
189 Only the super-user may use this option.
190 .Bf -emphasis
191 This can be very hard on a network and should be used with caution.
192 .Ef
193 .It Fl G Ar sweepmaxsize
194 Specify the maximum size of
195 .Tn ICMP
196 payload when sending sweeping pings.
197 This option is required for ping sweeps.
198 .It Fl g Ar sweepminsize
199 Specify the size of
200 .Tn ICMP
201 payload to start with when sending sweeping pings.
202 The default value is 0.
203 .It Fl h Ar sweepincrsize
204 Specify the number of bytes to increment the size of
205 .Tn ICMP
206 payload after
207 each sweep when sending sweeping pings.
208 The default value is 1.
209 .It Fl I Ar iface
210 Source multicast packets with the given interface address.
211 This flag only applies if the ping destination is a multicast address.
212 .It Fl i Ar wait
213 Wait
214 .Ar wait
215 seconds
216 .Em between sending each packet .
217 The default is to wait for one second between each packet.
218 The wait time may be fractional, but only the super-user may specify
219 values less than 0.1 second.
220 This option is incompatible with the
221 .Fl f
222 option.
223 .It Fl k Ar trafficclass
224 Specifies the traffic class to use for sending ICMP packets.
225 The supported traffic classes are
226 BK_SYS, BK, BE, RD, OAM, AV, RV, VI, VO and CTL.
227 By default
228 .Nm
229 uses the control traffic class (CTL).
230 This option is an Apple addition.
231 .It Fl K Ar netservicetype
232 Specifies the network service type to use for sending ICMP packets.
233 The supported network service type are BK_SYS, BK, BE, RV, AV, RD, OAM, VI, SIG and VO.
234 Note this overrides the default traffic class (-k can still be specified after -K to use both).
235 This option is an Apple addition.
236 .It Fl L
237 Suppress loopback of multicast packets.
238 This flag only applies if the ping destination is a multicast address.
239 .It Fl l Ar preload
240 If
241 .Ar preload
242 is specified,
243 .Nm
244 sends that many packets as fast as possible before falling into its normal
245 mode of behavior.
246 Only the super-user may use this option.
247 .It Fl M Cm mask | time
248 Use
249 .Dv ICMP_MASKREQ
250 or
251 .Dv ICMP_TSTAMP
252 instead of
253 .Dv ICMP_ECHO .
254 For
255 .Cm mask ,
256 print the netmask of the remote machine.
257 Set the
258 .Va net.inet.icmp.maskrepl
259 MIB variable to enable
260 .Dv ICMP_MASKREPLY .
261 For
262 .Cm time ,
263 print the origination, reception and transmission timestamps.
264 .It Fl m Ar ttl
265 Set the IP Time To Live for outgoing packets.
266 If not specified, the kernel uses the value of the
267 .Va net.inet.ip.ttl
268 MIB variable.
269 .It Fl n
270 Numeric output only.
271 No attempt will be made to lookup symbolic names for host addresses.
272 .It Fl o
273 Exit successfully after receiving one reply packet.
274 .It Fl P Ar policy
275 .Ar policy
276 specifies IPsec policy for the ping session.
277 For details please refer to
278 .Xr ipsec 4
279 and
280 .Xr ipsec_set_policy 3 .
281 .It Fl p Ar pattern
282 You may specify up to 16
283 .Dq pad
284 bytes to fill out the packet you send.
285 This is useful for diagnosing data-dependent problems in a network.
286 For example,
287 .Dq Li \-p ff
288 will cause the sent packet to be filled with all
289 ones.
290 .It Fl Q
291 Somewhat quiet output.
292 .No Don Ap t
293 display ICMP error messages that are in response to our query messages.
294 Originally, the
295 .Fl v
296 flag was required to display such errors, but
297 .Fl v
298 displays all ICMP error messages.
299 On a busy machine, this output can be overbearing.
300 Without the
301 .Fl Q
302 flag,
303 .Nm
304 prints out any ICMP error messages caused by its own ECHO_REQUEST
305 messages.
306 .It Fl q
307 Quiet output.
308 Nothing is displayed except the summary lines at startup time and
309 when finished.
310 .It Fl R
311 Record route.
312 Includes the
313 .Tn RECORD_ROUTE
314 option in the
315 .Tn ECHO_REQUEST
316 packet and displays
317 the route buffer on returned packets.
318 Note that the IP header is only large enough for nine such routes;
319 the
320 .Xr traceroute 8
321 command is usually better at determining the route packets take to a
322 particular destination.
323 If more routes come back than should, such as due to an illegal spoofed
324 packet, ping will print the route list and then truncate it at the correct
325 spot.
326 Many hosts ignore or discard the
327 .Tn RECORD_ROUTE
328 option.
329 .It Fl r
330 Bypass the normal routing tables and send directly to a host on an attached
331 network.
332 If the host is not on a directly-attached network, an error is returned.
333 This option can be used to ping a local host through an interface
334 that has no route through it
335 (e.g., after the interface was dropped by
336 .Xr routed 8 ) .
337 .It Fl S Ar src_addr
338 Use the following IP address as the source address in outgoing packets.
339 On hosts with more than one IP address, this option can be used to
340 force the source address to be something other than the IP address
341 of the interface the probe packet is sent on.
342 If the IP address
343 is not one of this machine's interface addresses, an error is
344 returned and nothing is sent.
345 .It Fl s Ar packetsize
346 Specify the number of data bytes to be sent.
347 The default is 56, which translates into 64
348 .Tn ICMP
349 data bytes when combined
350 with the 8 bytes of
351 .Tn ICMP
352 header data.
353 This option cannot be used with ping sweeps.
354 .It Fl T Ar ttl
355 Set the IP Time To Live for multicasted packets.
356 This flag only applies if the ping destination is a multicast address.
357 .It Fl t Ar timeout
358 Specify a timeout, in seconds, before ping exits regardless of how
359 many packets have been received.
360 .It Fl v
361 Verbose output.
362 .Tn ICMP
363 packets other than
364 .Tn ECHO_RESPONSE
365 that are received are listed.
366 .It Fl W Ar waittime
367 Time in milliseconds to wait for a reply for each packet sent.
368 If a reply arrives later, the packet is not printed as replied, but
369 considered as replied when calculating statistics.
370 .It Fl z Ar tos
371 Use the specified type of service.
372 .It Fl Fl apple-connect
373 Connects the socket to the destination address.
374 This option is an Apple addition.
375 .It Fl Fl apple-time
376 Prints the time a packet was received.
377 This option is an Apple addition.
378 .El
379 .Pp
380 When using
381 .Nm
382 for fault isolation, it should first be run on the local host, to verify
383 that the local network interface is up and running.
384 Then, hosts and gateways further and further away should be
385 .Dq pinged .
386 Round-trip times and packet loss statistics are computed.
387 If duplicate packets are received, they are not included in the packet
388 loss calculation, although the round trip time of these packets is used
389 in calculating the round-trip time statistics.
390 When the specified number of packets have been sent
391 (and received)
392 or if the program is terminated with a
393 .Dv SIGINT ,
394 a brief summary is displayed, showing the number of packets sent and
395 received, and the minimum, mean, maximum, and standard deviation of
396 the round-trip times.
397 .Pp
398 If
399 .Nm
400 receives a
401 .Dv SIGINFO
402 (see the
403 .Cm status
404 argument for
405 .Xr stty 1 )
406 signal, the current number of packets sent and received, and the
407 minimum, mean, and maximum of the round-trip times will be written to
408 the standard error output.
409 .Pp
410 This program is intended for use in network testing, measurement and
411 management.
412 Because of the load it can impose on the network, it is unwise to use
413 .Nm
414 during normal operations or from automated scripts.
415 .Sh ICMP PACKET DETAILS
416 An IP header without options is 20 bytes.
417 An
418 .Tn ICMP
419 .Tn ECHO_REQUEST
420 packet contains an additional 8 bytes worth of
421 .Tn ICMP
422 header followed by an arbitrary amount of data.
423 When a
424 .Ar packetsize
425 is given, this indicated the size of this extra piece of data
426 (the default is 56).
427 Thus the amount of data received inside of an IP packet of type
428 .Tn ICMP
429 .Tn ECHO_REPLY
430 will always be 8 bytes more than the requested data space
431 (the
432 .Tn ICMP
433 header).
434 .Pp
435 If the data space is at least eight bytes large,
436 .Nm
437 uses the first eight bytes of this space to include a timestamp which
438 it uses in the computation of round trip times.
439 If less than eight bytes of pad are specified, no round trip times are
440 given.
441 .Sh DUPLICATE AND DAMAGED PACKETS
442 The
443 .Nm
444 utility will report duplicate and damaged packets.
445 Duplicate packets should never occur when pinging a unicast address,
446 and seem to be caused by
447 inappropriate link-level retransmissions.
448 Duplicates may occur in many situations and are rarely
449 (if ever)
450 a good sign, although the presence of low levels of duplicates may not
451 always be cause for alarm.
452 Duplicates are expected when pinging a broadcast or multicast address,
453 since they are not really duplicates but replies from different hosts
454 to the same request.
455 .Pp
456 Damaged packets are obviously serious cause for alarm and often
457 indicate broken hardware somewhere in the
458 .Nm
459 packet's path (in the network or in the hosts).
460 .Sh TRYING DIFFERENT DATA PATTERNS
461 The
462 (inter)network
463 layer should never treat packets differently depending on the data
464 contained in the data portion.
465 Unfortunately, data-dependent problems have been known to sneak into
466 networks and remain undetected for long periods of time.
467 In many cases the particular pattern that will have problems is something
468 that does not have sufficient
469 .Dq transitions ,
470 such as all ones or all zeros, or a pattern right at the edge, such as
471 almost all zeros.
472 It is not
473 necessarily enough to specify a data pattern of all zeros (for example)
474 on the command line because the pattern that is of interest is
475 at the data link level, and the relationship between what you type and
476 what the controllers transmit can be complicated.
477 .Pp
478 This means that if you have a data-dependent problem you will probably
479 have to do a lot of testing to find it.
480 If you are lucky, you may manage to find a file that either
481 cannot
482 be sent across your network or that takes much longer to transfer than
483 other similar length files.
484 You can then examine this file for repeated patterns that you can test
485 using the
486 .Fl p
487 option of
488 .Nm .
489 .Sh TTL DETAILS
490 The
491 .Tn TTL
492 value of an IP packet represents the maximum number of IP routers
493 that the packet can go through before being thrown away.
494 In current practice you can expect each router in the Internet to decrement
495 the
496 .Tn TTL
497 field by exactly one.
498 .Pp
499 The
500 .Tn TCP/IP
501 specification recommends setting the
502 .Tn TTL
503 field for
504 .Tn IP
505 packets to 64, but many systems use smaller values
506 .No ( Bx 4.3
507 uses 30,
508 .Bx 4.2
509 used 15).
510 .Pp
511 The maximum possible value of this field is 255, and most
512 .Ux
513 systems set
514 the
515 .Tn TTL
516 field of
517 .Tn ICMP ECHO_REQUEST
518 packets to 255.
519 This is why you will find you can
520 .Dq ping
521 some hosts, but not reach them with
522 .Xr telnet 1
523 or
524 .Xr ftp 1 .
525 .Pp
526 In normal operation
527 .Nm
528 prints the ttl value from the packet it receives.
529 When a remote system receives a ping packet, it can do one of three things
530 with the
531 .Tn TTL
532 field in its response:
533 .Bl -bullet
534 .It
535 Not change it; this is what
536 .Bx
537 systems did before the
538 .Bx 4.3 tahoe
539 release.
540 In this case the
541 .Tn TTL
542 value in the received packet will be 255 minus the
543 number of routers in the round-trip path.
544 .It
545 Set it to 255; this is what current
546 .Bx
547 systems do.
548 In this case the
549 .Tn TTL
550 value in the received packet will be 255 minus the
551 number of routers in the path
552 .Em from
553 the remote system
554 .Em to
555 the
556 .Nm Ns Em ing
557 host.
558 .It
559 Set it to some other value.
560 Some machines use the same value for
561 .Tn ICMP
562 packets that they use for
563 .Tn TCP
564 packets, for example either 30 or 60.
565 Others may use completely wild values.
566 .El
567 .Sh EXIT STATUS
568 The
569 .Nm
570 utility exits with one of the following values:
571 .Bl -tag -width indent
572 .It 0
573 At least one response was heard from the specified
574 .Ar host .
575 .It 2
576 The transmission was successful but no responses were received.
577 .It any other value
578 An error occurred.
579 These values are defined in
580 .In sysexits.h .
581 .El
582 .Sh SEE ALSO
583 .Xr netstat 1 ,
584 .Xr ifconfig 8 ,
585 .Xr routed 8 ,
586 .Xr traceroute 8 ,
587 .Xr ping6 8
588 .Sh HISTORY
589 The
590 .Nm
591 utility appeared in
592 .Bx 4.3 .
593 .Sh AUTHORS
594 The original
595 .Nm
596 utility was written by
597 .An Mike Muuss
598 while at the US Army Ballistics
599 Research Laboratory.
600 .Sh BUGS
601 Many Hosts and Gateways ignore the
602 .Tn RECORD_ROUTE
603 option.
604 .Pp
605 The maximum IP header length is too small for options like
606 .Tn RECORD_ROUTE
607 to be completely useful.
608 .No There Ap s
609 not much that can be done about this, however.
610 .Pp
611 Flood pinging is not recommended in general, and flood pinging the
612 broadcast address should only be done under very controlled conditions.
613 .Pp
614 The
615 .Fl v
616 option is not worth much on busy hosts.