一种基于OpenFlow的SDN流量测量方法技术

技术编号:10810251 阅读:308 留言:0更新日期:2014-12-24 15:53
本发明专利技术公开了一种基于OpenFlow的SDN流量测量方法,控制器根据流量测量需求生成测量流表项,将对应交换机中满足流量测量需求的数据流对应的转发流表项的操作指令增加转入流量测量流表的操作,使得这些数据流通过测量流表项的计数器进行累计。控制器在流量测量需求输入、新流到达、时间间隔达到最大时主动向交换机发送流量查询信息进行流量查询,在测量流表项被删除时被动接收交换机上报的流量信息,从而进行流量信息采集和统计,将结果保存到流量统计结果表中。本发明专利技术通过采用测量流表项,解决现有SDN流量测量中开销大、不能识别通配符等问题,实现灵活、准确的流量测量。

【技术实现步骤摘要】
一种基于OpenFlow的SDN流量测量方法
本专利技术属于SDN流量测量
,更为具体地讲,涉及一种基于OpenFlow的SDN流量测量方法。
技术介绍
流量测量是用来获取网络流量状况和链路使用情况等网络资源情况的主要技术手段,它被广泛应用在网络管理工作中,如负载均衡、流量工程和异常检测等。在传统网络中,流量测量的数据收集往往在离散的点上,很难获取流量的全局视图。且其网络以硬件为中心,其流量测量不利于部署且开销较大,以目前在部署中较为理想的基于流NetFlow技术为例,NetFlow需要预先设定网络采集器,并对指定的关键字进行拓展标识,通过统计过往流量并使用UDP数据包发送给网络采集器,由采集器完成分析、统计,从而实现流量测量功能。NetFlow虽然对不同的测量任务提供了通用支持,但他们消耗太多资源,如CPU、内存和带宽。SDN(SoftwareDefinedNetwork,软件定义网络)的诞生为流量测量带来了新的机遇。在SDN网络中,控制器拥有全局网络视图使得流量测量获得的数据能够轻易的形成网络级的数据分析;SDN采用更为灵活的数据流转发方式并在流表中拥有计数器,使得流量数据采集变得更为方便和灵活;SDN采用集中控制的控制器使得数据采集可以集中在控制器上完成,无需再花费大量的精力在不同时间和空间去采集各个交换机上的流量数据。在现有的SDN网络测量中,OpenTM方法采用轮询的方式查询流表,flowsense利用控制器与交换机之间的推送消息被动的计算网络带宽利用率,OpenSketch利用各种交换机离散地测量网络数据并统计再由控制器汇总。这三种流量测量方式都能有效地统计到网络中的流量,但是OpenTM需要轮询到每个流,增加了用于流量测量的消息量,且在交换机的选取上会影响到流量测量的精度;flowsense测量结果为流存在时间内的平均速率,在流持续时间较长时会影响其效率;OpenSketch则需要修改数据面的设计,并且以上三种方法在流表中存在通配符的情况都将失效。OpenFlow是近年来提出的一种新型网络交换模型。在OpenFlow网络中,网络设备(OpenFlow交换机)维护一个FlowTable(流表)并且只按照FlowTable进行转发,FlowTable本身的生成、维护、下发完全由控制器来实现。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种基于OpenFlow的SDN流量测量方法,解决现有SDN流量测量中开销大、不能识别通配符等问题,实现灵活、准确的流量测量。为实现上述专利技术目的,本专利技术基于OpenFlow的SDN流量测量方法,包括以下步骤:S1:将流量测量需求输入至基于OpenFlow的SDN网络中的控制器,流量测量需求中设置有交换机编号和测量相关字段,测量相关字段根据测量需要进行设置;S2:控制器接收到流量测量需求后,将测量相关字段作为匹配项组合成为测量流表项的匹配头部,然后向交换机编号对应的交换机查询流表,根据反馈的流表中的各转发流表项对测量流表项进行匹配,匹配规则为:如果转发流表项匹配头部中的匹配项包含测量流表项匹配头部中的所有匹配项,或测量流表项匹配头部中的匹配项包含转发流表项匹配头部中的所有匹配项,即为匹配成功,其他情况均为匹配不成功,如果匹配不成功,控制器不作任何操作,如果匹配成功,控制器向匹配成功的转发流表项对应的交换机下发测量流表项并存入交换机本地的流量测量流表,流量测量流表的序号大于该交换机中所有其他转发流表的序号,发送指令在匹配成功的转发流表项的操作指令中增加转入流量测量流表的操作,并向交换机发送流表查询消息,将下发交换机的编号和测量流表项的匹配头部存入已下发流表项记录表,记录下发时间作为起始时间T0,将起始数据量D0置为0;进入步骤S4;S3:在流量测量过程中,每当控制器接收到来自交换机的PacketIn消息,则从PacketIn消息中解析得到交换机编号和测量相关字段,与流量测量需求的交换机编号和测量相关字段进行匹配,如果匹配不成功,则不作任何操作,如果匹配成功,则将测量相关字段组合成为测量流表项的匹配头部,判断交换机编号和测量流表项是否存在于已下发流表项记录表中,如果存在,则在下发的转发流表项的操作指令中增加转入流量测量流表的操作,并向该交换机发送流表查询消息,进入步骤S4;如果不存在,将测量流表项下发至对应的交换机,并存入交换机本地的流量测量流表,在下发的转发流表项的操作指令中增加转入流量测量流表的操作,并向交换机发送流表查询消息,将下发交换机的编号和测量流表项的匹配头部存入已下发流表项记录表,记录下发时间作为起始时间T0,将起始数据量D0置为0,进入步骤S4;S4:控制器发送流量查询消息后,监测当前时间与起始时间T0的时间间隔,当时间间隔等于预设的最大时间间隔t时,控制器再次向交换机发送流量查询消息;S5:交换机接收到流表查询消息后,读取对应测量流表项中计数器得到的数据量D1,以当前时间作为终止时间T1,将数据量D1和终止时间T1发送给控制器,控制器计算时间t内的数据流量D=D1-D0和平均速率s=D/(T1-T0),将交换机编号、测量流表项匹配头部、起始时间T0、终止时间T1、数据流量D和平均速率s记入流量统计结果列表,更新起始时间T0=T1,起始数据量D0=D1;S6:当交换机中的测量流表项删除,交换机主动读取对应测量流表项中计数器得到的数据量D1,如果是因为空闲超时删除,以当前时间减去空闲超时值作为终止时间T1,否则以当前时间作为终止时间T1,交换机将数据量D1和终止时间T1发送给控制器,控制器计算数据流量D=D1-D0和平均速率s=D/(T1-T0),将交换机编号、流表项匹配头部、起始时间T0、终止时间T1和数据流量D记入流量统计结果列表,删除下发流表项记录表的对应记录;S7:当流量测量结束条件达到时,控制器删除对应流量测量需求,并查询已下发流表项记录表是否存在对应的测量流表项记录,如果不存在,不作任何操作,否则向测量流表项对应的交换机发送测量流表项删除指令,交换机在接收删除指令后删除对应的测量流表项。本专利技术基于OpenFlow的SDN流量测量方法,控制器根据流量测量需求生成测量流表项,将对应交换机中满足流量测量需求的数据流对应的转发流表项的操作指令增加转入流量测量流表的操作,使得这些数据流通过测量流表项的计数器进行累计。控制器在流量测量需求输入、新流到达、时间间隔达到最大时主动向交换机发送流量查询信息进行流量查询,在测量流表项被删除时被动接收交换机上报的流量信息,从而进行流量信息采集和统计,将结果保存到流量统计结果表中。本专利技术具有以下有益效果:(1)使用多级流表实现流量测量,流量测量流表的序号大于该交换机中所有其他转发流表的序号,从而无需再对流表中每一个数据流进行统计,只需要按照测量需求,下发一个测量流表项用于统计需要测量的流量情况,到测量时间点时,仅需要去查询一次交换机流表信息,就可以得到对应测量流表项的计数器所计的数据量;(2)被测数据流在交换机已经实现汇集,控制器只需要进行简单计算即可,从而实现了分布式的流量测量统计,减少了控制器用于测量的开销;(3)可以根据用户需求自由组合需要测量的网络信息来下发流量测量需求,以用于解决现有本文档来自技高网
...
一种基于OpenFlow的SDN流量测量方法

