基于FPGA的SDN网络流量测量系统及方法技术方案

技术编号:19751179 阅读:27 留言:0更新日期:2018-12-12 05:45
本发明专利技术提出了一种基于FPGA的SDN网络流量测量系统及方法,用于解决现有技术中存在的测量效率和精度较低的技术问题。实现步骤为:1.控制器构造测量流表和测量流量数据包;2.交换机转发测量流量数据包;3.流量采集模块采集统计帧;4.流量存储模块存储统计帧;5.地址映射模块获取统计帧的流号和分组长度;6.控制单元模块解析流计数器地址解析;7.分组数计算模块测量分组数;8.流容量计算模块测量流容量和基本增量;9.流量分析模块计算新的分组数和新的流容量;10.流量通告模块将新的流计数器值返回给控制器,实现对网络流量的实时测量。

【技术实现步骤摘要】
基于FPGA的SDN网络流量测量系统及方法
本专利技术属于计算机网络通信
,涉及一种SDN网络流量的测量方法,具体涉及一种基于FPGA的SDN网络流量实时测量方法,可用于大规模网络部署场景下及时了解网络整体以及局部区域的性能状态,排除网络故障,为增加新的网络业务收集决策信息。
技术介绍
网络流量测量是指捕获网络上的数据分组并对其进行分析的过程。网路流量测量捕获通过网络的数据分组,对所得数据集进行分析,处理,提取出反应网络行为的活动特征、统计规律,监视网络行为的变化,预测网络流量特征的发展趋势。针对网络的流量特征、统计信息、异常事件等现象进行的测量和研究,对网络问题的解决、协议的调试、性能评估等方面均有极大帮助。软件定义网络SDN(softwaredefinednetwork),将网络的数据层和控制层分离,通过集中化控制和提供开放控制接口,简化网络管理,支持网络服务的动态应用程序控制。通过对网络数据的分析、预测和管理,实现网络性能的优化。SDN网络流量测量的实现思路是控制器生成探测数据包并下发至指定的交换机节点,当测量进程结束时,相应的交换机需要触发相应机制将探测包返回控制器,由控制器分析并计算得到测量结果。而表征网络测量方法的评价指标有实时性、准确性(精度)、可扩展性、存储复杂性、计算复杂性等。目前,SDN网络流量测量最为关注的是实时性与准确性的评价指标。已有的SDN网络测量方案可分为三大类:基于性能的测量方案、基于资源利用的测量方案和基于实时性的测量方案。其中基于实时性的测量方案的关键因素之一是能否及时地收集流的统计信息,大规模的网络流量可能会导致实时数据分析的可伸缩性问题,对于时间敏感的网络应用因此无法获得实时的测量结果。例如刘川,娄征等人在2015年11月《电信科学》第Z1期上发表了名为SDN环境下网络流量监测与控制系统设计的期刊,公开了一种基于sFlow技术的SDN流量监测与控制系统。该系统包含控制器、多个交换机和基于sFlow的流量测量模块,其中,基于sFlow的流量测量模块包括流量采集模块、流量存储模块、流量分析模块和流量通告模块,流量采集模块采集监控脚本捕获流量数据包信息,并把它们发送到流量存储模块进行存储,然后通过流量分析模块对存储的流量数据进行分析处理,当发现交换机某个端口的流量超过已定义的阈值时,则通过脚本形成一个异常流量通告,流量通告模块通过OpenFlow协议向控制器提交流量通告。sFlow实时地向SDN控制器通告交换设备各端口的流量情况,SDN控制器根据通告修改流表规则并下发新的流表,从而对攻击行为进行管控,实现了异常流量的拦截。该方法提高了网络流量采集的实时性,但是,该方法的不足之处是:第一,因为网络流实时性采样会给SDN控制器带来较大的负载与开销,导致控制器的处理能力下降,控制器在SDN网络中效率较低。第二,因为基于sFlow技术的网络测量采用数据流随机采样,导致它的测量精度较低。
技术实现思路
本专利技术的目的在于针对上述已有技术的不足,提出一种基于FPGA的SDN网络流量测量系统和方法,用于解决现有技术中存在的测量效率和精度较低的技术问题。为实现上述目的,本专利技术采取的技术方案为:一种基于FPGA的SDN网络流量测量系统,包括控制器、交换机组和测量模块,其中:所述控制器,用于构造测量流表和测量流量数据包,并对自身的流量和交换机的流量进行管理;所述交换机组,包括串联的源交换机、多个中间交换机和目的交换机,所述交换机支持OpenFlow协议,其中,源交换机用于根据控制器下发的侧量流表,在控制器下发的数据包中识别与测量流表相匹配的测量流量数据包并转发,多个中间交换机用于实现测量流量数据包的转发,目的交换机用于将测量流量数据包返回给控制器;所述测量模块,包括通过FPGA实现的流量采集模块、流量存储模块、地址映射模块、控制单元模块、分组数计算模块、流容量计算模块、流量分析模块和流量通告模块,其中:所述流量采集模块,用于采集每个交换机端口的测量流量数据包;所述流量存储模块,用于存储流量采集模块采集的测量流量数据包的统计帧;所述地址映射模块,用于根据测量流量数据包的统计帧的流号在哈希表中查找当前流的计数器地址,并将计数器地址和测量流量数据包的统计帧的分组长度传送给控制单元模块;所述控制单元模块,用于对计数器地址进行解析,向分组数计算模块传送解析的分组数计数器值,向流容量计算模块传送分组长度以及解析出的流容量计数器值;所述分组数计算模块,用于计算当前流分组数计数器的采样概率,向流量分析模块发送采样命令;所述流容量计算模块,用于计算当前流容量计数器的采样概率和基本增量,向流量分析模块发送采样命令和基本增量;所述流量分析模块,用于分析计算新的分组数计数器值和新的流容量计数器值,向流量通告模块发送新的流计数器值;所述流量通告模块,用于将新的流计数器值返回给控制器。上述基于FPGA的SDN网络流量测量系统,所述流量存储模块,采用SRAM存储器。上述基于FPGA的SDN网络流量测量系统,所述分组数计算模块,包括采样概率计算模块和比较模块,其中:所述采样概率计算模块,用于计算分组计数器值的采样概率;所述比较模块,用于产生随机数,向流量分析模块发送采样命令。上述基于FPGA的SDN网络流量测量系统,所述流容量计算模块,包括浮点运算模块和比较模块,其中:所述浮点运算模块,用于计算流容量计数器值的采样概率和基本增量;所述比较模块,用于产生随机数,向流量分析模块发送采样命令和基本增量;一种基于FPGA的SDN网络流量测量方法,包括如下步骤:(1)控制器构造测量流表和测量流量数据包:控制器构造测量流表和测量流量数据包,并依次将测量流表和包含测量流量数据包的数据包下发至源交换机;(2)交换机转发测量流量数据包:源交换机识别数据包中与测量流表的数据结构相匹配的测量流量数据包,并将测量流量数据包转发至中间交换机,中间交换机依次转发测量流量数据包至目的交换机,目的交换机将测量流量数据包返回给控制器;(3)测量模块对测量流量数据包进行实时采样和测量:(3a)流量采集模块采集测量流量数据包的统计帧:流量采集模块采集源交换机、中间交换机和目的交换机端口的测量流量数据包的统计帧,并将测量流量数据包的统计帧发往流量存储模块;(3b)流量存储模块存储测量流量数据包的统计帧;(3c)地址映射模块获取测量流量数据包统计帧的流号和分组长度:地址映射模块根据流量存储模块中测量流量数据包统计帧的流号,在哈希表中查找当前流的计数器地址,并将该流计数器地址和测量流量数据包统计帧的分组长度传送给控制单元模块;(3d)控制单元模块对流计数器地址进行解析:控制单元模块对流计数器地址进行解析,得到分组数计数器值和流容量计数器值,并将分组数计数器值发送到分组数计算模块,同时将流容量计数器值和测量流量数据包统计帧的分组长度发送到流容量计算模块;(3e)分组数计算模块对分组数计数器值进行测量:(3e1)分组数计算模块的采样概率计算模块根据分组数计数器值,计算当前分组数计数器的采样概率pA(cA);(3e2)分组数计算模块的比较模块实时产生随机数,并通过随机数和采样概率pA(cA)的比较结果确定当前分组数计数器的更新决策,然后向流量分析模块发送更新本文档来自技高网
...

