Link Performance Prediction and Network Trace Tools
Presenter: Jonas Svennebring
Demo from Web & Networks Interest Group
Link Performance Prediction and Network Trace tools
We are just in the process of releasing a Network trace toolkit intended to make it easier for developers to test and develop for different network characteristics.
This could for example be to experience how a fast 5G mmWave connection would appear or dropping down to a 2G GSM/EDGE connection, or anywhere in between.
But the main focus is to give an experience of the dynamics in networks, how the connectivity changes over time in different networks around the planet.
As a developer you can thereby easily tests your application as if you were in the NY subway, hiking in rural Sweden, going on a train in South Africa or biking along the river in Seoul.
The toolkit comes with four main deliverables: the trace emulator that replays a network trace and as needed throttle the connection in the browser; the trace collector so anyone can go out and generate their own network traces; a pre-collected set of traces from around the globe; last but not least is the trace file format.
The material is released under GPL2 and we encourage feedback and contributions, both to collect traces but also to take the emulator and collector tools forward.
The material is just about to be pushed to our github repo so keep an eye out.
But let's see how the emulator tool works...
This is a dev tool extension and loads as such.
You then pick a trace file, in this case car_trace4 and you can see in the graph to the right how the download bandwidth varies, as well as an optional map with GPS positions below.
We can run some speedtests and see how the bandwidth is throttled according to the currently set link capability.
It's easy to move back and forth in the trace.
The emulation works with any webpage and will impact your experience accordingly With the trace emulator you can experience the network changes and see how your application copes with them.
However, what if your application was aware of the changes ahead of time, could it handle the changes better then?
Better leverage the peaks and preemptively handle the valleys?
The trace emulator has a set of fields below the graph and that's where Link performance prediction comes in.
But let's give a quick introduction of that technology which is in development and early trials now.
Link Performance Prediction or LPP is a technology that interface to an operators network and brings out quality awareness of the clients connection to the client application itself.
This is both for current quality but also forward looking predictions of the link characteristics.
LPP does not touch the data itself and the information is provided as hints to the applications so they themselves can decide of the best action.
LPP works in the operator network by collecting and analyzing metrics that is already available.
No sensitive data is shared and the client only receives information about its own link.
There is a wide set of usages for this but let's consider an example in media streaming.
For this case we have modified the MPEG/DASH reference player and adjust the buffer length according to the LPP predictions.
When we see a bandwidth drop we increase the buffer to cover that gap.
On the left side is a standard player and the right side is same player but with LPP capability, which here allows us to proactively buffer and avoid a stall in the video stream.
Your application can easily pick up the predictions from the trace emulator, in a real-world scenario with LPP in the network you would instead receive these from the LPP server.
We have a simple demo application that allows you to subscribe for predictions that then are displayed, but you can obviously have more elaborate use of them.
The prediction time window and change sensitivity can be adjusted.
That's all for today, I hope you'll enjoy our new tool