论文部分内容阅读
随着OpenFlow协议的发展,OpenFlow交换机的转发面从简单的基于十元组的流表结构变成OpenFlow1.3规范中的多达40个匹配域的多级流表流水线结构。复杂而又灵活的流表流水线结构给OpenFlow的转发平面的实现带来了挑战。 本论文重点研究OpenFlow1.2/1.3协议标准中多级流表流水线转发面的高性能和高灵活性的设计和实现。为了满足OpenFlow1.2/1.3灵活性要求同时实现高性能的转发面,本文提出了软硬件结合的OpenFlow交换机三层平面架构——OpenFlow软件数据平面、 OpenFlow硬件数据平面和软硬件中间层。 OpenFlow软件数据平面来实现与控制器的通信、OpenFlow协议的解析以及基于软件的OpenFlow转发面数据包处理,以满足OpenFlow的灵活性。OpenFlow硬件平面在加速硬件上实现多级流表和OpenFlow数据包处理,以实现OpenFlow高性能的数据包的处理转发。软硬件中间层则在OpenFlow硬件数据平面和OpenFlow软件数据平面之间完成软硬件协同的OpenFlow数据包处理。 针对OpenFlow的多级流表流水线的高效实现问题,本文从高性能实现、可扩展性和灵活性三个方面进行研究。对于灵活的高性能的多级流表的实现问题,本文运用了统一的匹配域抽取、共享TCAM多级流表查找和单表匹配可配置结构三个方法来实现了基于TCAM的多级不定匹配域流表查找结构。为了解决流表存储的扩展性问题,本文提出指令和计数器分离的结构,以减少指令和计数器在硬件中的存储空间,此结构最高可以节约多达90%以上的存储空间,降低了硬件功耗和成本。对于软硬件流表灵活度的差异问题,本文提出中间层流表转换算法,通过两个步骤将灵活的软件多级流表转换成简单较固定的硬件多级流表,使得硬件能够支持复杂灵活的软件多级流表。 论文中还在Pearl平台中实现软硬件结合三层架构的OpenFlow原型系统,实现了基于硬件的多级流表流水线结构。对原型系统的吞吐量和延迟测试表明,该原型系统能够实现4GE网络环境下的线速低延迟的数据包处理。