benjojo / sping

Split ping, see what direction the loss or latency is on

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

magnitude difference between rx/tx latency and ping latency

Sangshaai opened this issue · comments

Expected goal: rx latency + tx laentcy ≈ ping latency
But the rx/tx latency by sping does not match the latency of ping, the difference is several orders of magnitude

  • Ping between different nodes

image

  • Loop ping

image

Are both system clocks in sync?

Clock synchronization between servers may be a problem, there is a 20 second difference between the two servers.
But why is there such a big difference on the same node?

I suspect (yet to prove) that loopback testing sping does not work since sping wants to always send on the second exactly, if there are two of them, It likely can't do that. and so you get these slightly wonky times.

For the different nodes, the time function 100% needs very accurate clocks to work. I wrote a post on fiddling around getting accurate time: https://blog.benjojo.co.uk/post/ping-with-loss-latency-split

To summarise it, you can likely find a Stratum 1 NTP server near your server, if it's a home connection though then you will need to look into PPS via GNSS to get decent timing info. Since a lot of last mile access technologies have pretty heavy latency asymmetry

Have I got that right ?Because spring needs two nodes to establish a tcp connection at the same time, the result of the loop test is unreliable.

I have another question. Can I use sping to detect the delay of multiple nodes at the same time on one node?

No the reason that loop test would be ungreat on loopback is because both sping's on the system are trying to send at the exact same time -- but they can't (cos CPUs) so there will always be task scheduling yielding latency.

Can I use sping to detect the delay of multiple nodes at the same time on one node

Yes, you can use -peers 1.1.1.1,2.2.2.2,3.3.3.3 etc etc

Thanks a lot.
:)