本发明涉及网络通信技术领域,尤其涉及一种实现MFP的方法、装置及数据交换芯片。
背景技术:
网络通信中,“流”定义为在一定时间间隔内,经过网络中某一观察点的一系列具有相同属性的数据包,每条流对应一条流记录,记录流相关的有用信息。MFP(Micro Flow Policing,微流策略)是一种基于单个流的流量速率限制策略,其基本原理是:在特有的MFP监测引擎中根据报文头中的一些关键信息识别出指定的流,并对该流对应的令牌桶进行令牌的更新,其中令牌桶是指网络设备的内部存储池,令牌是指以给定速率填充令牌桶的虚拟信息包。数据交换芯片在实现MFP时,MFP监测引擎一方面会不断地以某个速率往令牌桶里加入令牌,另一方面会执行流触发的减令牌操作,当接收到一个包含n个字节的数据包时,就从令牌桶中删除n个令牌,并且数据包被发送到网络,一旦令牌桶空了,表示此流速率超过限定的速率值,应该进行丢包操作。
在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:
数据交换芯片要实现MFP,需要设计特有的MFP监测引擎,占用硬件资源,使芯片设计复杂。
在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:
本发明提供的实现MFP的方法、装置及数据交换芯片,能够利用芯片中已有的IPFIX的硬件资源和芯片逻辑来实现MFP功能,节约硬件资源,降低芯片设计的复杂度。
技术实现要素:
本发明提供的实现MFP的方法、装置及数据交换芯片,能够利用芯片中已有的IPFIX的硬件资源和芯片逻辑来实现MFP功能,节约硬件资源,降低芯片设计的复杂度。
第一方面,本发明提供一种实现MFP的方法,通过IPFIX监测引擎已有的芯片逻辑实现MFP,所述方法包括:
判断监测引擎中MFP功能是否使能;
当MFP功能使能时,将报文的首部信息进行哈希计算,根据计算得到的哈希值查找所述报文对应的流;
判断是否查找到所述报文对应的流;
当查找到所述报文对应的流时,更新所述流的流记录,否则根据所述哈希值将所述报文的关键字段添加到RAM中以生成新的流,并初始化新加的流的流记录。
可选地,所述当查找到所述报文对应的流时,更新所述流的流记录包括:在所述流的流记录中减去与所述报文长度相同的令牌。
可选地,所述初始化新加的流的流记录包括:对所述新加的流的流记录初始化一个令牌值。
第二方面,本发明提供一种实现MFP的装置,通过IPFIX监测引擎已有的芯片逻辑实现MFP,所述装置包括:
第一判断单元,用于判断监测引擎中MFP功能是否使能;
查找单元,用于当MFP功能使能时,将报文的首部信息进行哈希计算,根据计算得到的哈希值查找所述报文对应的流;
第二判断单元,用于判断所述查找单元是否查找到所述报文对应的流;
处理单元,用于当所述查找单元查找到所述报文对应的流时,更新所述流的流记录,否则根据所述哈希值将所述报文的关键字段添加到RAM中以生成新的流,并初始化新加的流的流记录。
可选地,所述处理单元,用于当查找到所述报文对应的流时,在所述流的流记录中减去与所述报文长度相同的令牌。
可选地,所述处理单元,用于当没有查找到所述报文对应的流时,将所述报文的关键字段添加到RAM中以生成新的流,对所述新加的流的流记录初始化一个令牌值。
第三方面,本发明提供一种数据交换芯片,所述数据交换芯片包括上述实现MFP的装置。
本发明实施例提供的实现MFP的方法、装置及数据交换芯片,通过IPFIX监测引擎已有的芯片逻辑实现MFP,当MFP功能使能时,根据报文首部信息的哈希值查找所述报文对应的流,当查找到所述报文对应的流时,更新所述流的流记录,否则根据所述哈希值将所述报文的关键字段添加到RAM中以生成新的流,并初始化新加的流的流记录。与现有技术相比,本发明能够利用芯片中已有的IPFIX的硬件资源来实现MFP功能,节约硬件资源,降低芯片设计的复杂度。
附图说明
图1为本发明一实施例实现MFP的方法的流程图;
图2为本发明另一实施例实现MFP的方法的流程图;
图3为本发明一实施例实现MFP的装置的结构示意图;
图4为本发明另一实施例实现MFP的装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种实现MFP的方法,IPFIX(IP Flow Information Export,IP流信息输出)是用于IP网络中的流信息测量的标准协议,通过IPFIX监测引擎实现流多方面的统计和监测,它是数据交换芯片必有的功能模块,所述IPFIX监测引擎主要功能包括:
通过报文的关键字识别出所述报文对应的流;其中,IPFIX监测引擎支持二层数据,三层数据的多种关键字结构,字段非常丰富,能够更精确地识别出各条流;
对所述流进行记录;其中,IPFIX监测引擎包含了包计数,包字节计数等多种数据统计方式,能够记录报文个数等流相关的信息。
具体地,IPFIX监测引擎能够进行硬件学习(芯片逻辑自动添加新流)和软件学习(CPU设置)的功能。
如图1所示,所述方法包括:
S11、判断监测引擎中MFP功能是否使能;
S12、当MFP功能使能时,将报文的首部信息进行哈希计算,根据计算得到的哈希值查找所述报文对应的流;
S13、判断是否查找到所述报文对应的流;
S14、当查找到所述报文对应的流时,更新所述流的流记录,否则跳转S15;
S15、根据所述哈希值将所述报文的关键字段添加到RAM中以生成新的流,并初始化新加的流的流记录。
本发明实施例提供的实现MFP的方法,通过IPFIX监测引擎已有的芯片逻辑实现MFP,当MFP功能使能时,根据报文首部信息的哈希值查找所述报文对应的流,当查找到所述报文对应的流时,更新所述流的流记录,否则根据所述哈希值将所述报文的关键字段添加到RAM中以生成新的流,并初始化新加的流的流记录。与现有技术相比,本发明能够利用芯片中已有的IPFIX的硬件资源来实现MFP功能,节约硬件资源,降低芯片设计的复杂度。
可选地,所述当查找到所述报文对应的流时,更新所述流的流记录包括:在所述流的流记录中减去与所述报文长度相同的令牌。
具体地,流记录包括所述流对应的令牌桶,监测引擎通过刷新记录表使令牌以一定的速率加入令牌桶,当有属于所述流的报文流入时,更新流记录,在流记录中减去与所述报文长度相同的令牌。
进一步的,当令牌桶内的令牌减成负数时,表示所述流的速率超过限定的速率值,触发丢包操作。
可选地,所述初始化新加的流的流记录包括:对所述新加的流的流记录初始化一个令牌值。
可选地,本发明还提供一种实现MFP的方法的另一实施例,如图2所示,所述实现MFP的方法包括:
S21、判断监测引擎中MFP功能是否使能;
S22、当MFP功能使能时,将报文的首部信息进行哈希计算,根据计算得到的哈希值查找所述报文对应的流;
S23、判断是否查找到所述报文对应的流;
S24、当查找到所述报文对应的流时,更新所述流的流记录,否则跳转S25;
S25、根据所述哈希值将所述报文的关键字段添加到RAM中以生成新的流,并初始化新加的流的流记录。
S26、判断所述流记录在指定时间内是否有更新;
S27、当所述流记录在指定时间内没有更新时,删除所述流记录。
具体地,当所述流记录在指定时间内有更新时,说明所述流记录所对应的流在指定时间内有报文流入,所述流记录正常更新;当所述流记录在指定时间内没有更新时,说明所述流记录所对应的流在指定时间内没有报文流入,认为所述流结束,删除所述流记录以提高RAM利用率。
可选地,在所述流记录中,存放一个标识信息来区分当前记录是用于MFP还是IPFIX,通过所述标识信息将MFP和IPFIX在一定程度进行解耦。
可选地,当MFP功能未使能时,IPFIX中为了降低流的消耗速率,会对进入监测引擎的流进行一定间隔的采样;当MFP功能使能时,通过寄存器关掉采样功能,不需要对所述流进行采样。
可选地,当MFP功能未使能时,IPFIX中遇到指示TCP结束或复位的报文时,会删除报文对应的流,结束相应流的统计,当MFP功能使能时,监测引擎把指示TCP结束的报文当成普通的报文处理。
可选地,IPFIX中有多种流输出机制,MFP使能时,对所述流输出不感知,监测引擎通过寄存器关掉这些功能,从而达到两个功能块的解耦。
本发明实施例还提供一种实现MFP的装置,通过IPFIX监测引擎已有的芯片逻辑实现MFP,如图3所示,所述装置包括:
第一判断单元11,用于判断监测引擎中MFP功能是否使能;
查找单元12,用于当MFP功能使能时,将报文的首部信息进行哈希计算,根据计算得到的哈希值查找所述报文对应的流;
第二判断单元13,用于判断所述查找单元是否查找到所述报文对应的流;
处理单元14,用于当所述查找单元查找到所述报文对应的流时,更新所述流的流记录,否则根据所述哈希值将所述报文的关键字段添加到RAM中以生成新的流,并初始化新加的流的流记录。
本发明实施例提供的实现MFP的装置,通过IPFIX监测引擎已有的芯片逻辑实现MFP,当MFP功能使能时,根据报文首部信息的哈希值查找所述报文对应的流,当查找到所述报文对应的流时,更新所述流的流记录,否则根据所述哈希值将所述报文的关键字段添加到RAM中以生成新的流,并初始化新加的流的流记录。与现有技术相比,本发明能够利用芯片中已有的IPFIX的硬件资源来实现MFP功能,节约硬件资源,降低芯片设计的复杂度。
可选地,所述处理单元14,用于当查找到所述报文对应的流时,在所述流的流记录中减去与所述报文长度相同的令牌。
可选地,所述处理单元14,用于当没有查找到所述报文对应的流时,将所述报文的关键字段添加到RAM中以生成新的流,对所述新加的流的流记录初始化一个令牌值。
可选地,如图4所示,所述实现MFP的装置还包括:
第三判断单元15,用于判断所流记录在指定时间内是否有更新;
删除单元16,用于当所述流记录在指定时间内没有更新时,删除所述流记录。
具体地,当所述流记录在指定时间内有更新时,说明所述流记录所对应的流在指定时间内有报文流入,所述流记录正常更新;当所述流记录在指定时间内没有更新时,说明所述流记录所对应的流在指定时间内没有报文流入,认为所述流结束,删除所述流记录以提高RAM利用率。
本发明实施例还提供一种数据交换芯片,所述数据交换芯片包括上述实现MFP的装置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。