摘要 | 第4-5页 |
ABSTRACT | 第5-6页 |
第一章 绪论 | 第10-16页 |
1.1 研究背景 | 第10-11页 |
1.2 研究意义 | 第11-13页 |
1.3 研究现状 | 第13-14页 |
1.4 论文结构 | 第14-16页 |
第二章 报文处理机制与关键优化技术 | 第16-34页 |
2.1 网络通信与报文处理 | 第16页 |
2.2 网络流量监控与报文处理 | 第16-18页 |
2.2.1 网络流量监控与报文采集需求 | 第16页 |
2.2.2 报文采集机制 | 第16-18页 |
2.3 基于Linux内核的报文处理机制 | 第18-22页 |
2.3.1 Linux协议栈 | 第18-19页 |
2.3.2 NAPI技术 | 第19-20页 |
2.3.3 高性能网卡及网卡多队列技术 | 第20-21页 |
2.3.4 RPS/RFS技术 | 第21-22页 |
2.3.5 Linux套接字报文采集 | 第22页 |
2.4 PF_RING高性能报文处理框架 | 第22-28页 |
2.4.1 PF_RING简介 | 第22-23页 |
2.4.2 PF_RING非ZC库 | 第23-27页 |
2.4.3 PF_RING ZC库 | 第27-28页 |
2.5 DPDK高性能报文处理框架 | 第28-31页 |
2.5.1 DPDK及其技术优点 | 第28-30页 |
2.5.2 DPDK库组件 | 第30-31页 |
2.6 PF_RING ZC与DPDK优化技术对比 | 第31-32页 |
2.7 本章小结 | 第32-34页 |
第三章 高性能框架对比研究 | 第34-54页 |
3.1 框架对比研究需求 | 第34-35页 |
3.2 报文处理程序模型 | 第35-36页 |
3.2.1 Run-to-completion模型 | 第35页 |
3.2.2 Pipeline模型 | 第35-36页 |
3.2.3 精简分析模型 | 第36页 |
3.3 流阻分析理想模型 | 第36-40页 |
3.3.1 定义 | 第36-37页 |
3.3.2 R值分割与负载 | 第37-38页 |
3.3.3 负载流阻估计与流量预测 | 第38-39页 |
3.3.4 Pipeline中的流阻模型 | 第39-40页 |
3.3.5 流阻模型与最大流问题 | 第40页 |
3.4 实验环境 | 第40-43页 |
3.4.1 简述 | 第40-42页 |
3.4.2 RPS/RFS配置 | 第42页 |
3.4.3 PF_RING和DPDK配置 | 第42页 |
3.4.4 实验报文 | 第42页 |
3.4.5 每单位流量处理CPU核心占用率 | 第42-43页 |
3.5 Pktgen-dpdk | 第43页 |
3.6 单线程Run-to-completion模型对比分析 | 第43-46页 |
3.6.1 不同长度报文整体性能 | 第43-45页 |
3.6.2 单线程Run-to-completion流阻模型分析 | 第45-46页 |
3.7 多线程Run-to-completion对比及可扩展性分析 | 第46-48页 |
3.7.1 多线程整体性能对比 | 第46页 |
3.7.2 流阻与多线程可扩展性 | 第46-48页 |
3.8 单Rx双Worker的Pipeline均衡模型对比分析 | 第48-51页 |
3.9 Pipeline均衡模型在不同Worker数量条件下的对比分析 | 第51-53页 |
3.10 本章小结 | 第53-54页 |
第四章 高性能框架NUMA优化研究与应用 | 第54-68页 |
4.1 多核NUMA架构 | 第54-56页 |
4.1.1 NUMA与主流架构体系 | 第54-55页 |
4.1.2 NUMA高速互联技术 | 第55页 |
4.1.3 NUMA共享缓存LLC | 第55-56页 |
4.2 NUMA与报文处理性能 | 第56-57页 |
4.2.1 CPU调度开销 | 第56页 |
4.2.2 LLC争用 | 第56-57页 |
4.2.3 远端内存访问与内存控制器繁忙 | 第57页 |
4.2.4 缓存一致性开销 | 第57页 |
4.3 实验环境 | 第57页 |
4.4 Run-to-completion在NUMA平台的可扩展性分析 | 第57-60页 |
4.5 单Rx的Pipeline均衡模型在NUMA平台的线程分布分析 | 第60-62页 |
4.6 双Rx双Worker的Pipeline均衡模型的NUMA平台分析 | 第62-63页 |
4.7 NUMA核心配置优化的应用 | 第63-65页 |
4.7.1 应用场景 | 第63页 |
4.7.2 实验环境 | 第63-64页 |
4.7.3 优化分析及前后性能对比 | 第64-65页 |
4.8 本章小结 | 第65-68页 |
第五章 基于DPDK的报文回放系统研究与实现 | 第68-80页 |
5.1 报文回放需求 | 第68页 |
5.2 DPDK在报文回放系统中的可用性 | 第68-69页 |
5.3 报文回放系统磁盘速率瓶颈 | 第69-70页 |
5.4 报文的内存存储设计 | 第70-72页 |
5.4.1 存储组件选择与优点 | 第70页 |
5.4.2 单个报文存储结构 | 第70页 |
5.4.3 内存池结构 | 第70-71页 |
5.4.4 报文保序结构 | 第71页 |
5.4.5 避免报文释放 | 第71-72页 |
5.5 计时方案设计 | 第72-73页 |
5.5.1 计时方法 | 第72页 |
5.5.2 CPU时钟累计值获取方法 | 第72页 |
5.5.3 CPU时钟累计值与秒转换 | 第72-73页 |
5.6 报文回放主流程设计 | 第73-74页 |
5.7 DPDK的g++兼容编译 | 第74-77页 |
5.8 Busrt Size性能影响 | 第77页 |
5.9 CPU Cache使用优化 | 第77-79页 |
5.10 回放源大小与速率关系 | 第79页 |
5.11 本章小结 | 第79-80页 |
第六章 总结与展望 | 第80-82页 |
参考文献 | 第82-84页 |
致谢 | 第84-86页 |
攻读学位期间发表的学术论文目录 | 第86页 |