论文部分内容阅读
近些年随着网络技术的不断发展,用户的业务需求急剧增长,业务规模越来越大,这给现有网络带来了巨大的压力,伴随压力而来的则是传统网络架构所暴露出的各种各样的问题,传统网络的发展遇到了困境。SDN(Software Defined Network,软件定义网络)的出现给解决这一困境带来了转机。作为一种新的网络体系架构,SDN得到了越来越多厂商和研究机构的关注。SDN将传统网络中高度耦合的控制平面与数据平面分离,将控制平面的业务逻辑集中到远端的控制器,数据平面的交换机仅保留高速转发的功能,同时具有网络可编程特性,向开发者提供大量南向和北向API,使得无论是网络管理还是应用开发都变得简易高效。在SDN网络体系架构下,控制器的功能类似于网络的“大脑”,因此其性能和负载水平至关重要。本文旨在对控制器进行性能测试,同时根据测试结果改进设计了一个新的负载均衡策略。 本文首先介绍了 SDN体系架构的内容,分为数据层、南向接口、控制器、北向接口和应用层五个方面来进行详细说明。学习并阐述了OpenFlow交换机流表匹配的流程、OpenFlow协议的重要数据结构。通过研究SDN相关理论与技术为后面的测试和负载均衡策略制定工作奠定基础。 然后,在可行性分析与需求分析的基础上,本文设计了基于内核态的发包工具,阐述了其工作原理与优势。基于该工具,设计了两项控制器性能测试方案,分别是控制器流量压力测试和控制器流表压力测试。同时阐述了两项测试方案的工作流程和测试要点。在详细设计的基础上,通过C语言实现了内核发包器、搭建了基于Mininet和Floodlight的SDN实验环境,并在该环境下完成了流量压力测试和流表压力测试,测试结果直观的表明了控制器的性能与负载情况,证明了对控制器进行负载均衡的必要性。 最后,本文介绍了一个现有的控制器负载均衡策略,通过分析该方案的核心算法,指出了该方案存在的弊端和缺陷。同时,根据本文进行的控制器性能测试结果,改进设计了新的负载均衡策略。在进行负载均衡时充分考虑流表处理速度和网卡利用率,更加详细的指明超负载情景并制定均衡策略。实验结果证明了本文提出的负载均衡策略的有效性和优势。