dpdk中文-dpdk简单介绍

桃扇骨 2022-07-17 02:42 308阅读 0赞

bestboyxie话说DPDK其实dpdk中文文档太少了,好多大神都不愿意分享,所以我如果不写对不起谢大神名号啦

DPDK = Data Plane Development Kit

数据平面开发套件,说白了就是做数据通讯的SDK。以前传统的数据平面实现主要是以一下几种形态出现;

1、早期linux内核转发;使用linux内核协议栈实现二三层转发。使用netfiter来实现报文过滤;

2、使用网络处理器+网络加速器,把二三层的表通过微指令的的方式写入到硬件的内存中,用硬件实现转发;

3、使用多个mips处理,用多核心实现性能,自己实现协议栈,直接跑在cpu裸核上;

4、使用dpdk在传统的通用CPU上实现报文转发;

DPDK优势:

1、用x86通用处理器就可以玩了,再也不用担心cpu停产或者硬件厂商不生成硬件了。x86的优势你懂得~

2、linux应用空间开发协议栈转发程序,应用空间的程序调试起来方便;比裸核上和什么硬件上方便多了。(最近发现可以使用vs2015+工具实现可视化调试爽YY);

3、intel大厂商,开源社区活跃,从刚开始只有个dpdk(core库)到现在什么虚拟化支持,OVS支持,什么ACL库,什么LPM(路由)库都有啦~~

4、性能上已经被证实了可以达到很不错的性能~~然后例子很多,文档健全,自学相对容易;

讲DPDK不得不讲的几个技术;

1.大页内存实现kernel到用户态数据0 copy;

使用预先留的huge page来分给网卡收发包,以及应用空间数据结构+报文使用;

2.PMD 轮训模式驱动;

以前是网卡产生中断来接收报文(10G报文的中断谁受得了)~~现在dpdk通过自己的KO把原来的网卡驱动给接管;然后应用空间轮循接收报文,+第一项技术,完全是它的技术核心呀;所以也是放到它的core库里面的;

3.无锁的队列~支持多中模型,多生产多消费者模型、高效率算法,吊炸天。。

4.人性化的线程创建+绑定cpu。。其实这个对intel来讲不算啥高科技了

其实核心技术就是上面几个了。

总体总结出来:

大页内存0拷贝。

用轮循取网卡数据;

先进数据结构保证效率;其实就是官网说的

![Image 1][]

附上个人学习时比较有用的连接:

http://www.zhihu.com/question/27413080?sort=created

http://sanwen8.cn/p/112y6j5.html

到这里不知道是否对DPDK有个大概的感觉了呢。深入学习DPDK,谢大神将持续不断地更新;如果觉得本文对你有用,请留言点个赞吧。

[Image 1]:

发表评论

表情:
评论列表 (有 0 条评论,308人围观)

还没有评论,来说两句吧...

相关阅读

    相关 dpdk中文-DPDK学习路线图

    谢大神目标:博客做到日访问量1K。2016年底。。大家觉得不错可以帮我推荐哈 接触DPDK也有快一年的时间了;因为项目中需要使用,所以一直在操练;讲说说一般DPDK的学习路线

    相关 DPDK中文-DPDK的ring

    bestboyxie 励志做一名能帮助到他人的程序员,如果你觉得这篇文章对你有帮助,麻烦你 点赞 DPDK的ring是一个线程安全的队列 支持单生产者单消费模型 同时