perfsonar / owamp

A tool for performing one-way or two-way active measurements
Apache License 2.0
70 stars 30 forks source link

TWAMP wrong reflect jitter reporting? #88

Closed brointhemix closed 1 year ago

brointhemix commented 1 year ago

Dear perfSONAR Team,

First of all, huge thanks for developing and maintaining the TWAMP package!

I run a small number of twamp-client and twamp-server instances where every TWAMP client and TWAMP server are behind NAT on each end all running in LXC and Docker containers.

For every measurement I run all metrics seem correct but every time the reflect jitter is extremely low, at 0.2 or 0.3 ms, while the send jitter shows some higher value which roughly corresponds to what I can see from a regular traceroute. This happens every time for every test I remember I have run.

Can you please say if this is a bug in reflect jitter value always showing extremely low values or is there something I do not understand? I must run my xWAMP measurements behind NAT on both ends at all times so I have no option to see how OWAMP would behave as it does not support NAT traversal.

--- twping statistics from X:Y to XX:YY ---
SID:    ABCD
first:  2023-07-12T11:35:20.440
last:   2023-07-12T11:35:31.319
100 sent, 0 lost (0.000%), 0 send duplicates, 0 reflect duplicates
round-trip time min/median/max = 192/192/198 ms, (err=3.48 ms)
send time min/median/max = 90.3/90.9/95.8 ms, (err=1.74 ms)
reflect time min/median/max = 101/102/104 ms, (err=1.74 ms)
reflector processing time min/max = 0.00525/0.0768 ms
two-way jitter = 3.8 ms (P95-P50)
send jitter = 3.6 ms (P95-P50)
reflect jitter = 0.3 ms (P95-P50)
send hops = 10 (consistently)
reflect hops = 12 (consistently)
mfeit-internet2 commented 1 year ago

Both the TWAMP protocol and our implementation are largely derived from OWAMP, which is a good track record for coming up with the right answers.

The result you posted shows a different number of hops between the forward (sending) and reverse (reflected) directions and a difference in latency of about 10 ms between them. Those may indicate that traffic between the two points is experiencing asymmetric routing (i.e., forward and reverse take two different paths). Comparing traceroutes from A to B and B to A would confirm that.

If you're using another, non-TWAMP-based tool for comparison and it shows results close to the two-way jitter, it's measuring the behavior of the entire path in both directions. The higher of the jitter numbers will have a big influence on the result.

HTH.

brointhemix commented 1 year ago

Hello Mark,

Thank you for the reply!

What I gave was just one example but I get this behaviour of reflect jitter always showing 0.2 or 0.3 for multiple targets, with same or different hop counts forward and back. I understand the difference between round-trip jitter and src-dst and separate dst-src jitter but I cannot believe that jitter appears only one way and never the other especially when I run the tests across public Internet between different ISPs.

I will gather some more examples and will post them in here.

Scratch the above. I will do some good testing on my end first and will re-open the thread if I still believe there is something wrong.

Thank you for the explanation.