01
课程导论与背景介绍
为什么需要低延迟协议解析?核心挑战与设计目标。
导论背景
02
网络协议基础回顾
TCP/IP协议栈、UDP、HTTP/WebSocket/gRPC延迟特性分析。
TCPUDPHTTP
03
延迟的根源
网络延迟、系统调用、数据拷贝、上下文切换、锁竞争、内存分配。
性能瓶颈
04
零拷贝技术
mmap、sendfile、splice、DPDK零拷贝原理与对比。
零拷贝DPDK
05
用户态协议栈
为什么需要用户态协议栈?uio、vfio、netmap、dpdk架构详解。
用户态协议栈
06
DPDK环境搭建
大页配置、网卡绑定、lcore绑定、helloworld实战。
DPDK环境
07
DPDK核心库
mbuf、mempool、ring、kni、timer使用与最佳实践。
mbufring
08
无锁数据结构
无锁队列、RCU、无锁哈希表的设计与实现。
无锁RCU
09
内存管理优化
内存池、对象池、预分配、缓存行对齐、NUMA感知。
内存池NUMA
10
CPU优化技术
CPU亲和性、中断绑定、轮询模式、忙等待与事件驱动。
CPU亲和性
11
协议解析基础
协议状态机设计、有限状态机FSM、解析器流水线。
FSM流水线
12
高性能HTTP解析
HTTP请求行/头部/体解析优化、SIMD加速解析。
HTTPSIMD
13
高性能WebSocket解析
帧格式、掩码处理、分片重组、性能优化。
WebSocket帧
14
高性能gRPC/Protobuf解析
Varint编码、TLV解析、零拷贝反序列化。
gRPCProtobuf
15
自定义二进制协议设计
TLV格式、固定长度头、协议版本兼容性设计。
二进制TLV
16
多线程与多核架构
生产者-消费者模型、多线程安全、无锁设计、工作窃取。
多线程工作窃取
17
IO模型与事件驱动
epoll、io_uring、kqueue、事件循环设计模式。
epollio_uring
18
异步编程框架
C++20协程、libuv、Boost.Asio在协议解析中的应用。
协程libuv
19
批处理与聚合
批量接收、批量解析、批量发送、减少函数调用开销。
批处理聚合
20
缓存优化
CPU缓存原理、缓存友好数据结构、预取指令、分支预测。
缓存预取
21
性能测量与剖析
perf、flamegraph、gperftools、延迟直方图、p99延迟。
perfflamegraph
22
协议解析测试
单元测试、模糊测试、性能基准测试、长稳测试。
测试模糊测试
23
案例实战1:HTTP负载均衡器
基于DPDK的HTTP负载均衡器协议解析设计。
实战负载均衡
24
案例实战2:金融FIX协议
金融交易系统FIX协议解析优化。
金融FIX
25
案例实战3:物联网多协议网关
物联网网关多协议解析架构设计。
IoT网关
26
案例实战4:游戏UDP防作弊
游戏服务器UDP协议解析与防作弊。
游戏UDP
27
案例实战5:视频流媒体优化
视频流媒体RTMP/FLV协议解析优化。
流媒体RTMP
28
部署与运维
CPU隔离、内存带宽控制、网卡队列调优、内核参数优化。
部署调优
29
前沿趋势
eBPF/XDP协议解析、SmartNIC/FPGA卸载、CXL内存池。
eBPFXDP
30
课程总结与展望
低延迟协议解析架构模式、常见陷阱、学习路径。
总结路线