【技术保护点】
一种基于OpenFlow的SDN流量测量方法,其特征在于,包括以下步骤:S1:将流量测量需求输入至基于OpenFlow的SDN网络中的控制器,流量测量需求中设置有交换机编号和测量相关字段,测量相关字段根据测量需要进行设置;S2:控制器接收到流量测量需求后,将测量相关字段作为匹配项组合成为测量流表项的匹配头部,然后向交换机编号对应的交换机查询流表,根据反馈的流表中的各转发流表项对测量流表项进行匹配,匹配规则为:如果转发流表项匹配头部中的匹配项包含测量流表项匹配头部中的所有匹配项,或测量流表项匹配头部中的匹配项包含转发流表项匹配头部中的所有匹配项,即为匹配成功,其他情况均为匹配不成功,如果匹配不成功,控制器不作任何操作,如果匹配成功,控制器向匹配成功的转发流表项对应的交换机下发测量流表项并存入交换机本地的流量测量流表,流量测量流表的序号大于该交换机中所有其他转发流表的序号,发送指令在匹配成功的转发流表项的操作指令中增加转入流量测量流表的操作,并向交换机发送流表查询消息,将下发交换机的编号和测量流表项的匹配头部存入已下发流表项记录表,记录下发时间作为起始时间T0,将起始数据量D0置为0;进入步骤S4;S3:在流量测量过程中,每当控制器接收到来自交换机的PacketIn消息,则从PacketIn消息中解析得到交换机编号和测量相关字段,与流量测量需求的交换机编号和测量相关字段进行匹配,如果匹配不成功,则不作任何操作,如果匹配成功,则将测量相关字段组合成为测量流表项的匹配头部,判断交换机编号和测量流表项是否存在于已下发流表项记录表中,如果存在,则在下发的转发流表项的操作指令中增加转入流量测量流表的操作,并向该交换机发送流表查询消息,进入步骤S4;如果不存在,将测量流表项下发至对应的交换机,并存入交换机本地的流量测量流表,在下发的转发流表项的操作指令中增加转入流量测量流表的操作,并向交换机发送流表查询消息,将下发交换机的编号和测量流表项的匹配头部存入已下发流表项记录表,记录下发时间作为起始时间T0,将起始数据量D0置为0,进入步骤S4;S4:控制器发送流量查询消息后,监测当前时间与起始时间T0的时间间隔,当时间间隔等于预设的最大时间间隔t时,控制器再次向交换机发送流量查询消息;S5:交换机接收到流表查询消息后,读取对应测量流表项中计数器得到的数据量D1,以当前时间作为终止时间T1,将数据量D1和终止时间T1发送给控制器,控制器计算时间t内的数据流量D=D1‑D0和平均速率s=D/(T1‑T0),将交换机编号、测量流表项匹配头部、起始时间T0、终止时间T1、数据流量D和平均速率s记入流量统计结果列表,更新起始时间T0=T1,起始数据量D0=D1;S6:当交换机中的测量流表项删除,交换机主动读取对应测量流表项中计数器得到的数据量D1,如果是因为空闲超时删除,以当前时间减去空闲超时值作为终止时间T1,否则以当前时间作为终止时间T1,交换机将数据量D1和终止时间T1发送给控制器,控制器计算数据流量D=D1‑D0和平均速率s=D/(T1‑T0),将交换机编号、流表项匹配头部、起始时间T0、终止时间T1和数据流量D记入流量统计结果列表,删除下发流表项记录表的对应记录;S7:当流量测量结束条件达到时,控制器删除对应流量测量需求,并查询已下发流表项记录表是否存在对应的测量流表项记录,如果不存在,不作任何操作,否则向测量流表项对应的交换机发送测量流表项删除指令,交换机在接收删除指令后删除对应的测量流表项。...

