network-quality/goresponsiveness

Cosmetic:

moeller0 opened this issue · 5 comments

From a recent test:

bash-3.2$ time ./networkQuality --config mensura.cdn-apple.com --port 443 --path /api/v1/gm/config  --sattimeout 60 --extended-stats --logger-filename go_networkQuality_$(date +%Y%m%d_%H%M%S)
11-01-2022 10:40:26 UTC Go Responsiveness to mensura.cdn-apple.com:443...
Download:  16.715 Mbps (  2.089 MBps), using 12 parallel connections.
Upload:     6.530 Mbps (  0.816 MBps), using 16 parallel connections.
RPM:   376
Extended Statistics:
	Maximum Segment Size: 1344
	Total Bytes Retransmitted: 1225
	Retransmission Ratio: +Inf%
	Total Bytes Reordered: 9470083
	Average RTT: 280.25


real	0m11.433s
user	0m0.536s
sys	0m0.585s

I note that Retransmission Ratio: +Inf% implies something like a division by zero, maybe this could be handled slightly more user friendly? This might be caused by using ECN so that there were no true retransmissions happening.

Which brings me to a feature-request, could the ECN-ness of the connections also be reported as part of the extended statistics?

From a recent test:

bash-3.2$ time ./networkQuality --config mensura.cdn-apple.com --port 443 --path /api/v1/gm/config  --sattimeout 60 --extended-stats --logger-filename go_networkQuality_$(date +%Y%m%d_%H%M%S)
11-01-2022 10:40:26 UTC Go Responsiveness to mensura.cdn-apple.com:443...
Download:  16.715 Mbps (  2.089 MBps), using 12 parallel connections.
Upload:     6.530 Mbps (  0.816 MBps), using 16 parallel connections.
RPM:   376
Extended Statistics:
	Maximum Segment Size: 1344
	Total Bytes Retransmitted: 1225
	Retransmission Ratio: +Inf%
	Total Bytes Reordered: 9470083
	Average RTT: 280.25


real	0m11.433s
user	0m0.536s
sys	0m0.585s

I note that Retransmission Ratio: +Inf% implies something like a division by zero, maybe this could be handled slightly more user friendly? This might be caused by using ECN so that there were no true retransmissions happening.

Thank you!! Noted and we will fix!

Which brings me to a feature-request, could the ECN-ness of the connections also be reported as part of the extended statistics?

I will definitely look in to this! That extended information is platform-specific. We will try to find out if that gets surfaced (in a way that the go API can see it)!

Thank you, as always, for being so helpful!

Will

I believe this was fixed in #44

tcpInfo = &TCPInfo{TCPConnectionInfo: *rawInfo, Rtt: rawInfo.Srtt}

(a required field was not being copied, so I simplified the struct & copy)

I believe this was fixed in #44

tcpInfo = &TCPInfo{TCPConnectionInfo: *rawInfo, Rtt: rawInfo.Srtt}

(a required field was not being copied, so I simplified the struct & copy)

@moeller0 I believe that @randall 's change here did resolve the +Inf% problem. Can you confirm that is the case?

I am still working on being able to capture the ECN! Thanks again for your patience.

I can confirm that on macosx I do not see the +Inf% anymore...

Since this is fixed, I take the liberty to close this, please undo if you disagree?