论文部分内容阅读
随着网络技术的发展,网络规模的不断扩大,国内外社交网络、移动互联网、物联网、云计算、大数据等业务快速发展,这些业务需要网络具备海量数据吞吐能力。然而传统网络架构存在着:网络部署和管理复杂,网络不灵活,网络运营和建设成本高,链路利用率低,资源分配不公平等问题。传统网络体制下,网络结构僵化、封闭、架构的软硬件垂直一体化等症结限制了网络性能的提高。在SDN架构中,网络设备被虚拟为一种可自由分配的资源,这些资源由控制器统一控制,这样能够简化网络管理的流程,并且为应用层提供简单的、高效的配置与管理。本文研究了在此背景下新兴的SDN技术,创新性地提出了使用PC机作为SDN控制器,利用FPGA芯片所蕴藏的丰富资源作为SDN硬体层面转发器,实现ping通信的设计理念。本文以Ubuntu操作系统为实验操作系统,利用Mininet和Floodlight从软件角度搭建并模拟了SDN通信网络,测试并分析了SDN网络的工作流程。在进一步的研究中,利用FPGA芯片作为转发器的硬件中央处理器,结合电脑中的控制器软件及用户通信软件,通过使用VHDL硬件描述语言在FPGA芯片中完成了数据收发模块、包头解析模块、流表更新模块、流表匹配模块、动作执行模块的设计,并利用Java语言在上位机电脑中完成了控制器软件中自定义流表、快速下发流表、获取底层设备消息的设计,进行了用户通信软件中的通信请求、消息收发功能的设计。该项目的研究对促进SDN技术的发展具有一定的参考价值。论文主要进行了如下的工作:首先,研究了国内外SDN技术的现状和最新成果,分析了传统网络存在哪些瓶颈,分析了SDN网络硬件设备的需求,进行了SDN网络基本架构及其关键技术的分析,包括南向网络控制技术、北向业务支撑技术,重点分析了SDN架构中的OpenFlow交换机的工作原理及协议标准。其次,研究了软件模拟SDN网络的相关技术,对相关平台和软件进行对比和选择的基础上,在虚拟机中安装了两个Linux操作系统。并且利用Linux命令在两个系统中分别安装Floodlight和Mininet软件,利用Floodlight和Mininet搭建模拟的SDN网络,利用Python语言设计了一个具备4台主机、2台Open vSwitch交换机、1台控制器的网络拓扑结构,在虚拟的SDN网络中进行了拓扑探测、ping通信测试,以此掌握SDN网络中各个主机、交换机、控制器之间的通信过程。之后,进行了控制软件的设计,PC机中控制的软件具备通过更改交换机流表项来更改转发路径功能,并可由PC机软件将新的转发路径经串行数据线传送至转发器。此外还进行了用户通信软件的设计,电脑中的用户通信软件具备与其他用户通信,测试指定IP用户的连通性,收发来自其他设备的消息的功能。除此之外,还进行了FPGA转发器的设计,首先通过分析系统的需求来选择合适的FPGA芯片。其次利用VHDL语言,在Xilinx公司提供的ISE开发环境中进行FPGA转发系统的各个模块设计以及波形仿真测试。在Eclipse软件,利用Java语言设计控制软件和通信软件。最后,将整个系统软硬件连接在一起做整体ping通信、下发流表的测试。测试结果表明整体达到预定设计要求。本文具有较强的针对性,下发自定义流表、快速下发流表、ping通信功能均能够实现,并且还具备及时更改硬件配置的特性,在该系统只需再流花一个UART数据处理模块便可再增加主机。本课题在SDN网络架构通信过程的研究上取得了一定的进展,对该技术与FPGA相结合,以及SDN网络的进一步研究打好了一定的基础,并且有一个良好的开端,对在FPGA平台实现SDN网络架构具有一定的参考意义。