论文部分内容阅读
为了满足日益复杂的网络要求,SDN(Software Defined Network,软件定义网络)正逐渐成为研究的热点。其核心技术OpenFlow通过分离网络设备控制面与数据面,实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。目前大多数SDN的研究都是软件模拟,同时处理的流量有限,基于硬件平台的SDN研究势在必行。斯坦福大学的NetFPGA-1G使用Xilinx的Virtex芯片,使用PCI和控制器进行通信,实现了OpenFlow1.0的硬件加速。本文基于OpenFlow1.3协议,设计了基于FPGA(Field-Programmable Gate Array,可编程逻辑门阵列)的SDN的交换机硬件。本设计采用Zynq架构,在FPGA上实现了SDN流处理的硬件加速,同时在处理器上实现了底层与上层控制层的转发逻辑。相比于NetFPGA,本设计使用网络和控制器进行通信,无需依赖于PCI接口,更加方便灵活。同时优化了下发参数的延迟、并且使用动态匹配域的配置方法。本设计硬件上实现了4Gbps的网络交换带宽和4Gbps的控制器交换带宽。根据硬件资源配置考虑,采用流水线架构,设置了三级流表。通过串口或者软件配置寄存器,可以在每一级流表内选择不同的匹配域,如源IP、目标IP、源端口等,解决了硬件资源有限的问题。同时可以通过配置参数,调整流量调度策略,达到提高流量传输效率,提升网络带宽利用率,优化网络性能的目的。本文设计的交换机在功能上基本实现了OpenFlow1.3协议的内容,在设计上达到了8Gbps的流量处理带宽,数据处理部分延时0.5us。为了验证硬件设计的有效性,本文使用Iperf和真实网络流量对交换机的功能以及性能进行测试。测试结果表明,在进行OpenFlow规定操作的同时,本设计的交换机单网口处理接收发送小长度的数据包最高速率接近于800Mbps,发送接收大长度的数据包最高速率接近900Mbps,同时在速率控制方面精度达到90%,在数据处理速度方面相较仅用ARM Cortex-A9双核进行包处理快了20倍。