一种SDN控制器性能测试方法及系统与流程

文档序号:12278206阅读:869来源:国知局
一种SDN控制器性能测试方法及系统与流程

本发明网络技术领域,涉及SDN网络领域,尤其涉及一种SDN控制器性能测试方法及系统。



背景技术:

云计算、移动互联网以及物联网等应用驱动着数据中心的发展,随着各种应用的不断出现,以及对网络带宽需求的提升,数据中心面临着越来越多的挑战。而传统的网络架构在灵活性、成本等方面已经无法满足日益增长的需求,SDN(Software Defined Networking)和OpenFlow的出现将会对数据中心产生革命性的影响。

SDN/OpenFlow将网络控制平面和数据平面分离,数据平面根据特定的策略实现对数据包的转发功能,控制平面通过使用控制器实现对整个网络的集中式控制。由于控制器在系统架构、实现语言以及编程接口方面的差异,因此,其性能也有所不同。

SDN的控制平面实现了逻辑上的集中管理,一旦控制器失效,将会直接导致网络瘫痪,因此控制器的性能对整个网络的功能和性能有着重要的影响。另外,控制器的性能对于用户而言,是选择是否使用该控制器的重要依据;对开发者来说,则是研发的主要参考指标。因此,控制器性能测试是一项非常重要的工作。

近年来,关于SDN控制器性能测试方法和工具主要有:

(1):Cbench(Controller benchmarker)是一款OpenFlow控制器性能测试工具,它通过模拟一定数量的交换机连接到待测试控制器,并产生大量PacketIn消息,等待控制器下发PacketOut消息来计算控制器的性能。

(2):SDN控制器的调研和量化分析,提出一种基于Mininet仿真平台的控制器性能测试方法。它利用Mininet仿真网络拓扑,将交换机连接远程的控制器,通过运行ping程序,测试不同网络拓扑的平均ping时延和pingall时间,以此来衡量不同控制器的性能。

方案(1)中,Cbench模拟N个不连通的OpenFlow交换机,产生大量PacketIn消息。但是这种PacketIn消息的产生方式忽略了交换机之间的通信,这将影响控制器性能测试结果的准确性。而且由于程序设计的缺陷,Cbench并不支持对多控制器性能的测试。

方案(2)测试方法简单,不具有模块化的系统设计。并且仅从时间角度考虑控制器的性能,忽略控制器的吞吐量。另外,Mininet是个模拟环境,需要依赖实际的物理设备,本身也不具有测试控制器性能的功能。单纯利用ping程序测试,难以保证实验结果的准确性。



技术实现要素:

本发明的目的在于提供一种SDN控制器性能测试方法及系统,解决SDN网络中单/多控制器的性能测试问题,实现了模块化的SDN控制器性能测试系统,同时在对多个控制器进行测试时,控制器域间流量使测试结果更加贴近实际场景。

本发明的目的是通过以下技术方案来实现的:

一种SDN控制器性能测试系统,包括拓扑和流量信息读入单元、网络拓扑仿真单元、网络流量生成单元、流量统计单元、数据存储单元和性能计算单元;

拓扑和流量信息读入单元用于将测试配置文件转化为网络拓扑和流量信息;所述拓扑和流量信息读入单元包括拓扑信息读入单元和流量信息读入单元;

网络拓扑仿真单元用于根据拓扑信息仿真相应的网络节点和网络链路,网络拓扑仿真单元根据输入的拓扑信息,仿真网络中的交换机节点以及节点间的连接状态,使所有交换机节点与待测试控制器建立连接;

网络流量生成单元用于根据已生成的网络拓扑和流量配置信息生成数据包;

流量统计单元用于记录控制器与网络拓扑之间交互的数据包信息;

数据存储单元用于存储测试过程中的数据包信息;

性能计算单元用于读取流量统计信息并根据性能指标公式计算控制器的性能。

进一步,所述网络流量生成单元根据接收到的流量信息和已经生成的拓扑信息,生成相应特性的流量,并调用交换机节点的接口发送流量数据包。

