Annotation of 43BSDReno/sbin/ping/ping.8, revision 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.