kQUIC: A Kernel-Based Quick UDP Internet Connections (QUIC) Transport for IoT - Puneet Kumar; Behnam Dezfouli (IEEE Access)
To address the shortcomings of TCP, the IETF has standardized QUIC, a new userspace transport protocol. Despite its benefits, the implementation of QUIC in the userspace introduces significant processing overhead, which makes it less suitable for IoT devices. According to our empirical analyses, as the packet loss rate increases from 0% to 2.5%, the data copying overhead between the kernel and userspace increases by 26% with QUIC, whereas TCP experiences no additional overhead. In this paper, we identify and study the overhead associated with QUIC and introduce an enhanced implementation called kQUIC, designed to enhance the protocol for IoT applications. kQUIC tackles two primary shortcomings of QUIC. First, it reduces the overhead of system calls by implementing QUIC within the kernel, as opposed to the traditional userspace implementation. Second, kQUIC enables multiple applications on an IoT device to multiplex their data through a single underlying UDP pipeline, thereby reducing transport-layer header overhead. Our analyses and empirical evaluations demonstrate that kQUIC outperforms both TCP and QUIC in terms of throughput and processor utilization. For example, in a single-application scenario with a 2.5% packet loss rate, kQUIC achieves 13.2% and 29.5% higher throughput than TCP and QUIC, respectively. Under the same conditions, with an application message size of 1400 bytes, kQUIC exhibits 49.76% lower processor utilization than QUIC and 27.41% lower than TCP. kQUIC’s application multiplexing feature further enhances throughput and reduces overall processor usage in multi-processor and multi-application scenarios across all packet loss rates and message sizes.