Annotation of 43BSDReno/sbin/ping/ping.8, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1985 The Regents of the University of California.
                      2: .\" All rights reserved.
                      3: .\"
                      4: .\" Redistribution and use in source and binary forms are permitted provided
                      5: .\" that: (1) source distributions retain this entire copyright notice and
                      6: .\" comment, and (2) distributions including binaries display the following
                      7: .\" acknowledgement:  ``This product includes software developed by the
                      8: .\" University of California, Berkeley and its contributors'' in the
                      9: .\" documentation or other materials provided with the distribution and in
                     10: .\" all advertising materials mentioning features or use of this software.
                     11: .\" Neither the name of the University nor the names of its contributors may
                     12: .\" be used to endorse or promote products derived from this software without
                     13: .\" specific prior written permission.
                     14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
                     15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
                     16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     17: .\"
                     18: .\"    @(#)ping.8      6.6 (Berkeley) 6/24/90
                     19: .\"
                     20: .TH PING 8 "June 24, 1990"
                     21: .UC 6
                     22: .SH NAME
                     23: ping \- send ICMP ECHO_REQUEST packets to network hosts
                     24: .SH SYNOPSIS
                     25: .B ping
                     26: [
                     27: .B -dfnqrvR
                     28: ][
                     29: .B -c
                     30: count][
                     31: .B -i
                     32: wait][
                     33: .B -l
                     34: preload][
                     35: .B -p
                     36: pattern][
                     37: .B -s
                     38: packetsize]
                     39: .SH DESCRIPTION
                     40: .I Ping
                     41: uses the
                     42: ICMP protocol's mandatory ECHO_REQUEST datagram to elicit an
                     43: ICMP ECHO_RESPONSE from a host or gateway.
                     44: ECHO_REQUEST datagrams (``pings'') have an IP and ICMP header,
                     45: followed by a
                     46: .I struct timeval
                     47: and then an arbitrary number of ``pad'' bytes used to fill out the
                     48: packet.
                     49: The options are as follows:
                     50: Other options are:
                     51: .TP
                     52: .I "-c count"
                     53: Stop after sending (and receiving)
                     54: .I count
                     55: ECHO_RESPONSE packets.
                     56: .TP
                     57: .I -d
                     58: Set the SO_DEBUG option on the socket being used.
                     59: .TP
                     60: .I -f
                     61: Flood ping.
                     62: Outputs packets as fast as they come back or one hundred times per second,
                     63: whichever is more.
                     64: For every ECHO_REQUEST sent a period ``.'' is printed, while for ever
                     65: ECHO_REPLY received a backspace is printed.
                     66: This provides a rapid display of how many packets are being dropped.
                     67: Only the super-user may use this option.
                     68: .I "This can be very hard on a network and should be used with caution."
                     69: .TP
                     70: .I "-i wait"
                     71: Wait
                     72: .I wait seconds between sending each packet.
                     73: The default is to wait for one second between each packet.
                     74: This option is incompatible with the
                     75: .I -f
                     76: option.
                     77: .TP
                     78: .I -l preload
                     79: If
                     80: .I preload
                     81: is specified,
                     82: .I ping
                     83: sends that many packets as fast as possible before falling into its normal
                     84: mode of behavior.
                     85: .TP
                     86: .I -n
                     87: Numeric output only.
                     88: No attempt will be made to lookup symbolic names for host addresses.
                     89: .TP
                     90: .I "-p pattern"
                     91: You may specify up to 16 ``pad'' bytes to fill out the packet you send.
                     92: This is useful for diagnosing data-dependent problems in a network.
                     93: For example, ``-p ff'' will cause the sent packet to be filled with all
                     94: ones.
                     95: .TP
                     96: .I -q
                     97: Quiet output.
                     98: Nothing is displayed except the summary lines at startup time and
                     99: when finished.
                    100: .TP
                    101: .B -R
                    102: Record route.
                    103: Includes the RECORD_ROUTE option in the ECHO_REQUEST packet and displays
                    104: the route buffer on returned packets.
                    105: Note that the IP header is only large enough for nine such routes.
                    106: Many hosts ignore or discard this option.
                    107: .TP
                    108: .I -r
                    109: Bypass the normal routing tables and send directly to a host on an attached
                    110: network.
                    111: If the host is not on a directly-attached network, an error is returned.
                    112: This option can be used to ping a local host through an interface
                    113: that has no route through it (e.g., after the interface was dropped by
                    114: .IR routed (8)).
                    115: .TP
                    116: .I "-s packetsize"
                    117: Specifies the number of data bytes to be sent.  
                    118: The default is 56, which translates into 64 ICMP data bytes when combined
                    119: with the 8 bytes of ICMP header data.
                    120: .TP
                    121: .I -v
                    122: Verbose output.
                    123: ICMP packets other than ECHO_RESPONSE that are received are listed.
                    124: .PP
                    125: When using
                    126: .I ping
                    127: for fault isolation, it should first be run on the local host, to verify
                    128: that the local network interface is up and running.
                    129: Then, hosts and gateways further and further away should be ``pinged''.
                    130: Round-trip times and packet loss statistics are computed.
                    131: If duplicate packets are received, they are not included in the packet
                    132: loss calculation, although the round trip time of these packets is used
                    133: in calculating the minimum/average/maximum round-trip time numbers.
                    134: When the specified number of packets have been sent (and received) or
                    135: if the program is terminated with a SIGINT, a brief summary is displayed.
                    136: .PP
                    137: This program is intended for use in network testing, measurement and
                    138: management.
                    139: Because of the load it can impose on the network, it is unwise to use
                    140: .I ping
                    141: during normal operations or from automated scripts.
                    142: .SH ICMP PACKET DETAILS
                    143: An IP header without options is 20 bytes.
                    144: An ICMP ECHO_REQUEST packet contains an additional 8 bytes worth
                    145: of ICMP header followed by an arbitrary amount of data.
                    146: When a
                    147: .I packetsize
                    148: is given, this indicated the size of this extra piece of data (the
                    149: default is 56).
                    150: Thus the amount of data received inside of an IP packet of type ICMP
                    151: ECHO_REPLY will always be 8 bytes more than the requested data space
                    152: (the ICMP header).
                    153: .PP
                    154: If the data space is at least eight bytes large,
                    155: .I ping
                    156: uses the first eight bytes of this space to include a timestamp which
                    157: it uses in the computation of round trip times.
                    158: If less than eight bytes of pad are specified, no round trip times are
                    159: given.
                    160: .SH DUPLICATE AND DAMAGED PACKETS
                    161: .I Ping
                    162: will report duplicate and damaged packets.
                    163: Duplicate packets should never occur, and seem to be caused by
                    164: inappropriate link-level retransmissions.
                    165: Duplicates may occur in many situations and are rarely (if ever) a
                    166: good sign, although the presence of low levels of duplicates may not
                    167: always be cause for alarm.
                    168: .PP
                    169: Damaged packets are obviously serious cause for alarm and often
                    170: indicate broken hardware somewhere in the
                    171: .I ping
                    172: packet's path (in the network or in the hosts).
                    173: .SH TRYING DIFFERENT DATA PATTERNS
                    174: The (inter)network layer should never treat packets differently depending
                    175: on the data contained in the data portion.
                    176: Unfortunately, data-dependent problems have been known to sneak into
                    177: networks and remain undetected for long periods of time.
                    178: In many cases the particular pattern that will have problems is something
                    179: that doesn't have sufficient ``transitions'', such as all ones or all
                    180: zeros, or a pattern right at the edge, such as almost all zeros.
                    181: It isn't necessarily enough to specify a data pattern of all zeros (for
                    182: example) on the command line because the pattern that is of interest is
                    183: at the data link level, and the relationship between what you type and
                    184: what the controllers transmit can be complicated.
                    185: .PP
                    186: This means that if you have a data-dependent problem you will probably
                    187: have to do a lot of testing to find it.
                    188: If you are lucky, you may manage to find a file that either can't be sent
                    189: across your network or that takes much longer to transfer than other
                    190: similar length files.
                    191: You can then examine this file for repeated patterns that you can test
                    192: using the \fI-p\fR option of \fIping\fR.
                    193: .SH TTL DETAILS
                    194: The TTL value of an IP packet represents the maximum number of IP routers
                    195: that the packet can go through before being thrown away.
                    196: In current practice you can expect each router in the Internet to decrement
                    197: the TTL field by exactly one.
                    198: .PP
                    199: The TCP/IP specification states that the TTL field for TCP packets should
                    200: be set to 60, but many systems use smaller values (4.3 BSD uses 30, 4.2 used
                    201: 15).
                    202: .PP
                    203: The maximum possible value of this field is 255, and most Unix systems set
                    204: the TTL field of ICMP ECHO_REQUEST packets to 255.
                    205: This is why you will find you can ``ping'' some hosts, but not reach them
                    206: with
                    207: .I telnet
                    208: or
                    209: .IR ftp .
                    210: .PP
                    211: In normal operation ping prints the ttl value from the packet it receives.
                    212: When a remote system receives a ping packet, it can do one of three things
                    213: with the TTL field in its response:
                    214: .TP
                    215: --
                    216: Not change it; this is what Berkeley Unix systems did before the 4.3BSD-tahoe
                    217: release.
                    218: In this case the TTL value in the received packet will be 255 minus the
                    219: number of routers in the round-trip path.
                    220: .TP
                    221: --
                    222: Set it to 255; this is what current Berkeley Unix systems do.
                    223: In this case the TTL value in the received packet will be 255 minus the
                    224: number of routers in the path
                    225: .I from
                    226: the remote system
                    227: .I to
                    228: the
                    229: .IR ping ing
                    230: host.
                    231: .TP
                    232: --
                    233: Set it to some other value.
                    234: Some machines use the same value for ICMP packets that they use for
                    235: TCP packets, for example either 30 or 60.
                    236: Others may use completely wild values.
                    237: .SH BUGS
                    238: Many Hosts and Gateways ignore the RECORD_ROUTE option.
                    239: .PP
                    240: The maximum IP header length is too small for options like RECORD_ROUTE to
                    241: be completely useful.
                    242: There's not much that that can be done about this, however.
                    243: .PP
                    244: Flood pinging is not recommended in general, and flood pinging the
                    245: broadcast address should only be done under very controlled conditions.
                    246: .SH SEE ALSO
                    247: netstat(1), ifconfig(8), routed(8)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.