Background: Know: Recognize:





Caution when measuring performance with pingEdit

Basic concept

Ping is a computer network administration utility used to test the reachability of a host on an Internet Protocol (IP) network and to measure the round-trip time for messages sent from the originating host to a destination computer. The name comes from active sonar terminology which sends a pulse of sound and listens for the echo to detect objects underwater. With computer operating systems Ping or PING stands for Packet INternet Groper but is ordinarily written as "ping" instead of the proper acronym for which it stands.

In the performance measurement tools, ping can measure the performance of SLA. Many customers periodically "ping" devices of interest. e.g. Cisco's IOS provides a "ip sla" feature for this, where with Cisco IOS IP SLAs, users can verify service guarantees, increase network reliability by validating network performance, proactively identify network issues, and increase Return on Investment (ROI) by easing the deployment of new IP services .This wiki is related to the slide 12 in week 10: !@!URL must be fixed to be a link to the corresponding wiki page rather than to PDF!@! Performance management.

A ping is used to measure the response time between the source IP SLAs device and each subsequent hop in the path to the destination IP device.

However, measuring performance with ping can also bring about some hazards which presented in the following

a. routers may rate-limit ICMP traffic, or only send a fraction of ICMP responses, therefore, ping appears worse.

Routers on the network paths between the client and target may impose rate limits on how many ICMP packets they will carry per second..

b. ping packets are often shorter than real packets, which would lead to better loss rate.

The related ping utility is implemented using the ICMP xx1T Echo request and Echo reply messages.And echo Request and Echo Reply packets that exceed rate limits are silently discarded, therefore, ping packets are shoter than real packets.

c.normal ping cannot control transport protocol&ports, therefore, it cannot test differentiated network services.

Ping cannot use port numbers because it operates at a level where port number are irrelevant.

d. ping focuses on delay&loss rate, not bandwidth. TCP performance also depends on bandwidth.

Streaming protocols such as TCP can be strongly affected by the bandwidth of a network path. Ping is an application within the TCP/IP protocol stack and it tends to reflect merely the round trip time of a path and not the potential bandwidth of that path. Thus ping tends to be a poor indicator of the kind of throughput that can be obtained on a TCP connection between the client and the target.

e. web server may be running IP (respond to ping) but not server process

Therefore, someone may wander that is Ping a reliable way to check if a server is available?

The best way to tell if any given remote service is alive is to ask it to service a request in the way it's meant to - in fact it's the only way to truly know something is working correctly. Ping only tests for the ability to respond to pings, so that's base OS, parts of the IP stack and the physical links - but that's all, everything else could be down and you'd not know.CMP Echo Requests (aka "Pings") (aka ICMP Type 8) are built onto the IP stack spec, yes, but are not required to be either implemented or used. As a matter of fact, there are a large number of internet providers who refuse to forward those and silently drop those requests, as they are a form of network attack (called a pingflood).As mentioned above, this is handled by the OS (specifically at the network stack level) and so it is up to the OS configuration to respond to those or not. If this is turned off (a security precaution?), you can't do anything about receiving ping replies from the other end. This is why it's not reliable.