It's a common task to check network 'quality' – latency, number of dropped packets etc. But 'ping' has a number of drawbacks:
– It uses ICMP. Many ISP has different shapers for ICMP and TCP traffic, so 'ping' will show 10ms latency, but TCP connections will experience 1000ms+.
– It sends very small amount of packets. By default, one packet every second. Since TCP protocol tolerates packets loss (it can operate very well is half packets are lost – it's normal), it's absolutely unclear if ping's "30% packet loss" killing connection or if it's absolutely normal.
So, is it any alternative for ping that use TCP connection instead of ICMP and checks internet connection quality?
Best Answer
Regardless of the fact that TCP can tolerate packet-loss/packet-ordering issues, a ping loss of 30% is still quite significant if the "population" is large enough - i.e., more than say 100 pings.
But to answer the question, you can look at nmap. I'm sure examples will come flooding in shortly :)
More importantly though, you don't want just a round-trip time, you really want to see the performance from your machine to the server and back at every (possible) hop.
You can do this with
traceroute
- however the most commonly found version of this is done using ICMP or UDP, but search fortcp traceroute
- and start there.Here are some fun tools to try while you're at it...
Here's an example with
lft
...