无痛入门dpdk 0 前言
本文最后更新于:2024年11月27日 晚上
博主终于活过了忙碌的大二,来到了还算有点时间的大三。也算是机缘巧合吧,从上学期至今在课题组打杂和今年有幸参与的开源之夏的一个小项目都和网络以及dpdk有关。但是这个库虽然拥有非常完善的文档,但是缺少有效的快速入门资料(尤其是中文),所以在这里试着把自己走过的弯路记录一下,本系列文章可能会随着博主的后续认知变化不断更新,也欢迎各位在评论区不吝赐教。
DPDK,Data Plane Development Kit ,正如其官网的描述所说,是一个 Linux 基金会项目,是一系列用于加速在各种 CPU 架构上运行的数据包处理工作负载的库。
Data Plane,数据平面 ,是一个我们在计算机网络中接触过的概念,具体来说,它决定了路由如何处理数据包, 包括但不限于处理数据包中的TTL,查找路由表并转发等内容。相应的,控制平面负责配置数据平面。计网自顶向下那本书里的SDN简介部分介绍了数据平面和控制平面的分离。
那么dpdk是如何在数据平面进行加速的呢,答案当然是因为它代码写得好(逃。 好了,具体地说,通过配置大页内存,实现零拷贝,NUMA和CPU核心亲和,无锁高效缓冲等具体的优秀细节,以及,最重要的,接管网卡使得收发包时绕过CPU中断。也就是说,大大减少了中断的上下文切换开销,以及内核空间的锁争用等更多更复杂的问题。
TBC
无痛入门dpdk 0 前言
http://zerich.icu/20241029/dpdk-0/