{'fraction_non_alphanumeric': 0.016773162939297124, 'fraction_numerical': 0.0, 'mean_word_length': 5.296482412060302, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Throughput-Efficient Communication Device Driver for IoT Gateways

As bridges for data exchange between end devices and cloud servers, gateways play an important role in IoT and cloud computing fields. However, with the dramatic increase of data generated by the end devices in recent years, the limited data forwarding capability of the gateway has become the bottleneck of the performance of the IoT cloud-based architectures. To efficiently improve the data throughput of links between end devices and cloud servers, this paper proposes a user-space driver for gateways that places the packet-forwarding behavior in the user space of the gateway OS and achieves high throughput by bypassing the kernel and simplifying the packet delivery path. In addition, to obtain more significant data throughput in small packet-intensive scenarios, we integrate packet assembling methods for the driver, which assembles received small packets into a large one before forwarding it. Our evaluation shows that the user-space driver has tens of times throughput compared to the kernel driver. Furthermore, our driver cooperated with the packet assembling method shows a significant advantage compared to the latest related work in small packet-intensive scenarios.