论文部分内容阅读
OpenFlow作为软件定义网络(SDN,Software Define Network)的南向接口之一,受到了业界的普遍认可。OpenFlow协议支持的匹配字段逐渐增多,存在可扩展性问题,无法支持未知协议。POF(Protocol Oblivious Forwarding)是下一代SDN南向接口的备选协议,使用偏移量和长度定义协议域,利用基础流指令集增强转发面的可编程能力,实现协议无感知转发。虚拟交换机是网络虚拟化和SDN网络的重要组成部分,研制POF虚拟交换机并提升其性能,具有很好的实用价值。 本论文在分析虚拟交换机数据通路性能提升解决方案的基础上,分别从减少进程切换和提升流表匹配速度等方面考虑,设计和实现了一种基于Linux内核态的POF虚拟交换机K_POFVS(Kernel_based POF Virtual Switches)。K_POFVS在内核态中实现数据包接收和转发功能,减少用户态与内核态之间数据包拷贝,降低了数据包处理时间开销。利用流量局部性特点,使用流表缓存机制,减少了进程切换次数。采用元组空间搜索算法,提高流表匹配的平均速度。扩展Netlink通信方法,实现内核态与用户态的通信。 本论文在Linux系统中部署相关实验环境,下发大规模流表,对其性能进行实验验证与分析。实验结果表明,相对于用户态POF虚拟交换机,K_POFVS在数据包平均处理时间上约减少60%,转发时延约降低80%,数据包转发速率也有明显提高,能够有效提升POF虚拟交换机数据通路转发性能。