Partner:
Université catholique de Louvain
Voice is progressively becoming a popular way to interact with mobile devices such as smartphones or connected cars. Most of the current deployments depend on cloud services to recognize the user’s commands. For this reason, voice-controlled applications have stringent requirements in terms of delay or availability. On the other hand, many of the devices using such applications are attached to several wireless networks. On iPhones, Multipath TCP made voice-enabled applications useable while user devices move between cellular network and WiFi network.
In this work, we leveraged the MONROE platform to analyze the performance of Multipath TCP for voice-activated applications. An important challenge for this work is that the MONROE testbed was not designed to enable experiments to change the operating system kernel. Unfortunately, Multipath TCP is implemented inside the kernel and supporting Multipath TCP requires a kernel upgrade, which is not possible on a per-experiment basis on the MONROE testbed. To solve this problem, we used the Linux Kernel Library . In a nutshell, LKL allows running components of the Linux kernel as applications. We ported the Multipath TCP Linux kernel code into the LKL. This requires a massive engineering effort and interactions with the key authors of LKL. We then leveraged the Multipath TCP implementation in LKL to run the first real Multipath TCP measurements on the MONROE testbed. Our measurements focused on voice-activated applications and we extended the iperf3 measurement software.
Our measurements show that: (1) Multipath TCP brings benefits for user devices attached to two networks. The default configuration of MPTCP delivers similar or lower latency than TCP. (2) Detailed configurations of MPTCP, e.g. packet scheduler, do have impact on the performance that users perceive, so it requires careful parameter selection and tuning to achieve the best result.
The source code of MPTCP-LKL, voice-traffic emulated application, measurement scripts are publicly available at:
https://github.com/hoang-tranviet/mptcp/tree/lkl_4.13-mptcp_v0.93_API
https://github.com/hoang-tranviet/iperf-siri
https://github.com/hoang-tranviet/lkl-docker-monroe
The certified container is available at http://docker.monroe-system.eu/deployed/lkl-test
The dataset is available at https://doi.org/10.5281/zenodo.1290469