Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How are latencies in Up- and Downlink measured? #5

Open
joergdeutschmann-i7 opened this issue Nov 4, 2022 · 4 comments
Open

How are latencies in Up- and Downlink measured? #5

joergdeutschmann-i7 opened this issue Nov 4, 2022 · 4 comments

Comments

@joergdeutschmann-i7
Copy link

First of all, a big thanks for this great software, which works really nice!

In the graphs, the latency for Up and Down is shown.
I'm wondering how this is done considering that client and server are usually different machines with unsynchronized clocks?

@Zoxc
Copy link
Owner

Zoxc commented Nov 4, 2022

The clocks are synchronized at the beginning of the test. Adjusting for clock drift with a synchronization at the end of the test is on my todo list. You may currently observe some clock drift with longer test durations.

@joergdeutschmann-i7
Copy link
Author

Okay, so the assumption is then a symmetrical path regarding delays? Could you point me to the code where this is done?

@Zoxc
Copy link
Owner

Zoxc commented Nov 4, 2022

Yes, it assumes the delays are symmetric on idle. The code is here. This function returns an offset to convert server time into client time.

@dtaht
Copy link

dtaht commented Dec 6, 2022

On linux it's only a couple calls to sample TCP_INFO:

this one runs out of band, not useful... https://www.measurementlab.net/tests/tcp-info/
https://docs.trafficserver.apache.org/en/9.0.x/admin-guide/plugins/tcpinfo.en.html runs inband, but doesn't do any post-processing

this method could be used to hook some other tool that uses some common rust geturl or equivalent lib - https://linuxgazette.net/136/pfeiffer.html

And these calls can be used on windows:

https://learn.microsoft.com/en-us/windows/win32/winsock/sio-tcp-info
https://learn.microsoft.com/en-us/windows/win32/api/mstcpip/ns-mstcpip-tcp_info_v1

just ULONG RttUs; sampled every 10-50ms
ULONG MinRttUs; vs this baseline

would be a way of measuring inband. Right now crusader just measures the effectiveness of FQ, not the actual behavior of tcp flows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants