本文内容参考:
《Linux高性能网络详解 从DPDK、RDMA到XDP》 刘伟著 人民邮电出版社
特此致谢!
老是能在Boss直聘上看到JD(职位描述)中要求会DPPDK和RDMA。如以下几例:
天翼云
中科驭数
腾讯云
好像突然一下子就出来了如此多的关于DPDK和RDMA乃至XDP的职位需求。那么到底这几个都是什么玩意儿?本系列文章笔者就和大家一起来认识一下DPDK、RDMA以及相关的知识。这里,笔者也是从零开始学习,如果读者也是初学者,则可以跟笔者一起感受这一从零到一的学习和认知过程,咱们争取是从入门到深入、由深入到精通。
闲言少叙,书归正传。
零、DPDK和RDMA到底是什么?
1. DPDK简介
DPDK的英文全称为Data Plane Development Kit,中文译为数据平面开发工具包。DPDK是在用户态运行的一组软件库和驱动程序(有点像显卡中的核外驱动的概念),可在所有主要CPU体系结构上加速对网络数据包的处理。作为Linux基金会旗下的一个开源项目,DPDK在推动通用CPU在高性能网络环境(比如企业数据中心、电信网络)中的使用方面发挥了很大作用。
2. RDMA简介
RDMA的英文全称为Remote Direct Memory Access,中文译为远程直接内存访问。是一种直接存储器访问技术,它将数据直接从一台计算机的内存传输到另一台计算机,无需双方操作系统的介入。这允许高通量、低延迟的网络通信,尤其适合在大规模并行计算机集群中使用。
至此,我们终于算是认识(应该是初识)了DPDK和RDMA,接下来要进一步认识其“庐山真面”,对于DPDK和RDMA进行深入了解。先介绍和讲解DPDK,而后讲解RDMA。