-
Notifications
You must be signed in to change notification settings - Fork 114
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
Add support for packet loss #169
Comments
Hi @kura, I don't know the protocol defined by speedtest.net, so we can only implement the |
And we may only be able to implement this feature on specific platforms. |
@r3inbowari I'm not sure about the speedtest.net protocol either tbh. Any kind of packet loss measurement would be good, otherwise I guess the only option for me would be to have something running iperf and dumping measurements. What exactly would the uplink packet loss measurement be? I only care about it working on Linux so if you do find you can only implement it on specific platforms then I'd guess Linux is probably the most likely to be supported? |
Maybe like this? I am not sure.
This is just the retransmission rate, which is quite different from packet loss. |
Hmmm, yeah retrans isn't really the same as packet loss. I assume what the official Ookla client is doing is sending UDP packets to the server and measuring packet loss (similar to the iperf approach), which might explain why the speedtest server listens on udp/5060 and/or udp/8080. |
Ok, the official Ookla client is definitely doing some UDP traffic.
During the Ookla run 2 new lines appear,
I decided to capture UDP packets with tshark from a speedtest.net run and it's definitely sending UDP packets in the background. I haven't figured out exactly what each part means yet but here is a single capture:
|
This packet looks like it reports a loss counter. and 140200830737 does not look like a timestamp? |
You are right. That is not a timestamp, not sure why I thought it was. I'll do another complete run and packet capture tomorrow and post a larger set of packets and see if I can figure out more of the data that is being sent. |
I think the udp protocol of speedtest may be similar to tcp.
|
This UUID widely used in a |
Ok, so I did a PCAP capture of an entire test again. It's attached here as test.pcap.gz The last 54-70 bytes are the payload, and they tend to alternate in size as the payload content alternates. The increase in size looks like it's the counters going in to double and then triple digits.
I think you are right about it being like the TCP protocol. I'm not sure why there are 2 UUIDs, It also sends these packets on 2 different UDP connections, the odd numbered packets are being sent from |
Some Ookla speedtest servers support a packet loss value. I'm not sure why it's only some, rather than all...
For example these server IDs should all support packet loss:
It gets return by the Ookla CLI in both normal text output and also JSON output (note I've removed a bunch of stuff from this output to make it easier to read):
Would it be possible to add packet loss support to speedtest-go? I like the fact the Ookla CLI can handle the packet loss data, but recently I switched away because it stopped being able to get anywhere close to my max connection speed but the lack of packet loss data is bugginng me.
The text was updated successfully, but these errors were encountered: