面向多核网络处理器软件框架的研究与实现

面向多核网络处理器软件框架的研究与实现

论文摘要

多核网络处理器是指在单个封装内集成多个执行核,每个执行核是独立的处理器,具有自己的体系结构资源。它兼有高速处理和灵活编程两种能力,能很好地适应高速网络和业务演化的需要。多核网络处理器可以高速处理控制/数据平面、处理应用感知内容、检测深度包、模式匹配和加密加速,被广泛的应用于各种网络设备,包括路由器、交换机、应用认知网关、无线局域网、3G接入和聚合设备以及网络存储设备等。在这些环境中,网络进化为一个承载数据、语音和视频内容的多元混合体,不仅要具备应用传输所需的线速处理高层数据的能力,还要进行加密、认证、入侵防护和防病毒等多层安全操作以及多功能的整合。因此,面向多核网络处理器的软件框架的高性能和通用性成为多核网络处理器的核心问题。多核网络处理器软件开发的困难主要来自于其微并行结构之复杂性和网络多平面处理环境之特殊性,突出表现为:缺乏高层编程模型和开发工具,缺乏网络通信处理算法组件库,缺乏适应多平面处理环境的OS支持。因此,基于多核网络处理器的软件框架的设计与实现都变得极为复杂。近年来,虽然国内外学者做了大量的研究工作,但基于多核网络处理器架构,提供高性能、面向高层应用的研究尚处于初期阶段。本文在总结前人研究工作的基础上,深入研究并设计实现了多核网络处理器的多平面分层软件框架、内核网络协议栈模块框架、管理平面框架等关键技术;分析和实现了IP网络中若干关键安全应用的设计,并进行了充分的测试以验证其达到了高性能、通用性的设计目标;提出了一种从硬件抽象层到应用管理的完整软件框架。本文就以下几个方面进行了创新性的研究工作:(1)提出并设计了可扩展的多平面软件框架。多平面框架面向多核网络处理器,实现了三平面的融合,即数据平面、控制平面共同完成复杂高层网络应用功能的实现过程;在管理平面内,通过统一管理系统,针对多核网络处理器主要的应用环境进行多业务的管理融合。(2)研究并实现了面向数据平面和控制平面的接口设汁框架。最新的Linux内核并没有对快速路径和慢速路径进行明确的区分,本文明确提出了两种路径的划分,通过一系列的接口设计来实现多核网络处理器性能发挥和内核功能实现之间的平衡,屏蔽底层硬件细节,提高网络应用可复用能力与跨平台可移植能力。(3)研究并设计了算法组件库。在多核网络处理器的快速路径中应用基于均匀服务队列的分组调度算法,使决策时间复杂性、公平性、调度时延特性均与数据流个数无关,具有良好的可扩展性;应用遗传式自动分配算法,在网络处理器上建立流水编程任务分配模型。(4)设计了内核虚拟网络块框架,在管理平面实现了配置的模块化。将面向对象的设计方法引入内核设计中,采用“低层处理”的策略,将所有的网络操作处理模块化,尽可能在最低层把非法的数据包屏蔽掉,在最低层对内存进行释放,使整个核心数据处理流程全部工作在内核一级,把相对耗费时间的匹配过程交给了用户进程去处理。同时,在管理平面内采用面向对象的模块化设计方法,利用事件机制,对不同的高层应用提供配置、管理功能。在多核网络处理器软件框架研究和设计的基础上,本文对多种IP安全技术进行了优化实现:对snort进行了并行多线程的重新设计;对NAT/PT进行了快速路径的优化设计;并对netflow进行了数据平面虚拟网络模块框架的实现;还对IPSec在数据平面利用API隐藏硬件特定细节,提供了统一接口。通过完善的测试方案,验证了软件框架设计方案的性能和适用性。

