专利摘要
本发明公开一种动态流量监控方法,其结构上本设计采取控制和转发分离架构,由控制器实现动态对硬件相应参数配置灵活控制输出流量大小,满足设计实时性和灵活性要求;正常情况下令牌桶组具备相同时间粒度,也就是由调度模块同一时刻向令牌桶组发送令牌信号;有突发流量时,硬件通过动态带宽分配进行自调整,即调度模块可在极短时间内将虚拟桶发令牌信号调度至相应令牌桶组,进而缩短发令牌时间周期,加快报文转发速度,当有长时间流量激增情况下,通过反馈信号,用户通过控制器做出相应动作处理;根据不同端口输入报文的分类可以灵活监控指定端口流量大小。
权利要求
1.一种动态流量监控方法,其特征是,包含以下操作步骤:
步骤1,控制器向FPGA发送参数配置的命令;
步骤2,FPGA接收到命令后,进行识别,若是发送给自己的命令则根据通信协议进行解析,若否则丢弃;
步骤3,提取命令中的有效信息,并根据有效信息中的地址信息在FPGA内存空间寻址,寻址完成即将有效信息写入该地址空间;
步骤4,当检测到内存空间有更新数据时,则将数据读出作为令牌桶和令牌轮询调度的配置参数;
步骤5,完成令牌桶和令牌轮询调度的参数配置后,开始接收来自不同输入端口的报文,并根据不同端口输入的报文,将报文标记为不同类型,并存入对应的FIFO中;
步骤6,当令牌桶中令牌数量大于或等于报文字节长度时,则允许当前报文通过,此时从FIFO中读取报文进行转发,并从令牌桶中减少相应报文字节长度数量的令牌;当令牌桶中令牌数量小于报文字节长度时,则等待;
步骤7,当检测到FIFO的某个缓存队列长度大于或等于设定的阈值时,则给令牌轮询调度发送调度请求,同时启动超时计数器;
步骤8,在设定的时间到达时,若该缓存队列长度小于设定的阈值,则说明自调整成功,则返回步骤7,等待FIFO的其他缓存队列发起调度;若该缓存队列长度依然大于设定的阈值,则说明自调整失败,FPGA向控制器发送反馈信号;
步骤9,收到调度请求后,令牌轮询调度将原先指向虚拟桶的发令牌路径调度至该FIFO。
2.根据权利要求1所述的一种动态流量监控方法,其特征是,步骤3中提取命令中的有效信息包括地址信息、数据信息和动作信息。
3.根据权利要求1所述的一种动态流量监控方法,其特征是,步骤9还进一步包括冲突解决机制,即
若某个缓存队列正在进行自调整的期间,另一个缓存队列也发送自调整请求信号,则由设计的调度算法,等待上一个缓存队列自调整完成后处理下一个队列发起的请求;
在单个虚拟桶的情况下,若同一时刻有两个或两个以上缓存队列向令牌轮询调度发起调度请求,则不进行自调整,直接向上层控制器发送反馈信号,由控制器做出相应动作处理。
4.根据权利要求1或3所述的一种动态流量监控方法,其特征是,步骤9中所述的虚拟桶的个数为一个或一个以上。
5.根据权利要求1所述的一种动态流量监控方法,其特征是,步骤9中,若调度的次数大于1次时,则将令牌路径由当前FIFO调度至发起调度请求FIFO。
6.根据权利要求1所述的一种动态流量监控方法,其特征是,步骤8中,当控制器接收到FPGA发送的反馈信号后,控制器会根据需要对参数配置命令进行修改。
说明书
技术领域
本发明属于网络数据处理技术领域,具体涉及一种动态流量监控方法。
背景技术
互联网目前已成为人类社会最重要的信息基础设施,随着互联技术不断发展,网络运行中所带来的一系列问题也逐渐凸显出来,其中突出的是由网络流量过大所引发的网络拥塞;同时网络设备和应用也日益复杂化,因此人们迫切需求对网络流量进行高效的管理和监控。但是传统方法来对网络流量控制,是将控制逻辑和转发逻辑都耦合在软件或者硬件平台上,使得其复杂程度高、灵活性低,限制了网络设备对数据处理的能力。
发明内容
本发明所要解决的技术问题是现有网络流量控制方法存在灵活性差、复杂程度高及数据处理效率低等问题,提供一种动态流量监控方法。
为解决上述问题,本发明是通过以下技术方案实现的:
一种动态流量监控方法,包含以下操作步骤:
步骤1,控制器向FPGA发送参数配置的命令;
步骤2,FPGA接收到命令后,进行识别,若是发送给自己的命令则根据通信协议进行解析,若否则丢弃;
步骤3,提取命令中的有效信息,并根据有效信息中的地址信息在FPGA内存空间寻址,寻址完成即将有效信息写入该地址空间;
步骤4,当检测到内存空间有更新数据时,则将数据读出作为令牌桶和令牌轮询调度的配置参数;
步骤5,完成令牌桶和令牌轮询调度的参数配置后,开始接收来自不同输入端口的报文,并根据不同端口输入的报文,将报文标记为不同类型,并存入对应的FIFO中;
步骤6,当令牌桶中令牌数量大于或等于报文字节长度时,则允许当前报文通过,此时从FIFO中读取报文进行转发,并从令牌桶中减少相应报文字节长度数量的令牌;当令牌桶中令牌数量小于报文字节长度时,则等待;
步骤7,当检测到FIFO的某个缓存队列长度大于或等于设定的阈值时,则给令牌轮询调度发送调度请求,同时启动超时计数器;
步骤8,在设定的时间到达时,若该缓存队列长度小于设定的阈值,则说明自调整成功,则返回步骤7,等待FIFO的其他缓存队列发起调度;若该缓存队列长度依然大于设定的阈值,则说明自调整失败,FPGA向控制器发送反馈信号;
步骤9,收到调度请求后,令牌轮询调度将原先指向虚拟桶的发令牌路径调度至该FIFO。
步骤3中提取命令中的有效信息包括地址信息、数据信息和动作信息。
步骤9还进一步包括冲突解决机制,即:
若某个缓存队列正在进行自调整的期间,另一个缓存队列也发送自调整请求信号,则由设计的调度算法,等待上一个缓存队列自调整完成后处理下一个队列发起的请求;
在单个虚拟桶的情况下,若同一时刻有两个或两个以上缓存队列向令牌轮询调度发起调度请求,则不进行自调整,直接向上层控制器发送反馈信号,由控制器做出相应动作处理。
步骤9中所述的虚拟桶的个数为一个或一个以上。
步骤9中,若调度的次数大于1次时,则将令牌路径由当前FIFO调度至发起调度请求FIFO。
步骤8中,当控制器接收到FPGA发送的反馈信号后,控制器会根据需要对参数配置命令进行修改。
与现有技术相比,本发明具有如下特点:
1.运用SDN架构的思想,使得控制层与转发层分离,同时采用FPGA作为实现硬件逻辑设计和转发平台,充分利用FPGA在处理数据“并行计算”优势,提高了处理数据效率;
2.建立良好的反馈和冲突解决机制,控制层收到转发层上传异常信号,用户可通过控制器动态对输出流量的调控;
3.硬件采用多级流水线令牌桶和轮训调度策略设计实现灵活的动态带宽分配,更为有效应对突发流量的情况。
附图说明
图1为本发明基于FPGA流量监控总体方案设计图。
图2为本发明基于FPGA流量监控硬件程序设计流程图(一次调度)。
图3为控制器对硬件参数配置示意图。
图4为1次令牌轮询调度策略示意图。
图5为M次令牌轮询调度策略示意图。
具体实施方式
一种动态流量监控方法,通过控制层和转发层分离的架构实现方便、快捷的动态流量监控,如图1;硬件采用FPGA平台设计令牌桶算法和调度电路实现灵活的动态带宽分配,有效应对突发流量情况,如图2。其具体包含以下操作步骤:
步骤1,以netmagic平台为例,由上层控制器通过连接在上层控制器和底层FPGA间的通信协议,向FPGA发送参数配置命令,如图3。通过运行在本地主机和FPGA平台间通信协议(NMAC协议)所提供可编程接口,由控制器向硬件平台发起建立连接的请求,通过三次握手与底层FPGA建立连接,实现友好的交互控制界面,便于高效、快捷访问FPGA内部地址空间和接受底层FPGA反馈信息。
步骤2,FPGA接收到命令后,进行识别,若是发送给自己的命令则根据通信协议进行解析,若否则丢弃。
步骤3,根据通信协议的格式和规则解析命令,提取命令中的有效信息(地址、数据和动作等),根据有效信息中的地址信息在FPGA内存空间寻址,找到该地址空间,寻址完成即将数据信息写入该地址所指向的内存空间(RAM0,RAM1,……,RAMn)。
步骤4,流量控制模块中的3个令牌桶组和令牌轮训调度模块检测指定内存空间(RAM0,RAM1..RAMn)是否有数据更新。当检测到对应的内存单元更新数据,则读取指定地址内存空间中数据信息,并将数据读出作为令牌桶和令牌轮询调度配置参数,完成令牌桶和令牌轮询调度参数配置。
设计令牌桶可配置参数包括令牌增加的时间间隔T(时间粒度)、T周期向令牌桶内添加的令牌个数N、令牌桶中可放置的最大令牌数(桶深)L;轮询令牌轮询调度计时参数Time。
步骤5,完成对流量控制模块和令牌调度模块的参数初始化后,开始接收来自输入控制模块的报文。根据不同端口输入的报文,将输入的报文标记为不同类型。在本实施例中,设定三个输入端口port1、port2、port3,同时将对应报文标记为类型1(PR1)、类型2(PR2)、类型3(PR3)。如3’b001表示由第一个端口输入的报文。在根据不同输入端口将报文标记为不同类型时,也可以实际需求,修改为不同信息源、不同类型等报文。
每个类型报文分别存入对应的FIFO缓存中,并设定FIFO的阈值Thi(i=1、2、3)。在本实施例中,FIFO缓冲接口采用双端口设计,即读写同时进行,提高报文处理速度;若FIFO有溢出则丢弃当前报文。缓冲队列长度检测模块根据FIFO输出信号usedw,实时检测FIFO的队列长度(Length)。
步骤6,当令牌桶中令牌数量满足一定条件时,即桶内令牌数量大于或等于报文的字节长度时,则允许当前报文通过,即从缓存FIFO中读取报文转发,并减少令牌桶内相应数量令牌;否则等待。
在本实施例中,流量控制模块由3个令牌桶组和1个虚拟桶构成,每个令牌桶组共用一个令牌信号,令牌轮询调度根据计数器CT以周期T向3个令牌桶组和1个虚拟桶发送令牌信号。3个令牌桶组的桶深L相同,T周期向类型为PR1、PR2、PR3令牌桶组内添加的令牌个数分别为N1、N2、N3。若需要大规模令牌桶组完成流量控制,则设置多个数量虚拟桶,可同时满足多个令牌桶组调度。
当检测到FIFO非空(empty==0),对应令牌桶组将提取到的报文长度(字节)与组内令牌桶内令牌数量相比较(从第1个桶递增向下比较),若第K个桶令牌数量满足,则报文从第K桶发送出去,同时K桶内减少相应数量令牌;若不满足,则等待有足够令牌,再发送报文。令牌桶组实现原理为:当令牌轮询调度状态一(Current_state)计数器满(CT==time)则向三个令牌桶组发送令牌信号Flag,同时将计数器清零(CT<=0)令牌组接收到信号后将加令牌信号add_flag置1,桶未满则加令牌,反之丢弃令牌;状态二(next_state)当计数器重新计数满(CT==time)则向虚拟桶发送信号Flag,下个时钟将计数器清零(CT<=0)同时返回状态一(Current_state),即完成一次循环需要2T时间。
步骤7,当检测到FIFO的第i缓存队列长度大于或等于设定的阈值(length_i≥Thi)时,则向令牌轮询调度发送请求信号Req_i,同时启动超时计数器(Toc<=Toc+1);令牌轮询调度收到请求信号后,在状态二中等待计数器满(CT<=Sum),将向虚拟桶发送令牌信号的路径调度至相应FIFO路径。
步骤8,收到调度请求后,令牌轮询调度将原先指向虚拟桶的发令牌路径调度至该FIFO。即将向虚拟桶发送令牌信号的路径调度至相应FIFO路径并保持令牌轮询调度发送令牌信号周期T不变。超时计数器每个时钟周期计数一次,直到计数值等于终止值Sum,停止计时,并清零计数器等待下次启动。在本实施例中,若M(M>1)次调度则将令牌路径由当前FIFO调度至发起调度请求FIFO。图4为1次令牌轮询调度策略示意图,图5为M次令牌轮询调度策略示意图。
步骤9,若在设定的时间到达,检测缓存FIFO队列长度依然大于或等于设定的阈值,则向控制器发送反馈信号。控制器收到反馈信号后,根据实际需要做出相应动作。
等待超时计数器停止(Toc==Time),撤销请求信号Req_i,同时再次检测当前缓冲FIFO队列长度Length_i并判断与FIFO阈值Thi大小,若小于设定的阈值(Length_i<Thi),表示硬件“自调整”成功,待其他队列发起调度时,则进行二次调度,即将当前路径调度至该缓存队列,其后调度则以此类推。若仍然大于或等于阈值(Length_i≥Thi),说明“自调整”失败,同时向上层控制器发送反馈信号Ret_i,控制器接收到底层FPGA发来的反馈信号Req_i后,则根据需要做出相应处理动作,如可向硬件指定存储空间(RAM0、RAM1...RAMn)配置不同参数改变输出带宽大小(在满足要求情况下,简化硬件设计,配置令牌调度模块计数器Time参数较为方便),或由实际需要决定控制器是修改令牌桶参数或令牌轮询调度计时参数Time,调节输出带宽大小;还是不作处理。
冲突解决机制:1.若某个缓存队列正在进行“自调整”的期间,另一个缓存队列也发送“自调整”请求信号,则由设计的调度算法,等待上一个缓存队列“自调整”完成后处理下一个队列发起的请求;2.若同一时刻有两个或两个以上(单个虚拟桶情况)缓存队列向令牌轮询调度发起调度请求,则不进行自调整,直接向上层控制器发送反馈信号,由控制器做出相应动作处理;3.若设定多个虚拟桶,处理方式按上述类推。
本发明的设计构思是:1.结构上本设计采取控制和转发分离架构,简化硬件设计,根据SDN的思想即由控制器实现动态对硬件相应参数配置灵活控制输出流量大小,满足设计实时性和灵活性要求;2.正常情况下令牌桶组具备相同时间粒度,也就是由调度模块同一时刻向令牌桶组发送令牌信号,这样不仅可以在较低时钟频率情况下,实现精确和大范围的流量控制同时避免了需要在调度模块设计多个计时逻辑的复杂情况从而使用户更为快捷对流量调控,减少复杂参数配置。3.有突发流量时,硬件通过动态带宽分配进行自调整,即调度模块可在极短时间内将虚拟桶发令牌信号调度至相应令牌桶组,进而缩短发令牌时间周期,加快报文转发速度,当有长时间流量激增情况下,通过反馈信号,用户通过控制器做出相应动作处理;4.根据不同端口输入报文的分类可以灵活监控指定端口流量大小。
一种动态流量监控方法专利购买费用说明
Q:办理专利转让的流程及所需资料
A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。
1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。
2:按规定缴纳著录项目变更手续费。
3:同时提交相关证明文件原件。
4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。
Q:专利著录项目变更费用如何缴交
A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式
Q:专利转让变更,多久能出结果
A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。
动态评分
0.0