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