进一步,当仿真网络中交换机节点与控制器通过安全通道通信时,流量统计单元根据测试模式记录数据包的类型、数量和时间信息。

进一步,数据存储单元用于将流量统计单元记录的数据包信息存储在某种数据结构中,同时向系统的其他单元提供快速查询数据包信息的接口。

一种SDN控制器性能测试方法,包括如下步骤:

(1).拓扑和流量信息读入单元根据测试配置文件将仿真拓扑和流量信息读入,拓扑信息读入单元将拓扑信息转化为系统可识别的数据结构进行存储,流量信息读入单元将流量信息的特征值进行提取并存储在相应的数据结构中;

(2).网络拓扑仿真单元根据存储在相关数据结构中的拓扑信息,仿真网络中的所有交换机节点和节点间的链路,为交换机节点配置ip和端口属性,为链路配置链路时延和带宽属性;

(3).网络流量生成单元读取仿真流量的特征值信息,按照数据包大小、流间隔、源IP、目的IP和端口信息创建流量生成器,然后通过网络流量生成单元和网络拓扑仿真单元之间的接口将流量注入到仿真网络的交换机中;

(4).仿真交换机收到流量后,模拟OpenFlow交换机的行为,流表项中没有匹配流量的流规则,交换机将数据包封装在PacketIn消息发送到控制器,产生测试需要的通信流量。流量统计单元根据测试模式记录仿真网络与控制器之间通信流量的相关信息;

(5).数据存储单元提供写入和读取接口供其他单元调用。流量统计单元104将记录的流量信息存储在数据存储单元;

(6).性能计算单元调用数据存储单元的读取接口,根据测试模式读取流量信息,并根据性能指标计算公式对控制器性能进行计算。

进一步,在完成控制器性能的一次测试后,测试系统将测试配置文件中的测试次数k减1,如果k大于0,再次重复7所述的步骤(1)~(6)。

进一步,网络流量生成单元既能够直接生成PacketIn消息,并调用仿真的交换机节点接口将其发送至控制器;也能生成TCP或UDP流量,由交换机节点将其转换为OpenFlow消息。

进一步,所述步骤(4)具体为:

S1:流量统计单元读取测试配置文件的测试模式M;

S2:如果测试模式是响应时延模式,转到步骤S6;

S3:记录第一个PacketIn消息的发送时间T1;

S4:检查PacketOut消息的正确性,如果是由PacketIn消息触发的响应,将系统收到的PacketOut数量N累计加1,并存储接收时间T2,否则忽略不作处理;

S5:重复步骤S4直至不再收到PacketOut消息,调用数据存储单元的存储接口将T1、T2和N的值存入单元,转到步骤S9;

S6:调用数据存储单元接口将PacketIn消息以及发送时间T1存入数据存储单元;

S7:根据仿真网络收到的PacketOut消息中的bufferID或data字段查找对应的PacketIn的消息,存入其对应的接收时间T2;

S8:循环S6、S7计算流程直至不再收到PacketOut消息,每一个PacketIn消息对应的T1和T2消息都存储在数据存储单元中;

S9:退出流量统计单元。

本发明提供的SDN控制器性能测试方法,通过仿真多种拓扑结构和生成不同特征的网络流量,对多控制器的性能进行测试,而且,测试系统模块化的设计使得性能计算更加灵活,可以根据多种性能指标进行计算。

本发明具有以下有益效果:

(1)灵活的测试环境,本系统使用配置文件的方式,方便修改测试时使用的网络拓扑,以及测试时的流量特征等信息。

(2)多种流量生成方式,系统既可以生成TCP或者UDP流量,之后通过仿真OpenFlow交换机发送PacketIn消息;也可以直接生成PacketIn数据包,调用交换机接口将数据发送至控制器。

