CN101848190B - 基于ip地址集合和端口集合的数据包匹配处理方法 - Google Patents

基于ip地址集合和端口集合的数据包匹配处理方法 Download PDF

Info

Publication number
CN101848190B
CN101848190B CN2009100806604A CN200910080660A CN101848190B CN 101848190 B CN101848190 B CN 101848190B CN 2009100806604 A CN2009100806604 A CN 2009100806604A CN 200910080660 A CN200910080660 A CN 200910080660A CN 101848190 B CN101848190 B CN 101848190B
Authority
CN
China
Prior art keywords
port
address
node
packet
address set
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
Application number
CN2009100806604A
Other languages
English (en)
Other versions
CN101848190A (zh
Inventor
张洁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Topsense Info Tech Co ltd
Original Assignee
Beijing Topsense High-Tech Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Topsense High-Tech Information Technology Co Ltd filed Critical Beijing Topsense High-Tech Information Technology Co Ltd
Priority to CN2009100806604A priority Critical patent/CN101848190B/zh
Publication of CN101848190A publication Critical patent/CN101848190A/zh
Application granted granted Critical
Publication of CN101848190B publication Critical patent/CN101848190B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了网络安全技术领域中的一种基于IP地址集合和端口集合的数据包规则匹配处理方法。技术方案是,在系统内核空间建立IP地址集合和端口集合;在系统内核空间构建两个双向链表,分别存储IP地址集合和端口集合,每个集合是双向链表中的一个结点,并且以每个集合的名称作为结点标识;对每个结点分别构建红黑区间树,用于存储与该结点对应的IP地址集合或者端口集合中的元素;在内核空间中,在系统内核空间建立的IP地址集合和端口集合中查找与数据包的IP地址和端口相匹配的元素。本发明可以产生数量更少的规则来满足用户的同一需求,大大降低防火墙中的规则总量以及数据包匹配次数,从而提高系统处理性能。

Description

基于IP地址集合和端口集合的数据包匹配处理方法
技术领域
本发明属于网络安全技术领域,尤其涉及一种基于IP地址集合和端口集合的数据包匹配处理方法。
背景技术
当前,很多网络安全系统提供专门的客户端工具,来处理数据包匹配问题。用户可以通过设置特定的数据包规则集,来满足不同级别的安全性要求。通常系统提供不同规则选项,用于指定数据包与规则匹配所应具有的特征。其中,有用于匹配数据包源IP地址的规则选项,但只能匹配单独的IP地址或地址段;有用于匹配数据包目标地址的规则选项,也只能匹配单独的IP地址或地址段;有用于匹配数据包的源端口和目标端口的规则选项,但只能匹配单独的端口或端口范围。虽然也有功能更强大的规则选项,提供了对IP地址范围和端口范围的匹配,但如果用户需要同时指定多个分散的IP地址、地址段、端口、端口范围时,是无法运用上述的匹配项通过制定一条规则来满足要求的,需要用户制定多条规则来实现。并且,当用户需要匹配的地址或端口范围大且分散时,规则的数量也相应地增加,每个数据包的处理速度也会相应下降。此外,每条规则中的IP地址或端口数据,用户是无法重复使用的。
发明内容
本发明的目的在于,针对上述用户需要匹配的地址或端口范围大且分散,没有单一的匹配规则并且当前匹配规则的数量众多,数据包的处理速度太慢的问题,提出一种基于IP地址集合和端口集合的数据包匹配处理方法。
本发明的技术方案是,一种基于IP地址集合和端口集合的数据包匹配处理方法,其特征是所述方法为:
在系统内核空间建立IP地址集合和端口集合;
在系统内核空间构建两个双向链表,分别存储IP地址集合和端口集合,每个集合是双向链表中的一个结点,并且以每个集合的名称作为结点标识;
对每个结点分别构建红黑区间树,用于存储与该结点对应的IP地址集合或者端口集合中的元素;
根据用户设置的数据包处理规则,在系统内核空间建立的IP地址集合和端口集合中查找与数据包的IP地址和端口相匹配的元素。
所述IP地址集合中的元素包括:独立的IP地址及掩码、连续的IP地址段或者IP地址子集合。
所述端口集合中的元素包括:独立的端口、连续的端口段或者端口子集合。
所述在系统内核空间建立的IP地址集合和端口集合中查找与数据包的IP地址和端口相匹配的元素,其过程是:
步骤1:获取数据包源IP地址、目的IP地址、源端口、目标端口,以及IP地址集合和端口集合的名称;
步骤2:分别遍历内核空间中的两个双向链表,通过结点标识查找到与数据包IP地址集合和端口集合的名称相同的结点;
步骤3:在该结点的红黑区间树中查找与数据包的IP地址或端口相同的元素;
步骤4:如果在该结点的红黑区间树中,查找到与数据包的IP地址或端口相同的元素,则处理该数据包。
本发明的效果在于,使用本发明提供的方法,可以产生数量更少的规则来满足用户的同一需求,大大降低防火墙中的规则总量以及数据包匹配次数,从而提高系统处理性能。并且,用户可以在数据包规则的制定中,通过使用IP地址集合和端口集合名称,达到重复使用IP地址集合和端口集合的目的。
附图说明
图1是通过软件实现本发明的各个模块的关系示意图。
图2是匹配数据包的IP地址和端口的处理流程图。
图3是本发明提供的实施例的链表及其对象结点中的红黑区间树的示意图。
具体实施方式
下面结合附图,对优选实施例作详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
图1是通过软件实现本发明的各个模块的关系示意图。图1中,资源对象生成模块根据用户预定义的IP地址集合、端口集合,负责在用户空间生成IP地址集合、端口集合等资源对象。
数据结构生成模块通过动态连接库,负责用户空间和内核空间交互所需的数据结构。
数据包解析模块负责解析数据包规则,且依赖于数据结构生成模块中的动态连接库。
查找匹配模块负责利用红黑区间树查找是否存在与数据包的IP地址和端口相匹配的元素。
数据处理模块负责维护内核空间的IP地址集合和端口集合,即负责生成和维护链表和链表结点中红黑区间树的数据结构,即构建和维护两个双向链表,分别存储IP地址集合和端口集合,每个集合是双向链表中的一个结点,并且以每个集合的名称作为结点标识。对每个结点分别构建红黑区间树,用于存储与该结点对应的IP地址集合或者端口集合中的元素。
图2是匹配数据包的IP地址和端口的处理流程图。图2中,系统内核空间建立的IP地址集合和端口集合中查找与数据包的IP地址和端口相匹配的元素,其过程是:
步骤1:数据匹配开始。
步骤2:获取数据包源IP地址、目的IP地址、源端口、目标端口,以及IP地址集合和端口集合的名称。
步骤3:分别遍历内核空间中的两个双向链表,通过结点标识查找与数据包IP地址集合和端口集合的名称相同的结点。
步骤4:如果查找到相同结点,则执行步骤5;否则,返回步骤2,继续下一个数据包的遍历。
步骤5:在该结点的红黑区间树中查找与数据包的IP地址或端口相同的元素。如果没有查找到与数据包的IP地址或端口相同的元素,则返回步骤2,继续下一个数据包的遍历。
步骤6:如果在该结点的红黑区间树中,查找到与数据包的IP地址或端口相同的元素,则处理该数据包。
以下在结合实施例对本发明进行进一步的说明。
首先建立资源对象,即IP地址集合和端口集合。本发明中IP地址集合中的元素包括:独立的IP地址及掩码、连续的IP地址段或者IP地址子集合。而本发明中的端口集合中的元素包括:独立的端口、连续的端口段或者端口子集合。因此IP地址集合和端口集合可以分别表示成如下形式:
A={192.168.1.1,192.168.1.1-192.168.1.100,192.168.1.22/24,...}
B={1.1.1.1-2.2.2.2,...}
C={A,B,...}
D={22,8080,23,30-400,...}
E={23,22,1024-65535,...}
F={D,F,...}
A、B、C即代表IP地址集合的资源对象,D、E、F即端口集合的资源对象。
在本实施例中,用户需求是:当数据包中的源地址是1.1.1.1、2.2.2.2、3.3.3.3中的一个,且目标地址是4.4.4.4、5.5.5.5中的一个时,对数据包进行处理。这时源地址个数M=3,目的地址个数N=2。在本实施例中忽略对端口集合资源对象匹配的说明,其过程和复杂度计算与IP地址集合资源对象匹配是一样的。
传统匹配方式:用户需要设置(M x N)=6条规则,才能满足要求,因此数据包需要进行6次匹配操作,如下:
规则1:源地址1.1.1.1,目标地址4.4.4.4
规则2:源地址2.2.2.2,目标地址4.4.4.4
规则3:源地址1.1.1.1,目标地址5.5.5.5
规则4:源地址2.2.2.2,目标地址5.5.5.5
规则5:源地址3.3.3.3,目标地址4.4.4.4
规则6:源地址3.3.3.3,目标地址5.5.5.5
使用本发明提供的方法解决上述问题,其匹配方式为:
用户定义2个资源对象,名称分别是AA和BB,其中:
AA={1.1.1.1、2.2.2.2、3.3.3.3}
BB={4.4.4.4、5.5.5.5}
其匹配规则如图3所示。图3是本发明提供的实施例的链表及其对象结点中的红黑区间树的示意图,图3中,内核空间中存在1条双向链表(因为本实施例只考虑对IP地址设置了规则,没有考虑端口),存放IP地址集合,该链表中含2个结点,结点标识分别为AA和BB。结点AA的红黑区间树以元素2.2.2.2为根节点,而元素1.1.1.1和元素3.3.3.3分别为根节点的叶子节点,其中元素1.1.1.1为左叶子节点,元素3.3.3.3为右叶子节点。结点BB的红黑区间树以元素4.4.4.4为根节点,而元素5.5.5.5为根节点的叶子节点,且为右叶子节点。
第一次匹配操作是在AA结点的红黑区间树中查找是否有与数据包源地址相同的地址元素,第二次匹配操作是在BB结点的红黑区间树中查找是否有与数据包目标地址相同的地址元素。如果在数据包中查找到相同的地址元素,则处理数据包。由实施例的匹配处理可知,本发明最多需要进行(M+N)=5次规则匹配。
用户可以分别设置,是否需要数据包中的源地址和目标地址以及源端口和目标端口与规则中的IP地址集合、端口集合相匹配。如果用户在规则中设置了需要同时匹配数据包中的IP地址及其端口,那么,除了要向本实施例一样,在存储IP地址集合的链表中进行数据包的IP地址的匹配,还要在存储端口集合的链表中进行数据包端口匹配。
本发明通过建立存储IP地址集合和端口集合的双向链表,以及在链表结点中构建存储IP地址集合或者端口集合中的元素的红黑树,可以产生数量更少的规则,来满足用户的同一需求。利用双向链表和红黑树遍历复杂度可预测的特性,大大降低防火墙中的规则总量以及数据包匹配次数,从而提高系统处理性能。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (3)

1.一种基于IP地址集合和端口集合的数据包匹配处理方法,其特征是所述方法为:
在系统内核空间建立IP地址集合和端口集合;
在系统内核空间构建两个双向链表,分别存储IP地址集合和端口集合,每个集合是双向链表中的一个结点,并且以每个集合的名称作为结点标识;
对每个结点分别构建红黑区间树,用于存储与该结点对应的IP地址集合或者端口集合中的元素;
根据用户设置的数据包处理规则,在系统内核空间建立的IP地址集合和端口集合中查找与数据包的IP地址和端口相匹配的元素;其过程是:
步骤1:获取数据包源IP地址、目的IP地址、源端口、目标端口以及IP地址集合和端口集合的名称;
步骤2:分别遍历内核空间中的两个双向链表,通过结点标识查找到与数据包IP地址集合和端口集合的名称相同的结点;
步骤3:在该结点的红黑区间树中查找与数据包的IP地址或端口相同的元素;
步骤4:如果在该结点的红黑区间树中,查找到与数据包的IP地址或端口相同的元素,则处理该数据包。
2.根据权利要求1所述的一种基于IP地址集合和端口集合的数据包规则匹配处理方法,其特征是所述IP地址集合中的元素包括:独立的IP地址及掩码、连续的IP地址段或者IP地址子集合。
3.根据权利要求1所述的一种基于IP地址集合和端口集合的数据包规则匹配处理方法,其特征是所述端口集合中的元素包括:独立的端口、连续的端口段或者端口子集合。
CN2009100806604A 2009-03-23 2009-03-23 基于ip地址集合和端口集合的数据包匹配处理方法 Expired - Fee Related CN101848190B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100806604A CN101848190B (zh) 2009-03-23 2009-03-23 基于ip地址集合和端口集合的数据包匹配处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100806604A CN101848190B (zh) 2009-03-23 2009-03-23 基于ip地址集合和端口集合的数据包匹配处理方法

Publications (2)

Publication Number Publication Date
CN101848190A CN101848190A (zh) 2010-09-29
CN101848190B true CN101848190B (zh) 2012-08-08

Family

ID=42772654

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100806604A Expired - Fee Related CN101848190B (zh) 2009-03-23 2009-03-23 基于ip地址集合和端口集合的数据包匹配处理方法

Country Status (1)

Country Link
CN (1) CN101848190B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102868692A (zh) * 2012-09-17 2013-01-09 苏州迈科网络安全技术股份有限公司 流分类策略压缩方法及系统
CN103581358B (zh) * 2013-10-18 2017-01-18 汉柏科技有限公司 Ip地址列表匹配方法及装置
CN106850657A (zh) * 2017-02-27 2017-06-13 郑州云海信息技术有限公司 一种高效的ip地址匹配方法
CN113794690B (zh) * 2021-08-20 2024-02-09 山石网科通信技术股份有限公司 数据处理方法、装置、非易失性存储介质及处理器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101068229A (zh) * 2007-06-08 2007-11-07 北京工业大学 一种基于网络过滤器的内容过滤网关实现方法
CN101162469A (zh) * 2007-11-09 2008-04-16 清华大学 基于快照的细粒度文件与目录版本管理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101068229A (zh) * 2007-06-08 2007-11-07 北京工业大学 一种基于网络过滤器的内容过滤网关实现方法
CN101162469A (zh) * 2007-11-09 2008-04-16 清华大学 基于快照的细粒度文件与目录版本管理方法

Also Published As

Publication number Publication date
CN101848190A (zh) 2010-09-29

Similar Documents

Publication Publication Date Title
CN101848190B (zh) 基于ip地址集合和端口集合的数据包匹配处理方法
CN106385365B (zh) 基于开放流Openflow表实现云平台安全的方法和装置
US11334567B2 (en) Efficient SQL-based graph random walk
CN103281211B (zh) 大规模网络节点分组管理系统及管理方法
CN104182393A (zh) 基于hash表的关键字映射处理方法和装置
Suthir et al. SNT algorithm and DCS protocols coalesced a contemporary hasty file sharing with network coding influence
CN103812774B (zh) 基于tcam的策略配置方法、报文处理方法及相应装置
CN103729461B (zh) 一种基于历史记录数据挖掘的发布和订阅方法
Moeini et al. Service specification and discovery in IoT networks
CN108063812A (zh) 实时云办公系统下文件管理的一致性维护方法
CN103281317A (zh) 一种软件定义网络的攻击测试方法
CN103150346B (zh) 一种基于可扩展标记语言的无线传感器网络数据压缩方法
US20210029175A1 (en) Security policy translation in interface to network security functions
CN104168147B (zh) 一种针对p2p网络监控基于一维链表的节点维护方法
Du et al. Sgp: a social network sampling method based on graph partition
Xu et al. A novel batch-based LKH tree balanced algorithm for group key management
Hautakorpi et al. A feasibility study of an arbitrary search in structured peer-to-peer networks
Ren et al. OpenSRN: A software-defined semantic routing network architecture
Fan et al. Global stability of multi-group SEIRS epidemic models with vaccination
CN102932199A (zh) 一种多核系统检测p2p流的方法和系统
Tang et al. Integrating local and partial network view for routing on scale-free networks
Wang et al. Modeling and robustness of knowledge network in supply chain
CN106204294A (zh) 一种基于复杂网络的微信网络演化模型构造方法
CN101163107B (zh) 一种在无线自组织网络中组合服务的执行路径的发现方法
Zhao et al. The research on software-defined wireless sensor network data forwarding method based on vector address

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
ASS Succession or assignment of patent right

Owner name: SUZHOU HIERSTAR LTD.

Free format text: FORMER OWNER: BEIJING TOPSENSE HIGH-TECH INFORMATION TECHNOLOGY CO., LTD.

Effective date: 20130607

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100085 HAIDIAN, BEIJING TO: 215200 SUZHOU, JIANGSU PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20130607

Address after: 215200, Jiangsu, Wujiang, Wujiang Economic Development Zone, south of Yang Lian Road, east of Changan Road (Science and Technology Pioneer Park), Suzhou

Patentee after: HIERSTAR (SUZHOU)., Ltd.

Address before: 100085, room 306, North building, rainbow building, No. 11 information road, Beijing, Haidian District

Patentee before: Beijing Topsense Info-Tech Co.,Ltd.

PP01 Preservation of patent right

Effective date of registration: 20160711

Granted publication date: 20120808

RINS Preservation of patent right or utility model and its discharge
PD01 Discharge of preservation of patent

Date of cancellation: 20170711

Granted publication date: 20120808

PD01 Discharge of preservation of patent
TR01 Transfer of patent right

Effective date of registration: 20170926

Address after: 100085, Beijing, Haidian District on the road No. 11 Rainbow Building on the third floor

Patentee after: Beijing Topsense Info-Tech Co.,Ltd.

Address before: 215200, Jiangsu, Wujiang, Wujiang Economic Development Zone, south of Yang Lian Road, east of Changan Road (Science and Technology Pioneer Park), Suzhou

Patentee before: HIERSTAR (SUZHOU)., Ltd.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120808