MPING(8)

NAME
mping - send ICMP ECHO_REQUEST packets to multiple network hosts in a round-robbin fashion. Mping support both IPv4 and IPv6 adresses at the same time.

SYNOPSIS
mping [ -rqvpmfn46a] [ -c count] [ -i interval] [ -s packetsize] [ -w waittime] hosts...

DESCRIPTION
The DARPA Internet is a large and complex aggregation of network hardware, connected together by gateways. Tracking a single-point hardware or software failure can often be difficult. Mping utilizes the ICMP protocol's mandatory ECHO_REQUEST datagram to elicit an ICMP ECHO_RESPONSE from hosts and gateways. ECHO_REQUEST datagrams (``pings'') have an IP and ICMP header, followed by a struct timeval, and then an arbitrary number of ``pad'' bytes used to fill out the packet. Default datagram length is 64 bytes, but this may be changed using the command-line option.

Mping sends one datagram per second, and prints one line of output for every ECHO_RESPONSE returned. No output is produced if there is no response. If an optional count is given, only that number of requests is sent to each host. Round-trip times and packet loss statistics are computed. When all responses have been received or the program times out (with a count specified), or if the program is terminated with a SIGINT, a brief summary is displayed.

OPTIONS

-r  Bypass the normal routing tables and send directly to a host on an attached network. If the host is not on a directly-attached network, an error is returned. This option can be used to ping a local host through an interface that has no route through it (e.g., after the interface was dropped by routed(8C)).

-q  Quiet output. Nothing is displayed except the summary line on termination.

-v  Verbose output. ICMP packets other than ECHO RESPONSE that are received are listed.

-p  Packed output. Redundant text is removed, to save diskspace when large amount of output is to be saved to disk.

-m  Print out median instead of max.

-f  Print out 10/50/90-percentile instead of min/avg/max.

-n  Don't look up ip-numbers. Without this option, mping will try to look up ip-numbers given as output, and translate them to hostnames.

-4  Prefer IPv4 adress on multiple DNS hits.

-6  Prefer IPv6 adress on multiple DNS hits.

-a  Automatically scale SI time units (sec/msec/usec). Note that this has no effect if used together with -p, as this will make mping default to using msec.

-c count
    Number of packets to send to each host.

-i interval
    Time (in msec) to wait between each packet is sent out. The packets are sent out in a Round Robin fasion, so when a packet is sent to the last host, the next packet to the first host is sent waittime msec after. The default setting is 10 packets per second.

-s packetsize
    Size of the data space of the ICMP packet (-8 bytes).

-w waittime
    Time (in msec) to wait before a packet time-out and is reported as lost (This option is not implemented yet).

RESOURCES
This program is intended for use in network testing, measurement and management. It should be used with care not to overload the network or the host it's running on.

DETAILS
An IP header without options is 20 bytes. An ICMP ECHO_REQUEST packet contains an additional 8 bytes worth of ICMP header followed by an arbitrary amount of data. When a packetsize is given, this indicate the size of this extra blob of data (the default is 56). Thus the amount of data received inside of an IP packet of type ICMP ECHO_REPLY will always be 8 bytes more than the requested data space (the ICMP header).

If the data space is at least eight bytes large, ping uses the first eight bytes of this space to include a timestamp which it uses in the computation of round trip times. This explains why if less than eight bytes of pad are requested, no round trip times are given.

BUGS
If using mping on an IPv6 network, you will need a kernel which support automatic packet checksum generation for IPv6. For GNU/Linux this means a fairly new kernel is needed, namely >= 2.4.19.

Mping need to be setuid and owned by root to be executed by unpriviledged users. Please consider the security issues involved if you decide to do this.

The program is developed under GNU/Linux, and tested to work on GNU/Linux, NetBSD and FreeBSD. Mping will probably work on most *NIX platforms, but feedback is appreciated.

HISTORY AND AUTHORS
Mping-1.0 originally written by Vegard Engen for UNINETT in 1996, based heavily on ping(8) by Mike Muus. Mping-1.0 was developed on SunOS.

Mping-1.3 was a bugfix version written by Frank Aune for UNINETT in 2002. Mping-1.3 was developed on GNU/Linux and designed to run on NetBSD.

Mping-2.0 is a rewrite of Mping-1.0 and Mping-1.3 and was written by Frank Aune and Stig Venaas for UNINETT in 2003. Mping-2.0 is based on ping(8) and ping6(8) from the UNIX iputils package. Mping-2.0 is developed on GNU/Linux and NetBSD, and is designed to run on both platforms.

SEE ALSO
ping(8), ping6(8), netstat(1), ifconfig(8C)

AVAILABILITY
Mping is available from http://mping.uninett.no, where you can see how we utilize this simple tool in our network services.