(3)模块化的系统设计,为控制器性能的测试提供更大的灵活性。使用者可根据需要添加新的性能指标,并提供流量统计单元和性能计算单元的实现方法,从而实现该性能指标的计算,扩充控制器性能测试系统的功能。

【附图说明】

图1是本发明提出的控制器性能测试系统框架图;

图2是本发明具体实施方式中工作示意图;

图3是本发明具体实施方式中控制器仿真网络拓扑的流程图;

图4是本发明具体实施方式中控制器生成网络流量的流程图;

图5是本发明具体实施方式中SDN控制器性能测试系统单元示意图。

【具体实施方式】

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明提供了一种SDN控制器性能测试方法。通过模块化设计,仿真多种拓扑结构和网络流量,分析并计算控制器的性能。

1、控制器性能测试系统设计中的关键对象

如图5所示,在本发明具体实施例中,SDN控制器性能测试系统,其包括如下基本单元:

拓扑和流量信息读入单元101用于将测试配置文件转化网络拓扑和流量信息,拓扑和流量信息读入单元101包括拓扑信息读入单元1011和流量信息读入单元1012;

网络拓扑仿真单元102根据输入的拓扑信息,仿真网络中的交换机节点以及节点间的连接状态,使所有交换机节点与待测试控制器建立连接;

网络流量生成单元103根据接收到的流量信息和已经生成的拓扑信息,生成相应特性的流量,并调用交换机节点的接口发送流量数据包;

流量统计单元104用于记录控制器与网络拓扑之间交互的数据包信息,当仿真网络中交换机节点与控制器通过安全通道通信时,流量统计单元104根据测试模式记录数据包的类型、数量和时间等信息;

数据存储单元105用于将流量统计单元104记录的数据包信息存储在某种数据结构中,同时向系统的其他单元提供快速查询数据包信息的接口;

性能计算单元106用于读取流量统计信息,并根据用户定义的用户性能指标公式计算控制器的性能。

2、本发明详细描述

参见图1所示,给出了模块化的控制器性能测试系统框架图。该系统包括配置载入、拓扑仿真、流量生成、流量统计与分析和数据存储五个模块。

流量生成模块是整个系统的基础,它的主要作用是根据配置文件生成不同特征的流量,通过与拓扑仿真模块的接口注入到仿真网络拓扑中。

拓扑仿真模块负责创建不同类型的网络拓扑,仿真OpenFlow交换机、主机端口以及链路,并模拟OpenFlow交换机的行为与控制器建立连接,完成PacketIn/PacketOut消息的发送和接收。拓扑仿真模块处于数据流向的中间位置,它向下提供流量生成模块的接口,以注入测试流量;向上提供流量统计分析模块的接口,处理时间和数据包记录。

流量统计与分析负责记录测试系统发送和收到的数据包信息。对于系统发往控制器的上行流量,需要记录PacketIn消息的发送时间,并且在响应时延测试模式下保存PacketIn消息,用于后期与PacketOut匹配计算。对于控制器发送到系统的下行流量,模块需要记录PacketOut消息到达的时间和它的数量。由于系统短时间会收到大量PacketOut消息,直接计算控制器性能会影响测试结果,所以在获取到PacketIn/PacketOut的相关信息后,模块需要将其存入数据存储模块,用于后期的控制器性能计算。流量统计与分析模块根据数据存储模块中的相关信息,计算控制器的性能。

数据存储模块负责存储系统对流量的统计数据,包括PacketIn发送的时间、PacketIn中的data域、PacketOut接收时间和PacketOut数量,所有的数据用于后期对控制器性能的计算。

配置载入模块连接系统内部和外部,模块将系统外部的配置文件转化为系统可以识别的数据结构。配置文件中的内容转换后分解为网络的拓扑信息,包括交换机信息,链路信息,与控制器连接信息等,以及流量的特征信息。

参见图2所示,SDN控制器性能测试系统的工作过程包括以下步骤:

S1:系统开始运行,配置载入模块读入配置文件,读取其中的配置信息,将网络拓扑和流量信息分别转化为拓扑仿真模块和流量生成模块可以识别的数据结构中;

