dpdk for network speed

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?

The Data Plane Development Kit (DPDK) is an open-source set of libraries and optimised drivers that run on Linux. It was originally developed for Intel platforms, but now the list of DPDK-supported hardware includes solutions from most technology vendors.
 
The DPDK API is extensive and contains many auxiliary functions that help you perform simple operations quickly.
 
Speed and simplicity can be ensured with the DPDK drivers that work directly with the network interface controller (NIC) and bypass (zero-copy) the Linux kernel network adapter drivers.
 
how dpdk works

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.

In addition, DPDK provides a framework and tools for developers to use vector packet processing on supported hardware platforms.
 
Vector packet processing (VPP) is a technology that allows multiple packets or data items to be processed in parallel using a single instruction, thus achieving high packet processing performance.

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:

  1. Software for satellite communications: with Intel DPDK, we separated TCP traffic and added traffic speed limits to ensure equal user access to quality communications.
  2. Video streaming software: we used DPDK to receive and store 8K video streams from 8 cameras simultaneously.

Case Study #1. TCP PEP and QoS Software Modules for the HTS Satellite Communication System

TCP PEP

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.