dpdk中文-dpdk简单介绍

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拷贝。
用轮循取网卡数据;
先进数据结构保证效率;其实就是官网说的

附上个人学习时比较有用的连接:
http://sanwen8.cn/p/112y6j5.html
到这里不知道是否对DPDK有个大概的感觉了呢。深入学习DPDK,谢大神将持续不断地更新;如果觉得本文对你有用,请留言点个赞吧。



评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值