论文标题
反应:Wi-Fi固件在移动设备上的反应性编程
ReactiFi: Reactive Programming of Wi-Fi Firmware on Mobile Devices
论文作者
论文摘要
将需要网络可编程性来处理未来增加的网络流量和不断变化的应用程序需求。但是,目前无法使用高级,易于使用的编程语言来编程Wi-Fi固件。这阻碍了新型网络服务/应用程序的快速原型和部署,以及在Wi-Fi网络中持续的性能优化,因为二手硬件平台和Wi-Fi域都需要专业知识。在本文中,我们介绍了一种高级反应性编程语言,可以在移动消费者设备上编程Wi-Fi芯片。反应器使程序员能够实施PHY,MAC和IP层机制的扩展,而无需Wi-Fi芯片的专家知识,从而允许新的应用程序和网络协议。与主CPU的执行相比,ReactIFI程序直接在Wi-Fi芯片上执行,从而提高了性能和功耗。 reactifi在概念上与功能反应性语言相似,但专门针对Wi-Fi固件的领域特定需求。首先,它处理低级平台特定的细节,而不会干扰Wi-Fi芯片的核心功能。其次,它支持有关应用程序内存使用的静态推理,这对于通常受内存约束的Wi-Fi芯片很重要。第三,它限制了计算之间依赖关系的动态变化到动态分支,以实现有关计算顺序的静态推理。我们在两个现实世界中的案例研究中经验评估反应。我们的结果表明,在Wi-Fi芯片上执行应用程序时,而不是在操作系统内核或用户空间中执行应用程序时,吞吐量,延迟和功耗会大大提高。此外,我们表明,与手动编写的C代码相比,Rectifi的高级编程摘要没有性能开销。
Network programmability will be required to handle future increased network traffic and constantly changing application needs. However, there is currently no way of using a high-level, easy to use programming language to program Wi-Fi firmware. This impedes rapid prototyping and deployment of novel network services/applications and hinders continuous performance optimization in Wi-Fi networks, since expert knowledge is required for both the used hardware platforms and the Wi-Fi domain. In this paper, we present ReactiFi, a high-level reactive programming language to program Wi-Fi chips on mobile consumer devices. ReactiFi enables programmers to implement extensions of PHY, MAC, and IP layer mechanisms without requiring expert knowledge of Wi-Fi chips, allowing for novel applications and network protocols. ReactiFi programs are executed directly on the Wi-Fi chip, improving performance and power consumption compared to execution on the main CPU. ReactiFi is conceptually similar to functional reactive languages, but is dedicated to the domain-specific needs of Wi-Fi firmware. First, it handles low-level platform-specific details without interfering with the core functionality of Wi-Fi chips. Second, it supports static reasoning about memory usage of applications, which is important for typically memory-constrained Wi-Fi chips. Third, it limits dynamic changes of dependencies between computations to dynamic branching, in order to enable static reasoning about the order of computations. We evaluate ReactiFi empirically in two real-world case studies. Our results show that throughput, latency, and power consumption are significantly improved when executing applications on the Wi-Fi chip rather than in the operating system kernel or in user space. Moreover, we show that the high-level programming abstractions of ReactiFi have no performance overhead compared to manually written C code.