dslreports logo
 
    All Forums Hot Topics Gallery
spc
uniqs
51

koitsu
MVM
join:2002-07-16
Mountain View, CA
Humax BGW320-500

1 edit

koitsu to EG

MVM

to EG

Re: Very jittery upstream (big variation in ping) San Jose, CA

said by EG:

said by koitsu :

He will need to use a tool such as WinMTR or PingPlotter (recommended) which will show where the latency begins and if it trickles down through subsequent network hops.
W.I.W. the PingPlotter app uses ICMP packets by default.

I select TCP packets in this tool when in doubt.
Just to make sure you understand what selecting TCP actually does: it only changes the packet that's sent to the destination during each probe.

As you said, PingPlotter by default sends an ICMP echo packet to the destination. Changing this to UDP or TCP means that the packet sent to the destination is a UDP packet to port {whatever-you-choose} or TCP to port {whatever-you-choose}.

ICMP is still used, however, as it's part of how the tool determines each hop from source to destination. Meaning, each router along the path will respond to the source IP (PingPlotter) with an ICMP time-to-live exceeded message, which is how the path is determined. Some routers may choose not to solicit ICMP at all, in which case these will show up as "* * *" entries in traceroute, or "Unknown" hops in PingPlotter (and it doesn't matter where in the path either, this can happen anywhere).

It is these ICMP packets which get de-prioritised by routers (meaning the router prioritises responding with ICMP traffic *last*).

The Wikipedia entry on traceroute explains how the protocol works. It does require some knowledge of IP in general, but it's not rocket science (in fact traceroute is kind of cool in how it works, in the sense that it sets the TTL to 1, sends a batch of packets, then increments it, more packets, etc.)

So in English: the only reason you'd pick UDP or TCP in PingPlotter is if the final destination does not respond to ICMP echo packets. E.g. if it's a webserver, you might consider enabling TCP and set the destination port to 80.