这门课解决什么底层性能瓶颈
这门课程并非面向普通业务开发,而是专注于解决 Linux 内核网络栈在极高并发下的性能天花板。传统套接字编程在处理数百万连接时,会因上下文切换和系统调用开销导致 CPU 利用率飙升。本课程通过深入讲解 DPDK、VPP 及 SPDK 等用户态技术,探讨如何将网络数据平面移出内核,实现微秒级延迟处理。它特别适合需要设计高性能网关、负载均衡器或分布式存储系统的资深后端工程师。如果你仅想学习 HTTP 接口编写,此课程过深且枯燥;但若你负责核心基础设施的底层优化,且对操作系统内存管理和网络协议有扎实理解,这里能填补你在高性能计算领域的认知盲区,揭示从包捕获到数据转发的全链路技术细节。
建议的学习顺序与入门门槛
学习前务必确保你能熟练使用 C 语言,并理解 Linux 进程线程模型、内存布局及基本网络协议原理,否则后续源码分析将难以消化。建议从“基础组件”模块入手,重点剖析 mempool、ring buffer 等核心数据结构,这是掌握无锁并发和内存池管理的基石,不要跳过。接着进入“TCP 并发”章节,结合 eBPF 技术理解内核态观测与用户态调度的交互,这是排查高性能网络故障的关键手段。对于 SPDK 文件系统或 KV 存储部分,属于存储与计算交叉领域,仅在涉及超融合架构或高性能存储网关时重点攻克即可。初学者应警惕视频内容的密度,每看一节都需对照源码在本地环境复现,否则容易陷入“听懂了但写不出”的困境,务必注重动手实践而非单纯观看。
学完后的独立产出与资料用法
完成核心模块学习后,你应能独立构建基于 DPDK 的自定义数据包处理流水线,例如实现不依赖内核的七层负载均衡器或高性能 NAT 网关。同时,你掌握了使用 TRex 和 iperf3 进行自动化流量编排与基准测试的方法,能量化代码优化效果,并具备修改开源组件如 DPVS 源码的能力,以适配特定硬件环境的流控逻辑。资料包中的视频短小精悍,但必须配合动手实验:每学一个模块,应在本地环境复现对应的性能测试用例,而非仅仅观看。没有实战复现,这些底层知识无法转化为解决生产环境问题的能力。建议先搭建最小可行环境,逐步增加并发压力,记录不同优化策略下的吞吐率变化,将理论转化为可交付的工程方案。
课程目录
📁 17.spdk kv存储的实现(8节) 121--slab分配slot与释放slot.mp4
[2.9 MB] 118--kv service接口 set,get,modify,delete.mp4
[2.9 MB] 116--KV存储拆解 Set, Get, Mod, Del.mp4
[2.9 MB] 123--kv存储测试用例与性能测试.mp4
[2.9 MB] 119--pagechunk的get与put.mp4
[2.9 MB] 122--为kv存储加上conf文件.mp4
[2.9 MB] 120--btree hashmap radixtree rbtree之间的选择.mp4
[2.9 MB] 117--bdev与blob对于kv存储的选择.mp4
[2.9 MB] 📁 16.TRex-iperf3-dpdk-pktgen(4节) 114--流编排与自动化框架.mp4
[2.9 MB] 113--TRex的运行原理与dpdk的关系.mp4
[2.9 MB] 112--vcl与iperf3性能测试 客户端与服务器.mp4
[259.0 MB] 115--dpdk-pktgen命令讲解.mp4
[2.9 MB] 📁 15.高性能4层负载均衡器 DPVS(6节) 110--dpvs测试用例 ipset,tc,mempool.mp4
[2.9 MB] 109--通过quagga配置ospf.mp4
[2.9 MB] 108--dpvs的FNat NAT SNAT模式.mp4
[2.9 MB] 107--dpvs 与lvs+keepalived的关系.mp4
[2.9 MB] 106--dpvs的技术组件与功能实现.mp4
[2.9 MB] 111--dpvs的tc流控操作与源码实现.mp4
[2.9 MB] 📁 14.spdk文件系统实现(7节) 104--测试用例与调试入口函数.mp4
[568.9 MB] 103--基数树对文件系统内存管理.mp4
[857.2 MB] 101--从blob读写到文件系统的原语操作实现.mp4
[748.5 MB] 100--文件系统四层架构设计与构建git版本管理.mp4
[398.7 MB] 98--文件系统功能拆解与设计分析.mp4
[502.0 MB] 99--件系统引入线程与json配置解析.mp4
[527.1 MB] 102--syscall的hook实现.mp4
[683.4 MB] 📁 13.tcp并发(5节) 97--bpf与bpftrace应用程序ntyco的挂载监控.mp4
[200.8 MB] 93--tcp并发连接的设计.mp4
[266.4 MB] 96--bpf与bpftrace系统,网络挂载实现.mp4
[371.0 MB] 95--tcp并发协议栈与epoll的回调与并发测试.mp4
[175.1 MB] 94--tcp并发epoll的实现.mp4
[254.2 MB] 📁 12.基础组件(5节) 92--rcu的实现与互斥锁,自旋锁,读写锁.mp4
[381.8 MB] 91--dpdk-kni源码分析.mp4
[230.6 MB] 88--mempool与mbuf的源码分析讲解.mp4
[278.6 MB] 89--dpdk-ringbuffer源码分析.mp4
[187.1 MB] 90--dpdk-igb_uio源码分析.mp4
[375.7 MB] 📁 11.virtio-vhost虚拟化(10节) 87--vhost与virtio的总结.mp4
[260.0 MB] 84--gpa,gva,hva,hpa之间的关系.mp4
[423.1 MB] 83--virtio的setmem与vring的设置.mp4
[656.5 MB] 81--vhost与virtio通信与recvmsg的作用.mp4
[584.1 MB] 79--vhost与qemu通信协议实现.mp4
[420.3 MB] 78--virtio与vhost的工作原理.mp4
[427.0 MB] 80--vhost通信协议解析get feature.mp4
[565.0 MB] 85--ifreq的tap-tun创建.mp4
[715.2 MB] 86--vring的物理内存与虚拟内存映射.mp4
[700.2 MB] 82--virtio的前后端网卡与ifreq的作用.mp4
[758.1 MB] 📁 10.DPDK的虚拟交换机框架 OvS(8节) 77--ovs-openflow与json请求.mp4
[482.1 MB] 76--virsh启动虚拟网卡与ovs-vsctl操作的流程.mp4
[518.9 MB] 75--qemu-kvm多vm管理以及对应虚拟化技术.mp4
[289.1 MB] 74--ovs-vsctl的网桥,网口操作.mp4
[403.4 MB] 72--ovs编译安装,ovs核心组件内容.mp4
[238.0 MB] 71--cpu虚拟化到ntytcp的使用.mp4
[499.4 MB] 73--网络命名空间与vsctl的vlan划分.mp4
[206.7 MB] 70--硬件虚拟化,系统虚拟化,进程虚拟化.mp4
[464.6 MB] 📁 09.高效磁盘io读写 spdk(C)(4节) 69--fio ioengine模块开发与blobl操作.mp4
[616.3 MB] 68--fio ioengine plugin开发与性能对比.mp4
[515.3 MB] 67--blobstore的读写操作实现与rpc的关系.mp4
[475.2 MB] 66--bdev与blobstore的代码关系.mp4
[377.7 MB] 📁 08.高效磁盘io读写 spdk(C)(5节) 65--nvme与pcie以及手写nvme读写操作.mp4
[628.8 MB] 64--手把手实现spdk_server(2).mp4
[497.4 MB] 63--手把手实现spdk_server(1).mp4
[381.4 MB] 62--spdk环境与vhost,NVMe分析.mp4
[298.2 MB] 61--存储框架spdk,为技术栈打开一扇存储的大门.mp4
[532.0 MB] 📁 07.golang的网络开发框架 nff-go(golang)(4节) 60--ipsec协议解析与strongswan的ipsec.mp4
[350.7 MB] 59--nff-go收发数据与包解析显示.mp4
[196.9 MB] 57--nff-go的技术原理分析.mp4
[310.7 MB] 58--nff-go数据接收代码实现.mp4
[189.3 MB] 📁 06.可扩展的矢量数据包处理框架VPP(cc++) 源码(8节) 55--vcl与posx对比,与vcl分层模型.mp4
[302.8 MB] 53--vcl与posix对nginx,redis性能对比.mp4
[318.9 MB] 52--vpp结构体 vnet_main以及vpp内容总结.mp4
[212.5 MB] 51--vpp的结构体vlib_main.mp4
[365.3 MB] 50--vpp的运行流程 协程的实现,node的运行.mp4
[374.3 MB] 49--vpp启动load so,注册node,函数init.mp4
[476.9 MB] 56--vcl的session管理与fd.io文档.mp4
[319.9 MB] 54--vppcom实现tcpserver以及vcl配置.mp4
[379.2 MB] 📁 05.可扩展的矢量数据包处理框架VPP(cc++) 实战(8节) 47--vpp多网口数据接收与转发.mp4
[233.5 MB] 46--flowtable流程分析.mp4
[159.4 MB] 44--flowtable的get flowinfo实现.mp4
[286.6 MB] 43--flowtable的plugin的运行流程.mp4
[391.6 MB] 42--vpp源码-plugin流程.mp4
[522.7 MB] 41--vpp环境部署与vpp命令讲解.mp4
[465.2 MB] 45--flowtable的loadbalancer的框架.mp4
[286.6 MB] 48--解决plugin编译加载失败.mp4
[119.4 MB] 📁 04.dpdk基础组件(10节) 37--dpdk ddos熵计算代码实现.mp4
[196.6 MB] 36--基于熵的ddos检测的数学理论.mp4
[295.5 MB] 35--dpdk dns处理流程(2).mp4
[468.1 MB] 34--dpdk dns处理流程(1).mp4
[472.6 MB] 31--kni抓包调试tcpdump.mp4
[121.0 MB] 32--dpdk kni mempool错误与内存泄漏.mp4
[167.1 MB] 39--ddos attack 测试工具hping3.mp4
[75.6 MB] 33--DPDK的kni内核处理流程(补).mp4
[2.0 GB] 38--dpdk ddos attach检测准确度调试.mp4
[69.6 MB] 40--dpdk 布谷鸟hash原理与使用.mp4
[393.2 MB] 📁 03.dpd网络协议栈之tcp的实现(10节) 30--重构网络协议分发的流程.mp4
[357.2 MB] 29--dpdk kni的原理与kni启动.mp4
[357.2 MB] 28--tcp协议栈调试之ringbuffer内存错误..mp4
[258.8 MB] 27--tcp协议栈调试之段错误与逻辑流程.mp4
[303.2 MB] 25--tcp协议api实现之send,recv的实现.mp4
[240.7 MB] 24--tcp协议api实现之accept的实现.mp4
[289.9 MB] 23--tcp协议api实现之bind,listen的实现.mp4
[323.4 MB] 22--tcp数据传输之ack与seqnum代码实现.mp4
[93.3 MB] 21--tcp数据传输之ack与seqnum的确认实现.mp4
[338.4 MB] 26--tcp协议api实现之close的实现.mp4
[253.2 MB] 📁 02.dpdk网络协议栈之udptcp的实现(10节) 20--tcp三次握手实现之dpdk代码调试.mp4
[215.0 MB] 18--tcp 三次握手实现之dpdk tcp流程架构设计.mp4
[367.7 MB] 17--udp实现之架构设计与调试.mp4
[350.4 MB] 15--udp实现之sbuf与rbuf的环形队列.mp4
[385.8 MB] 14--udp实现之udp系统api的设计.mp4
[180.7 MB] 13--协议栈架构设计优化.mp4
[474.9 MB] 11--arp request实现.mp4
[334.8 MB] 16--udp实现之发送流程与并发解耦.mp4
[378.4 MB] 19--tcp三次握手实现之dpdk tcp11个状态实现.mp4
[474.4 MB] 12--arp 调试流程.mp4
[99.5 MB] 📁 01.dpdk网络协议栈之arpicmp的实现(10节) 9--dpdk-icmp流程调试与checksum实现.mp4
[77.7 MB] 8--dpdk-icmp实现.mp4
[303.1 MB] 7--arp 调试流程.mp4
[105.0 MB] 4--dpdk发送过程的实现.mp4
[468.2 MB] 3--dpdk网卡绑定与arp.mp4
[499.0 MB] 5--dpdk发送过程调试.mp4
[152.2 MB] 10--arp-table的实现.mp4
[374.7 MB] 1--课程学习路线与大纲内容.mp4
[208.2 MB] 2--dpdk环境搭建与多队列网卡.mp4
[531.9 MB] 6--dpdk-arp实现.mp4
[288.5 MB] 资料.exe [78.8 MB]