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

作为近年来运用越来越广泛,被互联网企业越来越认可的技术,网络虚拟化技术:dpdk/spdk/网络协议栈/存储/网关开发/网络安全/虚拟化/0vS/TRex/dpvs技术等该如何学习呢?

这里就把 相关技术点进行整理总结,看完以后,不会让你失望的。

DPDK 网络

DPDK 基础知识

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

网络协议栈

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

dpdk组件项目

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

dpdk经典项目

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

存储

高效磁盘io读写spdk ( C )

  • 存储框架spdk,为技术栈打开一扇存储的大门
  • spdk运行环境与vhost
  • NVMe与PCI的关系
  • 手把手实现spdk_ server
  • nvme与pcie以及手写nvme读写操作
  • bdev与blob之间的关系
  • 实现blob异步读写
  • blobstore的读写操作实现与rpc的关系
  • fio性能测试性能对比libaio,io_ ur ing, 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_ b lob的open, read, wr ite, c lose
  • 测试用例与调试入口函数

spdk kv 存储的实现

  • KV存储拆解Set, Get, Mod, Del
  • app/. a库/. so库对于kv存储的选择
  • bdev与bl ob对于kv存储的选择
  • kv service启动 blob资源操作
  • kv service关闭blob资 源回收
  • kv service接口
  • set, get, mod ify, 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_ ba lance plugin
  • flowtable plugin
  • vpp源码
  • 多网卡数据接收与转发
  • 解决plugin编译加载
  • vpp启动load so的流程
  • vpp的结构体vlib_ main
  • vpp的结构体vnet_ main
  • vector的操作实现
  • vpp vcl库与LD_ _PRELOAD
  • vcl原理讲解
  • vcl tcpserver实 现原理
  • vcl tcpcl ient实现原理
  • vcl与iperf3的客户端与服务器
  • vcl与ng inx的wrk性能测试
  • vcl与haproxy的性能测试
  • vpp 1801版本与vpp 2206版本之间的差异
  • vpp httpserver 的实现源码
  • vpp plugin quic源码分析
  • vpp plugin hs_ app的源码实现分析
  • vpp plugin rdma的实现分析
  • vpp plugin loadba lance实现分析
  • 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-vsct |的网桥,网口操作
  • qemu-system-x86_ 64构建多子网
  • ovs与qemu数据流分发
  • ovs搭建docker跨主机通信
  • ovsdb-server与ovsdb协议
  • json-rpc 为控制面提供开发
  • ovs-tcpdump/ ovs- |3p ing
  • 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 vc |的perf3接口hook
  • perf3测网络带宽
  • tcp吞吐量测试
  • udp丢包与延迟测试
  • json测试结 果输出

TRex

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

dpdk-pktgen

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

fio

  • ioeng ine的实现
  • ioengine_ ops的 分析
  • iodepth的分析
  • spdk_ nvme的fio分析
  • spdk_ bdev的fio分 析
  • spdk_ b lob的ioeng ine实现
  • psync, io_ uring, libaio性 能对比

性能测试

性能指标

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

测试方法

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

相关学习资料、视频教程

获取地址

https://docs.qq.com/doc/DR0FDUVBPSlB6alhW?&u=07f47441d55c49a5bfcd7137907e5276
学习地址
https://ke.qq.com/course/5066203?flowToken=1043068

适宜工程师人群

1.工作中技术没有挑战,工作中接触不到新技术的在职工程师
2.从事嵌入式开发,对网络存储底层感兴趣在职工程师
3. 自己研究学习速度较慢,不能系统构建知识体系的开发人员
4.从事网络存储安全的工程师,想深入了解底层技术原理

参数

  • 32个项目案例
  • 2w+行的手写代码
  • 4个dpdk的技术方向安全,网络,存储,云原生
  • 100+小时的录播时长

目标岗位

  • 高级网络开发工程师
  • DPDK开发工程师
  • 云产品研发工程师
  • 云基础开发工程师
  • 高性能优化工程师
  • SDN开发工程师
  • NFV开发工程师

你可能感兴趣的:(DPDK,网络协议,DPDK,OvS,网络)