什么是DPDK

news/2024/11/16 4:22:30/

DPDK官网:http://www.dpdk.org/

What it is

DPDK is a set of libraries and drivers for fast packet processing. It was designed to run on any processors. The first supported CPU was Intel x86 and it is now extended to IBM Power 8, EZchip TILE-Gx and ARM. It runs mostly in Linux userland. A FreeBSD port is available for a subset of DPDK features.

DPDK is an Open Source BSD licensed project. The most recent patches and enhancements, provided by the community, are available in master branch.

Main libraries

  • multicore framework
  • huge page memory
  • ring buffers
  • poll-mode drivers

Usage

These libraries can be used to:

  • receive and send packets within the minimum number of CPU cycles (usually less than 80 cycles)
  • develop fast packet capture algorithms (tcpdump-like)
  • run third-party fast path stacks

Some packet processing functions have been benchmarked up to hundreds million frames per second, using 64-byte packets with a PCIe NIC.

What it is not

DPDK is not a networking stack and does not provide functions such as Layer-3 forwarding, IPsec, firewalling, etc. Within the tree, however, various application examples are included to help developing such features.

Some support and services are provided by several companies.


DPDK是报文快速处理的库和驱动的集合,它的设计是可以运行在任何平台。最先支持的是Intel X86平台,现在已经扩展到IBM Power 8,EZChip TILE_Gx及 ARM。大多数情况下运行在linux的用户态空间。


DPDK主要使用了UIO、HUGEPAGE和CPU Affinity机制三个技术点来提高高速网络数据的处理性能。
UIO是实现用户空间下驱动程序的支撑机制,一般网卡收包是在内核里做的, 但DPDK可以把它移到应用层来做,DPDK使用UIO机制使网卡驱动程序(主要是intel自身的千兆igb与万兆ixgbe驱动程序)运行在用户态(
驱动拿数据,绕过内核,跑在用户态,避免核心态到用户态的拷贝),并采用轮询和零拷贝方式从网卡收取报文,提高收发报文的效率。

HUGEPAGE的主要好处是通过利用大内存页提高内存的访问效率,DPDK在HUGEPAGE机制上构建内存管理系统,提高应用程序处理报文的性能。

CPU Affinity机制主要是让各个CPU各自干自己的事情,DPDK使用CPU Affinity机制将控制面线程以及各个数据面线程绑定到不同的CPU核,避免线程核间切换开销,节省反复调度的性能消耗。其工作模式类似于一个CPU核绑定一个死循环线程,专心处理各自的业务。比如两个网卡eth0和eth1都收包,可以让cpu0专心处理eth0,cpu1专心处理eth1,没必要cpu0一下处理eth0,一下又处理eth1,这样就提高了多核CPU的使用效率。



http://www.ppmy.cn/news/687269.html

相关文章

DPDK相关介绍

读前须知 阅读本文前建议了解: 计算机网络基础知识; Linux用户态及内核态的简单介绍; 服务器 Numa 节点相关知识; 简述 概念 DPDK(Data Plane Development Kit,数据平面开发套件)&#xf…

DPDK简介

DPDK是什么 Intel DPDK全称Intel Data Plane Development Kit,是intel提供的数据平面开发工具集,为Intel architecture(IA)处理器架构下用户空间高效的数据包处理提供库函数和驱动的支持,它不同于Linux系统以通用性设…

DPDK介绍

目录 什么是dpdk 内核协议栈 vs dpdk 内核收包的两种方式 中断模式 轮询模式 内核协议栈收包流程 ​ DPDK收包 1、UIO框架 2、用户态驱动pmd轮询与uio中断的关系 3、 mellanox dpdk 混和中断轮询模式 DPDK核心部件库 DPDK 内存结构 hugetlb TLB 为什么要…

Delphi 制作自定义数据感知控件并装入包(dpk文件)中(与DBText类似的数据感知控件)

一、基础知识简介: 1、包的命名介绍: 包的命名没有规则,但是建议遵守包的命名约定:包的命名与包的版本相关,包的名称前面几个字符通常表示作者或公司名,也可以是控件的一个描述词,后面紧跟的St…

MySQL环境搭建(Windows电脑)

MySQL环境搭建-Windows电脑篇 软件获取: 搜索gzh【李桥桉】,需要win电脑安装包,回复【win-MS】。 搜索gzh【李桥桉】,需要mac电脑安装包,回复【mac-MS】。 注意:确保电脑为64位系统(不是的话需要…

leetcode 559. N 叉树的最大深度

2023.7.2 这道题还是使用层序遍历&#xff0c;在N叉树的层序遍历的基础上增加一个求深度的操作即可。下面上代码&#xff1a; class Solution { public:int maxDepth(Node* root) {int depth 0;queue<Node*> que;if(root nullptr) return 0;que.push(root);while(!que…

国际版 王者荣耀 英语

游戏名字&#xff1a;Arena of Valor Arena 竞技场:https://fanyi.baidu.com/#en/zh/arena Valor 勇气 App store 介绍 epic 史诗 jungle 丛林 更新公告 maintenance 维修 offline 脱机 forums 论坛 gems (经切割打磨的)宝石;难能可贵的人;风景优美的地方;美妙绝伦的事物 …

“王者荣耀”中的常用英语

偶尔会玩一下王者荣耀&#xff0c; 画面和声音都很震撼&#xff0c; 今天我们来看看&#xff1a; First Blood 第一滴血 Double Kill 双杀 Triple Kill 三杀 Quadra Kill 四杀 Penta Kill 五杀 Aced 团灭 Killing Spree 大杀特杀…