Publications

Intelligent Packet Processing for Performant Containers in IoT

IEEE Internet of Things Journal, JCR 2023 IF 8.2 Top 3.4% Volume: 11, Issue: 24, 15 December 2024, pp. 40388-40403, doi: 10.1109/JIOT.2024.3453410.

Wonmi Choi, Yeonho Yoo, Kyungwoon Lee, Zhixiong Niu, Peng Cheng, Yongqiang Xiong, Gyeongsik Yang, Chuck Yoo

Download PDF

Abstract

This article explores the computing and communication overhead of network processing in Internet of Things (IoT) devices, focusing on containers, a major building block for the edge computing. Our experiments reveal that containers on IoT devices suffer ~2.6x higher CPU usage for SoftIRQ processing, ~59% less network throughput, and 2x higher per-packet latency on average than native processes. While several existing studies enhance networking performance, they often sacrifice interoperability by requiring special hardware or modifying networking semantics or APIs. Thus, we design and implement a kernel networking accelerator, called SCON, that maintains interoperability, crucial for IoT devices. SCON addresses major bottlenecks in container networking through system-level profiling. We evaluate SCON with three types of IoT devices. On the Raspberry Pi 4, SCON reduces the latencies of major IoT application protocols (e.g., HTTP and MQTT) by ~10x, achieving a similar level of latency to the native process. Further analysis shows that SCON reduces CPU usage for SoftIRQ processing by ~26%. We also report similar improvements on the other two IoT devices. Our conclusion is that SCON is unique in significantly reducing the computing and communication overhead of container networking in IoT devices while maintaining interoperability. Furthermore, it works consistently across different types of devices, whether wired or wireless, and regardless of heavy or sporadic traffic.

Paper summary

Avoid repeating container packet-processing work

Remembering recent forwarding decisions can leave more CPU time for an IoT application.

Container networking repeatedly performs routing, header and filtering operations for packets from the same connection. SCON targets that work inside the Linux networking stack while keeping the existing application interface.

Reuse decisions along an express path

A regular path processes a new connection and records its decisions in a per-container table. An express path reuses those decisions for later packets, while retaining required per-packet checks. A flusher removes expired entries and refreshes state when TCP connections restart.

The regular path records connection decisions for reuse by the express path; the flusher manages their lifetime.View full-size figure
The regular path records connection decisions for reuse by the express path; the flusher manages their lifetime.

Measure CPU use and TCP throughput

The Linux 5.10 implementation is evaluated with HTTP, MQTT and TCP/UDP microbenchmarks. In the single-core TCP tests with 32-byte to 1-KB messages, SCON reduces SoftIRQ CPU use by 19% on average and raises throughput by 20% relative to the ordinary container.

SCON versus an ordinary container in single-core TCP tests with 32-byte to 1-KB messages.
MetricAverage change
SoftIRQ CPU use19% lower
Throughput20% higher

Key takeaways

  1. Packets from one connection often repeat the same decisions. Remembered routing and filtering results create an express path through container networking.
  2. The useful unit of reuse has a lifetime. Expiration and restart handling keep remembered decisions tied to the connection for which they were made.