A High-Performance Implementation of an IoT System Using DPDK
Abstract
:1. Introduction
- The amount of messages that must be processed or forwarded is growing exponentially since lots of devices are joined in a system. Therefore, an IoT system should be able to process huge messages at high speed.
- Various devices use different kinds of message formats and protocols, and new devices with new features are being introduced in the market at this very moment. In this environment, any IoT system must have high flexibility and scalability.
- Some devices in an IoT system may have high mobility. This means that frequent association and disassociation processes for the devices are necessary. Since these processes themselves can be a burden to the system, a method to address the heavy load problem is required.
- High performance message processing: To improve message processing performance in the data plane, we apply zero-copy and PMD (Poll Mode Driver) concepts. Zero-copy helps to avoid the operation of copying received messages to a user-space application, and the PMD allows a received message to be bypassed from the complex kernel network stack and interrupt mechanism.
- High scalability and ease of maintenance: To provide high scalability and ease of maintenance, the IoT system in this paper is implemented under a general purpose operation system, Linux in a commodity computer, an x86 machine, rather than a special purpose network processor. It is also implemented in C language.
- Minimization of performance interference: To minimize the performance interference caused by the processing signaling message, the proposed architecture is a dual plane architecture. The control plane handles signaling messages, whereas the data plane processes the user-data messages. Since the two planes work independently and do not affect each other, the frequent and complex processing of signaling messages does not slow down the performance of user-data message processing.
2. Related Works
2.1. Previous Single Plane IoT System
- The CSE creates communication sockets using some system calls to receive and send messages. In this way, an incoming message is copied several times to the memory for the user-space network application (i.e., CSE), and the copy operations increase the overall system workloads.
- The CSE receives an incoming message after processing by the kernel network stack, the design of which is quite complex, making this a time-consuming step that causes performance degradation.
- The CSE receives notice on an incoming new message by a kernel’s interrupt mechanism. That is, an interrupt occurs whenever a new message arrives in the system, and frequent interrupts can be problematic for an IoT system, as it should provide continuous and real-time services.
- In the single plane architecture, all kinds of messages are sequentially processed in one plane. Therefore, if the system is already processing a signaling message, user-data messages have to wait until the signaling message is completed. This is ineffective. Signaling messages typically require more resources and time than the user-data messages because the main purpose of the signaling messages is to change or track some sessions or configurations, whereas the main purpose of the user-data messages is to be forwarded. Therefore, the performance of user-data processing relies on the performance of signaling message processing, and consequently, the overall performance of the IoT system is inevitably decreased.
- To increase the system capacity such as the number of CPU cores, the capacity for the control part and the data part must be increased symmetrically. In addition, all of the systems deployed in the field should always contain two parts. In other words, an asymmetric increase of system capacity or physically distributed deployment for the data part only is impossible, as the two parts are not separated.
2.2. Packet Processing Solutions and Related Research
3. Design and Implementation Results
3.1. System Overview
- Network Manager receives and sends messages to/from AEs and IN-CSE. It also passes signaling messages to the control plane.
- Message Manager performs the same role as in the previously proposed system: message analysis and protocol conversion. In this paper, it has the additional role of distinguishing between a user-data message and a signaling message. If an incoming message is a user-data message, it processes the message and then forwards the message to the IN-CSE; if not, it throws the message to the control plane and processes next incoming message immediately.
- Resource Manager manages resource trees in which the information and measurements of every AE the IoT system manages is stored. It also refers to the forwarding-related information such as the Interface Table, ARP Table and Routing Table to forward a user-data message to the IN-CSE or AEs.
- Session Manager processes AE-related signaling messages and updates the AE session information and configurations which are supposed to be stored as an entry of the AE Table in the Shared Memory.
- Sync Manager monitors forwarding-related information which is represented as the forwarding-related signaling message and maintained by the Linux Kernel. When a change in forwarding-related information is detected, the Sync Manager updates the change in the Shared Memory.
- Routing software, which runs on the Linux OS, analyzes routing messages received from the neighbor routers, and updates the kernel’s routing table. The updated routing table is synchronized with the Shared Memory by the Sync Manager.
- AE Table contains session information such as AE device ID, IP address, and session status, and device configurations such as types of transmitting measurements.
- Interface Table includes the information of network interfaces such as IP address, MAC address, interface status, and so on.
- ARP Table is a mapping table between the next hop’s IP address and MAC address.
- Routing Table contains the next hop’s IP address and output interface index for message forwarding.
3.2. Data Plane
3.3. Control Plane
3.4. Interoperation between Two Planes
3.5. Implementation Environments
4. Performance Experiments
4.1. Proposed System Overhead
4.2. Throughput and Message Loss Ratio
4.3. Experiment Analysis
5. Conclusions
Acknowledgments
Author Contributions
Conflicts of Interest
References
- Zanella, A.; Bui, N.; Castellani, A.; Vangelista, L.; Zorzi, M. Internet of Things for Smart Cities. IEEE Internet Things J. 2014, 1, 22–32. [Google Scholar] [CrossRef]
- Yaqoob, I.; Ahmed, E.; Hashem, I.A.T.; Ahmed, A.I.A.; Gani, A.; Imarn, M.; Guizani, M. Internet of Things Architecture: Recent Advances, Taxonomy, Requirements, and Open Challenges. IEEE Wirel. Commun. 2017, 24, 10–16. [Google Scholar] [CrossRef]
- Park, K.H.; Park, J.S.; Lee, J.W. An IoT System for Remote Monitoring of Patients at Home. Appl. Sci. 2017, 7, 260. [Google Scholar] [CrossRef]
- Woo, M.W.; Lee, J.W.; Park, K.H. A Reliable IoT system for Personal Healthcare Device. Future Gener. Comput. Syst. 2017, 78, 626–640. [Google Scholar] [CrossRef]
- oneM2M Standard. Available online: http://www.onem2m.org/ (accessed on 20 October 2017).
- Pak, J.G.; Park, K.H. UbiMMS: An ubiquitous medication monitoring system based on remote device management methods. Health Inf. Manag. J. 2012, 41, 26–30. [Google Scholar] [CrossRef]
- Pak., J.G.; Park, K.H. Pulse oximeter monitor for u-health service. In Proceedings of the International Conference on Computer and Applications, Seoul, Korea, 30–31 March 2012; p. 61. [Google Scholar]
- Pak, J.G.; Park, K.H. A smart personal activity monitoring system based on wireless device management methods. In Communications in Computer and Information Science; Park, J., Yang, L., Lee, C., Eds.; Springer: Berlin, Heidelberg, 2011; Volume 184, pp. 335–342. ISBN 978-3-642-22332-7. [Google Scholar]
- IEEE 11073 for Personal Health Device Standard. Available online: http://www.11073.org (accessed on 20 October 2017).
- IEEE 11073 for Personal Health Device Communication Protocol, ISO/IEEE 11073-20601. Available online: http://www.11073.org (accessed on 20 November 2017).
- Brouer, J.D. Network stack challenges at increasing speeds. In Proceedings of the Linux Conference, Auckland, New Zealand, 12–16 January 2015. [Google Scholar]
- Salim, J.H. When NAPI comes to town. In Proceedings of the Linux Conference, Swansea, UK, 4–7 August 2005. [Google Scholar]
- Fusco, F.; Luca, D. High Speed Network Traffic Analysis with Commodity Multi-core Systems. In Proceedings of the 10th ACM SIGCOMM Conference on Internet Measurement, Melbourne, Australia, 1–3 November 2010; pp. 218–224. [Google Scholar]
- EZChip NP. Available online: http://www.mellanox.com/page/npu_overview?mtag=npu_overview (accessed on 20 October 2017).
- Cavium OCTEON. Available online: http://www.cavium.com/OCTEON_MIPS64.html (accessed on 20 October 2017).
- Tilera Tile-GX. Available online: http://www.mellanox.com/page/multi_core_overview (accessed on 20 October 2017).
- NTOP PF RING. Available online: http://www.ntop.org/products/packet-capture/pf_ring (accessed on 20 October 2017).
- Intel DPDK. Available online: http://dpdk.org (accessed on 20 October 2017).
- 6WID 6WINDGate. Available online: http://www.6wind.com/products/6windgate (accessed on 20 October 2017).
- NAPI. Available online: https://wiki.linuxfoundation.org/networking/napi (accessed on 20 October 2017).
- Kourtis, M.A.; Xilouris, G.; Riccobene, V.; McGrath, M.J.; Petralia, G.; Koumaras, H.; Gardikis, G.; Liberal, F. Enhancing VNF performance by exploiting SR-IOV and DPDK packet processing acceleration. In Proceedings of the 2015 IEEE Conference on Network Function Virtualization and Software Defined Network, San Francisco, CA, USA, 18–21 November 2015. [Google Scholar]
- Zhou, D.; Fan, B.; Lim, H.T.; Kaminsky, M.; Andersen, D.G. Scalable, high performance ethernet forwarding with CuckooSwitch. In Proceedings of the 9th ACM conference on Emerging Networking Experiments and Technologies, Santa Barbara, CA, USA, 9–12 December 2013; pp. 215–220. [Google Scholar]
- Pongracz, G.; Molnar, L.; Kis, Z.L. Removing Roadblocks from SDN: OpenFlow Software Switch Performance on Intel DPDK. In Proceedings of the 2013 Second European Workshop on Software Defined Networks, Berlin, Germany, 10–11 October 2013. [Google Scholar]
- Nguyen, V.G.; Kim, Y.H. Slicing the next mobile packet core network. In Proceedings of the 2014 11th International Symposium on Wireless Communications Systems, Barcelona, Spain, 26–29 August 2014; pp. 901–904. [Google Scholar]
- Yiakoumis, Y.; Yap, K.K.; Katti, S.; Parulkar, G.; McKeown, N. Slicing home networks. In Proceedings of the 2nd ACM SIGCOMM Workshop on Home Networks, Toronto, ON, Canada, 15 August 2011; pp. 1–6. [Google Scholar]
- Qin, Z.; Denker, G.; Giannelli, C.; Bellavista, P.; Venkatasubramanian, N. A software defined networking architecture for the internet-of-things. In Proceedings of the 2014 IEEE Network Operations and Management Symposium, Krakow, Poland, 5–9 May 2014. [Google Scholar]
- Caraguay, A.L.V.; Peral, A.B.; Lopez, L.I.B.; Villalba, L.J.G. SDN: Evolution and Opportunities in the Development IoT Applications. Int. J. Distrib. Sens. Netw. 2014, 10, 735142. [Google Scholar] [CrossRef]
- Nakao, A. Software-Defined Data Plane Enhancing SDN and NFV. IEICE Trans. Commun. 2015, 98, 12–19. [Google Scholar] [CrossRef]
- Kalkan, K.; Zeadally, S. Securing Internet of Things (IoT) with Software Defined Networking (SDN). IEEE Commun. Mag. 2017. [Google Scholar] [CrossRef]
- Lv, Z.; Song, H. Next-Generation Big Data Analytics: State of the Art, Challenges, and Future Research Topics. IEEE Trans. Ind. Inform. 2017, 13, 1891–1899. [Google Scholar] [CrossRef]
- Basanta-Val, P.; Audsley, N.C.; Wellings, A.J.; Gray, I.; Fernandez-Garcia, N. Architecting Time-Critical Big-Data Systems. IEEE Trans. Big Data 2016, 2, 310–324. [Google Scholar] [CrossRef]
- Memos, V.A.; Psannis, K.E.; Ishibashi, Y.; Kim, B.G.; Gupta, B.B. An Efficient Algorithm for Media-based Surveillance System (EAMSuS) in IoT Smart City Framework. Future Gener. Comput. Syst. 2017. [Google Scholar] [CrossRef]
- Yigit, F. Interworking with the Linux Kernel, Intel Shannon, DPDK Summit Userspace. 2016. Available online: https://dpdksummit.com/Archive/pdf/2016Userspace/Day02-Session06-FerruhYigit-Userspace2016.pdf (accessed on 20 October 2017).
- Quagga Routing Suite. Available online: http://www.nongnu.org/quagga (accessed on 20 October 2017).
- Netlink Protocol Library Suite. Available online: https://www.infradead.org/~tgr/libnl (accessed on 20 October 2017).
- He, KK. Kernel korner: Why and how to use netlink socket. Linux J. 2005, 2005, 11. [Google Scholar]
- Fiems, D.; Vuyst, S.D.; Wittevrongel, S.; Bruneel, H. Packet loss characteristics for M/G/1/N queueing systems. Ann. Oper. Res. 2006, 170, 113–131. [Google Scholar] [CrossRef]
Features | Vanilla PF_RING | PF_RING ZC | DPDK | 6WINDGate |
---|---|---|---|---|
Software base | O | O | O | O |
Open source | O | X | O | X |
Universality | O | O | O | O |
Cloud | O | O | O | O |
Bypass Network Stack | △ | O | O | O |
Security | X | X | O | O |
Category | Message | Message Type | Event Type | Content |
---|---|---|---|---|
User-data | Data Report | PRST | MDC_NOTI_SCAN_REPORT | Invoke-id, Measurements (pulse rate, SpO2 …) |
Data Response | PRST | MDC_NOTI_SCAN_REPORT | Invoke-id | |
Signaling (AE-related) | Association Request | AARQ | - | Device ID, Device Type, Config-ID |
Association Response | AARE | - | Device ID, Device Type, Result | |
Disassociation Request | RLRQ | - | Reason | |
Disassociation Response | RLRE | - | Reason | |
Configuration Request | PRST | MDC_NOTI_CONFIG | Invoke-ID, Attribute-ID, Attribute-value | |
Configuration Response | PRST | MDC_NOTI_CONFIG | Invoke-ID | |
Signaling (Forwarding-related) | Routing | RIP, OSFP … | - | Routing Info. |
ARP | Request | - | Sender MAC address, Target IP address | |
ICMP | Request | - | Sender IP address, Target IP address |
Hardware | CPU | Intel(R) Core(TM) i7-4770 CPU @ 3.40 GHz |
RAM | 4 GB | |
NIC | Intel I217-V | |
Software | Hypervisor | VMware ESXi 6.5.0 |
OS/Kernel Ver. | CentOS 7, 3.10.0-514.16.1.e17.x86 | |
DPDK Ver. | 16.11.1 (LTS) | |
Netlink | Libnl3 3.2.28-3.el7_3 |
© 2018 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Pak, J.; Park, K. A High-Performance Implementation of an IoT System Using DPDK. Appl. Sci. 2018, 8, 550. https://doi.org/10.3390/app8040550
Pak J, Park K. A High-Performance Implementation of an IoT System Using DPDK. Applied Sciences. 2018; 8(4):550. https://doi.org/10.3390/app8040550
Chicago/Turabian StylePak, JuGeon, and KeeHyun Park. 2018. "A High-Performance Implementation of an IoT System Using DPDK" Applied Sciences 8, no. 4: 550. https://doi.org/10.3390/app8040550
APA StylePak, J., & Park, K. (2018). A High-Performance Implementation of an IoT System Using DPDK. Applied Sciences, 8(4), 550. https://doi.org/10.3390/app8040550