为什么需要掌握高性能网络协议栈

在传统 Linux 内核协议栈中,数据报文的处理涉及频繁的用户态与内核态切换,以及中断上下文切换,这限制了单机吞吐量的上限。当业务场景涉及高频交易、大型游戏服务器或电信级网关时,这种延迟抖动和 CPU 瓶颈会成为系统稳定的最大阻碍。本课程的核心价值在于构建基于 DPDK 的用户态高性能网络能力,不仅解决“怎么提速”的问题,更解决“如何构建可维护的高性能中间件”的问题。通过深入理解 VPP、OVS、DPVS 等组件,你能够学会如何在脱离内核依赖的前提下,实现低延迟、高并发的数据面转发,这是从普通后端开发转向高性能网络专家的关键技术门槛。

适合人群与前置基础

这门课不适合仅想安装配置现成软件的运维人员,也不适合只懂 Web 开发逻辑的初级程序员。它面向的是具备扎实 C/C++ 功底,熟悉 Linux 系统编程,理解 Socket 模型及基本网络协议(TCP/UDP/IP)的开发者。你需要对内存管理、线程同步有初步认知,因为课程后半部分涉及大量用户态内存池和锁机制的实现。如果你从未接触过底层系统开发,建议先补齐系统编程基础;如果你正在面临系统吞吐瓶颈,渴望通过优化网络栈来获得性能突破,那么这套资料体系正是为你准备的进阶路径。

学习路径与资料用法

建议按照“基础组件→核心协议栈→应用架构→存储扩展”的逻辑顺序学习。首先攻克基础组件章节,重点研读 mempool、mbuf 及 ringbuffer 的源码逻辑,这是理解 DPDK 数据面效率的根本,务必结合代码进行断点调试。接着进入 TCP 并发部分,理解 epoll 在用户态模拟内核行为的机制,并尝试使用 BPF 工具进行挂载监控,培养排查网络问题的实战能力。随后重点学习 DPVS 负载均衡器,掌握 FNat、SNat 模式及 TC 流控源码,对比其与 LVS 的差异。在进阶阶段,深入 VPP 与 OVS 的实现原理,理解 SDN/NFV 场景下的虚拟化开销。最后,利用 SPDK 章节中的 KV 存储与文件系统实现,将存储与网络性能结合,完成从网络专家向全栈高性能架构师的能力闭环。资料包中的视频需配合源码工程使用,不要只看理论,务必在环境中复现 Set/Get 接口及性能测试用例,通过实际数据验证优化效果,避免陷入纯理论的空谈。

课程目录

📁 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]