dpdk/spdk/网络协议栈/存储/网关开发/网络安全/虚拟化/ 0vS/TRex/dpvs技术专家成长体系教程

课程围绕安全,网络,存储,云原生4个维度去讲解核心技术点。

6个专栏组成:dpdk网络专栏、存储技术专栏、安全与网关开发专栏、虚拟化与云原生专栏、测试工具专栏、性能测试专栏

一、dpdk网络

dpdk基础知识

  • 多队列网卡,vmxnet/e1000
  • igb_uio 与 vfio 模块
  • kni 模块
  • hugepage 的理解
  • 零拷贝
  • dpdk 与netmap 区别
  • dpdk 的工作环境

网络协议栈

  • dpdk-arp .
  • netsh 静态 arp 表设置
  • dpdk-icmp
  • dpdk-udp
  • udp 协议格式分析
  • udp 协议 sendto,recvfrom 实现
  • dpdk-ip .
  • dpdk-tcp
  • tcp 协议栈 bind,listen,accept 实 现
  • tcp 协议栈 recv,send, close 的实现
  • tcp 三次握手实现
  • tcp 四次挥手实现
  • tcp acknum 与 seqnum 的确认机制实现
  • tcp 的并发连接设计
  • epoll 并发的实现
  • tcp 协议栈与 epoll 之间的回调实现

dpdk组件项目

  • dpdk-acl
  • dpdk-kni
  • /dev/kni 的原理分析
  • kni_dev 的流程
  • kni 的 tx缓冲区,rx缓冲区
  • kni 的用户空间与内核空间映射
  • mbuf 如何转化为 kernel 的 sk_buff
  • dpdk-timer
  • bpftrace 的使用
  • dpdk-bpf 源码流程

dpdk经典项目

  • dpdk-dns
  • dpdk-gateway
  • dpdk-ddos 熵计算源码
  • ddos-attach 检测精确度调试
  • ddos attach 测试工具 hping3
  • 布谷鸟 hash 原理与使用

二、存储

高效磁盘io读写 spdk ©

  • 存储框架 spdk,为技术栈打开一扇存储的大门
  • spdk 运行环境与 vhost
  • NVMe 与 PCI 的关系
  • 手把手实现spdk_ server
  • nvme 与 pcie 以及手写 nvme 读写操作
  • bdev 与 blob 之间的关系
  • 实现 blob 异步读写
  • blobstore 的读写操作实现与 rpc 的关系
  • fio 性能测试性能对比 libaio,io_uring, psync
  • fio plugin 工作流程
  • fio plugin 开发

spdk文件系统的实现

  • 文件系统功能拆解
  • spdk_env_init 与 spdk_app_init 的差 别
  • spdk_thread_poll 实现 rpc 回调
  • fs_operations 结构体定义
  • file_operat ions 结构体定义
  • dir_operat ions 结构体定义
  • syscall 的 hook 实现
  • io 内存管理
  • 基数树对文件系统内存管理
  • spdk_blob 的 open, read, write, close
  • 测试用例与调试入口函数

spdkkv存储的实现

  • KV 存储拆解 Set, Get, Mod, Del
  • app/. a库/. so库对于kv存储的选择
  • bdev 与 blob 对于kv存储的选择
  • kv service 启动 blob 资源操作
  • kv service 关闭 blob 资源回收
  • kv service 接口 set, get, modify, delete
  • kv遍历与查找实现
  • page 存储 chunk 的管理
  • pagechunk 的 get 与 put
  • page 单查找与多页查找
  • btree,artree, hashmap,radixtree, rbtree之 间的选择
  • slab 的实现
  • slab 分配 slot 与释放 slot
  • 为kv加上 conf 文件
  • 测试用例与性能测试

三、安全与网关开发

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

  • vpp 命令详解
  • mac/ip 转发 plugin
  • load_balance plugin
  • flowtable plugin
  • vpp 源码
  • 多网卡数据接收与转发
  • 解决 plugin 编译加载
  • vpp 启动 load so 的流程
  • vpp 的结构体 vlib_main
  • vpp 的结构体 vnet_main
  • vector 的操作实现
  • vpp vcl 库与 LD_PRELOAD
  • vcl 原理讲解
  • vcl tcpserver 实现原理
  • vc| tcpclient 实现原理
  • vcl 与 iperf3 的客户端与服务器
  • vcl 与 nginx 的 wrk 性能测试
  • vcl 与 haproxy 的性能测试
  • vpp 1801版本与vpp 2206版本之间的差异
  • vpp httpserver 的实现源码
  • vpp plugin quic 源码分析
  • vpp plugin hs_app 的源码实现分析
  • vpp plugin rdma 的实现分析
  • vpp plugin loadbalance 实现分析
  • vpp plugin nat 的源码分析
  • vpp host-stack tcp 协议实现
  • vpp plugin 的测试用例实现

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

  • nff-go 实现的技术原理
  • nff-go/low.h 实现分析
  • nff-go 数据接收的实现
  • nff-go 数据发送的实现
  • ipsec 协议解析与 strongswan 的 ipsec
  • nff-go 的缺陷与不足

