DPDK学习笔记<1>学习安排

学习安排

在开始深入DPDK的时候我准备带着这样的几个问题。

DPDK是干什么的?

DPDK存在的优势是什么?缺点又是什么?

DPDK做什么?

接下来的工作是什么?

 

DPDK是干什么的?

         通过查阅相关资料对这个问题有了一个初步的认识,DPDK(Data Plane Development Kit)通过名字就可以看出来这个是一个基于数据平面的开发套件。主要就是为了实现高效灵活的数据包处理解决方案。其主体主要运行在用户态,而不是我们常说的内核态(TCP/IP传输协议栈运行在内核态)。也可以这样理解,DPDK就是绕过了TCP/IP协议栈将数据直接暴露在用户空间。DPDK诞生的道理也比较简单就是为了证明IA处理器能够支撑高性能数据包处理。

而目前主流的数据包处理平台分为三类:硬件加速器、网络处理器、多核处理器。

n  硬件加速器:利用硬件模块代替软件算法充分利用硬件固有的快速特性,但是硬件加速也存在一定的问题,那就是针对不同的情况制定不同的电子电路系统,这样很明显的降低了该方式的灵活性和扩展性。

n  网络处理器:设计的目的就是专门为了处理数据包的一种可编程通用处理器。该技术采用多内核并行结构,一定程度上能提升数据包处理性能但是目前针对SDN这样的大环境下,需要解决不同架构上的底层抽象等问题。而且成本比较高需要针对特定的领域设计,这也是限制发展的一大原因。

n  多核处理器:DPDK就是充分发挥多核处理器的性能,并加上大页、轮询以及CPU亲和性的一系列优化不断提升AI架构的性能,以提升数据包的转发和处理能力,并结合着网络负载和虚拟化的融合推动了NFV快速的发展。

         简单的来说,DPDK就是一套开发套件,通过提供各种不同的库来优化和提升86系统架构对数据包处理的性能。

 

DPDK的优势和劣势是什么?

         上文中也提到了,DPDK是通过一系列库提升cpu对数据包的处理。其实DPDK使用的技术也并不是特别高深,只要有三个UIO(用户空间IO)、大页、CPU亲和性。这些特性本身都是linux系统本身提供的,虽然进行了封装,但是使用的还是基本的技术。但是DPDK也有一定的局限性,比如说在开发中开发周期长,代码优化困难等问题。而且就目前所了解的是该技术仅支持linux操作系统(个人所了解),在测试的时候至少需要两块网卡,所以网卡只有一个的主机表示很无奈,再加一张网卡吧。

 

Dpdk能做什么?

         其实这个问题的回答比较宽泛,DPDK仅仅提供一个数据平面的接口,用户完全可以利用这些接口做应用层的二次开发。比如开发基于DPDK在应用层的协议栈,防火墙等等。另外在负载均衡,DNS等等很多应用层的服务都是可以基于DPDK做重新设计和开发。

 

接下来怎样开展工作?

         光是理论的肯定不行,既然Intel公司提供了这样一个优秀的开发套件,那么利用该套件进行编程学习肯定是需要进行的下一步工作。但是问题来了,因为没有这方面开发的经验,所以整个学习准备按照如下的方式组织:

         进一步查阅和学习DPDK中存在的相关技术。

以实验的方式记录该套件的部署方式和实施。

分析样例代码,并深入源代码(最好是能够进行部分的样例编写和测试)。

准备设计和开发自己的应用。

         

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值