How it works

One network can’t promise on time. Several, used together, can.

Mobile, Wi-Fi and satellite links make no promise about when a packet arrives, or whether it arrives at all. This talk shows how NanoPing still gets live video and control data there before its deadline, on real traces: a car driving a 2.2 km loop on two mobile networks, and a laptop walking through a Wi-Fi lab.

Or read it below
15 chapters
18times a network stalled during one lap of the drive
0 of 6,449video frames late or lost over that lap
37 msto move the video off a network that went silent
01Real-time

On time is the only thing that counts

Real-time means data has to arrive within a set time to be any use. A packet that arrives before its deadline is useful. One that arrives after it is worthless, even though every throughput and loss figure counts it as delivered.

So the goal isn’t low latency. It is getting data there, every time, before the application needs it.

More on time budgets
SenderReceiverdeadlinesent45 msbefore its deadline: usefuldeadlinesent135 msafter its deadline: worthlessIllustration: a budget of 100 ms per packet.
02Where it matters

Late can be as bad as lost

In these systems, data that shows up late does as much damage as data that never shows up.

Tele-operation

A late video frame shows the road as it was. A late command acts on a moment that has already passed.

Running example

People deciding live

Someone deciding on late data is deciding about a situation that has already changed.

Industrial control

A control loop that misses its cycle has to act without the value.

Safety systems

A stop signal that arrives late can be as bad as none at all.

Live video calls

A late frame is a freeze, and the conversation stalls.

03Doing nothing

What one network looks like

Real footage: live video from a car over a mobile network, as the remote screen showed it with a 300 ms budget. A frame that arrives too late isn’t shown, so the last good one stays on screen.

A few seconds of normal driving, then the picture breaks up and freezes while the car keeps moving. Nobody can drive on this.

Picture working
04What goes wrong

How hard can it be? Five problems

A network that delivers most packets most of the time still fails in five different ways. Every one of these is a real measurement.

1

Congestion

Delay climbs while packets keep arriving.

A mobile network went from 23 ms to 719 ms in 0.88 s, while still delivering.

2

Outages

A network goes silent.

A mobile network delivered nothing for 1.57 s, with no warning before.

3

Packet loss

Packets never arrive.

1246

A Wi-Fi network lost 106 packets in a minute, up to 27 in a row.

4

Reordering

Packets overtake each other.

124356

On a mobile network, a packet arrived before an earlier one 1,504 times in 3 min 35 s.

5

Asymmetry

The two directions of one connection differ.

up317 ms
down69 ms

On one mobile connection, the slowest packets took 317 ms going up and only 69 ms coming down.

05The starting point

A broken path can’t be fixed. It can be avoided.

On one connection there are hard limits to what any protocol can do. If the path is down, no repair data, no resend and no clever scheduling can deliver the packet. And nothing makes a congested path fast.

So we use several independent connections wherever we can. Independence matters: two SIM cards on the same operator share most of their failures. Different operators, technologies and backhauls share far fewer.

One pathoutageSenderReceiverNo protocol can deliver over a path that is down.Several independent pathsMobile operator 1Mobile operator 2Wi-FiStarlinkWiredOther radioSenderReceiver

That diversity has to come from the system: the modems, antennas and subscriptions. A protocol can’t create it. But once it is there, a protocol can take full advantage of it.

06What we found crucial

Five things it takes

Diversity comes from the system. The other four live in the protocol and make use of it.

From the system

Diversity

Several independent networks at once: mobile operators, Wi-Fi, Starlink, wired. A broken path often can’t be fixed, but it can be avoided.

OutagesCongestion
In the protocol

Synchronized clocks

Up and down are not the same. Synced clocks give the one-way delay of every link, in each direction.

AsymmetryCongestion
In the protocol

Probing

Measure every network all the time, including the ones carrying no traffic right now. They may be needed next.

OutagesCongestion
In the protocol

Loss classification

Is a missing packet part of a burst, scattered loss, or just late? The answer decides how, and whether, to recover.

Packet lossReordering
In the protocol

Repair data and resends

Resend when there is time. Send repair data up front (adaptive FEC) when there isn’t.

Packet loss
07A closer look: clocks

Why a ping isn’t enough

Can’t we just ping the other side? A round trip adds two different paths together, and the way up can look nothing like the way down.

The same link, 0.75 s apart
↑ 95↓ 19
round trip 114 ms
↑ 28↓ 90
round trip 118 ms

Almost the same round trip. For a packet going up, completely different conditions.

uplink, every packetdownlink, every packethalf the round trip, from a ping once a second
Delay changes faster than you can ping: in these 10 s, the ping was more than 20 ms off for 33% of the uplink packets.
01002003004000 s2 s4 s6 s8 s10 sms

So NanoPing synchronizes the clocks and timestamps every packet. The receiver knows each packet’s one-way delay, in each direction, all the time, and how much of its budget is left.

08A closer look: probing

Keep watching every path

