Promwad Maximises Network Speed with DPDK
We adopted DPDK technology and successfully applied it in our clients' projects where data transfer speed was critical. This data plane development kit reduces latency and speeds up network traffic processing – up to 10 times faster than the Linux kernel network stack. Let’s review our case studies and the basics of DPDK.
DPDK handles network traffic with low overhead and minimises latency, which is critical for trading floors, financial platforms, online gaming and large data centres. This technology also plays a key role in ensuring cybersecurity as it provides access to network packets, and with separately created logic, it prevents DDoS attacks.
In addition, our engineers use the storage performance development kit (SPDK), a set of tools and libraries to write 8 KB blocks at maximum media speeds with non-volatile memory express (NVMe). This extra-fast way to access memory significantly increases the speed of data storages.
What Is DPDK in Networking?
Data processing with DPDK
DPDK Application in Networking
Using the universal kernel stack for simple and fast actions is not reasonable. Several additional (and not always necessary) actions are often launched in parallel with these operations, affecting the overall kernel performance and execution speed.
DPDK has a zero-copy property, which allows data to be moved between different areas without creating additional copies.
Here are some simple traffic processing operations that can be deployed using DPDK:
- traffic policing with speed limits to distribute bandwidth equitably among multiple users;
- filtering by specified criteria, e.g. MAC and IP addresses, VLAN tags;
- traffic capture for monitoring, analysing and troubleshooting;
- inspection and pattern matching for verification and security purposes;
- encryption, decryption and hashing for protection;
- load balancing with traffic distribution across multiple interfaces or paths.
Examples of DPDK Use
We are ready to share our experience with DPDK. In both cases, we needed to implement ultra-fast packet processing:
Case Study #1. TCP PEP and QoS Software Modules for the HTS Satellite Communication System
We developed TCP PEP and QoS software modules for the HTS satellite communication system for a global supplier of satellite telecommunication equipment and used DPDK at the customer's request.
Geostationary satellites are characterised by high signal delay, which severely reduces the performance of TCP, the most common internet protocol. Our engineers used a special TCP Performance Enhancing Proxy (PEP) to minimise the negative impact of the signal delay. We separated TCP traffic from the general transit flow with the Intel DPDK and redirected it to the customer's TCP PEP.
As a result, we managed TCP operation via satellite communication without the necessity of additional configurations on the final client’s side.
Also, we added traffic speed limits with the DPDK. The customer had many clients, and some used traffic more intensively than others, leading to unequal distribution and deterioration of communication quality. Therefore, a certain speed was allocated for such customers to ensure all users had access to high-quality communication.
Case Study #2. System Software for High-Speed Network Data Storage
Our team is working on a system software for high-speed data network storage. This system simultaneously receives and stores 8K video streams from 8 cameras. One of the system's main functions is decoding and playing video from two streams with time synchronisation and in 8K quality.
DPDK is a tool we use to organise some of the processes in this system:
- we get access to frames broken into packets, reassemble them into one in physical memory and send them to the video card for decoding while saving the frame to disc;
- thanks to zero-copy, we receive packets bypassing the kernel, which gives a two or three-times performance increase compared to standard technologies, such as Linux sockets.
SPDK may be included in this project in the future.
The data plane development kit enables rapid deployment of network processes, avoiding congestion and inefficient use of the core network stack.
Due to its ability to minimise latency and bypass performance bottlenecks and scalability, DPDK is used in the largest and most complex projects involving the transmission of large data sets. There are similar tools with such features (netmap and PF_RING) but DPDK stands out for its broad support, active community, and cross-platform compatibility.
Tell us about your engineering tasks, and we will help you implement them in the most efficient way with DPDK.