【技术保护点】
1.一种基于FPGA的SDN网络流量测量系统,包括控制器、交换机组和测量模块,其中:所述控制器,用于构造测量流表和测量流量数据包,并对自身的流量和交换机的流量进行管理;所述交换机组,包括串联的源交换机、多个中间交换机和目的交换机,所述交换机支持Open Flow协议,其中,源交换机用于根据控制器下发的侧量流表,在控制器下发的数据包中识别与测量流表相匹配的测量流量数据包并转发,多个中间交换机用于实现测量流量数据包的转发,目的交换机用于将测量流量数据包返回给控制器;其特征在于:所述测量模块,包括通过FPGA实现的流量采集模块、流量存储模块、地址映射模块、控制单元模块、分组数计算模块、流容量计算模块、流量分析模块和流量通告模块,其中:所述流量采集模块,用于采集每个交换机端口的测量流量数据包;所述流量存储模块,用于存储流量采集模块采集的测量流量数据包的统计帧;所述地址映射模块,用于根据测量流量数据包的统计帧的流号在哈希表中查找当前流的计数器地址,并将计数器地址和测量流量数据包的统计帧的分组长度传送给控制单元模块;所述控制单元模块,用于对计数器地址进行解析,向分组数计算模块传送解析的分组数计数器值,向流容量计算模块传送分组长度以及解析出的流容量计数器值;所述分组数计算模块,用于计算当前流分组数计数器的采样概率,向流量分析模块发送采样命令;所述流容量计算模块,用于计算当前流容量计数器的采样概率和基本增量,向流量分析模块发送采样命令和基本增量;所述流量分析模块,用于分析计算新的分组数计数器值和新的流容量计数器值,向流量通告模块发送新的流计数器值;所述流量通告模块,用于将新的流计数器值返回给控制器。...