四、虚拟化与云原生

DPDK的虚拟交换机框架OvS

  • ovs编译安装,ovs核心组件内容
  • ovs-vswitchd 的工作原理
  • ovs-vswitchd 与 dpdk 的关系
  • ovs-vsctI 的网桥,网口操作
  • qemu-system-x86_64 构建多子网
  • ovs 与 qemu 数据流分发
  • ovs 搭建 docker 跨主机通信
  • ovsdb-server 与 ovsdb 协议
  • json-rpc 为控制面提供开发
  • ovs-tcpdump/ ovs-l3ping
  • 0vS 4种数据路径
  • VXLAN数据协议
  • ovs流量统计

高性能4层负载均衡器 DPVS

  • dpvs 的技术组件与功能边界
  • Ivs+keepalived 配置高可用 server
  • dpvs 与 Ivs+keepalived 的关系
  • dpvs.conf 的配置文件
  • dpvs 的 FNat/NAT/SNAT模式
  • dpvs 的 DR 模式
  • dpvs 的 tun 模式
  • 通过 quagga 配置 ospf
  • dpvs 的 tc 流控操作与源码实现
  • dpvs 代码架构分析
  • dpvs 测试用例 ipset,tc,mempool

五、测试工具

perf3

  • vpp vcl 的 perf3 接口 hook
  • perf3 测网络带宽
  • tcp 吞吐量测试
  • udp 丢包与延迟测试
  • son 测试结果输出

TRex

  • TRex 的运行原理
  • TRex 与 dpdk
  • 构建 TRex 测试系统
  • t-rex-64-debug-gdb 调试
  • bg-sim-64 模拟单元测试
  • YAML 文件编写
  • 流编排与自动化框架
  • 报文变量设置

dpdk- pktgen

  • pktgen 命令讲解
  • default.cfg 配置文件分析
  • 120M bits/s 的转发速率

fio

  • ioengine 的实现
  • ioengine_ops 的分析
  • iodepth 的分析
  • spdk_nvme 的 fio 分析
  • spdk_bdev 的 fio 分析
  • spdk_blob 的 ioengine 实现
  • psync,io_uring, libaio 性能对比

六、性能测试

性能指标

  • 吞吐量 bps
  • 拆链/建链 pps
  • 并发
  • 最大时延
  • 最小时延
  • 平均时延
  • 负载
  • 包速 fps
  • 丢包率

测试方法

  • 测试用例
  • vpp sandbox
  • perf3 灌包
  • rfc2544

dpdk/spdk/网络协议栈/存储/网关开发/网络安全/虚拟化/0vS/TRex/dpvs技术专家成长体系教程

目标岗位

  • 高级网络开发工程师
  • DPDK开发工程师
  • 云产品研发工程师
  • 云基础开发工程师
  • 高性能优化工程师
  • SDN开发工程师
  • NFV开发工程师
相关推荐
RECRUITGUY1 分钟前
通信 - WIFI
网络·智能路由器
GHL2842710908 分钟前
无法连接服务端socket
linux·服务器·网络
慕容雪_43 分钟前
运维笔记-网络【属性】-【共享】中没有【家庭网络连接(H)】的选项
运维·网络·共享
线束线缆组件品替网2 小时前
Amphenol LTW 防水线缆 IP67/IP68 结构解析
运维·网络·人工智能·汽车·硬件工程·材料工程
LaoZhangGong1232 小时前
学习TCP/IP的第1步:ARP数据包
网络·stm32·学习·tcp/ip·以太网·arp·uip
LaoZhangGong1233 小时前
学习TCP/IP的第2步:ICMP数据包
网络·网络协议·学习·tcp/ip·以太网
liulilittle3 小时前
VEthernet 框架实现 tun2socks 的技术原理
网络·windows·c#·信息与通信·通信
上海云盾安全满满3 小时前
高防IP如何实现为数藏精准防刷策略
网络·tcp/ip·安全
菩提小狗3 小时前
vulnhub靶场实战-prime|课堂笔记|网络安全|
网络·笔记·web安全
liulilittle3 小时前
DeepWiki: OPENPPP2 工程价值
网络·c++·网络协议·ai·信息与通信·通信