DPDK
DPDK架构
DPDK是用户态的第三方库,主要的能力就是在大规模的CPU架构上加速数据包的处理流程。
DPDK的名字很明显的反映出它的作用,数据平面上的开发工具集,表明DPDK只是一个专门用于处理数据包收发的工作库,也意味着它并不能控制数据包的行为。
想到了农夫山泉的一句广告,我们不生产水,只是大自然的“搬运工”。
这个“新生”搬运工替代了内核网络协议栈这个“老员工”,所以说,使用DPDK的都绕开了内核网络协议栈。
DPDK库的三种能力:
- 处理数据包的计算开销少
- 便于开发数据包捕获算法等
- 运行在“第三方”快速路径栈(内核旁路协议栈)上
DPDK官网记录了一个夸张的能力,在普通的PCIe NIC上,64位数据包的包处理函数能达到1秒处理1亿次。
貌似,DPDK用了一种不同于内核网络协议栈处理的方式,实现着加速网络数据包的任务。它的背后有一套自己的逻辑,抽离出内核网络数据包的收发处理 ,并且它属于用户态,这使得“DPDK”和“用户态协议栈”像极了咖啡伴侣和咖啡。