network-quality / goresponsiveness

A draft-ietf-ippm-responsiveness client in Go.
GNU General Public License v2.0
133 stars 10 forks source link

Cosmetic: #43

Closed moeller0 closed 1 year ago

moeller0 commented 2 years ago

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?

hawkinsw commented 2 years ago

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

randall commented 1 year ago

I believe this was fixed in #44

https://github.com/network-quality/goresponsiveness/blob/e59ddfd3672750351f80fb35c804827b2f726642/extendedstats/darwin.go#L106

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

hawkinsw commented 1 year ago

I believe this was fixed in #44

https://github.com/network-quality/goresponsiveness/blob/e59ddfd3672750351f80fb35c804827b2f726642/extendedstats/darwin.go#L106

(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.

moeller0 commented 1 year ago

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

moeller0 commented 1 year ago

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