10

While running a test to diagnose some alleged network problem, I got this output from ping:

--- r01c01b11n02 ping statistics ---
30000 packets transmitted, 29995 received, 0% packet loss, time 6309ms
rtt min/avg/max/mdev = 0.091/0.343/118.051/3.605 ms, pipe 9, ipg/ewma 0.210/0.130 ms
PING r01c02b06n01 (10.1.1.61) 56(84) bytes of data.

The pipe 9 part I had never seen before; currently, I only get it on this couple of hosts, and the actual number varies (e.g., could be pipe 8 or pipe 2).

What does pipe <number> mean in ping output?

Riccardo Murri
  • 243
  • 2
  • 8
  • Btw on some systems, the output is different: my ubuntu shows: `4 packets transmitted, 0 received, +3 errors, 100% packet loss, time 3014ms` and `pipe 3` in different lines which confused my Java code which tries to parse it – Daniel Alder Sep 07 '15 at 11:32

2 Answers2

14

The pipe value in the output of ping indicates the maximum number of unanswered ICMP echo request packets outstanding in the network at some point during the test. It is not normally reported when this value is one (every request received a response before the next request was sent), which is the case under normal operation.

By default, the ping command waits a second between sending echo requests, as per the description on its man page under the -i parameter:

The default is to wait for one second between each packet normally, or not to wait in flood mode. Only super-user may set interval to values less 0.2 seconds.

On most networks, the round trip time (RTT) is typically on the order of tens or hundreds of milliseconds, not seconds, so in this default mode, each echo request will normally receive a response before the following request is sent. The maximum number of outstanding packets in the network is no greater than one at any point in the test, so pipe is equal to 1 and not reported.

Should the response time to a packet rise above this default interval for some reason, causing multiple requests to be outstanding in the network, ping will report a pipe greater than one. Similarly, you can invoke this response by artificially reducing the interval by passing a smaller value than the RTT for the -i parameter of ping.


If the network system is local, then either:

  • your tests are reducing the interval for issuing pings
  • you have enabled flood mode, which does not wait for a response before sending another ping
  • responses are taking a while to come back to your test system from the remote host

Whether this is indicative of a larger problem depends on the scenario, the network hardware, the ping configuration, etc.

Cosmic Ossifrage
  • 1,610
  • 14
  • 23
1

In short:

The “pipe” number is the maximum number of echo request packets that have been under way at one time, without having been answered by an echo reply packet (but did get answered in the end).

A detailed answer can be found at the source for this quote, at http://www.vincentverhagen.nl/2009/06/13/what-does-the-pipe-value-mean-in-the-output-of-ping/.

Riccardo Murri
  • 243
  • 2
  • 8