本发明专利技术提供了一种IP报文的过滤方法和装置,该方法包括:对接收的IP报文进行存储,并提取IP报文的参数信息;根据IP报文的参数信息匹配预先存储的过滤规则;根据匹配结果以及IP报文的参数信息上传或丢弃IP报文。通过本发明专利技术,能够借助FPGA实现IP报文的过滤,将主机CPU的工作转移到硬件上,能够有效减小主机工作负载及CPU使用率,提高系统性能。
【技术实现步骤摘要】
本专利技术涉及通信领域,并且特别地,涉及一种IP报文的过滤方法和装置。
技术介绍
IP报文过滤是将IP数据报文分成不同种类的过程,具体的分类过程主要取决于IP报头中的信息。通过IP报文过滤,能够实现报文的正确转发,并且能够丢弃不需要处理的报文,避免不必要的处理。 目前的报文过滤处理主要基于软件的字符串匹配,但是这种软件处理的方式会占用系统的资源,随着网络传输速率的不断提高,报文的收发量也越来越大,仅仅依靠系统来过滤IP报文已经适应目前的网络传输速度。 目前,针对相关技术中IP报文过滤依赖软件而导致过滤处理大量占用CPU资源的问题,尚未提出有效的解决方案。
技术实现思路
考虑到相关技术中IP报文过滤依赖软件而导致过滤处理大量占用CPU资源的问题,本专利技术的目的在于提供一种IP报文的过滤方案,以解决上述问题中的至少之一。 根据本专利技术的一个方面,提供了一种IP报文的过滤方法。 根据本专利技术的IP报文的过滤方法包括对接收的IP报文进行存储,并提取IP报文的参数信息;根据IP报文的参数信息匹配预先存储的过滤规则;根据匹配结果以及IP报文的参数信息上传或丢弃IP报文。 其中,IP报文的参数信息包括IP报文的CRC校验错误标志、IP报文的长度信息以及IP报文的源端口号和/或目的端口号。 并且,如果IP报文的CRC校验错误标志位无效,根据IP报文的参数信息匹配预先存储的过滤规则的处理包括根据过滤规则确定IP报文的源端口号和/或目的端口号所对应的处理方式,将确定的处理方式作为匹配结果。 此外,上传或丢弃IP报文的处理包括根据IP报文的长度信息上传或丢弃存储的IP报文。 根据本专利技术的另一方面,还提供了一种IP报文的过滤装置,该装置由FPGA实现。 根据本专利技术的IP报文的过滤装置包括第一存储模块,用于存储IP报文的数据;提取模块,用于提取存储IP报文的参数信息;第二存储模块,用于存储IP报文的参数信息;第三存储模块,用于存储过滤规则;查询模块,用于根据提取的参数信息匹配存储的过滤规则; 过滤处理模块,用于根据查询模块得到的匹配结果上传或丢弃IP报文。 其中,IP报文的参数信息包括IP报文的CRC校验错误标志、IP报文的长度信息以及IP报文的源端口号和/或目的端口号。 并且,查询模块用于根据过滤规则确定IP报文的源端口号和/或目的端口号所对应的处理方式,将确定的处理方式作为匹配结果。 此外,过滤处理模块用于根据IP报文的长度信息上传或丢弃第一存储模块中存储的IP报文。 借助于本专利技术的技术方案,能够借助FPGA实现IP报文的过滤,将主机CPU的工作转移到硬件上,能够有效减小主机工作负载及CPU使用率,提高系统性能。 附图说明 图1是根据本专利技术方法实施例的IP报文的过滤方法的流程图; 图2是根据本专利技术装置实施例的IP报文的过滤装置的框图; 图3是根据本专利技术装置实施例的IP报文的过滤装置的具体结构实例的框图; 图4是根据本专利技术装置实施例的IP报文的过滤装置中查询模块的工作状态机的示意图; 图5是根据本专利技术装置实施例的IP报文的过滤装置中过滤处理模块的工作状态机的示意图。 具体实施例方式 功能概述 考虑到相关技术中IP报文过滤依赖软件而导致过滤处理大量占用CPU资源的问题,本专利技术提出硬件现场可编程门阵列(Field Programmable GateArray,简称为FPGA)从网络中提取出IP报文的端口号,根据该端口号对LUT规则过滤表地址进行解析,存储在FPGA内部RAM中的过滤规则,根据命中结果处理相应的IP报文,从而实现了对IP报文的过滤,能够利用FPGA替代CPU进行报文过滤,减小主机工作负载及CPU使用率。 下面将结合附图详细描述本专利技术的实施例。 方法实施例 在本实施例中,提供了一种IP报文的过滤方法,用于基于FPGA实现报文的过滤。 图1是根据本实施例的IP报文的过滤方法的流程图。 如图1所示,根据本实施例的IP报文的过滤方法由FPGA执行,具体包括以下处理 步骤S102,对接收的IP报文进行存储,并提取IP报文的参数信息;其中,可以将报文存储在FPGA的先入先出(First In First Out,简称为FIFO)存储器中,这里提取的参数信息包括IP报文的CRC校验错误标志、IP报文的长度信息以及IP报文的源端口号和/或目的端口号。 步骤S104,根据IP报文的参数信息匹配预先存储的过滤规则。 步骤S106,根据匹配结果以及IP报文的参数信息上传或丢弃IP报文。 具体地,在步骤S104和步骤S106中,如果IP报文的CRC校验错误标志位无效,则可以将IP报文的源端口号和/或目的端口号与过滤规则中的源端口号和/或目的端口号进行匹配,过滤规则可以通过列表的方式存储在FPGA的存储器中(例如,存储在FPGA的随机访问存储器(RAM))中),其中源端口号和/或目的端口号为存储规则地址,内容为相应端口号的处理方式,例如,假设接收到一个IP报文的源端口为端口1,如果过滤规则表中存在端口1地址对应的内容为“1”表示处理方式为上传,则确定该IP报文与该条目匹配,并且需要上传该IP报文;如果内容为“0”表示处理方式为丢弃,则需要丢弃该IP报文;类似地,过滤规则表中存储各个端口号相对应的处理方式,本文不再一一列举。 在步骤S106中上传或丢弃IP报文的处理包括根据IP报文的长度信息上传或丢弃存储的IP报文;具体地,由于IP报文被存储在FIFO存储器中,因此,需要根据该报文的长度提取存储的IP报文并进行丢弃或上传。 通过上述处理,能够通过FPGA根据报文的源端口号和/或目的端口号对IP报文实现源端口过滤和/或目的端口过滤,避免CPU参与过滤处理,减小了CPU的负担,有助于提升系统的性能。 装置实施例 在本实施例中,提供了一种IP报文的过滤装置,该装置中的各个模块可以由FPGA实现。 图2是根据本实施例的IP报文的过滤装置的框图。 如图2所示,根据本实施例的IP报文的过滤装置包括 第一存储模块(可称为DPFDataFifo)1,用于存储IP报文的数据;其中,该模块可以是FIFO存储器; 提取模块2,连接至第一存储模块1,用于提取存储IP报文的参数信息,其中,由提取模块2提取的参数信息包括IP报文的CRC校验错误标志、IP报文的长度信息以及IP报文的源端口号和/或目的端口号; 第二存储模块(可称为DPFCtrlFifo)3,连接至提取模块2,用于存储IP报文的参数信息; 第三存储模块(可称为DPF_LUT)4,用于存储过滤规则,该模块可以是随机访问存储器,过滤规则可以通过列表的方式进行存储,其中包含源端口号和/或目的端口号以及相应的处理方式,例如,源端口1对应丢弃,目的端口2对应上传; 查询模块(可称为DPF_Filter)5,连接至提取模块2和第三存储模块4,用于根据提取的参数信息匹配第三存储模块4中存储的过滤规则,具体地,可以利用IP报文参数信息查询第三存储模块4存储的过滤规则表,如果参数对应的条目对应的处理方式为上传,则确定需要上传该IP报文,如果参数对应的处理方式为丢弃,则需要丢弃该IP报文; 过滤处理模块(可称为DPF_FSM)6,连接至查询模块5,本文档来自技高网...
【技术保护点】
一种IP报文的过滤方法,其特征在于,包括:对接收的IP报文进行存储,并提取所述IP报文的参数信息;根据所述IP报文的参数信息匹配预先存储的过滤规则;根据匹配结果以及所述IP报文的参数信息上传或丢弃所述IP报文。
【技术特征摘要】
1.一种IP报文的过滤方法,其特征在于,包括对接收的IP报文进行存储,并提取所述IP报文的参数信息;根据所述IP报文的参数信息匹配预先存储的过滤规则;根据匹配结果以及所述IP报文的参数信息上传或丢弃所述IP报文。2.根据权利要求1所述的方法,其特征在于,所述IP报文的参数信息包括所述IP报文的CRC校验错误标志、所述IP报文的长度信息以及所述IP报文的源端口号和/或目的端口号。3.根据权利要求2所述的方法,其特征在于,根据所述IP报文的参数信息匹配预先存储的过滤规则的处理包括根据所述过滤规则确定所述IP报文的源端口号和/或目的端口号所对应的处理方式,将确定的所述处理方式作为所述匹配结果。4.根据权利要求2所述的方法,其特征在于,上传或丢弃所述IP报文的处理包括根据所述IP报文的长度信息上传或丢弃存储的所述IP报文。5.一种IP报文的过滤装置,该装置由FPGA实现,其特征在于,...
【专利技术属性】
技术研发人员:邵宗有,聂华,历军,王栋梁,窦晓光,纪奎,刘新春,
申请(专利权)人:曙光信息产业北京有限公司,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。