HNHacker News
TopNewBestAskShowJobs

mortenvp

74 karma · joined March 27, 2018

submissionscomments
mortenvp··on Building Reliable Real-Time Systems over WiFi and Cellular [video]
Jump straight to the issue: https://youtu.be/ad-lsbhb5xM?si=LKsVm7iUBSg-1u5x
mortenvp··on Multi-connectivity for real-time streaming over Wi-Fi
Yeah, definitely. Fast roaming can work very well, and things like 802.11r and the newer work in Wi-Fi 8 should make handovers even better.

What we’re doing is slightly different though. We’re not only reacting to signal strength or a broken connection. Because we have multiple active paths, we can also move real-time traffic away from a Wi-Fi path that is still connected but has temporarily become bad - for example because that AP is congested or somebody else is consuming a lot of airtime.

So even if the roaming itself is perfect, you can still have a path that is technically connected but no longer able to meet the latency budget.

Another advantage is that this doesn’t depend on the AP infrastructure supporting fast roaming or coordination features. It works above the Wi-Fi layer, and the same mechanism can also combine Wi-Fi with completely different networks such as 5G or Starlink.

mortenvp··on Multi-connectivity for real-time streaming over Wi-Fi
Yeah, good points.

On the three interfaces: others have pointed that out too, and we’ll try to make it clearer in the article. In this test the laptop had three Wi-Fi adapters, each pinned to a different AP. There’s nothing particularly special about three though - with two adapters connected to two different APs you should already be able to get a lot of the benefit.

On the IP side, the overlay works a bit like a VPN. Traffic is sent over all the available interfaces to software on the other side, which combines the paths and presents a normal IP stream towards the final destination. Encryption isn’t the primary purpose here - the main goal is making the connection more robust - although encryption can of course be added.

The pinned-AP comparison is a fair criticism. For this demo we deliberately kept each interface associated with one AP because we wanted to isolate the effect of using several paths at once, rather than also introducing the behaviour of the Wi-Fi roaming implementation into the test. Comparing against normal roaming, including 802.11k/v/r, is definitely something we want to test next.

We want to experiment with a small daemon that keeps the different Wi-Fi interfaces associated with different APs. If one drops out, it can reassociate that interface with another available AP, so in principle you can move through a much larger Wi-Fi deployment while still maintaining multiple active paths.

We haven’t done a proper comparison against Wi-Fi 7 MLO yet, but that would be a very interesting comparison. Conceptually there is definitely some overlap, although our approach sits above the individual Wi-Fi link and can also combine completely different networks.

mortenvp··on Multi-connectivity for real-time streaming over Wi-Fi
That’s a great point. I’ll see if we can make that clearer upfront.

In this particular test, the laptop had three Wi-Fi adapters, one connected to each AP. You should still see benefits with just two independent Wi-Fi connections, but for the results shown here we used three.

mortenvp··on Multi-connectivity for real-time streaming over Wi-Fi
We’ve been experimenting with real-time streaming over Wi-Fi where packets have a 100 ms latency budget.

The problem we wanted to look at was roaming. Even when you have good Wi-Fi coverage, moving between access points can cause short interruptions that are long enough to matter for a real-time application.

Instead of relying on a single Wi-Fi connection and hoping the handover is fast enough, we tested our overlay multi-connectivity transport using three Wi-Fi access points at the same time.

The transport can use all three paths simultaneously, so a roaming event or temporary interruption on one connection doesn’t necessarily interrupt the stream.

We’re still digging into the results, but it’s an interesting way of thinking about Wi-Fi reliability: rather than trying to make one connection perfect, use several imperfect ones together.

mortenvp··on Live video from a moving car, with 30x fewer breaks
We streamed a live camera from a car over two cellular connections and drove the same 2.2 km loop nine times: three laps with NanoPing, three each with SRT connection bonding at two settings. NanoPing’s picture broke 4 times. SRT’s broke 136 and 126 times.
mortenvp··on Streaming Video and Audio with Low Delay
Yes, you get a much better random loss protection with RLNC. So if you know that all your losses are bursts you may be able to live with 2022. Essentially the difference between the two algorithms are that with 2022 only a subset of your packets are protected by a redundancy packet (and you have to choose how to protect them), whereas with RLNC you can protect all available packets. If we leave the premise of this post (namely that we want to generate traffic in the same pattern as 2022) RLNC can even protect against longer bursts compared to 2022.

Did that make sense?

mortenvp··on Streaming Video and Audio with Low Delay
As stated in the article, low delay is very hard to achieve over a reliable transport based on re-transmissions (such as TCP) - you have to wait for the loss to be detected and then the retransmitted packet to arrive. This is at least 3 x the latency of the link. Therefore if you really care about bounded low latency you need to use some form of erasure correcting algorithm (to provide upfront redundancy).

In the article we simply show that substituting one "old" algorithm for a more modern one can give you much better efficiency (protection against packet loss) for the same bandwidth and latency/delay budget.