DPDK 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
DPDK 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
DPDK 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
DPDK 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
DPDK 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 BSD
开发语言 C/C++
操作系统 Linux
软件类型 开源软件
开发厂商
地区 不详
提 交 者 红薯
适用人群 未知
收录时间 2017-03-18

软件简介

Intel® DPDK 全称 Intel Data Plane Development Kit,是 Intel 提供的数据平面开发工具集,为 Intel architecture(IA)处理器架构下用户空间高效的数据包处理提供库函数和驱动的支持,它不同于Linux系统以通用性设计为目的,而是专注于网络应用中数据包的高性能处理。目前已经验证可以运行在大多数Linux操作系统上,包括FreeBSD 9.2、Fedora release18、Ubuntu 12.04 LTS、RedHat Enterprise Linux 6.3和Suse EnterpriseLinux 11 SP2等。DPDK使用了BSDLicense,极大的方便了企业在其基础上来实现自己的协议栈或者应用。 

需要强调的是,DPDK应用程序是运行在用户空间上利用自身提供的数据平面库来收发数据包,绕过了Linux内核协议栈对数据包处理过程。Linux内核将DPDK应用程序看作是一个普通的用户态进程,包括它的编译、连接和加载方式和普通程序没有什么两样。

总体结构

主要有以下几个核心

  • 网络层模块

  • 内存管理模块

  • 内核管理模块

网络模块

总体分析

DPDK对从内核层到用户层的网络流程相对传统网络模块进行了特殊处理,下面对传统网络模块结构和DPDK中的网络结构做对比

传统linux网络层:

硬件中断--->取包分发至内核线程--->软件中断--->内核线程在协议栈中处理包--->处理完毕通知用户层用户层收包-->网络层--->逻辑层--->业务层

dpdk网络层:

硬件中断--->放弃中断流程
用户层通过设备映射取包--->进入用户层协议栈--->逻辑层--->业务层

对比后总结:

dpdk优势:

  • 减少了中断次数。

  • 减少了内存拷贝次数。

  • 绕过了linux的协议栈,进入用户协议栈,用户获得了协议栈的控制权,能够定制化协议栈降低复杂度

dpdk劣势

  • 内核栈转移至用户层增加了开发成本.

  • 低负荷服务器不实用,会造成内核空转.

展开阅读全文

评论 (1)

加载中
这个技术是否能够解决各种通信协议的信息监控和分析?比如HTTP、HTTPS、Socket等。
2020/03/16 18:40
回复
举报
更多评论
发表于AI & 大数据专区
2018/04/12 08:11

沉痛悼念“DPDK之父”Venky Venkatesan

我们发布一则令人无比沉痛的消息:DPDK(数据平面开发工具包)社区和FD.io社区失去了一位重要的创始成员:Venky Venkatesan在与癌症长期作斗争后不幸离世。在这个悲痛欲绝的时刻,我们向Venky的家人、朋友和广大社区致以最诚挚的哀悼。Venky催人上进,始终鼓励着身边人取得杰出成绩。我们会无比想念他。 大概十年前(那时...

10
5
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2018/05/03 11:35

[dpdk] dpdk --lcores参数

dpdk程序的命令行参数 --lcores可以设置lcore到CPU processer的多对多映射关系。 这样既可以提供CPU processor的伸缩扩展,同时也保证了EAL thread的运行环境,只需要简单的修改一下配置,基本上不需要做太多的代码调整。 dpdk文档传送门 摘录官网文档的描述: The term “lcore” refers to an EAL thread, which is re...

0
0
发表了博客
2018/04/30 17:31

[dpdk] dpdk多线程任务调度

DPDK下的线程,叫做EAL线程。 EAL线程默认是与CPU core一对一绑定的,这样的话,有一些实时性,计算量不高的任务独占CORE是一种浪费,大概找了如下几种解决方案。 1. dpdk serivce core 可以实现workload与core之间 N到M的映射关系。 就是提供一组core实现serivce任务,service顾名思义是一种短时任务,多短时任务的应用...

0
0
发表了博客
2018/01/22 11:21

[DPDK] 转发 DPDK分析

前半部分,对于背景和需求的分析,写的相当好啊! 原文地址:https://www.jianshu.com/p/0ff8cb4deaef 背景分析 前10年中,网络程序性能优化的目标主要是为了解决C10K问题,其研究主要集中在如何管理数万个客户端并发连接,各种I/O框架下如何进行性能优化,以及操作系统参数的一些优化。当前,解决C10K问题的服务器已经非...

0
0
发表了博客
2020/06/24 15:32

DPDK — OvS和 OvS-DPDK 的对比

目录 文章目录 目录 参考文献 OvS 架构 OvS-DPDK 架构 OvS-DPDK 在 VNF 中的应用 参考文献 https://networkbuilders.intel.com/docs/open-vswitch-enables-sdn-and-nfv-transformation-paper.pdf OvS 架构 openvswitch.ko :在内核态负责 “快速路径” 的数据转发。转发靠流表来完成,每一个流表都包含很多的匹配项(mat...

0
0
发表了博客
2018/09/03 18:54

[dpdk][hotplug] DPDK网卡设备热插拔

dpdk pci网卡设备的热插拔。 样例程序如下: ... ... static int driverctl(char* pci) { int pid; ...

0
0
2019/10/12 11:52

DPDK是什么

DPDK的全称是 Data Plane Development Kit,中文翻译为:数据平面开发套件。 看这个名字是不会一脸懵?没关系,下面我们慢慢解释。 现在网络设备越来越强,网卡收发能力也是逐年增大,但是单机的收发量还是有限的...

0
0
发表了博客
2018/07/03 22:29

DPDK 分析

DPDK 分析 来源 https://www.cnblogs.com/bakari/p/8404650.html 高性能网络技术 随着云计算产业的异军突起,网络技术的不断创新,越来越多的网络设备基础架构逐步向基于通用处理器平台的架构方向融合,从传统的物理网络到虚拟网络,从扁平化的网络结构到基于 SDN 分层的网络结构,无不体现出这种创新与融合。 这在使得网...

0
0
发表了博客
2019/10/23 00:13

DPDK 简介

DPDK(Data Plane Development Kit)是由6WIND,Intel等多家公司开发,主要基于Linux系统运行,用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。 DPDK使用了轮询(polling)而不是中断来处理数据包。在收到数据包时,经DPDK重载的网卡驱动不会通过中断通知CPU,而...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
1 评论
64 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部