论文目录

  • 摘要
  • Abstract
  • 第1章 绪论
  • 1.1 多核网络处理器概念
  • 1.2 多核网络处理器的历史及发展趋势
  • 1.2.1 多核网络处理器的历史
  • 1.2.2 多核网络处理器的发展趋势
  • 1.3 多核网络处理器体系结构
  • 1.4 多核网络处理器体系结构特点
  • 1.4.1 并行
  • 1.4.2 分层存储结构
  • 1.4.3 协处理器
  • 1.4.4 PE间互联
  • 1.4.5 外部接口
  • 1.5 多核网络处理器软件框架定义
  • 1.5.1 多核网络处理器与软件框架的设计
  • 1.5.2 多核网络处理器的应用需求
  • 1.5.3 多核结构对软件框架的影响
  • 1.6 主要工作及创新
  • 1.7 论文结构
  • 第2章 多核NP软件模式和系统框架设计
  • 2.1 多核NP软件框架的问题分析
  • 2.2 多核NP软件框架的需求分析和设计目标
  • 2.3 多核NP软件框架的结构和功能
  • 2.3.1 多核NP开发模式应考虑的问题
  • 2.3.2 多核NP开发模式的引入
  • 2.3.3 多核NP软件框架的结构
  • 2.4 小结
  • 第3章 NP适应的网络处理算法的相关研究
  • 3.1 NP适应网络处理算法分类
  • 3.2 NP分组调度策略与实现机制
  • 3.2.1 队列调度算法的性能评价标准
  • 3.2.2 现有队列调度算法的性能比较
  • 3.2.3 DDR算法及其优化
  • 3.2.4 队列调度算法在NP上的实现
  • 3.3 NP流水型任务集自动分配
  • 3.3.1 NP任务分配模型
  • 3.3.2 遗传算法在NP任务分配中的实现
  • 3.3.3 NP遗传算法实现示例
  • 3.3.4 遗传算法在NP流水线软硬件设计过程中的应用
  • 3.4 小结
  • 第4章 面向多核NP的OS设计扩展
  • 4.1 面向多核NP的OS优化
  • 4.1.1 内核调度与任务设计
  • 4.1.2 并行计算与对称多处理(SMP)的设计
  • 4.1.3 处理器亲和性设计
  • 4.2 多核NP数据包处理设计
  • 4.2.1 数据包处理性能评价模型
  • 4.2.2 数据包多核NP处理的设计实现
  • 4.2.3 数据包多核NP处理的测试结果
  • 4.3 小结
  • 第5章 面向多核NP的数据平面设计框架
  • 5.1 多核NP的数据平面软件设计框架
  • 5.1.1 控制平面
  • 5.1.2 数据平面
  • 5.2 软件设计框架的基本功能
  • 5.2.1 控制平面和数据平面的功能划分
  • 5.2.2 快速路径与慢速路径的区分
  • 5.2.3 快速路径处理过程的设计
  • 5.2.4 慢速路径处理过程的设计
  • 5.3 快速路径虚拟接口设计
  • 5.3.1 快速路径虚拟接口(FPVI)定义
  • 5.3.2 FPVI例外定义
  • 5.3.3 FPVI基本例外处理示例
  • 5.3.4 FPVI复制例外处理示例
  • 5.3.5 FPVI本地发送例外处理示例
  • 5.4 快速路径与缓冲管理器接口(FPC)
  • 5.4.1 NetLink套接字接口
  • 5.4.2 FPC消息机制
  • 5.4.3 FPC的运行机制
  • 5.5 快速路径统计接口(FPS)
  • 5.6 多核NP路由器的多平面软件框架设计
  • 5.7 软件框架的性能测试
  • 5.7.1 高性能多核平台的选择
  • 5.7.2 控制平面与数据平面性能测试
  • 5.7.3 快速路径和慢速路径性能测试
  • 5.8 快速路径与慢速路径设计实例
  • 5.8.1 NAT-PT基本概念
  • 5.8.2 NAT-PT工作原理
  • 5.8.3 NAT-PT慢速路径设计
  • 5.8.4 NAT-PT快速路径设计
  • 5.9 小结
  • 第6章 内核网络协议栈设计框架
  • 6.1 内核网络模块设计
  • 6.1.1 虚拟网络块(VNB)的技术基础
  • 6.1.2 VNB框架的构成
  • 6.1.3 VNB框架的数据流及接口设计
  • 6.1.4 虚拟网络块框架的核心模块
  • 6.1.5 虚拟网络块框架的网络应用
  • 6.1.6 VNB框架的构建过程
  • 6.2 VNB框架构建NETFLOW应用设计实例
  • 6.3 小结
  • 第7章 管理平面设计框架
  • 7.1 管理平面设计
  • 7.1.1 网络应用系统管理平面基本概念
  • 7.1.2 统一管理系统的基本概念
  • 7.1.3 统一管理系统接口设计
  • 7.2 小结
  • 第8章 基于多核处理器的IPSec的实现
  • 8.1 TPSec的技术基础
  • 8.1.1 IPSec安全体系结构
  • 8.1.2 IPSec的内核网络实现
  • 8.1.3 IPSec的包处理设计
  • 8.2 IPSec基于多核的架构设计
  • 8.2.1 TPSec控制平面与数据平面的设计实现
  • 8.2.2 IPSec快速路径的接口设计实现
  • 8.2.3 IPSec快速路径的数据流设计实现
  • 8.3 多核IPSec的性能测试
  • 8.3.1 IPSec性能测试方案
  • 8.3.2 IPSec双平面方案性能测试结果
  • 8.3.3 IPSec快速路径方案性能测试结果
  • 8.4 小结
  • 第9章 总结与展望
  • 9.1 主要工作总结
  • 9.2 多核网络处理器应用的展望
  • 参考文献
  • 致谢
  • 攻读博士学位期间发表的论文
  • 攻读博士学位期间申请的发明专利
  • 攻读博士学位期间参加科研项目情况
  • 攻读博士学位期间完成的标准工作
  • 相关论文文献

    标签:;  ;  ;  ;  ;  ;  

    面向多核网络处理器软件框架的研究与实现
    下载Doc文档

    猜你喜欢