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