S2:拓扑仿真模块根据拓扑配置数据,仿真SDN网络中交换机节点,以及交换机之间的链路仿真包括链路延时、带宽等。

S3:流量生成模块收到流量配置信息后,按照包大小、流间隔、源/目的IP和端口等信息创建流量生成器,通过流量生成模块和拓扑仿真模块之间的接口将流量注入到仿真网络的交换机中。

S4:仿真交换机收到流量后,模拟OpenFlow交换机的行为,流表项中没有匹配流量的流规则,交换机将数据包封装在PacketIn消息发送到流量统计与分析模块进行处理。

S5:流量统计与分析模块根据测试模式(吞吐量模式和响应时延模式)记录PacketIn数据大小、数量,以及对应的时间。流量统计与分析模块记录下的所有数据通过数据存储模块进行处理。

S6:控制器下发的PacketOut消息首先达到网络仿真交换机,流量统计与分析模块记录PacketOut到达的时间及包的数量,然后读取对应的PacketIn消息的发送时间,计算响应时延。读取PacketIn消息的数据大小和数量,计算吞吐量。

为了实现SDN控制器性能测试系统,需要解决两个主要问题。

(1)网络拓扑生成问题

为了测试控制器连接不同规模、不同网络拓扑时的性能,系统需要生成多种结构的网络拓扑,同时要保证网络元素行为的真实性。因此,拓扑仿真组件应具有以下功能:首先,可以仿真线性、胖树、无连通等多种拓扑结构;其次,仿真节点具有真实的OpenFlow交换机行为,实现与控制器的交互;最后仿真链路可以设置带宽、时延等属性。

参考图3的网络拓扑生成流程图,组件首先调用相应接口获取网络中元素节点即交换机的名称和其属性,并根据这些信息建立网络中的交换机节点,在网络交换机节点仿真完成后,系统获得网络中链路的信息,开始仿真网络链路。如果链路节点中包括控制器,那么系统需要建立交换机节点与控制器的TCP连接,如果都是仿真节点,那么系统将建立仿真链路,完成链路的仿真。

(2)自定义网络流量生成

为了保证性能测试结果的真实性,系统生成的流量应该以生成的拓扑为基础。即测试系统既可以生成域内流量,以测试单控制器对域内流量的处理能力;又可以生成域间流量,以测试多控制器域间流量的处理能力。并且,生成的流量,在发送时速率应该达到控制器的处理瓶颈。

为了实现可以生成多种网络拓扑的功能,拓扑仿真组件将网络抽象为元素节点和边,利用图的性质,将节点和边信息存储在图的数据结构中,并根据图的信息建立相应的仿真节点和链路。其中仿真节点将模拟OpenFlow交换机的基本功能,并且具有DPID唯一的标识。仿真链路连接两个模拟交换机,并具有时延、带宽等属性。

为了保证测试结果的正确性,流量生成组件应该基于已有的仿真拓扑确定流量特性,使其具有源/目的ip、端口数和数据包大小等属性。

流量生成组件的工作流程参考图4所示,首先循环遍历测试配置文件中的网络节点,查看它的属性参数中是否包含流量traffic参数,如果包含traffic流量参数,则需要建立流量事件。流量生成组件根据流量定义读取流量调节器列表,然后依次遍历流量调节器,根据流量调节器中的属性建立流量事件,并将其加入流量事件列表。当系统启动网络拓扑后,流量生成组件将激活流量事件将其注入到相应的交换机节点。

本发明提供的SDN控制器性能测试方法,可以通过仿真多种拓扑结构和不同特征的网络流量,对多控制器的性能进行测试,而且,本测试系统模块化的设计使得性能计算更加灵活,可以根据多种性能指标进行计算。

以上所述是本发明的优选实施方式,通过上述说明内容,本技术领域的相关工作人员可以在不偏离本发明技术原理的前提下,进行多样的改进和替换,这些改进和替换也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1