基于DPDK的高性能负载均衡系统设计与实现
摘要 | 第5-6页 |
ABSTRACT | 第6-7页 |
符号对照表 | 第11-12页 |
缩略语对照表 | 第12-17页 |
第一章 绪论 | 第17-21页 |
1.1 研究背景及意义 | 第17-18页 |
1.2 相关工作及研究现状 | 第18-20页 |
1.2.1 负载均衡领域 | 第18-19页 |
1.2.2 快速包处理 | 第19-20页 |
1.3 论文组织结构 | 第20-21页 |
第二章 相关技术 | 第21-27页 |
2.1 NAT | 第21-22页 |
2.2 NUMA | 第22页 |
2.3 HugePage | 第22页 |
2.4 绑核 | 第22页 |
2.5 负载均衡调度算法 | 第22-25页 |
2.5.1 轮询 | 第23页 |
2.5.2 源地址Hash | 第23页 |
2.5.3 最小连接法 | 第23-24页 |
2.5.4 一致性Hash | 第24-25页 |
2.5.5 动态自适应负载均衡 | 第25页 |
2.6 健康检查 | 第25-26页 |
2.6.1 三层健康检查 | 第25页 |
2.6.2 四层健康检查 | 第25-26页 |
2.6.3 应用层健康检查 | 第26页 |
2.7 本章小结 | 第26-27页 |
第三章 DPDK | 第27-39页 |
3.1 DPDK概述 | 第27-28页 |
3.2 EAL | 第28-29页 |
3.3 DPDK核心组件 | 第29-36页 |
3.3.1 内存分配 | 第30页 |
3.3.2 Ring队列 | 第30-32页 |
3.3.3 内存对象池 | 第32-33页 |
3.3.4 包缓冲 | 第33-35页 |
3.3.5 定时器 | 第35页 |
3.3.6 PMD | 第35页 |
3.3.7 哈希表 | 第35页 |
3.3.8 KNI | 第35-36页 |
3.4 本章小结 | 第36-39页 |
第四章 需求分析与概要设计 | 第39-57页 |
4.1 功能性需求分析 | 第39-41页 |
4.1.2 管理平面需求分析 | 第39-40页 |
4.1.3 控制平面需求分析 | 第40页 |
4.1.4 转发平面需求分析 | 第40-41页 |
4.2 非功能性需求分析 | 第41-42页 |
4.2.1 高性能 | 第41页 |
4.2.2 高可用 | 第41-42页 |
4.2.3 可伸缩性 | 第42页 |
4.2.4 可扩展性 | 第42页 |
4.2.5 控制转发平面分离 | 第42页 |
4.3 体系结构设计 | 第42-44页 |
4.4 管理平面 | 第44-47页 |
4.4.1 程序生命周期管理 | 第45页 |
4.4.2 EAL配置 | 第45-46页 |
4.4.3 负载均衡规则配置 | 第46-47页 |
4.4.4 其他配置 | 第47页 |
4.4.5 监控 | 第47页 |
4.4.6 日志 | 第47页 |
4.5 控制平面 | 第47-50页 |
4.5.1 管理接口 | 第48页 |
4.5.2 控制模块 | 第48-49页 |
4.5.3 节点健康检查 | 第49页 |
4.5.4 负载均衡规则维护 | 第49页 |
4.5.5 虚网卡 | 第49-50页 |
4.6 转发平面 | 第50-55页 |
4.6.1 I/O处理 | 第52-53页 |
4.6.2 转发处理 | 第53-54页 |
4.6.3 负载均衡算法 | 第54页 |
4.6.4 负载均衡规则 | 第54页 |
4.6.5 IP虚拟分片重组 | 第54-55页 |
4.6.6 连接追踪 | 第55页 |
4.6.7 与控制平面的通信 | 第55页 |
4.7 本章小结 | 第55-57页 |
第五章 系统详细设计与实现 | 第57-75页 |
5.1 管理平面设计实现 | 第57-61页 |
5.1.1 系统启动 | 第57-59页 |
5.1.2 请求接收及配置下发 | 第59-61页 |
5.2 控制平面设计实现 | 第61-65页 |
5.2.1 节点健康检查 | 第61-64页 |
5.2.2 负载均衡规则维护 | 第64-65页 |
5.3 转发平面设计实现 | 第65-74页 |
5.3.1 I/O处理 | 第66-68页 |
5.3.2 转发处理与连接追踪 | 第68-71页 |
5.3.3 IP虚拟分片重组 | 第71-72页 |
5.3.4 转发平面控制消息处理 | 第72-74页 |
5.3.5 KNI线程的处理 | 第74页 |
5.4 本章小结 | 第74-75页 |
第六章 系统测试 | 第75-85页 |
6.1 测试环境搭建 | 第75-78页 |
6.1.1 系统环境 | 第75页 |
6.1.2 DPDK环境配置 | 第75-77页 |
6.1.3 线程部署 | 第77-78页 |
6.1.4 网络环境部署 | 第78页 |
6.2 系统测试 | 第78-83页 |
6.2.1 功能性测试 | 第78-82页 |
6.2.2 性能测试 | 第82-83页 |
6.3 本章小结 | 第83-85页 |
第七章 总结及展望 | 第85-87页 |
7.1 总结 | 第85页 |
7.2 后续工作 | 第85-87页 |
参考文献 | 第87-89页 |
致谢 | 第89-91页 |
作者简介 | 第91-92页 |