• 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开发工程师

    在这里插入图片描述

  • 相关阅读:
    SpringBoot 过滤器更改 Request body ,并实现数据解密
    说说 JSON 格式的弊端与解决方法
    CleanMyMacX4.11.3最新版mac电脑磁盘清理工具功能
    Java读取单个大文件的json数据避免内存溢出
    Rust 中的String与所有权机制
    一加手机线刷2024版,param预载失败/MSM刷机工具报错
    0201导数的概念-导数与微分-高等数学
    16 Linux之JavaEE定制篇-搭建JavaEE环境
    c4d和blender哪个简单?哪个好用?
    stack-es-标准篇-ElasticsearchClient-intervals
  • 原文地址:https://blog.csdn.net/weixin_52622200/article/details/133817759