Every packet tells us something about the path it took. On the Wi-Fi walk, NanoPing sent on all three networks the whole time: video where it was safe, and light probes and repair data everywhere else.

Look at AP A near the end: no video for seconds at a time, yet still a few hundred packets a second.

video packetsprobes and repair data
packets sent per second on each network
AP A2.4 GHz ch 9AP B5 GHz ch 100AP C5 GHz ch 360 s10 s20 s30 s40 s50 s60 s

A path that carries no traffic right now still needs watching. It may be needed the moment another one fails.

09A closer look: loss

What kind of loss, and is there time to resend?

Before recovering a missing packet, NanoPing works out what happened to it. Then the time left before the deadline decides how to get it back.

1 · classify

Lost, or just late?

scattered
12457
burst
1267
reordered
1243567

Reordered packets aren’t lost, so NanoPing waits for them instead of resending. Real loss comes scattered or in bursts, and each needs a different fix.

2 · resend

Any kind of loss, if there is time

Time to sparein time
noticeaskresend
Tight deadlinetoo late
noticeaskresend

The receiver spots the gap and asks, and the sender sends it again. That costs about a round trip. A resend that would land after the deadline only wastes capacity, so it isn’t sent.

2 · repair

Repair data, when there isn’t

124R
rebuilt
1R
too many lost

Repair data (FEC) travels with the stream, sized to the loss we see. It needs no round trip. It also tests paths that haven’t proven themselves yet: if repair data gets lost, nothing is lost.

The kind of loss decides how to recover. The time left decides whether a resend can still make it.

10Putting it together

The scheduler

The scheduler knows the paths it has, their one-way delay right now, whether each one is usable, what kind of loss it is seeing, the deadline of every packet, and its options for repair data and resends.

Available pathsdiversityOne-way delaysynced clocksIs the path usable?probingKind of lossclassificationPacket deadlinesthe applicationRoom for repair dataadaptive FECTime to resendretransmission4G/5GWi-FiStarlinkWiredOther radioSchedulerReceiver

Its job, in one sentence: put each packet where it has the best chance of arriving before its deadline.

11Watching it work

Moving the video off a failing network

Live 1080p video from the car over both operators at once, with a 300 ms budget. Normally each network carries half. Here are two moments from the drive, replayed at half speed with every packet on both networks.

On time · 162 ms½ speed

Operator A slows, then goes silent for almost half a second. Watch the picture: it never stops.

Operator Aevery packetOperator Bevery packet300 ms budgetVideo sentper 100 msone full copy12340 s1 s2 s3 s
  1. 1First signs of trouble on Operator A. The video moves to Operator B, while A still carries a copy.
  2. 2Half a second later, Operator A goes silent. The video is already on B.
  3. 3A’s held-back packets arrive, up to 716 ms late. By then nothing needs them.
  4. 4Operator A is usable again, and the video is split across both networks.
12The whole lap

Both networks misbehaved, again and again

The same live video over the whole 2.2 km lap, 3 min 35 s. The two moments above are two of the rings below.

18times a network stalled, 6 on Operator A and 12 on Operator B
1,608 msthe slowest packet on a network
0video frames late or lost, of 6,449
161 msaverage frame delay, camera to screen
Operator Anetwork1 s0716 msOperator Bnetwork1 s0719 ms806 ms1,114 ms1,608 msPictureas the app got it1 s0300 ms budgetevery frame in time: 158-269 ms0:000:301:001:302:002:303:003:30
Network lanes: the slowest packet in each tenth of a second. A ring marks a stall, a network taking more than a quarter of a second. Picture: the delay of every frame as the application received it.
13A different radio

Wi-Fi roaming with live video

A laptop walked through a 30 m lab that no single access point covers, sending 7 Mbit/s video over three Wi-Fi networks at once, with a 100 ms budget.

passes AP Cturns near AP Apasses AP Cback at AP BSignalat the laptopAP AAP BAP CVideo sentshare per secondfollows thegood networkOver 100 msAP A alone12 times, 5.8 sAP B alone3 times, 0.5 sAP C alone5 times, 8.1 sNanoPingnever0 s10 s20 s30 s40 s50 s60 s
NanoPing, all three0of 1,800 frames late or lost. Slowest packet 91 ms.
AP A alone119of 1,800 frames late or lost. Slowest packet 580 ms.
AP B alone8of 1,800 frames late or lost. Slowest packet 208 ms.
AP C alone208of 1,800 frames late or lost. Slowest packet 1,137 ms.

The weak spots never lined up. In none of the 600 tenth-of-a-second windows were all three networks over budget at once. That is what diversity buys.

The full Wi-Fi roaming test
14Takeaways

Several networks, used together

1

The problem

Real-time applications need guarantees that IP networks don’t give.

2

The insight

Your network will never be perfect. Combine several connections and adapt to how they actually behave.

3

The result

Applications meet their deadlines predictably, even when the networks underneath can’t.

One unreliable network can’t always be made reliable. Several, used together, can.

Tell us about your links and your deadline. We’ll show you what NanoPing does with them, and test it with you.