01
路由引擎概述
什么是路由引擎、核心功能与设计目标、常见应用场景(网关、微服务、CDN)
基础概念
02
内存模型基础
堆内存与栈内存、对象生命周期、GC对路由引擎的影响
内存JVM
03
数据结构选型原则
时间复杂度、空间复杂度、缓存友好性、CPU缓存行对齐
设计性能
04
前缀树(Trie)
Trie树原理、路由匹配场景、节点压缩优化、内存占用分析
树匹配
05
基数树(Radix Tree)
Radix Tree与Trie的区别、路径压缩、在Linux内核路由中的应用
压缩内核
06
哈希表(HashMap)
哈希冲突处理、负载因子、扩容机制、Java HashMap vs C++ unordered_map
哈希对比
07
跳表(Skip List)
跳表原理、层级概率分布、内存开销、与红黑树的对比
概率有序
08
红黑树(Red-Black Tree)
红黑树性质、旋转与染色、在路由表中的应用、内存布局
平衡树旋转
09
B树与B+树
B树的分裂与合并、B+树的叶子链表、磁盘I/O优化、数据库路由索引
磁盘索引
10
位图(Bitmap)
位图原理、路由规则快速匹配、内存压缩、布隆过滤器变种
位运算过滤
11
紧凑数据结构
数组压缩、结构体字段重排、内存对齐、padding消除
优化对齐
12
对象池技术
对象池设计模式、预分配策略、避免频繁GC、线程安全对象池
池化并发
13
零拷贝技术
mmap原理、共享内存、内核旁路、DPDK中的零拷贝路由
高性能内核
14
缓存行与伪共享
CPU缓存层级、缓存行大小、伪共享问题、__attribute__((aligned))
CPU并发
15
内存池(Memory Pool)
固定大小池、可变大小池、伙伴系统、slab分配器
分配器slab
16
路由表存储结构
直连路由、静态路由、动态路由、路由聚合与内存节省
路由表聚合
17
最长前缀匹配(LPM)
LPM算法、TCAM硬件实现、软件LPM优化、内存权衡
匹配硬件
18
多级路由表
分层路由、虚拟路由转发(VRF)、多租户隔离、内存共享策略
VRF隔离
19
路由规则缓存
热点规则缓存、LRU淘汰、一致性哈希、缓存与内存的平衡
缓存LRU
20
并发路由引擎
无锁数据结构、RCU(Read-Copy-Update)、读写锁优化、CAS操作
无锁RCU
21
内存碎片管理
内部碎片与外部碎片、碎片整理策略、jemalloc/tcmalloc实践
碎片alloc
22
序列化与反序列化
Protocol Buffers、FlatBuffers、Cap'n Proto、内存映射反序列化
序列化零拷贝
23
路由引擎启动优化
懒加载、预热机制、内存预分配、快速重建
启动预热
24
监控与诊断
内存泄漏检测(Valgrind/ASan)、堆转储分析、OOM防护
诊断ASan
25
性能基准测试
吞吐量测试、延迟测试、内存占用对比、Profiling工具
benchprofile
26
案例:Nginx路由引擎
Nginx location匹配、内存池实现、worker进程内存隔离
Nginx案例
27
案例:Envoy路由引擎
Envoy的L7路由、动态路由、内存管理、热重启
EnvoyL7
28
案例:Linux内核路由表
FIB表结构、邻居子系统、路由缓存、内存回收
内核FIB
29
案例:高性能网关Kong
Kong的插件路由、缓存策略、数据库路由、内存优化
Kong网关
30
未来趋势
eBPF路由、智能网卡卸载、持久化内存(PMem)、AI辅助路由优化
eBPF趋势