【技术特征摘要】
1.一种基于OpenFlow的SDN流量测量方法,其特征在于,包括以下步骤:S1:将流量测量需求输入至基于OpenFlow的SDN网络中的控制器,流量测量需求中设置有交换机编号和测量相关字段,测量相关字段根据测量需要进行设置;S2:控制器接收到流量测量需求后,将测量相关字段作为匹配项组合成为测量流表项的匹配头部,然后向交换机编号对应的交换机查询流表,根据反馈的流表中的各转发流表项对测量流表项进行匹配,匹配规则为:如果转发流表项匹配头部中的匹配项包含测量流表项匹配头部中的所有匹配项,或测量流表项匹配头部中的匹配项包含转发流表项匹配头部中的所有匹配项,即为匹配成功,其他情况均为匹配不成功,如果匹配不成功,控制器不作任何操作,如果匹配成功,控制器向匹配成功的转发流表项对应的交换机下发测量流表项并存入交换机本地的流量测量流表,流量测量流表的序号大于该交换机中所有其他转发流表的序号,发送指令在匹配成功的转发流表项的操作指令中增加转入流量测量流表的操作,并向交换机发送流表查询消息,将下发交换机的编号和测量流表项的匹配头部存入已下发流表项记录表,记录下发时间作为起始时间T0,将起始数据量D0置为0;进入步骤S3;S3:在流量测量过程中,每当控制器接收到来自交换机的PacketIn消息,则从PacketIn消息中解析得到交换机编号和测量相关字段,与流量测量需求的交换机编号和测量相关字段进行匹配,如果匹配不成功,则不作任何操作,如果匹配成功,则将测量相关字段组合成为测量流表项的匹配头部,判断交换机编号和测量流表项是否存在于已下发流表项记录表中,如果存在,则在下发的转发流表项的操作指令中增加转入流量测量流表的操作,并向该交换机发送流表查询消息,进入步骤S4;如果不存在,将测量流表项下发至对应的交换机,并存入交换机本地的流量测量流表,在下发的转发流表项的操作指令中增加转入流量测量流表的操作,并向交换机发送流表查询消息,将下发交换机的编号和测量流表项的匹配头部存入已下发流表项记录表,记录下发时间作为起始时间T0,将起始数据量D0置为0,进入步骤S4;S4:控制器发送流量查询消息后,监测当前时间与起始时间T0的时间间隔,当时间间隔等于预设的最大时间间隔t时,控制器再次向交换机发送流量查询...

【专利技术属性】
技术研发人员:罗绪成刘梦娟刘峤陈伟张翔刘亚军汤四见李伟铭赵鹏
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1