【技术特征摘要】
1.一种基于FPGA的SDN网络流量测量系统,包括控制器、交换机组和测量模块,其中:所述控制器,用于构造测量流表和测量流量数据包,并对自身的流量和交换机的流量进行管理;所述交换机组,包括串联的源交换机、多个中间交换机和目的交换机,所述交换机支持OpenFlow协议,其中,源交换机用于根据控制器下发的侧量流表,在控制器下发的数据包中识别与测量流表相匹配的测量流量数据包并转发,多个中间交换机用于实现测量流量数据包的转发,目的交换机用于将测量流量数据包返回给控制器;其特征在于:所述测量模块,包括通过FPGA实现的流量采集模块、流量存储模块、地址映射模块、控制单元模块、分组数计算模块、流容量计算模块、流量分析模块和流量通告模块,其中:所述流量采集模块,用于采集每个交换机端口的测量流量数据包;所述流量存储模块,用于存储流量采集模块采集的测量流量数据包的统计帧;所述地址映射模块,用于根据测量流量数据包的统计帧的流号在哈希表中查找当前流的计数器地址,并将计数器地址和测量流量数据包的统计帧的分组长度传送给控制单元模块;所述控制单元模块,用于对计数器地址进行解析,向分组数计算模块传送解析的分组数计数器值,向流容量计算模块传送分组长度以及解析出的流容量计数器值;所述分组数计算模块,用于计算当前流分组数计数器的采样概率,向流量分析模块发送采样命令;所述流容量计算模块,用于计算当前流容量计数器的采样概率和基本增量,向流量分析模块发送采样命令和基本增量;所述流量分析模块,用于分析计算新的分组数计数器值和新的流容量计数器值,向流量通告模块发送新的流计数器值;所述流量通告模块,用于将新的流计数器值返回给控制器。2.根据权利要求1所述的基于FPGA的SDN网络流量测量系统,其特征在于,所述流量存储模块,采用SRAM存储器。3.根据权利要求1所述的基于FPGA的SDN网络流量测量系统,其特征在于,所述分组数计算模块,包括采样概率计算模块和比较模块,其中:所述采样概率计算模块,用于计算分组计数器值的采样概率;所述比较模块,用于产生随机数,向流量分析模块发送采样命令。4.根据权利要求1所述的基于FPGA的SDN网络流量测量系统,其特征在于,所述流容量计算模块,包括浮点运算模块和比较模块,其中:所述浮点运算模块,用于计算流容量计数器值的采样概率和基本增量;所述比较模块,用于产生随机数,向流量分析模块发送采样命令和基本增量。5.一种基于FPGA的SDN网络流量测量方法,其特征在于,包括如下步骤:(1)控制器构造测量流表和测量流量数据包:控制器构造测量流表和测量流量数据包,并依次将测量流表和包含测量流量数据包的数据包下发至源交换机;(2)交换机转发测量流量数据包:源交换机识别数据包中与测量流表的数据结构相匹配的测量流量数据包,并将测量流量数据包转发至中间交换机,中间交换机依次转发测量流量数据包至目的交换机,目的交换机将测量流量数据包返回给控制器;(3)测量模块对测量流量数据包进行实时采样和测量:(3a)流量采集模块采集测量流量数据包的统计帧:流量采集模块采集源交换机、中间交换机和目的交换机端口的测量流量数据包的统计帧,并将测量流量数据包的统计帧发往流量存储模块;(3b)流量存储...

【专利技术属性】
技术研发人员:刘乃安朱芮碧安豪政
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

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

1