]>
Commit | Line | Data |
---|---|---|
b7080c8e A |
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. All advertising materials mentioning features or use of this software | |
13 | .\" must display the following acknowledgement: | |
14 | .\" This product includes software developed by the University of | |
15 | .\" California, Berkeley and its contributors. | |
16 | .\" 4. Neither the name of the University nor the names of its contributors | |
17 | .\" may be used to endorse or promote products derived from this software | |
18 | .\" without specific prior written permission. | |
19 | .\" | |
20 | .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND | |
21 | .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
22 | .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
23 | .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE | |
24 | .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
25 | .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |
26 | .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |
27 | .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |
28 | .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |
29 | .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
30 | .\" SUCH DAMAGE. | |
31 | .\" | |
32 | .\" @(#)ping.8 8.3 (Berkeley) 4/28/95 | |
33 | .\" | |
34 | .Dd April 28, 1995 | |
35 | .Dt PING 8 | |
36 | .Os BSD 4.3 | |
37 | .Sh NAME | |
38 | .Nm ping | |
39 | .Nd send | |
40 | .Tn ICMP ECHO_REQUEST | |
41 | packets to network hosts | |
42 | .Sh SYNOPSIS | |
43 | .Nm ping | |
44 | .Op Fl Rdfnqrv | |
45 | .Op Fl c Ar count | |
46 | .Op Fl i Ar wait | |
47 | .Op Fl l Ar preload | |
48 | .Op Fl p Ar pattern | |
49 | .Op Fl s Ar packetsize | |
50 | .Ar host | |
51 | .Sh DESCRIPTION | |
52 | .Nm Ping | |
53 | uses the | |
54 | .Tn ICMP | |
55 | protocol's mandatory | |
56 | .Tn ECHO_REQUEST | |
57 | datagram to elicit an | |
58 | .Tn ICMP ECHO_RESPONSE | |
59 | from a host or gateway. | |
60 | .Tn ECHO_REQUEST | |
61 | datagrams (``pings'') have an IP and | |
62 | .Tn ICMP | |
63 | header, | |
64 | followed by a | |
65 | .Dq struct timeval | |
66 | and then an arbitrary number of ``pad'' bytes used to fill out the | |
67 | packet. | |
68 | The options are as follows: | |
69 | .Bl -tag -width Ds | |
70 | .It Fl c Ar count | |
71 | Stop after sending (and receiving) | |
72 | .Ar count | |
73 | .Tn ECHO_RESPONSE | |
74 | packets. | |
75 | .It Fl d | |
76 | Set the | |
77 | .Dv SO_DEBUG | |
78 | option on the socket being used. | |
79 | .It Fl f | |
80 | Flood ping. | |
81 | Outputs packets as fast as they come back or one hundred times per second, | |
82 | whichever is more. | |
83 | For every | |
84 | .Tn ECHO_REQUEST | |
85 | sent a period ``.'' is printed, while for every | |
86 | .Tn ECHO_REPLY | |
87 | received a backspace is printed. | |
88 | This provides a rapid display of how many packets are being dropped. | |
89 | Only the super-user may use this option. | |
90 | .Bf -emphasis | |
91 | This can be very hard on a network and should be used with caution. | |
92 | .Ef | |
93 | .It Fl i Ar wait | |
94 | Wait | |
95 | .Ar wait | |
96 | seconds | |
97 | .Em between sending each packet . | |
98 | The default is to wait for one second between each packet. | |
99 | This option is incompatible with the | |
100 | .Fl f | |
101 | option. | |
102 | .It Fl l Ar preload | |
103 | If | |
104 | .Ar preload | |
105 | is specified, | |
106 | .Nm ping | |
107 | sends that many packets as fast as possible before falling into its normal | |
108 | mode of behavior. | |
109 | .It Fl n | |
110 | Numeric output only. | |
111 | No attempt will be made to lookup symbolic names for host addresses. | |
112 | .It Fl p Ar pattern | |
113 | You may specify up to 16 ``pad'' bytes to fill out the packet you send. | |
114 | This is useful for diagnosing data-dependent problems in a network. | |
115 | For example, | |
116 | .Dq Li \-p ff | |
117 | will cause the sent packet to be filled with all | |
118 | ones. | |
119 | .It Fl q | |
120 | Quiet output. | |
121 | Nothing is displayed except the summary lines at startup time and | |
122 | when finished. | |
123 | .It Fl R | |
124 | Record route. | |
125 | Includes the | |
126 | .Tn RECORD_ROUTE | |
127 | option in the | |
128 | .Tn ECHO_REQUEST | |
129 | packet and displays | |
130 | the route buffer on returned packets. | |
131 | Note that the IP header is only large enough for nine such routes. | |
132 | Many hosts ignore or discard this option. | |
133 | .It Fl r | |
134 | Bypass the normal routing tables and send directly to a host on an attached | |
135 | network. | |
136 | If the host is not on a directly-attached network, an error is returned. | |
137 | This option can be used to ping a local host through an interface | |
138 | that has no route through it (e.g., after the interface was dropped by | |
139 | .Xr routed 8 ) . | |
140 | .It Fl s Ar packetsize | |
141 | Specifies the number of data bytes to be sent. | |
142 | The default is 56, which translates into 64 | |
143 | .Tn ICMP | |
144 | data bytes when combined | |
145 | with the 8 bytes of | |
146 | .Tn ICMP | |
147 | header data. | |
148 | .It Fl v | |
149 | Verbose output. | |
150 | .Tn ICMP | |
151 | packets other than | |
152 | .Tn ECHO_RESPONSE | |
153 | that are received are listed. | |
154 | .El | |
155 | .Pp | |
156 | When using | |
157 | .Nm ping | |
158 | for fault isolation, it should first be run on the local host, to verify | |
159 | that the local network interface is up and running. | |
160 | Then, hosts and gateways further and further away should be ``pinged''. | |
161 | Round-trip times and packet loss statistics are computed. | |
162 | If duplicate packets are received, they are not included in the packet | |
163 | loss calculation, although the round trip time of these packets is used | |
164 | in calculating the minimum/average/maximum round-trip time numbers. | |
165 | When the specified number of packets have been sent (and received) or | |
166 | if the program is terminated with a | |
167 | .Dv SIGINT , | |
168 | a brief summary is displayed. | |
169 | .Pp | |
170 | This program is intended for use in network testing, measurement and | |
171 | management. | |
172 | Because of the load it can impose on the network, it is unwise to use | |
173 | .Nm ping | |
174 | during normal operations or from automated scripts. | |
175 | .Sh ICMP PACKET DETAILS | |
176 | An IP header without options is 20 bytes. | |
177 | An | |
178 | .Tn ICMP | |
179 | .Tn ECHO_REQUEST | |
180 | packet contains an additional 8 bytes worth | |
181 | of | |
182 | .Tn ICMP | |
183 | header followed by an arbitrary amount of data. | |
184 | When a | |
185 | .Ar packetsize | |
186 | is given, this indicated the size of this extra piece of data (the | |
187 | default is 56). | |
188 | Thus the amount of data received inside of an IP packet of type | |
189 | .Tn ICMP | |
190 | .Tn ECHO_REPLY | |
191 | will always be 8 bytes more than the requested data space | |
192 | (the | |
193 | .Tn ICMP | |
194 | header). | |
195 | .Pp | |
196 | If the data space is at least eight bytes large, | |
197 | .Nm ping | |
198 | uses the first eight bytes of this space to include a timestamp which | |
199 | it uses in the computation of round trip times. | |
200 | If less than eight bytes of pad are specified, no round trip times are | |
201 | given. | |
202 | .Sh DUPLICATE AND DAMAGED PACKETS | |
203 | .Nm Ping | |
204 | will report duplicate and damaged packets. | |
205 | Duplicate packets should never occur, and seem to be caused by | |
206 | inappropriate link-level retransmissions. | |
207 | Duplicates may occur in many situations and are rarely (if ever) a | |
208 | good sign, although the presence of low levels of duplicates may not | |
209 | always be cause for alarm. | |
210 | .Pp | |
211 | Damaged packets are obviously serious cause for alarm and often | |
212 | indicate broken hardware somewhere in the | |
213 | .Nm ping | |
214 | packet's path (in the network or in the hosts). | |
215 | .Sh TRYING DIFFERENT DATA PATTERNS | |
216 | The (inter)network layer should never treat packets differently depending | |
217 | on the data contained in the data portion. | |
218 | Unfortunately, data-dependent problems have been known to sneak into | |
219 | networks and remain undetected for long periods of time. | |
220 | In many cases the particular pattern that will have problems is something | |
221 | that doesn't have sufficient ``transitions'', such as all ones or all | |
222 | zeros, or a pattern right at the edge, such as almost all zeros. | |
223 | It isn't necessarily enough to specify a data pattern of all zeros (for | |
224 | example) on the command line because the pattern that is of interest is | |
225 | at the data link level, and the relationship between what you type and | |
226 | what the controllers transmit can be complicated. | |
227 | .Pp | |
228 | This means that if you have a data-dependent problem you will probably | |
229 | have to do a lot of testing to find it. | |
230 | If you are lucky, you may manage to find a file that either can't be sent | |
231 | across your network or that takes much longer to transfer than other | |
232 | similar length files. | |
233 | You can then examine this file for repeated patterns that you can test | |
234 | using the | |
235 | .Fl p | |
236 | option of | |
237 | .Nm ping . | |
238 | .Sh TTL DETAILS | |
239 | The | |
240 | .Tn TTL | |
241 | value of an IP packet represents the maximum number of IP routers | |
242 | that the packet can go through before being thrown away. | |
243 | In current practice you can expect each router in the Internet to decrement | |
244 | the | |
245 | .Tn TTL | |
246 | field by exactly one. | |
247 | .Pp | |
248 | The | |
249 | .Tn TCP/IP | |
250 | specification states that the | |
251 | .Tn TTL | |
252 | field for | |
253 | .Tn TCP | |
254 | packets should | |
255 | be set to 60, but many systems use smaller values (4.3 | |
256 | .Tn BSD | |
257 | uses 30, 4.2 used | |
258 | 15). | |
259 | .Pp | |
260 | The maximum possible value of this field is 255, and most Unix systems set | |
261 | the | |
262 | .Tn TTL | |
263 | field of | |
264 | .Tn ICMP ECHO_REQUEST | |
265 | packets to 255. | |
266 | This is why you will find you can ``ping'' some hosts, but not reach them | |
267 | with | |
268 | .Xr telnet 1 | |
269 | or | |
270 | .Xr ftp 1 . | |
271 | .Pp | |
272 | In normal operation ping prints the ttl value from the packet it receives. | |
273 | When a remote system receives a ping packet, it can do one of three things | |
274 | with the | |
275 | .Tn TTL | |
276 | field in its response: | |
277 | .Bl -bullet | |
278 | .It | |
279 | Not change it; this is what Berkeley Unix systems did before the | |
280 | .Bx 4.3 tahoe | |
281 | release. | |
282 | In this case the | |
283 | .Tn TTL | |
284 | value in the received packet will be 255 minus the | |
285 | number of routers in the round-trip path. | |
286 | .It | |
287 | Set it to 255; this is what current Berkeley Unix systems do. | |
288 | In this case the | |
289 | .Tn TTL | |
290 | value in the received packet will be 255 minus the | |
291 | number of routers in the path | |
292 | .Xr from | |
293 | the remote system | |
294 | .Em to | |
295 | the | |
296 | .Nm ping Ns Em ing | |
297 | host. | |
298 | .It | |
299 | Set it to some other value. | |
300 | Some machines use the same value for | |
301 | .Tn ICMP | |
302 | packets that they use for | |
303 | .Tn TCP | |
304 | packets, for example either 30 or 60. | |
305 | Others may use completely wild values. | |
306 | .El | |
307 | .Sh BUGS | |
308 | Many Hosts and Gateways ignore the | |
309 | .Tn RECORD_ROUTE | |
310 | option. | |
311 | .Pp | |
312 | The maximum IP header length is too small for options like | |
313 | .Tn RECORD_ROUTE | |
314 | to | |
315 | be completely useful. | |
316 | There's not much that that can be done about this, however. | |
317 | .Pp | |
318 | Flood pinging is not recommended in general, and flood pinging the | |
319 | broadcast address should only be done under very controlled conditions. | |
320 | .Sh SEE ALSO | |
321 | .Xr netstat 1 , | |
322 | .Xr ifconfig 8 , | |
323 | .Xr routed 8 | |
324 | .Sh HISTORY | |
325 | The | |
326 | .Nm | |
327 | command appeared in | |
328 | .Bx 4.3 . |