本发明涉及一种交换机性能参数测量方法,尤其是一种针对OpenFlow交换机的性能参数测量方法。
背景技术:
::从互联网诞生到现在,已经从一个学术网络发展成为影响我们生活、生产、消费、娱乐的庞大体系,已经成为社会发展中的核心推动力之一。然而,技术的发展使得当前的网络架构的问题逐渐暴露出来,需要更新技术来应对这些挑战。为应对现有的网络结构的缺陷,未来网络应运而生,其中SDN(softwaredefinednetwork)是未来网络的重要发展方向,SDN旨在实现网络互联和网络行为的定义和开放式接口,从而支持各种新型网络体系机构和新型业务的创新。OpenFlow技术作为SDN的实现,由软件驱动的中央控制节点来自动化控制整个网络,简化网络的配置模式,增加网络趋势的开放性,已经成为GENI、FINE等各国未来网络项目的基础。Openflow作为SDN的原型提出时,主要有OpenFlow交换机、控制器两部分组成。OpenFlow交换机负责数据转发功能,主要有流表(flowtable)、安全信道(securechannel)和OpenFlow协议(OpenFlowprotocol)。OpenFlow交换机的实现方式主要有基于硬件的OpenFlow交换机以及基于软件运行的OpenFlow交换机。控制器中,网络操作系统(NetworkoperatingSystem)实现控制逻辑功能,NOX是OpenFlow网络中对网络实现可编程控制的中央执行单元。在基于NOX的OpenFlow网络中,NOX是控制核心,OpenFlow通过维护网络视图(NetworkView)来维护整个网络的基本信息,运行在NOX上的应用程序通过调用网络视图中的全局数据,进而操作OpenFlow交换机来对整个网络进行管理和控制。OpenFlow交换机是研究管控分离架构和部署中小型试验网络的关键设备,交换机的性能是部署试验网络和评价SDN网络的关键因素之一。然而目前多数对于OpenFlow的研究主要有以下部分:(1)SDN转发平面的设计问题;(2)控制平面的可扩展性问题;(3)SDN控制逻辑的一致性问题;(4)研究如何提高数据平面的性能;(5)建模问题。若要实现对未来网络的性能评估,性能模型就成为必须要研究实现的课题,然而当前主流的检测仪表并无相关功能,已经在技术上限制了对未来网络更深层次的研究。因此,需要一种能够对未来网络关键性能参数进行测量的方法以解决上述问题。技术实现要素:本发明的目的在于提供一种能够对未来网络关键性能参数进行测量的方法。本发明的技术方案:一种基于KPLS算法的OpenFlow交换机性能参数测量方法,包括如下步骤:步骤1,依次改变压力流量、报文分组长度、报文分组数量以及TCP/UDP报文格式中的一个参数,而保持其余参数固定不变,从而获取KPLS算法所需的建模样本集,包括吞吐量集合、时延集合以及丢包率集合;步骤2,根据获得的建模集建立OpenFlow交换机关键性能参数的KPLS模型;步骤3,获取OpenFlow交换机当前的测试数据;步骤4,带入测试数据至KPLS模型,计算当前OpenFlow交换机的关键性能参数,包括吞吐量、时延以及丢包率。采用实时数据建立KPLS模型对OpenFlow交换机的关键性能参数进行计算,具有较高的准确性和实时性,而且避免硬件检测对网络造成冲击,获得的参数失真的问题;无需硬件投入,为未来网络试验台性能测试及模型提供了一种适应性广泛的技术解决方案。作为本发明的进一步限定方案,步骤1中,获取KPLS算法所需的建模样本集的具体步骤为:步骤1.1,固定其余参数不变,改变发送压力x1共N1次,获得不同压力流量下的性能主要参数,由流量发生器向OpenFlow交换机发送报文分组长度为x3Byte、传输中的分组数量为x4的TCP/UDP报文x2,持续时间为S秒,OpenFlow交换机在接收到TCP/UDP报文x2后根据预先插入的流量表规则向信号接收器转发TCP/UDP报文x2,同时测当前的性能主要参数吞吐量Throughput1、时延Timedelay1以及丢包率Lossrate1,得到的样本集为X1={x1,x2,x3,x4},Y1={Throughput1,Timedelay1,Lossrate1},其中:x1=(x11,x12,...,x1N1)T]]>x2=(x21,x22,...,x2N1)T]]>x3=(x31,x32,...,x3N1)T]]>x4=(x41,x42,...,x4N1)T]]>Throughput1=(Throughput11,Throughput12,...,Throughput1N1)T]]>Timedelay1=(Timedelay11,Timedelay12,...,Timedelay1N1)T]]>Lossrate1=(Lossrate11,Lossrate12,...,Lossrate1N1)T;]]>步骤1.2,固定其余参数不变,改变发送报文分组长度x3共N2次,获得不同分组长度下的性能主要参数,由流量发生器向OpenFlow交换机发送压力x1Mbit/s、传输中的分组数量为x4的TCP/UDP报文x2,持续时间为S秒,OpenFlow交换机在接收到TCP/UDP报文x2后根据预先插入的流量表规则向信号接收器转发TCP/UDP报文x2,同时测当前的性能主要参数吞吐量Throughput2、时延Timedelay2以及丢包率Lossrate2,得到样本集为X2={x1,x2,x3},Y2={Throughput2,Timedelay2,Lossrate2},其中:x1=(x11,x12,...,x1N2)T]]>x2=(x21,x22,...,x2N2)T]]>x3=(x31,x32,...,x3N2)T]]>x4=(x41,x42,...,x4N2)T]]>Throughput2=(Throughput21,Throughput22,...,Throughput2N2)T]]>Timedelay2=(Timedelay21,Timedelay22,...,Timedelay2N2)T]]>Lossrate2=(Lossrate21,Lossrate22,...,Lossrate2N2)T;]]>步骤1.3,固定其余参数不变,改变传输中的报文分组数量x4共N3次,获得不同传输中的报文分组数量下的性能主要参数,由流量发生器向OpenFlow交换机发送压力x1Mbit/s、发送报文分组长度为x3Byte的TCP/UDP报文x2,持续时间为S秒,OpenFlow交换机在接收到TCP/UDP报文x2后根据预先插入的流量表规则向信号接收器转发TCP/UDP报文x2,同时检测当前的性能主要参数吞吐量Throughput3、时延Timedelay3以及丢包率Lossrate3,得到样本集为X3={x1,x2,x3},Y3={Throughput3,Timedelay3,Lossrate3},其中:x1=(x11,x12,...,x1N3)T]]>x2=(x21,x22,...,x2N3)T]]>x3=(x31,x32,...,x3N3)T]]>x4=(x41,x42,...,x4N3)T]]>Throughput3=(Throughput21,Throughput22,...,Throughput2N3)T]]>Timedelay3=(Timedelay21,Timedelay22,...,Timedelay2N3)T]]>Lossrate3=(Lossrate21,Lossrate22,...,Lossrate2N3)T;]]>步骤1.4,固定其余参数不变,改变TCP/UDP报文x2共N4次,获得发送压力x1Mbit/s递增情况下TCP/UDP格式不同的性能主要参数,由流量发生器向OpenFlow交换机发送分组长度为x3Byte、传输中的分组数量为x4的TCP/UDP报文x2,持续时间为S秒,OpenFlow交换机在接收到TCP/UDP报文x2后根据预先插入的流量表规则向信号接收器转发TCP/UDP报文x2,同时通过检测设备检测当前的性能主要参数吞吐量Throughput4、时延Timedelay4以及丢包率Lossrate4,得到样本集为X4={x1,x2,x3,x4},Y4={Throughput4,Timedelay4,Lossrate4},其中:x1=(x11,x12,...,x1N4)T]]>x2=(x21,x22,...,x2N4)T]]>x3=(x31,x32,...,x3N4)T]]>x4=(x41,x42,...,x4N4)T]]>Throughput4=(Throughput41,Throughput42,...,Throughput4N4)T]]>Timedelay4=(Timedelay41,Timedelay42,...,Timedelay4N4)T]]>Lossrate4=(Lossrate41,Lossrate42,...,Lossrate4N4)T;]]>步骤1.5,进一步获得建模样本集{X,Y}={(X1,X2,X3,X4)T,(Y1,Y2,Y3,Y4)T}。作为本发明的进一步限定方案,步骤2中,建立OpenFlow交换机关键性能参数的KPLS模型的具体步骤为:步骤2.1,根据建模样本集{X,Y}建立回归方程为:x=HPT+EY=HQ+R]]>式中,自变量X={x1,x2,…,xp}n×p,n为样本数,p为自变量个数,H为得分矩阵,P为H的载荷矩阵,Q为因变量Y关于H的回归系数向量,E和R为残差;步骤2.2,建立Y与X的偏最小二乘回归模型为:Y=XB+R式中,B为偏最小二乘回归系数向量;步骤2.3,记K=XXT,K∈Rn×n,则K的中心化矩阵为:K~=(I-1n1n1nT)K(I-1n1n1nT)]]>式中,I为n维单位阵,1n为n×1的全1阵;步骤2.4,建立KPLS模型为:Y^t=K~tU(HTK~U)-1HTY]]>式中,Kt=XtXT,U和H为得分矩阵,由KPLS迭代回归获得,Xt为当前的测试数据。作为本发明的进一步限定方案,步骤3中,获取OpenFlow交换机当前的测试数据的具体步骤为:步骤3.1,获取当前未来网络的压力x1Mbit/s以及报文形式x2;步骤3.2,获取当前网络的报文分组长度x3;步骤3.3,获取当前网络的传输中的报文数量x4;步骤3.4,利用步骤3.1-3.3获得的数据组成Xt。作为本发明的进一步限定方案,x2=0表示为TCP报文格式,x2=1表示为UDP报文格式。本发明的有益效果在于:(1)采用实时数据建立KPLS模型对OpenFlow交换机的关键性能参数进行计算,具有较高的准确性和实时性,而且避免硬件检测对网络造成冲击,获得的参数失真的问题;(2)无需硬件投入,为未来网络试验台性能测试及模型提供了一种适应性广泛的技术解决方案。附图说明图1为本发明的方法流程图;图2为本发明的压力流量对OpenFlow交换机吞吐量和丢包率性能的影响曲线图;图3为本发明的压力流量对OpenFlow交换机时延性能的影响曲线图;图4为本发明的报文分组长度对OpenFlow交换机吞吐量和丢包率性能的影响曲线图;图5为本发明的报文分组长度对OpenFlow交换机时延性能的影响曲线图;图6为本发明传输中的报文数量对OpenFlow交换机吞吐量和丢包率性能的影响曲线图;图7为本发明传输中的报文数量对OpenFlow交换机时延性能的影响曲线图。具体实施方式下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。本发明待测试的OpenFlow交换机处于流量发生器与流量接收器的闭合环路并与控制器直接相连。测量时采用的是基于Linux平台下的OpenFlow的软件交换机,交换机中存在着一个线性表和两个Hash表。OpenFlow交换机实验方法及其规律:根据实验及理论分析,得知OpenFlow交换机性能主要与以下因素相关:压力流量、报文分组长度大小、报文格式、传输中的包数量、CPU性能、SDN版本等。其中,当网络架设好以后,CPU、OpenFlow版本不可更改,因此CPU性能、SDN版本号为不可控因素。如图2和3为压力流量对OpenFlow交换机性能的影响,其求解过程为:固定其余参数不变,改变压力流量N1次,获得不同压力流量下的性能主要参数,由流量发生器向OpenFlow交换机发送分组长度为x3Byte、传输中的分组数量为x4的TCP/UDP(x2)报文,持续时间为60s,OpenFlow交换机在接收到TCP报文后根据预先插入的流量表规则向信号接收器转发TCP报文。同时通过检测设备检测当前的性能主要参数吞吐量Throughput1、时延Timedelay1、丢包率Lossrate1;实验结果如图2所示。从图2可知,随着压力流量的增长,吞吐量也随之增长,直至临界点,超过临界压力后,吞吐量不再增加,时延、丢包率迅速增长。如图4和5为报文分组长度对OpenFlow交换机性能的影响,其求解过程为:固定其余参数不变,改变报文分组长度N2次,获得不同分组长度下的性能主要参数,由流量发生器向OpenFlow交换机发送压力x1Mbit/s,传输中的分组数量为x4的TCP/UDP(x2)报文,持续时间为60s,OpenFlow交换机在接收到TCP报文后根据预先插入的流量表规则向信号接收器转发TCP/UDP报文。同时通过检测设备检测当前的性能主要参数吞吐量Throughput2、时延Timedelay2、丢包率Lossrate2。实验结果如图3所示。从图3可以得知,随着报文分组长度的变化,OpenFlow交换机的吞吐量逐渐增大。同时,当负载流量不变时,分组越小必然导致分组到达率越高,分组到达率越高,就会对OpenFlow交换机CPU产生更大的负载,因此,其丢包率较大,在分组长度到一定数值后,其丢包率降到最低,其后,丢包率又会上升,并稳定在一定数值上。如图6和7为传输中的报文数量对OpenFlow交换机性能的影响,其求解过程为:固定其余参数不变,改变传输中的报文分组数量N3次,获得不同传输中的报文分组数量下的性能主要参数,方法如下:流量发生器向OpenFlow交换机发送压力x1Mbit/s,分组长度为x3Byte的TCP/UDP(x2)报文,持续时间为60s,OpenFlow交换机在接收到TCP报文后根据预先插入的流量表规则向信号接收器转发TCP/UDP报文。同时通过检测设备检测当前的性能主要参数吞吐量Throughput3、时延Timedelay3、丢包率Lossrate3;实验结果如图4所示,从图4可以得出,随着传输中的报文数量的变化,吞吐量迅速下降,丢包率、时延增长,当传输中的报文数量到达一定程度以后,时延稳定在一定数值不再增加。如图1所示,本发明提供了一种基于KPLS算法的OpenFlow交换机性能参数测量方法,包括如下步骤:步骤1,依次改变压力流量、报文分组长度、报文分组数量以及TCP/UDP报文格式中的一个参数,而保持其余参数固定不变,从而获取KPLS算法所需的建模样本集,包括吞吐量集合、时延集合以及丢包率集合;步骤2,根据获得的建模集建立OpenFlow交换机关键性能参数的KPLS模型;步骤3,获取OpenFlow交换机当前的测试数据;步骤4,带入测试数据至KPLS模型,计算当前OpenFlow交换机的关键性能参数,包括吞吐量、时延以及丢包率。其中,步骤1中,获取KPLS算法所需的建模样本集的具体步骤为:步骤1.1,固定其余参数不变,改变发送压力x1共N1次,获得不同压力流量下的性能主要参数,由流量发生器向OpenFlow交换机发送报文分组长度为x3Byte、传输中的分组数量为x4的TCP/UDP报文x2,持续时间为60秒,OpenFlow交换机在接收到TCP/UDP报文x2后根据预先插入的流量表规则向信号接收器转发TCP/UDP报文x2,同时测当前的性能主要参数吞吐量Throughput1、时延Timedelay1以及丢包率Lossrate1,得到的样本集为X1={x1,x2,x3,x4},Y1={Throughput1,Timedelay1,Lossrate1},其中:x1=(x11,x12,...,x1N1)T]]>x2=(x21,x22,...,x2N1)T]]>x3=(x31,x32,...,x3N1)T]]>x4=(x41,x42,...,x4N1)T]]>Throughput1=(Throughput11,Throughput12,...,Throughput1N1)T]]>Timedelay1=(Timedelay11,Timedelay12,...,Timedelay1N1)T]]>Lossrate1=(Lossrate11,Lossrate12,...,Lossrate1N1)T;]]>步骤1.2,固定其余参数不变,改变发送报文分组长度x3共N2次,获得不同分组长度下的性能主要参数,由流量发生器向OpenFlow交换机发送压力x1Mbit/s、传输中的分组数量为x4的TCP/UDP报文x2,持续时间为60秒,OpenFlow交换机在接收到TCP/UDP报文x2后根据预先插入的流量表规则向信号接收器转发TCP/UDP报文x2,同时测当前的性能主要参数吞吐量Throughput2、时延Timedelay2以及丢包率Lossrate2,得到样本集为x2={x1,x2,x3},Y2={Throughput2,Timedelay2,Lossrate2},其中:x1=(x11,x12,...,x1N2)T]]>x2=(x21,x22,...,x2N2)T]]>x3=(x31,x32,...,x3N2)T]]>x4=(x41,x42,...,x4N2)T]]>Throughput2=(Throughput21,Throughput22,...,Throughput2N2)T]]>Timedelay2=(Timedelay21,Timedelay22,...,Timedelay2N2)T]]>Lossrate2=(Lossrate21,Lossrate22,...,Lossrate2N2)T;]]>步骤1.3,固定其余参数不变,改变传输中的报文分组数量x4共N3次,获得不同传输中的报文分组数量下的性能主要参数,由流量发生器向OpenFlow交换机发送压力x1Mbit/s、发送报文分组长度为x3Byte的TCP/UDP报文x2,持续时间为60秒,OpenFlow交换机在接收到TCP/UDP报文x2后根据预先插入的流量表规则向信号接收器转发TCP/UDP报文x2,同时检测当前的性能主要参数吞吐量Throughput3、时延Timedelay3以及丢包率Lossrate3,得到样本集为X3={x1,x2,x3},Y3={Throughput3,Timedelay3,Lossrate3},其中:x1=(x11,x12,...,x1N3)T]]>x2=(x21,x22,...,x2N3)T]]>x3=(x31,x32,...,x3N3)T]]>x4=(x41,x42,...,x4N3)T]]>Throughput3=(Throughput21,Throughput22,...,Throughput2N3)T]]>Timedelay3=(Timedelay21,Timedelay22,...,Timedelay2N3)T]]>Lossrate3=(Lossrate21,Lossrate22,...,Lossrate2N3)T;]]>步骤1.4,固定其余参数不变,改变TCP/UDP报文x2共N4次,获得发送压力x1Mbit/s递增情况下TCP/UDP格式不同的性能主要参数,由流量发生器向OpenFlow交换机发送分组长度为x3Byte、传输中的分组数量为x4的TCP/UDP报文x2,持续时间为60秒,OpenFlow交换机在接收到TCP/UDP报文x2后根据预先插入的流量表规则向信号接收器转发TCP/UDP报文x2,同时通过检测设备检测当前的性能主要参数吞吐量Throughput4、时延Timedelay4以及丢包率Lossrate4,得到样本集为X4={x1,x2,x3,x4},Y4={Throughput4,Timedelay4,Lossrate4},其中:x1=(x11,x12,...,x1N4)T]]>x2=(x21,x22,...,x2N4)T]]>x3=(x31,x32,...,x3N4)T]]>x4=(x41,x42,...,x4N4)T]]>Throughput4=(Throughput41,Throughput42,...,Throughput4N4)T]]>Timedelay4=(Timedelay41,Timedelay42,...,Timedelay4N4)T]]>Lossrate4=(Lossrate41,Lossrate42,...,Lossrate4N4)T;]]>步骤1.5,进一步获得建模样本集{X,Y}={X1,X2,X3,X4)T,(Y1,Y2,Y2,Y4)T}。步骤2中,建立OpenFlow交换机关键性能参数的KPLS模型的具体步骤为:步骤2.1,根据建模样本集{X,Y}建立回归方程为:X=TPT+EY=TQ+R]]>式中,自变量X={x1,x2,…,xp}n×x,n为样本数,p为自变量个数,H为得分矩阵,P为H的载荷矩阵,Q为因变量Y关于H的回归系数向量,E和R为残差;步骤2.2,建立Y与X的偏最小二乘回归模型为:Y=XB+R式中,B为偏最小二乘回归系数向量;步骤2.3,记K=XXT,K∈Rn×n,则K的中心化矩阵为:K~=(I-1n1n1nT)K(I-1n1n1nT)]]>式中,I为n维单位阵,1n为n×1的全1阵;步骤2.4,建立KPLS模型为:Y^t=K~tU(HTK~U)-1HTY]]>式中,Kt=XtXT,U和H为得分矩阵,由KPLS迭代回归获得,Xt为当前的测试数据。由KPLS迭代回归获得U和H为得分矩阵的具体步骤为:Step1.随机初始化向量u;Step2.h←h/||h||;Step3.c=YTh;Step4.u=Yc,u←u/||u||;Step5.重复2-4,直至各向量收敛;Step6.Y←Y-hhTY;重复Step1-Step6,直至获得p个所期望提取得分向量,将p个得分向量u和h组合成n×p的得分矩阵U,H。步骤3中,获取OpenFlow交换机当前的测试数据的具体步骤为:步骤3.1,获取当前未来网络的压力x1Mbit/s以及报文形式x2,x2=0表示为TCP报文格式,x2=1表示为UDP报文格式;步骤3.2,获取当前网络的报文分组长度x3;步骤3.3,获取当前网络的传输中的报文数量x4;步骤3.4,利用步骤3.1-3.3获得的数据组成Xt。本发明使用了FLUKE公司ETHERSCOPEII型网络测试仪产生数据流满足高速、真实的数据流要求,OpenFlow交换机处于流量发生器与流量接收器的闭合环路并与控制器直接相连。进行网络测试的网络结构如图2所示。试验采用的是基于Linux平台下的OpenFlow1.0.0版本的软件交换机,在该版本的交换机中存在着一个线性表和两个Hash表,其中线性表的流表项为100,每个Hash表的流表项容量为64K,在测试吞吐量的试验中,为了反映出OpenFlow交换机在最大压力下的性能,OpenFlow交换机最大长度为100的线性流和128K的哈希流表在进行吞吐量试验之前被全部填满,从而保证了分组到达OpenFlow交换机后直接查询流表并按照规则转发,而无需向NOX控制器请求。Step1.通过未来网络硬件检测设备直接获取当前未来网络的压力x1=480Mbit/s以及报文形式为x2=1的UDP报文格式;Step2.选择当前网络的报文分组长度x3=1240Byte;Step3.获取当前网络的传输中的报文数量x4=210;对于Step1-Step3获得的数据,组成Xt。OpenFlow交换机关键性能参数的KPLS模型为:Y^t=K~tU(HTK~U)-1HTY]]>式中,Kt=XtXT,U和H为得分矩阵,由KPLS迭代回归获得,Xt为当前的测试数据。参数的获取通过以下步骤获得:样本集{X,Y}={X1,X2,X3,X4)T,(Y1,Y2,Y2,Y4)T},则回归方程可以表示如下:X=TPT+EY=TQ+R]]>式中:自变量X={x1,x2,…,xp}n×p,n为样本数,p为自变量个数,T为得分矩阵,P为T的载荷矩阵;Q为因变量Y关于T的回归系数向量;E和R为残差。Y与X的偏最小二乘回归模型为:Y=XB+R式中B为偏最小二乘回归系数向量。Step6:基于KPLS算法的OpenFlow交换机性能关键参数算法如下:记K=XXT,K∈Rn×n,K的中心化矩阵为:K~=(I-1n1n1nT)K(I-1n1n1nT)]]>其中:I-n维单位阵,1n-n×1的全1阵。KPLS迭代回归方法如下:Step1.随机初始化向量u;Step2.Step3.c=YTh;Step4.u=Yc,u←u/||u||;Step5.重复2-4,直至各向量收敛;Step6.Y←Y-hhTY;重复Step1-Step6,直至获得p个所期望提取得分向量,将p个得分向量u和h组合成n×p的得分矩阵U,H。最终该参数下的OpenFlow交换机关键参数为:吞吐量为276Mbit/s,时延0.17s,丢包率为28%。当前第1页1 2 3 当前第1页1 2 3