-
Notifications
You must be signed in to change notification settings - Fork 1
Meeting Notes
Our weekly meeting happens on Wednesdays, 11:00am (Eastern Time).
We would love to have you join us. You can add a reminder to your calendar by using the Weekly Network Quality Community Meeting Internet Calendaring and Scheduling Core Object Specification (ICS) file. The link for the Zoom meeting is in the ICS file and reproduced here for ease of reference:
https://zoom.us/j/93376746932?pwd=d0ozK0kzWUxzYW01YmZSYWtPYWRVUT09
As of 2024, all meeting notes are on hackmd: https://hackmd.io/@hawkinsw/rpm-community-meeting-notes/edit
- We are looking forward to an extra special guest: Dr. John Ousterhout (yes that John Ousterhout) will join us to talk about the Homa transport protocol and his experience implementing it in the Linux Kernel. We are very thankful to have him join us and look forward to an incredible discussion.
- A very interesting discussion around a blog post from Domos
- A great follow-up to our on-Slack discussion about Comcast's deployment of L4S (as announced at their corporate website).
- We would like to work together with others who are doing work with L4S.
- A great presentation from Felix about validation of LibreSpeed (using Quic)
- Slides are available here.
- It looks like LibreSpeed does a very good job measuring the bandwidth in the download case
- There are some questions about how it measures upload connections (especially with high-RTT connections)
- We are going to get some additional information from Felix.
- Will and Bjorn are going to work together to debug the Go Responsiveness implementation
Ben Janoff (SamKnows) on their Responsiveness measurementtechnique.
-
- nperf: Will will try to reach out to them.
- breitbandmessung: Sebastian will provide contacts.
- openspeedtest: Open-source. We could try to integrate RPM.
- Christoph & Randall: Add iOS apps into spreadsheet.
-
goresponsiveness vs networkQuality vs Flent @Sebastian
-
draft-ietf Issue #78
- Issue closed
-
librespeed status
- Will is almost official maintainer.
-
package-hosting for goresponsiveness
- Exposing more statistics and using data-structure to maintain historical data on the system.
-
Socket-options - Bob McMahon
- Create list of socket-options to apply to optimize for bulk-transfer vs optimizing for latency
- QUICK-ACK (?), NODELAY, NOTSENT_LOWAT for low-latency
- Create list of socket-options to apply to optimize for bulk-transfer vs optimizing for latency
-
Give overview of current algorithm
- Christoph : Schedule 30min for RPM, 30min for Ookla, 30min for Sam, 30min for Bjorn,...
- Christoph : Link slides on the github wiki.
- Cloudflare's announcement (https://blog.cloudflare.com/aim-database-for-internet-quality/ & https://github.com/cloudflare/speedtest) @David
- draft-ietf-ippm-responsiveness:
- Consistent json output
- Robin Marx: Experience with doing json output for QUIC
- Consistent json output
- librespeed maintainership
- Will is becoming the maintainer. Reached out to current maintainer.
- github.com/network-quality/goserver
- package-hosting for goresponsiveness
- Introductions
- Brennen Smith, VP Tech at Ookla
- Adam - Manager at Apple, monitoring & deploiment tools at Apple
- librespeed
- PR is out on github!
- librespeed maintainer wants to transition maintership to us. Will and Felix could co-maintain.
- librespeed has 1 server supporting QUIC
- Felix:
- analysis on QUIC
- Bob: To what extend is QUIC important?
- Brennen: QUIC has a huge deployment. One nice part of QUIC is that it is very easily changeable to network conditions.
- Interop is a challenge. Quiche (Cloudflare) is the most popular.
- QUIC low-latency flag ?
- low latency should be the default. Bulk the opt-in option.
- @christoph : Check if Cloudflare's NQ end-point supports QUIC ???
- Brennen: speed.cloudflare is HTTP/1.1 only. Issue is streams vs connections.
- Felix: To handle the multiplexing, a solution is to use multiple hostnames to avoid coalescing in a single H2 connection.
- github.com/server: Pull out go-based server into separate repository.
- Randall's on it
- Bulk-option
- Could be an indicator to L2 to max out aggregation
- indicate to L2 "More is coming and wait for it"
- WiFi aggregation is more than 128KB
- Brennen: How would the "bulk-option" on one socket affect the low-latency connection?
- Do the same as L4S: low-latency queue and "classic/bulk"-queue
- Aggregate "options" to group a bunch of settings to optimize for "service-class". Bulk sets CC, L4Soff, ... Low-latency sets TCP_NOTSENT_LOWAT, CC, L4Son,...
- Could be an indicator to L2 to max out aggregation
- librespeed
- Pull-request: Ready to be sent out. Out on Thursday.
- goresponsiveness
- Probing on load-generating connection may happen before the load-gen connection is actually ready to multiplex. Fix is ready.
- Minor formatting issue is being fixed.
- Next step: Make sure we are fully aligned with the spec.
- Next step: Odd upload numbers.
- L4S: When go is running on QUIC, can we enable "L4S" on QUIC connections?
- draft-ietf-ippm-responsiveness: https://github.com/network-quality/draft-ietf-ippm-responsiveness/issues/78
- Pushed out to two weeks from now.
- librespeed
- Good data coming in. Almost ready to send out the Pull-Request.
- goresponsiveness
- draft-ietf-ippm-responsiveness
- CPU-saturation problem
- Ben: Run responsiveness probes all the time. Don't wait for capacity saturation. (Samknows itself does not really run into CPU-issues because the hardware is being tested before shipping).
- Meaning: As we continuously probe for responsiveness, we don't have the phase-shift between capacity-probing and responsiveness-probing.
- Will: Now has a 10Gig ethernet port :)
- Stuart: If the device cannot keep up with the network's abilities, we should try to show this to the user ("this result is not reliable")
- Ben: Could we find out what the expected rate is? E.g., compare HTTP vs HTTPS.
- Christoph: We could check for "congestion-signals" and expose a "warning" that says that you may be limited by CPU...
- Bob: Could do loopback for some kind of "upper-bound". Christoph: Loopback code-path can be significantly different than going out on the network.
- Ben: Run responsiveness probes all the time. Don't wait for capacity saturation. (Samknows itself does not really run into CPU-issues because the hardware is being tested before shipping).
- CPU-saturation problem
- caddyserver (Christoph to add to list of projects to investigate)
-
https://libra.obs.cr
- Should run behind https://caddyserver.com
- go-runtime panic when using IOCTL to get TCP-stats on Windows
- iperf2
- Documentation status Bob
- OpenWRT
- Bob to check on SF hosting
- networkQuality human output explanations (question from Bob)
- Need for breaking out the numbers in different categories so that the result maps better to an actionable result.
- librespeed - updated to latest draft
- PR to be sent out soonish
- How to get propagation delay to better understand its contribution to responsiveness
- Question is how we could actually measure the "distance". Geographic and hop-count are both only very rough approximations that are both totally wrong.
- Standard deviation discussion:
- We should find a way to "learn" the standard deviation of the link so as to provide this as output of an "extended" test.
- iperf2
- Bob to present slide-deck (if we agree)
- status of wiki documentation
- draft-IETF-responsiveness
- trimmed mean: Single-ended
- ns-3 idea
- ns-3 DCE go support to allow running responsiveness over go in ns-3
- librespeed update
- Implementation almost ready to be sent out as a pull-request
- Felix update on new implementation
- ongoing
- OpenWRT
- Bob to check on package hosting on SF.
- iperf2
- status of wiki documentation
- slide-deck with documentation within a week
- can create documentation based on the slidedeck
- We could reach out to Rich Brown to see if he is interested in putting text around the slide-deck.
- status of wiki documentation
- librespeed update
- No update.
- Felix on new implementation
- Tool for measuring QUIC connection (picoquic)
- Several QUIC connections, measuring responsiveness, loss, ... comparing Congestion control algorithms.
- Estimating bandwidth and then run a test at a fraction of the bandwidth, by limiting at the congestion control layer.
- first run to estimate full capacity
- second run, but limiting tput at the cc layer
- latency is very low when goodput is less than capacity
- latency is very high when goodput is more than the capacity
- Using qlog to extract information from the QUIC layer.
- next goal is to compare QUIC with TCP
- OpenWRT
- status on package hosting - Bob to check for next meeting
- goresponsiveness
- Extracting window-size parameters from the extended stats (https://go-review.googlesource.com/c/sys/+/471275)
- stats are sampled at the end and at each timing interval - output goes to log-file in extended logging
- Extracting window-size parameters from the extended stats (https://go-review.googlesource.com/c/sys/+/471275)
- draft-ietf-ippm-responsiveness (Christoph)
- Define how many load-generating connections to chose to probe on.
- stabilizer code in goresponsiveness is the current rev3
- Number-of-probes issue:
- in librespeed had to increase interval to 500ms because otherwise there were too many probes and made the browser unresponsiveness
- Make probing interval and # of probes adaptive.
- Can we make the probing interval such that probes take no more than X% of the capacity.
- servers (Randall)
- updating field-names, go implementation code-reorg (can now auto-create a self-signed cert)
- should eventually move go-implementation to a separate git repository
- Randall to document on the wiki (https://github.com/network-quality/community/wiki)
- iperf2
- 2.1.9 rc. Working load, responsiveness with bounce-back.
- WFA (WiFi Alliance)
- iperf 2.1.9 will be in perfSonar
- measuring on load-generating connections works only with the sync'ed clocks to get one-way latency. Clock-sync is assumed to be micro-seconds granularity.
- @Bob to give links for https://github.com/network-quality/community/wiki/Open-Source-Contributions.
- @Bob to document responsiveness/latency/... measuring features in a subpage of https://github.com/network-quality/community/wiki.
- librespeed
- Hosted now at https://speedtest.rysingan.dev
- Using wildcard URL to force a new TCP connection.
- Need to finish visualization
- Felix Gaudin
- Developing another tool to measure networks (including latency), using QUIC.
- OpenWRT
- Packages for iperf ready. @Bob to check if packages can be hosted on SF.
- Packages for goresponsiveness awaiting Randall's patches. Once done, will be hosted on github.
- goresponsiveness
- Randall's changes about to get merged. (https://github.com/network-quality/goresponsiveness/pull/44)
- MS Windows implementation of "extended stats" is buggy.
- golang
- https://go-review.googlesource.com/c/go/+/458395 - support streaming POST in WASM, will allow to stream uploads using WASM-generated code.
- iperf2 release candidate
- bounce-back feature added (X every interval)
- latency measuring probes are on separate connections
- Tim reported issues with bounceback reporting 0 RPS (on CentOS 7)
- also issue around compiling on macOS with a missing header file
- one-way latency: Already exists in iperf2
- may list iperf2-info at https://github.com/network-quality/community/wiki/Open-Source-Contributions
- bounce-back feature added (X every interval)
- draft-teigen-ippm-app-quality-metric-reqs
- Bob: Composability may be a challenge. Within forwarding plane there can be many logic paths.
- Bjorn: If you are not measuring everything that is happening, composability is lost.
- Goal of the draft is to have a metric that is well-suited to monitor network that has "real" traffic.
- mechanism is missing - will be added
- New version will come before Yokohama. Comments are welcome.
- librespeed
- No updates.
- goresponsiveness
- Merged rev3 into main.
- Adding traceroute option.
- Goal:
- IP-traceroute to find intermediate IP-addresses.
- Based on IP-address resolve RPM endpoints (if existing).
- Then, connect to .well-known to measure.
- test_endpoint from json will allow to know whether or not we are actually hitting the traceroute'd IP-address.
- Goal:
- OpenWRT
- Fighting openwrt build weirdness for goresponsiveness
- attempted iperf2.1.9 openwrt package. Same header-file issue as Tim. @Bob to check on this.
- Next openwrt package will be responsiveness server-side.
- William update on students
- building crowd-sourced repository for RPM measurements.
- similar to "downdetector", where people can report their RPM at a specific point-in-time
Agenda:
- Introductions
- Peter Heinzmann: Speedtest benchmarking for Swiss operators.
- Shotah: System's engineer at Eero. Worked with SamKnows.
- Update to wiki/...
- librespeed by Felix Gaudin
- Load-generation completed. Results look good.
- work on ping-requests on separate connections
- ping-requests on load-generating connections. Should check with Cloudflare,... on how they force on load-generating connections.
- test against default librespeed servers
- OpenWRT by Will Hawkins
- manpage ready
- openwrt package now needs to get submitted to upstream.
- blocked on rev3 into goresponsivenss. rev3 not blocked on IETF-draft.
- Will to sub
- Discuss draft-teigen-ippm-app-quality-metric-reqs by Bjorn Ivar Teigen
- Bob: Is it server-to-server? It is client-to-server and also trying to capture the different hops in-between
- Goal: RPM-community to provide feedback and discuss it. Draft is relevant for RPM to diagnose issues (step-by-step) to identify problem-points. Composable metrics allow to do this.