DPDK /网络协议栈怎么学?
偶然在c++后台开发行业中 发现一个新风口:DPDK开发
什么是风口,就是知道的少,但是又有市场需求,DPDK就是这样,四个字:小众多金
数据统计:搜索全国 dpdk岗位招聘,大概在350条,其中薪资平均是15K-30k
dpdk开发到底是什么?
大众一点来说就是相当于网络虚拟化
概述:
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应用程序看作是一个普通的用户态进程,包括它的编译、连接和加载方式和普通程序没有什么两样。
主要是做什么?
1:网络研发工程师
2:dpdk开发工程师
关于怎么上手,我近期搜索了网上大量资料,发现DPDK资料空空如也,而网络编程资料偏多
最终在一个平台偶然发现一个学习体系,个人觉得很有参考价值,详情如下:
视频:
DPDK开发/DPDK精髓/DPDK框架/DPDK原理/DPDK虚拟化技术【1】
DPDK开发/DPDK精髓/DPDK框架/DPDK原理/DPDK虚拟化技术【2】
技术点:
DPDK网络专栏:
1:网络协议栈项目
2:dpdk组件项目
3:dpdk经典项目
DPDK框架专栏:
1:可扩展的矢量数据包处理框架VPP(c/c++)
2:DPDK的虚拟交换机框架ovs
3:golang的网络开发nff-go(golang)
4:轻量级的switch框架(Lua)
5:高效磁盘io读写sdpk(c)
DPDK源码专栏:
1:内核驱动
2:内存
3:协议
4:虚拟化
5:CPU
6:安全
性能测试专栏:
1:性能指标
2:测试方法
3:测试工具
详细技术点:
地址:
如果你对DPDK 也感兴趣,如果你对网络编程也感兴趣,那么抓住风口!