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