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