零声教育 第2代 dpdk/spdk 技术专家成长体系课程大纲(含存储,安全,虚拟化,网关,云原生的场景方向)
第2代 dpdk/spdk/网络协议栈/存储/网关开发/网络安全/虚拟化/ OvS/TRex/dpvs 技术专家成长体系课程大纲 dpdk-dns dpdk-gateway dpdk-ddos熵计算源码 布谷鸟hash原理与使用 dpdk经典项目 网络协议栈 dpdk-arp dpdk-icmp dpdk-udp dpdk-tcp dpdk-ip 存储 可扩展的矢量数据包处理框架 vpp(c/c++) 性能测试 perf3 TRex dpdk组件项目 dpdk-acl dpdk-kni dpdk-timer dpdk-bpf源码流程 golang的网络开发框架 nff-go(golang) vpp 命令详解 vpp源码 高效磁盘io读写 spdk(C) 零声服务 目标岗位 学习方法 课程参数 32个项目案例 2w+行的手写代码 4个dpdk的技术方向 安全,网络,存储,云原生 100+小时的录播时长 高级网络开发工程师 DPDK开发工程师 云产品研发工程师 云基础开发工程师 高性能优化工程师 多写:案例动手实现与调通 多记:笔记整理与博客总结 多问:不理解的多跟讲师沟通 吞吐量 bps 拆链/建链 pps 并发 最大时延 mac/ip转发 plugin load_balance plugin flowtable plugin dpdk网络 性能指标 负载 包速 fps 最小时延 平均时延 丢包率 测试方法 dpdk-pktgen 测试用例 vpp sandbox perf3灌包 rfc2544 SDN开发工程师 NFV开发工程师 存储框架spdk,为技术栈打开一扇存储的大门 手把手实现spdk_server spdk运行环境与vhost nvme与pcie以及手写nvme读写操作 nff-go数据接收的实现 nff-go数据发送的实现 nff-go实现的技术原理 ipsec协议解析与strongswan的ipsec DPDK的虚拟交换机框架 OvS ovs编译安装,ovs核心组件内容 ovs-vsctl的网桥,网口操作 OvS 4种数据路径 VXLAN数据协议 fio性能测试 性能对比libaio, io_uring,psync fio plugin工作流程 fio plugin开发 tcp协议栈bind,listen, accept实现 tcp三次握手实现 tcp四次挥手实现 tcp acknum与seqnum的确认机制实现 tcp协议栈recv, send, close的实现 udp协议sendto,recvfrom实现 tcp的并发连接设计 epoll并发的实现 tcp协议栈与epoll之间的回调实现 dpdk基础知识 多队列网卡,vmxnet/e1000 igb_uio与vfio模块 kni模块 hugepage的理解 零拷贝 dpdk与netmap区别 dpdk的工作环境 /dev/kni的原理分析 kni_dev的流程 kni的tx缓冲区,rx缓冲区 kni的用户空间与内核空间映射 mbuf如何转化为kernel的sk_buff netsh 静态arp表设置 udp协议格式分析 bpftrace的使用 ddos-attach检测精确度调试 ddos attach测试工具hping3 多网卡数据接收与转发 解决plugin编译加载 vpp启动 load so的流程 vpp的结构体 vlib_main vpp的结构体 vnet_main vector的操作实现 vpp vcl库与LD_PRELOAD vcl与iperf3的客户端与服务器 vcl与nginx的wrk性能测试 vcl与haproxy的性能测试 vcl原理讲解 高性能4层负载均衡器 DPVS NVMe与PCI的关系 bdev与blob之间的关系 实现blob异步读写 blobstore的读写操作实现与rpc的关系 nff-go/low.h实现分析 nff-go的缺陷与不足 安全与网关开发 虚拟化与云原生 测试工具 fio spdk文件系统的实现 spdk kv存储的实现 文件系统功能拆解 spdk_env_init与spdk_app_init的差别 spdk_thread_poll实现rpc回调 fs_operations结构体定义 file_operations结构体定义 dir_operations结构体定义 syscall的hook实现 io内存管理 基数树对文件系统内存管理 spdk_blob的open,read,write,close 测试用例与调试入口函数 KV存储拆解 Set, Get, Mod, Del app/.a库/.so库 对于kv存储的选择 bdev与blob对于kv存储的选择 page存储chunk的管理 kv service启动 blob资源操作 page单查找与多页查找 kv遍历与查找实现 kv service关闭 blob资源回收 kv service接口 set,get,modify,delete pagechunk的get与put btree,artree,hashmap,radixtree,rbtree之间的选择 slab分配slot与释放slot slab的实现 测试用例与性能测试 为kv加上conf文件 ioengine_ops的分析 ioengine的实现 iodepth的分析 psync,io_uring, libaio性能对比 spdk_nvme的fio分析 spdk_bdev的fio分析 spdk_blob的ioengine实现 vpp vcl的perf3接口hook perf3测网络带宽 vcl tcpserver实现原理 vcl tcpclient实现原理 vpp 1801版本与vpp 2206版本之间的差异 vpp httpserver的实现源码 vpp plugin quic源码分析 vpp plugin hs_app的源码实现分析 vpp plugin rdma的实现分析 vpp host-stack tcp协议实现 vpp plugin loadbalance实现分析 vpp plugin nat的源码分析 vpp plugin的测试用例实现 dpvs的技术组件与功能边界 lvs+keepalived 配置高可用server dpvs 与lvs+keepalived的关系 dpvs的FNat/NAT/SNAT模式 通过quagga配置ospf dpvs的DR模式 dpvs的tun模式 dpvs.conf的配置文件 dpvs的tc流控操作与源码实现 dpvs代码架构分析 dpvs测试用例 ipset,tc,mempool qemu-system-x86_64构建多子网 ovsdb-server与ovsdb协议 ovs-tcpdump/ovs-l3ping json-rpc为控制面提供开发 ovs搭建docker跨主机通信 ovs-vswitchd的工作原理 ovs-vswitchd与dpdk的关系 ovs流量统计 tcp吞吐量测试 udp丢包与延迟测试 json测试结果输出 TRex的运行原理 构建TRex测试系统 t-rex-64-debug-gdb调试 bg-sim-64模拟单元测试 YAML文件编写 TRex与dpdk 流编排与自动化框架 报文变量设置 pktgen命令讲解 default.cfg配置文件分析 ovs与qemu数据流分发 120M bits/s的转发速率 适宜工程师人群 2. 从事嵌入式开发,对网络存储底层感兴趣在职工程师 4. 从事网络存储安全的工程师,想深入了解底层技术原理 1. 工作中技术没有挑战,工作中接触不到新技术的在职工程师 3. 自己研究学习速度较慢,不能系统构建知识体系的开发人员