对于一个新手来说,该如何入门dpdk ?

本文详细介绍了从DPDK基础知识、网络协议栈、组件项目到安全网关开发、虚拟化技术等的深入学习路径,旨在帮助工程师提升到DPDK资深架构师岗位,涵盖了spdk、储存技术、安全与网关开发、虚拟化云原生等内容。
摘要由CSDN通过智能技术生成

你是否遇到这样的问题:

  • 如何解决实际场景中的性能瓶颈问题?
  • 高性能网络技术方案的总体架构是什么样的?
  • 如何理解高性能网络技术方案中的各个模块?
  • 软件和硬件的交互机制和流程是什么样的?
  • 如何从底层理解高性能网络技术方案?如何应用?
  • 如何将高性能网络技术方案引入到现有产品中?

本文介绍下DPDK进阶到高性能专家的学习路线,整个学习路线,直接对标DPDK资深架构师岗位,知识点包括dpdk、储存、网关开发、网络协议栈、网络安全、TRex、vpp、OVS、DDos、虚拟化技术等等 。其次你把整个内容,全部消化,是完全可以胜任任何DPDK资深架构师岗位招聘,DPDK开发招聘。

1、DPDK网络专栏

(1)dpdk基础知识

  • 1.多队列网卡,vmxnet/e1000

  • 2.igb_ uio与vfio模块

  • 3.kni模块

  • 4.hugepage的理解

  • 5.零拷贝

  • 6.dpdk与netmap区别

  • 7.dpdk的工作环境

(2)网络协议栈

  • 1.dpdk-arp

  • 2.netsh静态arp表设置

  • 3.dpdk-icmp

  • 4.udp协议格式分析

  • 5.udp协议sendto, recvfrom实现

  • 6.dpdk-ip

  • 7.dpdk-tcp

  • 8.tcp协议栈bind,listen, accept实现

  • 9.tcp协议栈recv, send, close的实现

  • 10.tcp三次握手实现

  • 11.tcp四次挥手实现

  • 12.tcp acknum与seqnum的确认机制实现

  • 13.tcp的并发连接设计

  • 14.epoll并发的实现

  • 15.tcp协议栈与epoll之间的回调实现

(3)dpdk组件项目

  • 1.dpdk-ac

  • 2.dpdk-kni

  • 3./dev/ kni的原理分析

  • 4.kni_ dev的流程

  • 5.kni的t缓冲区,rx缓冲区

  • 6.kni的用户空间与内核空间映射

  • 7.mbuf如何转化为kernel的sk_ buff

  • 8.dpdk- timer

  • 9.bpftrace的使用

  • 10.dpdk- bpf源码流程

(4)dpdk经典项目

  • 1.dpdk- dns

  • 2.dpdk- gateway

  • 3.dpdk-ddos熵计算源码

  • 4.ddos attach检测精确度调试

  • 5.ddos attach测试T具hping3

  • 6.布谷鸟hash原理与使用

DPDK视频以及文档领取地址:

https://disk.0voice.com/p/nvicon-default.png?t=N7T8https://disk.0voice.com/p/nv

2、储存技术专栏

(1)高效磁盘io读写spdk(C)

  • 1.存储框架spdk,为技术栈打开扇存储的大门

  • 2.spdk运行环境与vhost

  • 3.NVMe与PCl的关系

  • 4.手把手实现spdk_ server

  • 5.nvme与pcie以及手写nvme读写操作

  • 6.bdev与blob之间的关系

  • 7.实现blob异步读写

  • 8.blobstore的读写操作实现与rpc的关系

  • 9.fio性能测试性能对比libaio,io_ uring,psync

  • 10.fio plugin工作流程

  • 11.fio plugin开发

(2)spdk文件系统的实现

  • 1.文件系统功能拆解

  • 2.spdk_ env_ init与spdk_ app init的差别

  • 3.spdk_ _thread_ poll实现rpc回调

  • 4.fs_ operations结构体定义

  • 5.file_ operations结构体定义

  • 6.dir_ operations结构体定义

  • 7.syscall的hook实现

  • http://8.io内存管理

  • 9.基数树对文件系统内存管理

  • 10.spdk_ blob的open,read,write,close

  • 11.测试用例与调试入口函数

(3)spdk kv存储的实现

  • 1.KV存储拆解Set, Get, Mod, Del

  • 2.app/.a库/so库对于kv存储的选择

  • 3.bdev与blob对于kv存储的选择

  • 4.kv service启动blob资源操作

  • 5.kv service关闭blob资源回收

  • 6.kv service接口set,get,modify,delete

  • 7.kv遍历与查找实现

  • 8.page存储chunk的管理

  • 9.pagechunk的get与put

  • 10.page单查找与多页查找

  • 11.btree, artree, hashmap,radixtree, rbtree之间的选择

  • 12.slab的实现

  • 13.slab分配slot与释放slot

  • 14.为kv加上conf文件

  • 15.测试用例与性能测试

3、安全与网关开发专栏

