摘要 | 第4-5页 |
ABSTRACT | 第5-6页 |
第一章 绪论 | 第11-15页 |
1.1 研究背景 | 第11-12页 |
1.2 本文主要研究工作 | 第12-13页 |
1.3 论文结构 | 第13-15页 |
第二章 相关技术介绍与研究 | 第15-28页 |
2.1 OpenFlow架构介绍与研究 | 第15-18页 |
2.1.1 OpenFlow架构概述 | 第15-16页 |
2.1.2 OpenFlowl.3版本的流水线处理机制(多级流表) | 第16页 |
2.1.3 OpenFlowl.3版本的流表项Instruction机制 | 第16-17页 |
2.1.4 OpenFlowl.3版本的TLV流表项匹配机制 | 第17-18页 |
2.2 现有多协议支持技术的研究 | 第18-24页 |
2.2.1 可进行模块化编程的数据流处理平台 | 第18-22页 |
2.2.1.1 可编程的硬件平台NetFPGA | 第19-20页 |
2.2.1.2 基于软件实现的模块化流处理平台 | 第20页 |
2.2.1.3 软硬件结合的路由平台Pearl | 第20-22页 |
2.2.2 可配置的数据流处理平台 | 第22-24页 |
2.2.2.1 应用于数据中心的可配置的数据流转发引擎CAFE | 第22-23页 |
2.2.2.2 可快速部署新协议的平台SwitchBlade | 第23-24页 |
2.3 SDN架构下的多协议支持现状 | 第24-27页 |
2.3.1 OpenFlow1.3版本架构对于多协议的支持现状 | 第24页 |
2.3.2 在OpenFlow架构中使用第三方数据流解析引擎 | 第24-25页 |
2.3.3 基于SDN的协议无感知转发 | 第25-27页 |
2.4 小结 | 第27-28页 |
第三章 支持多协议的SDN交换机总体设计 | 第28-43页 |
3.1 支持多协议的SDN交换机的设计原则 | 第28-30页 |
3.1.1 可软件定义的多协议支持 | 第28-29页 |
3.1.1.1 对传入交换机中的数据包进行协议的解析 | 第28-29页 |
3.1.1.2 实现支持多协议的交换机Pipeline | 第29页 |
3.1.2 支持多协议的数据流处理操作 | 第29页 |
3.1.3 提供简单易用的配置新协议的API | 第29-30页 |
3.2 功能需求 | 第30-32页 |
3.3 外部接口需求 | 第32-33页 |
3.3.1 新添加的OpenFlow消息 | 第32页 |
3.3.1.1 修改协议解析表的控制消息 | 第32页 |
3.3.2 原始OpenFlow1.3协议中的所有消息 | 第32-33页 |
3.4 数据包解析模块总体设计 | 第33-37页 |
3.4.1 概述 | 第33页 |
3.4.2 功能描述 | 第33-34页 |
3.4.3 协议解析表示例 | 第34-35页 |
3.4.4 输入接口定义 | 第35-37页 |
3.4.4.1 控制输入:bxt proto_table mod消息 | 第35-37页 |
3.4.4.2 数据输入:原始数据包 | 第37页 |
3.4.5 输出接口定义 | 第37页 |
3.4.5.1 数据输出:结构化的数据包 | 第37页 |
3.5 Pipeline模块总体设计 | 第37-41页 |
3.5.1 功能描述 | 第37-38页 |
3.5.2 新添的Action | 第38-40页 |
3.5.2.1 通用的协议封装Action | 第39页 |
3.5.2.2 通用的协议解封装Action | 第39-40页 |
3.5.2.3 通用的修改字段Action | 第40页 |
3.5.3 输入接口定义 | 第40-41页 |
3.5.3.1 控制输入:原始OpenFlow1.3协议中的所有消息 | 第40-41页 |
3.5.3.2 数据输入:结构化的数据包 | 第41页 |
3.5.4 输出接口定义 | 第41页 |
3.5.4.1 数据输出 | 第41页 |
3.6 控制通道模块总体设计 | 第41-43页 |
3.6.1 概述 | 第41-42页 |
3.6.2 输入与输出接口定义 | 第42-43页 |
第四章 支持多协议的SDN交换机的详细设计与实现 | 第43-75页 |
4.1 支持多协议的SDN交换机总体架构 | 第43-47页 |
4.1.1 User Datapath进程主流程 | 第43-44页 |
4.1.2 User Datapath进程与Secure Channel进程间的连接 | 第44-45页 |
4.1.3 User Datapath全局数据结构 | 第45-47页 |
4.2 数据包解析详细设计与实现 | 第47-61页 |
4.2.1 与协议无关的数据包解析——协议解析表 | 第47-48页 |
4.2.2 协议解析表数据结构详细设计 | 第48-57页 |
4.2.2.1 Protocol数据结构 | 第49-50页 |
4.2.2.2 字段(Field)数据结构概述 | 第50页 |
4.2.2.3 字段的通用头部(field_header) | 第50-51页 |
4.2.2.4 定长的字段(fixed_field) | 第51-53页 |
4.2.2.5 定长带掩码的字段(masked_field) | 第53页 |
4.2.2.6 变长的字段(var_field) | 第53-55页 |
4.2.2.7 填充字段(pad_field) | 第55页 |
4.2.2.8 循环域(loop_fields) | 第55-56页 |
4.2.2.9 有分支的字段(Branch Fields) | 第56-57页 |
4.2.3 控制通道创建与维护协议解析表详细设计 | 第57-59页 |
4.2.4 数据包解析流程详细设计 | 第59-61页 |
4.3 结构化的数据包格式详细设计与实现 | 第61-63页 |
4.4 Pipeline详细设计与实现 | 第63-72页 |
4.4.1 Pipeline处理主流程 | 第63-64页 |
4.4.2 多级并行Pipeline设计 | 第64页 |
4.4.3 Pipeline及其所属流表的数据结构 | 第64-66页 |
4.4.4 流表匹配项数据结构:ofl_match | 第66-68页 |
4.4.5 流表项匹配的设计与实现 | 第68-69页 |
4.4.6 通用的修改字段操作的设计与实现 | 第69-70页 |
4.4.7 通用的封装,解封装操作的设计与实现 | 第70-72页 |
4.4.7.1 通用的封装Action | 第71页 |
4.4.7.2 通用的解封装Action | 第71-72页 |
4.5 OpenFlow消息的扩展 | 第72-75页 |
4.5.1 修改协议解析表消息详细设计 | 第72-75页 |
第五章 支持多协议的SDN交换机系统测试 | 第75-86页 |
5.1 编译与运行支持多协议的SDN交换机 | 第75-76页 |
5.2 支持多协议的SDN交换机单元测试 | 第76-82页 |
5.2.1 根据本地NetPDL文件建立协议解析表的测试 | 第76-77页 |
5.2.2 数据包解析测试(OXM_TLV匹配项,{Offset,Length}提取) | 第77页 |
5.2.3 通用的修改字段操作的测试 | 第77-79页 |
5.2.4 通用的协议封装操作的测试 | 第79-80页 |
5.2.5 通用的协议解封装操作的测试 | 第80-81页 |
5.2.6 通用的封装、解封装混合测试 | 第81-82页 |
5.3 系统测试网络环境 | 第82-83页 |
5.4 支持多协议的数据流转发系统测试 | 第83-86页 |
5.4.1 在网络中运行基于标签交换的话音业务 | 第83-86页 |
第六章 结束语 | 第86-89页 |
6.1 全文总结 | 第86页 |
6.2 不足之处和下一步工作计划 | 第86-87页 |
6.3 研究生期间参与的工作 | 第87-89页 |
6.3.1 参与的项目 | 第87页 |
6.3.2 完成的文档 | 第87-89页 |
参考文献 | 第89-91页 |
致谢 | 第91-92页 |
攻读学位期间发表的学术论文目录 | 第92页 |