CN101783786B - 数据包过滤方法和装置 - Google Patents
数据包过滤方法和装置 Download PDFInfo
- Publication number
- CN101783786B CN101783786B CN 200910005224 CN200910005224A CN101783786B CN 101783786 B CN101783786 B CN 101783786B CN 200910005224 CN200910005224 CN 200910005224 CN 200910005224 A CN200910005224 A CN 200910005224A CN 101783786 B CN101783786 B CN 101783786B
- Authority
- CN
- China
- Prior art keywords
- packet
- packets
- keywords
- keyword
- coupling action
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据包过滤方法和装置,其中,该方法包括:接收相关联的多个数据包,其中,多个数据包中的每个数据包都携带有相同的多个关键字;对多个数据包中的第一个数据包的多个关键字中的部分或全部关键字进行匹配操作,得到匹配动作;根据多个关键字,将匹配动作配置给多个数据包中的除第一个数据包之外的其余数据包。通过本发明,通过对包括相同关键字的相关联的多个数据包中的第一个数据包进行匹配操作,将得到的匹配动作配置给其它的包括相同关键字的数据包,能够提高数据包匹配的速度,从而能够解决相关技术中存在的数据包过滤速度较慢的问题,进而能够节省***开销、提高***处理效率。
Description
技术领域
本发明涉及通信领域,具体地,涉及一种数据包过滤方法和装置。
背景技术
在数据网络应用中,数据包过滤是常见的操作,比如,在具有防火墙的设备中,需要对进入设备的数据包进行扫描,以使符合要求的数据包通过,并将不符合要求的数据包丢弃。
数据包过滤技术的核心是扫描(或称为匹配操作),即,将数据包的相关字段中包含的信息(或称为关键字)与预先制定的过滤规则相比较,该预定的过滤规则中描述了相关字段中包含的信息应该满足的要求,进行比较操作的目的是判断信息是否符合要求,然后根据比较的结果,执行相关的处理操作,例如,上文提到的使得符合要求的数据包通过,将不符合要求的数据包丢弃。
目前,数据包过滤技术面临的问题之一在于匹配速度慢。由于需要提取数据包中的关键字信息,然后进行比较操作,所以在大流量的数据采集和分析的应用场景中,数据包过滤技术存在如下两个问题:一是提取匹配字段信息(或称为关键字段信息)的速度较慢,二是根据提取的信息与规则进行匹配的速度较慢。
对于问题一,由于数据包的关键字段信息的提取需要和预先设定的规则保持一致,也就是说,规则中需要比较哪些字段,则在数据包中提取相应字段的信息,不同的规则中需要比较的字段信息可能不同,所以每个数据包提取的信息的位置不固定,提取字段的数量也有所差异。这就导致了信息字段提取的速度较慢。
对于问题二,虽然可以采取诸如哈希散列等算法来提高匹配的速度,但是采用这种算法的前提是要快速地提取需要匹配的关键字信息,也就是说,改善问题一是改善问题二的前提,如果仅改善问题二,并不能完全解决数据包过滤速度慢的问题。
目前,上述两个问题都没有得到很好地解决。
此外,在相关技术中,对于基于同一IP数据报文的多个IP分片数据包,由于在这多个IP分片数据包中,只有第一个IP分片数据包包括完整的五元组(包括源端/目的端地址、协议类型、源端/目的端端口号)关键字信息,因此,只能对第一个IP分片数据包进行过滤,无法对其它的不包括完整的五元组关键字的IP分片数据包进行过滤,这样,无法对基于同一IP数据报文的多个IP分片数据包进行有效、正确的过滤处理。
发明内容
考虑到相关技术中存在数据包过滤速度较慢、无法对基于同一IP数据报文的多个IP分片数据包进行有效、正确的过滤处理的问题而提出本发明,为此,本发明的主要目的在于提供一种改进的数据包过滤方案,以解决相关技术中的上述问题至少之一。
为达到上述目的,根据本发明的一个方面,提供了一种数据包过滤方法。
根据本发明的数据包过滤方法包括:接收相关联的多个数据包,其中,多个数据包中的每个数据包都携带有相同的多个关键字;对多个数据包中的第一个数据包的多个关键字中的部分或全部关键字进行匹配操作,得到匹配动作;根据多个关键字,将匹配动作配置给多个数据包中的除第一个数据包之外的其余数据包。
优选地,上述相关联的多个数据包包括以下之一:基于流的多个数据包、基于同一个IP数据报文的多个IP分片数据包。
优选地,在接收多个数据包之后,该方法还包括:对于多个数据包中的每个数据包,分别提取其携带的多个关键字。
优选地,上述对多个数据包中的第一个数据包的多个关键字中的部分或全部关键字进行匹配的操作具体包括:将提取的多个关键字中的部分或全部关键字与预先设置的匹配信息进行比较;根据比较结果确定匹配动作。
优选地,上述根据多个关键字,将匹配动作配置给多个数据包中其余所有的数据包的操作具体包括:对第一个数据包的多个关键字进行校验,建立多个关键字与匹配动作之间的映射关系;对于其余数据包中的每一个数据包,分别对从其提取的多个关键字进行校验;对于其余数据包中通过校验的数据包,根据映射关系,将与多个关键字对应的匹配动作配置给该数据包。
优选地,该方法还包括:对第一个数据包的多个关键字进行校验,得到标准校验值;对其余数据包中的每个数据包的多个关键字进行校验,得到对比校验值;对于其对比校验值与标准校验值一致的数据包,判断通过校验。
优选地,在将匹配动作配置给其余所有的数据包之后,该方法还包括:解除映射关系。
根据本发明的另一方面,提供了一种数据包过滤装置。
根据本发明的数据包过滤装置包括:接收模块,用于接收相关联的多个数据包,其中,多个数据包中的每个数据包都携带有相同的多个关键字;匹配模块,用于对接收模块接收到的多个数据包中的第一个数据包的多个关键字中的部分或全部关键字进行匹配操作;确定模块,用于根据匹配模块的匹配结果确定匹配动作;配置模块,用于将匹配动作配置给多个数据包中的除第一个数据包之外的其余数据包。
优选地,上述配置模块包括:设置子模块,用于建立关键字与匹配动作之间的映射关系;校验子模块,用于对数据包中的多个关键字进行校验;配置子模块,用于对于通过检验子模块校验的数据包,根据设置子模块建立的映射关系,将与多个关键字对应的匹配动作配置给该数据包。
优选地,上述相关联的多个数据包包括以下之一:基于流的多个数据包、基于同一个IP数据报文的多个IP分片数据包。
通过本发明的上述技术方案,通过对包括相同关键字的相关联的多个数据包中的第一个数据包进行匹配操作,将得到的匹配动作配置给其它的包括相同关键字的数据包,能够提高数据包匹配的速度,从而能够解决相关技术中存在的数据包过滤速度较慢的问题,进而能够节省***开销、提高***处理效率。并且,通过本发明的技术方案,还能够对包含多个IP分片数据的数据包进行过滤处理。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明方法实施例的数据包过滤方法的处理流程图;
图2是根据本发明方法实施例的数据包过滤方法的具体实施过程的示意图;
图3是根据本发明方法实施例的数据包过滤方法的另一具体实施过程的示意图;
图4是根据本发明方法实施例的数据包过滤方法的具体实施过程的流程图;
图5是根据本发明装置实施例的数据包过滤装置的结构框图;
图6是根据本发明装置实施例的数据包过滤装置的优选结构框图。
具体实施方式
功能概述
考虑到相关技术中存在的数据包过滤速度慢的问题,基于数据流的特性,提出了一种改进的数据包过滤方案,在本发明实施例中,利用了相关联的多个数据包(例如,基于流的多个数据包或者基于同一个IP数据报文的多个IP分片数据包)中包括相同关键字信息的特点,对相关联的多个数据包中的第一个数据包进行匹配、得到匹配动作,并将得到的匹配动作配置给其余的数据包,从而能够避免对所有数据包都进行关键字信息的匹配,能够提高数据包过滤的处理速度和处理效率。
需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。
另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
方法实施例
根据本发明的实施例,首先提出了一种数据包过滤方法,图1是根据本发明方法实施例的数据包过滤方法的流程图,如图1所示,该方法包括如下处理(步骤S102至步骤S106)。
步骤S102,接收相关联的多个数据包,其中,多个数据包中的每个数据包都携带有相同的多个关键字;优选地,相关联的多个数据包可以包括但不限于基于流的多个数据包,或者是基于同一个IP数据报文的多个IP分片数据包;根据预定的过滤规则,提取多个数据包中的每个数据包的多个关键字。
步骤S104,对于多个数据包中的第一个数据包,对其多个关键字中的部分或全部关键字进行匹配操作,得到匹配动作;优选地,该匹配操作包括:将多个关键字中的部分或全部关键字与预定的过滤规则中的匹配信息进行比较,根据比较结果来确定匹配动作,例如,数据包匹配通过时不丢弃数据包、在数据包匹配不通过时丢弃该数据包。
步骤S106,将匹配动作配置给多个数据包中的除第一个数据包之外的其余数据包。优选地,该步骤可以通过如下过程实现:建立多个关键字与匹配动作之间的映射关系;对于其余数据包中的每一个数据包,分别对从其提取的多个关键字采用哈希散列法进行校验;如果校验通过,则根据映射关系,将与多个关键字对应的匹配动作配置给该数据包;优选地,判断是否通过检验的操作可以通过如下过程实现:对第一个数据包的多个关键字进行校验,得到标准校验值;对其余数据包中的每个数据包的多个关键字进行校验,得到对比校验值;对于其对比校验值与标准校验值一致的数据包,判断通过校验。
优选地,执行完步骤S106之后,可以解除多个关键字与匹配动作之间的映射关系,这样能够释放因为保存映射关系而占有的***资源。
借助于上述技术方案,对相关联的多个数据包(例如,基于流的多个数据包或者基于同一个IP数据报文的多个IP分片数据包)中的第一个数据包进行匹配处理、得到匹配动作,并将得到的匹配动作配置给其余的数据包,从而能够避免对所有的数据包都进行关键字信息的匹配,能够提高数据包过滤的处理速度。
进一步地,图2示出了根据本发明方法实施例的数据包过滤方法的具体实施的示意方式,在该具体实施的场景中,对基于流的多个数据包进行过滤。以下通过说明对基于流的数据包的过滤处理过程(步骤202至步骤216)来描述图2:
步骤202,建立普通匹配通道,该普通匹配通道用于根据预先配置的过滤规则对数据包的关键字进行匹配操作,该过滤规则中的信息至少可以包括:需要将其作为关键字提取的字段(如在图2中所示的数据包需要提取的n个字段中的关键字信息)、匹配信息等,相应地,普通通道中包括过滤规则中规定的多个策略规则(即,匹配信息)(其中包括:策略规则1、策略规则2、......、策略规则n-1、策略规则n);
步骤204,建立快速匹配通道,该快速匹配通道用于采用诸如哈希散列法的快速匹配算法对数据包的关键字进行校验,在具体实施的过程中,快速匹配通道建立成功后,可能会对多个流(例如,流1至流m)中的数据包进行校验,这样,快速匹配通道中就会相应地存储与m个流相对应的m个匹配动作;
具体地,普通匹配通道和快速匹配通道可以用软件方式来实现;
步骤206,对于接收到的属于流1的S个数据包(数据包1至数据包s),根据过滤规则中规定的策略规则1至策略规则n,从每个数据包中提取n个关键字,由于基于流的数据包的特点,从每个数据包中提取的n个关键字都是相同的;优选地,步骤206可以对应于上述步骤S102;
步骤208,在普通匹配通道中,对S个数据包中的第一个数据包进行匹配操作,即,如果过滤规则中规定只需对n个关键字中的n-1个关键字进行匹配,则将第一个数据包的n-1个关键字分别与策略规则1至策略规则n-1规定的匹配信息进行比较,得到比较结果,即,如图2中所示的关键字1至关键字n-2分别与策略规则1至策略规则n-2相比较后匹配未命中,关键字n与策略规则n-1相比较后匹配命中;
步骤210,将与比较结果相对应的匹配动作配置给第一个数据包,这里的匹配动作是根据具体的过滤情况而预先设置的,例如,在数据包符合要求时不丢弃数据包、在数据包不符合要求时丢弃该数据包,在数据包符合要求时转发数据包、在数据包不符合要求时重发数据包,在数据包符合要求时保留关键字后发送数据包、在数据包不符合要求时删除关键字后发送数据包,等等;优选地,步骤208和步骤210可以对应于上述步骤S104;
步骤212,建立快速匹配通道与普通匹配通道之间的映射关系,即,建立流1的关键字与匹配动作之间的对应关系,具体地,根据第一个数据包的n个关键字建立关键字与匹配动作之间的对应关系,可以用哈希散列法对第一个数据包的n个关键字进行校验,得到标准校验值,建立该标准校验值与匹配动作之间的对应关系;
步骤214,对于其余S-1个数据包中的每一个数据包,在快速通道中对该数据包的n个关键字进行校验,得到对比校验值;
步骤216,将对比校验值与标准校验值相比较,如果比较结果为相等,则说明该数据包与第一个数据包都属于流1,并根据建立的映射关系,可以将与流1的关键字对应的匹配动作配置给该数据包;如果比较结果为不相等,则说明该数据包可能与第一个数据包不属于同一个流,或者该数据包中的关键字提取有误,不能将匹配动作配置给该数据包;优选地,步骤212至步骤216可以对应于上述步骤S106。
通过步骤202至步骤216的处理,能够对属于同一个流的多个数据包中的第一个数据包进行匹配处理,并将得到的匹配动作配置给其余的数据包,从而能够避免对所有的数据包都进行关键字信息的匹配,能够提高数据包过滤的效率。
此外,图3示出了根据本发明方法实施例的数据包过滤方法的另一具体实施的示意方式,在该具体实施的场景中,对基于同一个IP数据报文的多个IP分片数据包进行过滤。以下通过说明对基于同一个IP数据报文的多个IP分片数据包的过滤处理过程(步骤302至步骤316)来描述图3:
步骤302,建立普通匹配通道,该普通匹配通道用于根据预先配置的过滤规则对IP分片数据包的关键字进行匹配操作,该过滤规则可以至少包括:需要将其作为关键字提取的字段(如图3中所示的数据包需要提取的n个字段中的关键字信息)、匹配信息等,相应地,普通通道中包括过滤规则中规定的多个策略规则(即匹配信息)(其中包括:策略规则1、策略规则2、......、策略规则n-1、策略规则n);
步骤304,建立分片匹配通道,该分片匹配通道用于采用诸如哈希散列法的快速匹配算法对IP分片数据包的关键字进行校验,在具体实施的过程中,分片匹配通道建立成功后,可能会对多个IP数据报文(IP数据报文1至IP数据报文m)进行校验,这样,分片匹配通道中就会相应地存储与m个IP数据报文相对应的m个匹配动作;
步骤306,对于接收到的属于IP数据报文m-1的S个IP分片数据包(IP分片数据包1至IP分片数据包s),根据过滤规则中规定的策略规则1至策略规则n,从每一个IP分片数据包中提取n个关键字,由于S个IP分片数据包属于同一个IP数据报文,从每一个IP分片数据包中提取的n个关键字都是相同的;优选地,步骤306对应于上述步骤S102;
步骤308,在普通匹配通道中,对S个IP分片数据包中的第一个IP分片数据包进行匹配操作,即,如果过滤规则中规定只需对n个关键字中的4个关键字进行匹配,则将第一个IP分片数据包的4个关键字分别与策略规则1至策略规则4规定的匹配信息进行比较,得到比较结果,即,如图4中所示的关键字1至关键字3分别与策略规则1至策略规则3相比较后匹配未命中,关键字4与策略规则4相比较后匹配命中;
步骤310,将与比较结果相对应的匹配动作配置给第一个IP分片数据包,这里的匹配动作是根据具体的过滤情况而预先设置的,例如,丢弃/不丢弃数据包等操作;优选地,步骤308和步骤310对应于上述步骤S104;
步骤312,建立分片匹配通道与普通匹配通道之间的映射关系,即,建立IP数据报文m-1的关键字与匹配动作之间的对应关系,具体地,根据第一个IP分片数据包的n个关键字建立关键字与匹配动作之间的对应关系,可以用哈希散列法对第一个IP分片数据包的n个关键字进行校验,得到标准校验值,建立该标准校验值与匹配动作之间的对应关系;
步骤314,对于其余S-1个IP分片数据包中的每一个IP分片数据包,在分片匹配通道中对该IP分片数据包的n个关键字进行校验,得到对比校验值;
步骤316,将对比校验值与标准校验值相比较,如果比较结果为相等,则说明该IP分片数据包与第一个IP分片数据包都属于IP数据报文m-1,并根据建立的映射关系,可以将与IP数据报文m-1的关键字对应的匹配动作配置给该IP分片数据包;如果比较结果为不相等,则说明该IP分片数据包可能与第一个IP分片数据包不属于同一个IP数据报文,或者该IP分片数据包中的关键字提取有误,不能将匹配动作配置给该IP分片数据包;优选地,步骤312至步骤316可以对应于上述步骤S106。
通过步骤302至步骤316的处理,能够避免相关技术中无法对同一IP数据报文中的多个IP分片数据包中除第一个IP分片数据包的其它IP分片数据包进行过滤的问题,能够提高数据包过滤的安全度和准确度。
具体地,图4中示出了根据本发明方法实施例的数据包过滤方法对基于流的数据包以及对包括基于IP数据报文的多个IP分片数据包进行过滤的处理流程,如图4所示,该流程包括如下的处理过程:
步骤401,根据配置的过滤规则初始化普通匹配通道;
步骤402,接收到数据包;优选地,步骤402可以对应于上述步骤S102;
步骤403,根据过滤规则提取数据包中的关键字;
步骤404,判断该数据包是否为基于IP数据报文的IP分片数据包,如果判断为是,则处理进行到步骤405,否则,处理进行到步骤406;
步骤405,判断目前处理的数据是否为基于同一IP数据报文的第一个IP分片数据包,如果判断为是,则处理进行到步骤406,否则,处理进行到步骤412;
步骤406,对当前处理的数据进行快速匹配通道的处理,即,对从其中提取的所有关键字进行校验,得到对比校验值;
步骤407,判断对比校验值是否能够与已经建立的所有的映射关系相对应,即,将对比校验值与所有映射关系中的标准校验值相对比,如果该对比校验值与某一标准校验值相等,则说明该数据是某一基于流的多个数据包中的非第一个数据包,可以将与标准校验值对应的匹配动作配置给该数据包,此时,处理进行到步骤410,如果该对比校验值与任一标准校验值都不相等,则说明该数据是新接收到的基于流的多个数据包中的第一个数据包,此时,处理进行到步骤408;
步骤408,对数据进行普通匹配通道的匹配操作,匹配操作成功并且得到匹配动作,则处理进行到步骤409,否则,处理流程结束;优选地,步骤408可以对应于上述步骤S104或步骤S304;
步骤409,根据从第一个数据包提取的多个关键字,建立普通匹配通道与快速匹配通道之间的映射关系,即,建立多个关键字与匹配动作之间的对应关系;优选地,步骤409和步骤407可以对应于上述步骤S106;
步骤410,判断当前处理的数据是否为IP分片数据包,如果判断为是,则处理进行到步骤411,否则,处理流程结束;
步骤411,建立普通匹配通道和分片匹配通道间的映射关系,即,建立多个关键字与匹配动作之间的对应关系,至此,处理流程结束;
步骤412,对IP分片数据包进行分片通道的检验;
步骤413,对判断检验结果是否能够与已建立的映射关系进行匹配,如果判断为是,则将匹配动作配置给该IP分片数据包,并且处理流程结束,否则,处理流程结束。优选地,步骤411至步骤413可以对应于上述步骤S306。
通过步骤401至步骤413的处理过程,可以灵活地对基于流的数据包以及基于同一IP数据报文的多个IP分片数据包进行过滤处理,并且,处理速度高、正确率高。
装置实施例
根据本发明的实施例,还提供了一种数据包过滤装置,该装置可以用于对基于流的多个数据包以及基于同一个IP数据报文的多个IP分片数据包进行过滤处理。
图5示出了根据本发明装置实施例的数据包过滤装置的结构,如图5所示,该数据包过滤装置包括接收模块2、匹配模块4、确定模块6、配置模块8。下面详细描述上述模块的功能。
接收模块2,用于接收相关联的多个数据包,其中,多个数据包中的每个数据包携带有相同的多个关键字;优选地,相关联的多个数据包可以包括但不限于基于流的多个数据包,或者是基于同一个IP数据报文的多个IP分片数据包。
匹配模块4,连接至接收模块2,用于对接收模块2接收到的多个数据包中的第一个数据包的多个关键字中的部分或全部关键字进行匹配操作,得到匹配动作。
确定模块6,连接至匹配模块4,用于根据匹配模块4的匹配结果确定匹配动作。
配置模块8,连接至接收模块2和匹配模块4,用于将匹配动作配置给多个数据包中的除第一个数据包之外的其余数据包。
通过该实施例,能够对相关联的多个数据包(例如,基于流的多个数据包或者基于同一个IP数据报文的多个IP分片数据包)的第一个数据包进行过滤,并且把得到的匹配动作配置给多个数据包中其余的数据包,从而避免了对每一个数据包都进行过滤,能够提高过滤处理的效率。
图6示出了根据本发明装置实施例的数据包过滤装置的优选结构,如图6所示,该装置包括接收模块2、匹配模块4、确定模块6、配置模块8,其中配置模块8还包括设置子模块82、校验子模块84和配置子模块86。其中,接收模块2、匹配模块4、确定模块6与图5中相应模块的功能类似,这里不再赘述,下面详细说明设置子模块82、校验模块84和配置子模块86的功能。
设置子模块82,连接至接收模块2和匹配模块4,用于建立多个关键字与匹配动作之间的映射关系;
校验子模块84,连接至接收模块2和匹配模块4,用于对其余数据包中的每一个数据包,分别对其中的多个关键字进行校验;
配置子模块86,连接至校验子模块84和设置子模块82,用于对于通过校验子模块84校验的数据包,根据设置子模块82建立的映射关系,将与多个关键字对应的匹配动作配置给该数据包。
图6所示的数据包过滤装置,可以用于上述图2所示的场景,用以实现对基于流的多个数据包的过滤。在具体实施的过程中,首先由接收模块2接收数据,接收到的数据可能是基于流的多个数据包,这多个数据包中在多个特定的字段中都包括相同的关键字信息;匹配模块4对接收到的多个数据包中的第一个数据包进行匹配操作,即,将第一个数据包中的多个关键字与预定的过滤规则中的匹配信息进行比较;确定模块6根据比较结果确定匹配动作;优选地,匹配模块4和确定模块6能够实现上述图2中的普通匹配通道的功能;设置子模块82采用哈希散列法对第一个数据包中的多个关键字进行校验、得到标准校验值,建立该标准校验值与匹配动作之间的对应关系(即,映射关系);校验子模块84对多个数据包中除第一个数据包外的其余数据包中的每一个数据包进行校验、得到该数据包的对比校验值,优选地,校验子模块84采用哈希散列法对每个数据包中的多个关键字进行校验,得到对比校验值;配置子模块86将每个数据包的对比校验值与标准校验值比较,当比较结果为相等时,说明该数据包与上述的第一个数据包属于同一个流,这样,可以根据设置子模块82建立的映射关系,将多个关键字对应的匹配动作配置给该数据包,优选地,配置模块8(包括置子模块82、校验模块84和配置子模块86)能够实现上述图2中的快速匹配通道的功能。
通过如图6所示的数据包过滤装置,通过设置接收模块、匹配模块、确定模块、配置模块、以及设置子模块、校验模块和配置子模块,能够对属于同一个流的多个数据包中的第一个数据包进行匹配处理,并将得到的匹配动作配置给其余的数据包,从而能够避免对所有的数据包都进行关键字信息的匹配。
此外,图6所示的数据包过滤装置,还可以用于上述图3所示的场景,用以实现对基于同一数据报文的多个IP分片数据包的过滤。在具体实施的过程中,首先由接收模块2接收数据,接收到的数据可能是基于同一IP数据报文的多个IP分片数据包,这多个IP分片数据包中在多个特定的字段中都包括相同的关键字信息;匹配模块4对接收到的多个IP分片数据包中的第一个IP分片数据包进行匹配操作,即,将第一个IP分片数据包中的多个关键字与预定的过滤规则中的匹配信息进行比较;确定模块6根据比较结果确定匹配动作;优选地,匹配模块4和确定模块6能够实现上述图3中的普通匹配通道的功能;设置子模块82采用哈希散列法对第一个IP分片数据包中的多个关键字进行校验、得到标准校验值,建立该标准校验值与匹配动作之间的对应关系(即,映射关系);校验子模块84对多个IP分片数据包中除第一个IP分片数据包外的其余IP分片数据包中的每一个IP分片数据包进行校验、得到该IP分片数据包的对比校验值,优选地,校验子模块84采用哈希散列法对每个IP分片数据包中的多个关键字进行校验、得到对比校验值;配置子模块86将每个IP分片数据包的对比校验值与标准校验值比较,当比较结果为相等时,说明该IP分片数据包与上述的第一个IP分片数据包属于同一个IP数据报文,这样,可以根据设置子模块82建立的映射关系,将多个关键字对应的匹配动作配置给该IP分片数据包,优选地,配置模块8(包括设置子模块82、校验子模块84、配置子模块86)能够实现上述图3中的分片匹配通道的功能。
通过如图6所示的数据包过滤装置,还能够对基于同一IP数据报文的多个IP分片数据包中的第一个IP分片数据包进行过滤,并将过滤操作得到的匹配动作配置给其它的IP分片数据包,从而能够避免相关技术中无法对基于同一IP数据报文的多个IP分片数据包进行有效、正确的过滤处理的问题,进而能够提高数据包过滤的效率。
综上所述,借助于本发明的技术方案,通过对包括相同关键字的相关联的多个数据包(例如,基于流的多个数据包或者基于同一个IP数据报文的多个IP分片数据包)中的第一个数据包进行匹配操作,将得到的匹配动作配置给其它的包括相同关键字的数据包,能够提高数据包匹配的速度,从而能够解决相关技术中存在的数据包过滤速度较慢的问题,进而能够节省***开销、提高***处理效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据包过滤方法,其特征在于,包括:
接收相关联的多个数据包,其中,所述多个数据包中的每个数据包都携带有相同的多个关键字;
对所述多个数据包中的第一个数据包的所述多个关键字中的部分或全部关键字进行匹配操作,得到匹配动作;
根据所述多个关键字,将所述匹配动作配置给所述多个数据包中的除所述第一个数据包之外的其余数据包。
2.根据权利要求1所述的方法,其特征在于,所述相关联的多个数据包包括以下之一:
基于流的多个数据包、基于同一个IP数据报文的多个IP分片数据包。
3.根据权利要求1或2所述的方法,其特征在于,在所述接收多个数据包之后,所述方法还包括:
对于所述多个数据包中的每个数据包,分别提取其携带的所述多个关键字。
4.根据权利要求3所述的方法,其特征在于,所述对所述多个数据包中的第一个数据包的所述多个关键字中的部分或全部关键字进行匹配操作包括:
将提取的所述多个关键字中的部分或全部关键字与预先
设置的匹配信息进行比较;
根据比较结果确定匹配动作。
5.根据权利要求4所述的方法,其特征在于,根据所述多个关键字,将所述匹配动作配置给所述多个数据包中其余所有的数据包包括:
对所述第一个数据包的所述多个关键字进行校验,建立所述多个关键字与所述匹配动作之间的映射关系;
对于所述其余数据包中的每一个数据包,分别对从其提取的所述多个关键字进行校验;
对于所述其余数据包中通过校验的数据包,根据所述映射关系,将与所述多个关键字对应的所述匹配动作配置给该数据包。
6.根据权利要求5所述的方法,其特征在于,还包括:
对所述第一个数据包的多个关键字进行校验,得到标准校验值;
对所述其余数据包中的每个数据包的多个关键字进行校验,得到对比校验值;
对于其对比校验值与所述标准校验值一致的数据包,判断通过校验。
7.根据权利要求5所述的方法,其特征在于,在将所述匹配动作配置给所述其余所有的数据包之后,所述方法还包括:
解除所述映射关系。
8.一种数据包过滤装置,其特征在于,包括:
接收模块,用于接收相关联的多个数据包,其中,所述多个数据包中的每个数据包都携带有相同的多个关键字;
匹配模块,用于对所述接收模块接收到的所述多个数据包中的第一个数据包的所述多个关键字中的部分或全部关键字进行匹配操作;
确定模块,用于根据所述匹配模块的匹配结果确定匹配动作;
配置模块,用于将所述匹配动作配置给所述多个数据包中的除所述第一个数据包之外的其余数据包。
9.根据权利要求8所述的装置,其特征在于,所述配置模块包括:
设置子模块,用于建立关键字与匹配动作之间的映射关系;
校验子模块,用于对数据包中的所述多个关键字进行校验;
配置子模块,用于对于通过所述检验子模块校验的数据包,根据所述设置子模块建立的所述映射关系,将与所述多个关键字对应的所述匹配动作配置给该数据包。
10.根据权利要求8所述的装置,其特征在于,所述相关联的多个数据包包括以下之一:
基于流的多个数据包、基于同一个IP数据报文的多个IP分片数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910005224 CN101783786B (zh) | 2009-01-19 | 2009-01-19 | 数据包过滤方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910005224 CN101783786B (zh) | 2009-01-19 | 2009-01-19 | 数据包过滤方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101783786A CN101783786A (zh) | 2010-07-21 |
CN101783786B true CN101783786B (zh) | 2013-01-16 |
Family
ID=42523606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910005224 Expired - Fee Related CN101783786B (zh) | 2009-01-19 | 2009-01-19 | 数据包过滤方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101783786B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102469073B (zh) * | 2010-11-04 | 2015-05-06 | 腾讯科技(深圳)有限公司 | 通信方法和装置 |
CN103338155B (zh) * | 2013-07-01 | 2016-02-24 | 安徽中新软件有限公司 | 一种数据包的高效过滤方法 |
CN104809158B (zh) * | 2015-03-26 | 2018-05-18 | 小米科技有限责任公司 | 网络内容过滤方法及装置 |
CN106921589A (zh) * | 2015-12-28 | 2017-07-04 | 新华三技术有限公司 | 一种ip数据包的处理方法和装置 |
CN106953775A (zh) * | 2016-01-06 | 2017-07-14 | 中兴通讯股份有限公司 | 一种实现报文检错的方法及装置 |
CN111262812A (zh) * | 2018-11-30 | 2020-06-09 | 比亚迪股份有限公司 | 数据包筛选方法和装置 |
CN109768966A (zh) * | 2018-12-17 | 2019-05-17 | 航天信息股份有限公司 | 基于终端的icmp报文处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545254A (zh) * | 2003-11-13 | 2004-11-10 | 中兴通讯股份有限公司 | 一种快速数据包过滤方法 |
CN1555166A (zh) * | 2003-12-26 | 2004-12-15 | ƽ | Pos数据过滤分发的方法与装置 |
CN1578227A (zh) * | 2003-07-29 | 2005-02-09 | 上海聚友宽频网络投资有限公司 | 一种动态ip数据包过滤方法 |
CN101068229A (zh) * | 2007-06-08 | 2007-11-07 | 北京工业大学 | 一种基于网络过滤器的内容过滤网关实现方法 |
-
2009
- 2009-01-19 CN CN 200910005224 patent/CN101783786B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1578227A (zh) * | 2003-07-29 | 2005-02-09 | 上海聚友宽频网络投资有限公司 | 一种动态ip数据包过滤方法 |
CN1545254A (zh) * | 2003-11-13 | 2004-11-10 | 中兴通讯股份有限公司 | 一种快速数据包过滤方法 |
CN1555166A (zh) * | 2003-12-26 | 2004-12-15 | ƽ | Pos数据过滤分发的方法与装置 |
CN101068229A (zh) * | 2007-06-08 | 2007-11-07 | 北京工业大学 | 一种基于网络过滤器的内容过滤网关实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101783786A (zh) | 2010-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101783786B (zh) | 数据包过滤方法和装置 | |
US8407794B2 (en) | Signature searching method and apparatus using signature location in packet | |
Han et al. | Automotive cybersecurity for in-vehicle communication | |
US10567426B2 (en) | Methods and apparatus for detecting and/or dealing with denial of service attacks | |
US10057292B2 (en) | Method for operating a security gateway of a communication system for vehicles | |
US20090240804A1 (en) | Method and apparatus for preventing igmp packet attack | |
CN104468507B (zh) | 基于无控制端流量分析的木马检测方法 | |
KR20080021677A (ko) | 데이터 프로세싱 시스템 | |
CN101351781B (zh) | 在通信网络中处理传入分组的方法和*** | |
CN103841096A (zh) | 自动调整匹配算法的入侵检测方法 | |
CN101945117A (zh) | 防止源地址欺骗攻击的方法及设备 | |
CN101873269A (zh) | 数据转发设备和端口缓存的分配方法 | |
US20050190697A1 (en) | Transmission control system using link aggregation | |
KR20140047221A (ko) | 네트워크 정보유출방지 기기의 대용량 패킷 처리를 위한 하드웨어 엔진 | |
US9225654B2 (en) | Method and apparatus for sending packet | |
CN110958245B (zh) | 一种攻击的检测方法、装置、设备和存储介质 | |
CN1741504A (zh) | 基于应用的流量控制方法及进行应用流量控制的网络设备 | |
EP3264713B1 (en) | Hardware acceleration architecture for signature matching applications for deep packet inspection | |
CN103685257A (zh) | 一种dhcp网络防护***及方法 | |
CN111770055A (zh) | 一种应用于电能表的多协议通讯帧快速判别方法 | |
CN110865965A (zh) | 一种基于硬件实现流表双向数据同步的方法及装置 | |
EP3264716B1 (en) | State transition compression mechanism to efficiently compress dfa based regular expression signatures | |
CN106911590B (zh) | 报文处理方法、装置及分布式设备 | |
CN102739537A (zh) | 以太网数据包的转发方法及装置 | |
KR101825711B1 (ko) | Can 통신 기반 해킹공격에 안전한 can 컨트롤러 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190124 Address after: Delaware Patentee after: Open Invention Network Co.,Ltd. Address before: No. 55, Nanshan District science and technology road, Nanshan District, Shenzhen, Guangdong Patentee before: ZTE Corp. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130116 Termination date: 20220119 |
|
CF01 | Termination of patent right due to non-payment of annual fee |