(1)可扩展的矢量数据包处理框架vpp(c/c++)

  • 1.vpp命令详解

  • 2.mac/ip转发plugin

  • 3.load_ balance plugin

  • 4.flowtable plugin

  • 5.vpp源码之间的差异

  • 6.多网卡数据接收与转发

  • 7.解决plugin编译加载

  • 8.vpp启动load so的流程

  • 9.vpp的结构体vlib_ _main实现分析

  • 10.vpp的结构体vnet_ main

  • 11.vector的操作实现

  • 12.vpp vcl库与LD_ PRELOAD实现分析

  • 13.vcl原理讲解

  • 14.vcl tcpserver实现原理

  • 15.vcl tcpclient实现原理

  • 16.vcl与iperf3的客户端与服务器

  • 17.vcl与nginx的wrk性能测试

  • 18.vcl与haproxy的性能测试

  • 19.vpp 1801版本与vpp 2206版本

  • 20.vpp httpserver的实现源码

  • 21.vpp plugin quic源码分析

  • 22.vpp plugin hs_ app的源码

  • 23.vpp plugin rdma的实现分析

  • 24.vpp plugin loadbalance

  • 25.vpp plugin nat的源码分析

  • 26.vpp host-stack tcp协议实现

  • 27.vpp plugin的测试用例实现

(2)golang的网络开发框架nff-go(golang)

  • 1.nff-go实现的技术原理

  • 2.nff-go/low.h实现分析

  • 3.nff- go数据接收的实现

  • 4.nff-go数据发送的实现

  • 5.ipsec协议解析与strongswan的ipsec

  • 6.nff go的缺陷与不足

4、虚拟化与云原生专栏

(1)DPDK的虚拟交换机框架OvS

  • 1.ovs编译安装,ovs核心组件内容

  • 2.ovs-vswitchd的工作原理

  • 3.ovs-vswitchd与dpdk的关系

  • 4.ovs-vsctl的网桥,网口操作

  • 5.qemu-system-x86_ 64构建多子网

  • 6.ovs与qemu数据流分发

  • 7.ovs搭建docker跨主机通信

  • 8.ovsdb server与ovsdb协议

  • 9.json-rpc为控制面提供开发

  • 10.ovs-tcpdump/ovs-l3ping

  • 11.OvS 4种数据路径

  • 12.VXL AN数据协议

  • 13.ovs流量统计

(2)高性能4层负载均衡器DPVS

  • 1.dpvs的技术组件与功能边界

  • 2.lvs+keepalived配置高可用server

  • 3.dpvs与|lvs+ keepalived的关系

  • 4.dpvs.conf的配置文件

  • 5.dpvs的FNat/NAT/SNAT模式

  • 6.dpvs的DR模式

  • 7.dpvs的tun模式

  • 8.通过quagga配置ospf

  • 9.dpvs的tc流控操作与源码实现

  • 10.dpvs代码架构分析

  • 11.dpvs测试用例ipset, tc,mempool

5、测试工具专栏

(1)perf3

  • 1.vpp vcl的perf3接口hook

  • 2.perf3测网络带宽

  • 3.tcp吞吐量测试

  • 4.udp丢包与延迟测试

  • 5.json测试结果输出

(2)TRex

  • 1.TRex的运行原理

  • 2.TRex与dpdk

  • 3.构建TRex测试系统

  • 4.t-rex -64- debug gdb调试

  • 5.bg-sim- 64模拟单元测试

  • 6.YAML文件编写

  • 7.流编排与自动化框架

  • 8.报文变量设置

(3)dpdk-pktgen

  • 1.pktgen命令讲解

  • 2.default.cfg配置文件分析

  • 3.120M bits/s的转发速率

(4)fio

  • 1.ioengine的实现

  • 2.ioengine_ ops的分析

  • 3.iodepth的分析

  • 4.spdk_ nvme的fio分析

  • 5.spdk_ bdev的fio分析

  • 6.spdk_ blob的ioengine实现

  • 7.psync,io_ uring, libaio性能对比

6.性能测试专栏

(1)性能指标

  • 1.吞吐量bps

  • 2.拆链/建链pps

  • 3.并发

  • 4.最大时延

  • 5.最小时延

  • 6.平均时延

  • 7.负载

  • 8.包速fps

  • 9.丢包率

(2)测试方法

  • 1.测试用例

  • 2.vpp sandbox

  • 3.perf3灌包

  • 4.rfc2544

7、适学人群

  1. 工作中技术没有挑战,工作中接触不到新技术的在职工程师

  2. 从事嵌入式开发对网络存储底层感兴趣在职工程师

  3. 自己研究学习速度较慢,不能系统构建知识体系的开发人员

  4. 从事网络存储安全的工程师,想深入了解底层技术原理

8、课程目标岗位

  • 高级网络开发工程师

  • DPDK开发工程师

  • 云基础开发工程师

  • NFV开发工程师

  • 高性能优化工程师

  • 云产品研发工程师

  • SDN开发工程师

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值