1、DPDK 是什么?

DPDK全称 Intel Data Plane Development Kit,是intel提供的数据平面开发工具集,为Intel architecture(IA)处理器架构下用户空间高效的数据包处理提供库函数和驱动的支持。通俗地说,就是一个用来进行 包数据处理加速的软件库

当然现在,也不光只用Intel的处理器支持,还有其它的处理器也慢慢支持DPDK,比如NXP LS系列的众多平台,LS1012A, LS1028A, LS1043A, LS1046A, LS1088A, LS2088A, and LX2160 family of SoCs 等在 DPDK中都已经支持。

换句话说,DPDK 是一个跑在用户空间的,数据包处理加速软件库

DPDK 专注于网络应用中数据包的高性能处理绕过了Linux内核协议栈对数据包处理过程 ,在用户空间上利用自身提供的数据平面库来收发数据包。可以大幅提升IPV4的转发性能。

2、DPDK 解决什么问题的?如何解决?

高速高性能的网络数据包处理。可达到千兆、万兆的速度。

要实现高速、高性能的需求,就要想尽一切办法,降低延迟。

考虑到 linux内核中网络协议栈可能引起的延迟:

  • 不必要的内存拷贝和系统调用
  • 高速网络数据处理时的内存 cache miss
  • 多核cpu任务切换带来的cpu cache miss
  • 中断上下文切换带来的开销

基于上述的问题,DPDK均有对应的解决方案。

(1) 为了减少不必要的内存拷贝和系统调用,DPDK中采用 UIO技术,直接将报文拷贝到用户空间处理,避免了很多不必要的内存拷贝和系统调用。

(2) 内存的cache miss 问题,可以通过 大页内存 HUGEPAGE 来解决 ,降低cache miss(访存开销),利用内存多通道交错访问提高内存访问有效带宽,即提高命中率,进而提高cpu访问速度。

(3) 通过CPU亲和性,绑定网卡和线程到固定的core,减少cpu任务切换。特定任务可以被指定只在某个核上工作,避免线程在不同核间频繁切换,保证更多的cache命中。

(4) 通过无锁队列,减少资源竞争。cache行对齐,预取数据,多元数据批量操作。

(5) 通过轮询可在包处理时避免中断上下文切换的开销

3、DPDK 对 NXP LS 系列CPU支持的框架

PMD:Pool Mode Driver,轮询模式驱动,通过非中断,以及数据帧进出应用缓冲区内存的零拷贝机制,提高发送/接受数据帧的效率。

EAL:Environment Abstract Layer,环境抽象(适配)层,PMD初始化、CPU内核和DPDK线程配置/绑定、设置HugePage大页内存等系统初始化。

4、DPDK build  and  binary

DPDK 官方文档:http://doc.dpdk.org/guides-17.05/index.html

DPDK源码(NXP提供):

git clone https://source.codeaurora.org/external/qoriq/qoriq-components/dpdk -b github.qoriq-os/
integration

先介绍下 编译DPDK出来的 binary 文件

关于如何 build DPDK 可以参考 LSDKUG_Rev19.09.pdf 第9章节。

(1) DPDK 简介相关推荐

  1. DPDK学习(一)DPDK简介

    1.DPDK介绍 Intel® DPDK 全称 Intel Data Plane Development Kit,是intel提供的数据平面开发工具集,为Intel architecture(IA)处 ...

  2. linux dpdk,在Linux(CentOS)上部署DPDK------命令行方式

    1.DPDK 简介 DPDK(Data Plane Development Kit)是数据平面开发工具包,由用于加速在各种CPU架构上运行的数据包处理的库组成. DPDK需要一定的网卡硬件支持,以In ...

  3. 数据平面开发套件:DPDK

    摘要:DPDK,是由6WIND,Intel等多家公司开发,主要基于Linux系统运行,用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,是在数据平面应用中为快速的数据包处理提供一 ...

  4. Kernel Bypass DPDK

    1.Kernel Bypass简介 kernel bypassing是用来做low latency 中的一项常见解决方案,往往在高速科学计算.低延迟交易设备常中用到. Kernel Bypass(内核 ...

  5. DPDK盒子使用手册——DPDK入门zz

    https://www.sdnlab.com/20524.html 本章分为两节,第一节介绍数据平面开发套件DPDK(Data Plane Development Kit)的基础知识,第二节介绍DPD ...

  6. OVS DPDK--介绍(一)

    DPDK简介 DPDK是X86平台报文快速处理的库和驱动的集合,不是网络协议栈,不提供二层,三层转发功能,不具备防火墙ACL功能,但通过DPDK可以轻松的开发出上述功能. DPDK的优势在于,可以将用 ...

  7. lwip协议栈优化_干货分享 | KNI性能优化实践

    友情提示:全文5000多文字,预计阅读时间15分钟 文章源自现网实践对支撑及用户态/内核态网络报文交换场景的认识,欢迎有Linux/FreeBSD内核.网络协议栈.DPDK优化实践经验的同学留言探讨- ...

  8. 云服务器搭建配置以及服务器开发相关

    Cloud Server Building and Server Development Relevant Resource Collection 云服务器搭建配置以及服务器开发相关 有用的参考链接 ...

  9. 未来10年,5个C/C++吃香的细分领域技术

    一.DPDK 简介 DPDK全称Intel Data Plane Development Kit,是intel提供的数据平面开发工具集,为Intel architecture(IA)处理器架构下用户空 ...

最新文章

  1. 最全的Centos6.10详细安装Oracle 11G R2图文教程
  2. 5G时代到来,SD-WAN如何发展?-Vecloud微云
  3. python replace函数 成功 失败_请教下调用python string模块的replace方法出错的原因
  4. Flash如何为文字描边
  5. 装CGAL与解决QWidget: Must construct a QApplication before a QPaintDevice. 问题
  6. SSM框架的Web项目实现微信登陆
  7. oracle18c静默安装教程,CentOS7无图形化界面静默安装oracle18c
  8. SystemVerilog学习笔记7——覆盖率
  9. 【历史上的今天】7 月 18 日:英特尔成立;万维网上传了第一张照片;eBay 分拆 PayPal
  10. 外地驾照迁入北京流程
  11. R语言使用dlnorm函数生成对数正态分布密度数据、使用plot函数可视化对数正态分布密度数据(logarithmic normal distribution)
  12. 学神经网络应该看看哪些书,神经网络相关书籍
  13. 小爱同学上线win10商店
  14. English马力-Lesson1(MY MYSELF,IRENE)
  15. web前端开发三个阶段和三要素,学前端必备基础知识
  16. 基于python的二手车网站数据分析与可视化
  17. 狼人杀暂时未连接到语音服务器,狼人杀iOS10用户无法连接到服务器 无法更新解决办法...
  18. c语言学生成绩管理论文,C语言学生成绩管理系统源代码论文
  19. XFTP连接服务器成功,传输文件失败解决方案
  20. Java毕设项目城市智能公交系统(java+VUE+Mybatis+Maven+Mysql)

热门文章

  1. 【cnpm】cnpm的安装方法(附详细步骤)
  2. android设备打开5555远程连接端口
  3. 300iq Contest 3简要题解
  4. jquery事件委托_jQuery事件委托
  5. 受到人工智能发展的影响的,主要包括哪些行业?
  6. 什么是人工智能数据采集?
  7. attribute与parameter区别
  8. json 学习之(json基础)
  9. 《树上的男爵》坚持解释不清的理想是疏离,还是自由?
  10. 产品运营数据分析—SPSS数据分组案例