CN110442586A - 一种基于分类优先级的五元组查询方法 - Google Patents

一种基于分类优先级的五元组查询方法 Download PDF

Info

Publication number
CN110442586A
CN110442586A CN201910594661.4A CN201910594661A CN110442586A CN 110442586 A CN110442586 A CN 110442586A CN 201910594661 A CN201910594661 A CN 201910594661A CN 110442586 A CN110442586 A CN 110442586A
Authority
CN
China
Prior art keywords
tuple
priority
classification
rule
chained list
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.)
Pending
Application number
CN201910594661.4A
Other languages
English (en)
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 Zuojiang Science And Technology Co Ltd
Original Assignee
Beijing Zuojiang Science And 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 Zuojiang Science And Technology Co Ltd filed Critical Beijing Zuojiang Science And Technology Co Ltd
Priority to CN201910594661.4A priority Critical patent/CN110442586A/zh
Publication of CN110442586A publication Critical patent/CN110442586A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种基于分类优先级的五元组查询方法,其中,包括:建立有效规则链表,该链表是按照五元组分类的优先级进行排列的,有效规则是指其对应的五元组分类存在对应的规则,当该系统不存在任何规则时,则该链表为空;建立有效规则链表和五元组分类对应的32个元素的数组,并对该两个部分进行初始化,有效规则链表为空,五元组分类对应的32个元素中的num设置为0,discipline设置为空,规则实体部分为空;当系统框架初始化完毕后,进行规则的插入和删除,查询管理;从待处理数据包中提取所需的待处理五元组,随后利用优先级链表中高优先级元素所指向的规则,来进行五元组规则查询,若命中,则结束查找,若未命中,则遍历优先级链表继续进行查找。

Description

一种基于分类优先级的五元组查询方法
技术领域
本发明涉及网络传输技术,特别涉及一种基于分类优先级的五元组查询方法。
背景技术
近年来,随着网络的快速发展,网络数据包的转发效率显的尤为重要;目前,信息技术快速发展,其对应的数据量也迅速增长,在对大量数据量进行五元组信息查询时面临规则查询时间较长,现有的研究主要是通过改善规则存储算法的方式,从而来提高规则查询时间。五元组规则查找是网络数据转发过程中比较重要的一步,因而五元组规则查找成为一个值得研究的问题。
发明内容
本发明的目的就是提出一种根据分类优先级进行五元组规则查询的方法。
本发明一种基于分类优先级的五元组查询方法,其中,包括:建立有效规则链表,该有效规则链表按照五元组分类的优先级进行排列,有效规则是指其对应的五元组分类存在对应的规则,当该系统不存在任何规则时,则该链表为空;建立有效规则链表和五元组分类对应的32个元素的数组,并对该两个部分进行初始化,有效规则链表为空;当系统框架初始化完毕后,进行规则的插入和删除,查询管理;从待处理数据包中提取所需的待处理五元组,随后利用优先级链表中高优先级元素所指向的规则,来进行五元组规则查询,若命中,则结束查找,若未命中,则遍历优先级链表继续进行查找。
根据本发明的基于分类优先级的五元组查询方法的一实施例,其中,在查找过程中,从数据包中提取五元组,如最高优先级属于某一类,则查找时忽略提取到的其余4类元素。
根据本发明的基于分类优先级的五元组查询方法的一实施例,其中,五元组分类对应的32个元素中的参数num设置为0;当进行规则插入操作时,首先根据五元组中的有效字段来创建五元组,同时根据有效字段计算五元组分类数组中对应的下标,用A表示,根据下标找到该分类对应的规则链表,进行规则的插入,当插入完成后,参数num值加1,之后遍历有效规则链表,若链表中某一元素的五元组分类数组对应下标的值与A相同,则此次插入完成,否则根据优先级向有效规则链表中插入对应元素。
根据本发明的基于分类优先级的五元组查询方法的一实施例,其中,当进行规则删除时,根据有效字段计算五元组分类数组中对应的下标,通过五元组分类数组中的指向规则实体部分的参数discipline找到规则实体链表删除对应规则,同时num成员变量减1,当num的值减小到0后,删除优先级链表对应的元素,否则优先级链表不做任何修改。
根据本发明的基于分类优先级的五元组查询方法的一实施例,其中,在五元组中,共有五个元素,对该五个元素采用排列组合的方式,共有32种可能性,采用具有32个元素的数组表示五元组不同的组合方式,数组中的每个成员有指向规则实体部分参数discipline和规则实体部分的个数num;五元组对每一个元素,1表示有效,0表示无效,组成的数正好对应数组的下标。
根据本发明的基于分类优先级的五元组查询方法的一实施例,其中,所有规则按照所属五元组分类进行存储,在规则中体现对于五元组分类关心的元素。
根据本发明的基于分类优先级的五元组查询方法的一实施例,其中,待处理数据包中包含待处理五元组,负载数据以及信息,通过编程从待处理数据包中提取待处理的五元组。
本发明缩小了每一种五元组分类方式对应的规则容量大小,致使插入,删除,查询时间缩短,且根据排列组合的方式包含了所有的可能性,使模糊查找和精确查找综合在一起,使其具有更广泛的适用性。
附图说明
图1所示是五元组查询的系统架构图;
图2所示是维护流程图;
图3所示是五元组查询流程图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
图1所示的是五元组查询的系统架构图,如图1所示,该系统主要由三部分组成,分别在图1上方进行的标示,各部分说明如下:五元组分类,在五元组中,共有五个元素,对该五个元素采用排列组合的方式,共有32(因此NR_CATEGORY=32)种可能性,采用具有32个元素的数组表示五元组不同的组合方式,数组中的每个成员有两个参数,分别是参数discipline(指向规则实体部分)和uint32_tnum(规则实体部分的个数);该部分是该系统的枢纽部分,前后连接了其余两部分;
五元组包含源IP地址,源端口,目的IP地址,目的端口,传输层协议,针对每一个元素,1表示有效,0表示无效,用此方法组成的数正好对应数组的下标。
建立有效规则链表,该链表是按照五元组分类的优先级进行排列的,有效规则是指其对应的五元组分类存在对应的规则,当该系统不存在任何规则时,则该链表为空,当进行五元组查询时,依据链表优先顺序priority_order依次查找;
该有效规则链表中的每个成员有四个参数,分别是struct list_head *next,struct rules*category,uint8_t priority,uint8_t subscript,利用上述参数在进行规则插入和删除时做对应改动,查询时利用该链表按优先级从高到低进行遍历。数next指向链表中下一个元素,最后一个成员的next指针为NULL,参数priority_order指向链表的头结点;参数category指向五元组分类对应的位置处;参数priority是对应的五元组分类的优先级,数据越高,优先级越高,越靠近优先顺序priority_order,在进行链表元素插入时,遍历链表,寻找相邻的两个元素,其中一个元素的priority大于待插入元素的priority,一个元素的priority小于待插入元素的priority,待插入元素插入已找到的两个元素之间;subscript为图1中的中间部分数组的数组下标,该下标在规则的插入和删除中起关键作用。
对应分类规则,该部分是规则实体部分,所有规则按照所属五元组分类进行存储。为节约空间,不同的五元组分类对应的规则实体所采用的结构体存在差异。对于五元组分类中不关心的元素,不在规则中体现,因此共有32中不同的规则实体结构,比如对于类型的规则,规则实体中仅有一个成员。
图2是维护流程图,如图2所示,首先需要建立系统框架,首先建立有效规则链表和五元组分类对应的32个元素的数组,并对该两个部分进行初始化,有效规则链表为空,五元组分类对应的32个元素中的num设置为0,discipline设置为NULL,规则实体部分为空;
当系统框架初始化完毕后,就可以进行规则的插入和删除,查询管理。
当进行规则插入操作时,首先根据五元组中的有效字段来创建五元组,同时根据有效字段计算五元组分类数组中对应的下标,用A表示,根据下标可以找到该分类对应的规则链表,从而实现规则的插入,当插入完成后,结构体rules中的num字段值加1,之后遍历有效规则链表,若链表中某一元素的subscript的值与A相同,则此次插入完成,否则根据优先级(用户进行设置)向有效规则链表中插入对应元素,并设置参数category,参数priority和参数subscript。
参考图1,进行插入规则的过程,插入时,考虑图1中的三部分,规则插入到对应分类规则链表;struct rules中的成员num增加1,表示其对应分类规则成员增加1;遍历有效规则链表,若其中所有成员的结构体subsript均不等于A,则有效规则链表增加一个成员,否则不做处理。
当进行规则删除时,同插入操作相同,根据有效字段计算五元组分类数组中对应的下标,通过五元组分类数组中的discipline找到规则实体链表删除对应规则,同时结构体rules中的num成员变量减1,当num的值减小到0后,删除优先级链表对应的元素,否则优先级链表不做任何修改。
该方法采用的这种方式,控制了优先级链表的元素个数在可控范围内,元素个数少,致使插入和删除,查询操作很快完成。
图3所示是五元组查询流程图,如图3所示,五元组规则查询包括:
首先从待处理数据包中提取所需的待处理五元组,(其中待处理数据包中包含待处理五元组,负载数据等信息,通过编程从待处理数据包中提取待处理的五元组),随后利用优先级链表中高优先级元素所指向的规则(即找到对应规则库和查找规则节点,该节点相对于同一五元组分类位置固定),来进行五元组规则查询,若命中,则结束查找,若未命中,则遍历优先级链表继续进行查找。
在查找过程中,会从数据包中提取五元组,假如最高优先级属于类(属于该类的五元组分类共有五种),则查找时忽略提取到的其余4类元素,只关心有效元素,该特点使五元组精确查找和模糊查找综合在一起。
本发明是对五元组所包含的5种元素进行排列组合分类,其种类个数不超过32,因此在该方法中,实际的种类个数在0到32之间,每一类具有其相对应的规则,且对实际存在的种类进行优先级排列,进而确定五元组查找的顺序。
本发明利用排列组合方式,包含了五元组所有的分类方式,针对不同分类方式,设置其对应优先级,按照该优先级顺序进行五元组查询。
与现有技术相比,较多的分类方式,缩小了每一种五元组分类方式对应的规则容量大小,致使插入,删除,查询时间缩短,且根据排列组合的方式包含了所有的可能性,使模糊查找和精确查找综合在一起,使其具有更广泛的适用性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (7)

1.一种基于分类优先级的五元组查询方法,其特征在于,包括:
建立有效规则链表,该有效规则链表按照五元组分类的优先级进行排列,有效规则是指其对应的五元组分类存在对应的规则,当该系统不存在任何规则时,则该链表为空;
建立有效规则链表和五元组分类对应的32个元素的数组,并对该两个部分进行初始化,有效规则链表为空;
当系统框架初始化完毕后,进行规则的插入和删除,查询管理;
从待处理数据包中提取所需的待处理五元组,随后利用优先级链表中高优先级元素所指向的规则,来进行五元组规则查询,若命中,则结束查找,若未命中,则遍历优先级链表继续进行查找。
2.如权利要求1所述的基于分类优先级的五元组查询方法,其特征在于,在查找过程中,从数据包中提取五元组,如最高优先级属于某一类,则查找时忽略提取到的其余4类元素。
3.如权利要求1所述的基于分类优先级的五元组查询方法,其特征在于,五元组分类对应的32个元素中的参数num设置为0;当进行规则插入操作时,首先根据五元组中的有效字段来创建五元组,同时根据有效字段计算五元组分类数组中对应的下标,用A表示,根据下标找到该分类对应的规则链表,进行规则的插入,当插入完成后,参数num值加1,之后遍历有效规则链表,若链表中某一元素的五元组分类数组对应下标的值与A相同,则此次插入完成,否则根据优先级向有效规则链表中插入对应元素。
4.如权利要求1所述的基于分类优先级的五元组查询方法,其特征在于,当进行规则删除时,根据有效字段计算五元组分类数组中对应的下标,通过五元组分类数组中的指向规则实体部分的参数discipline找到规则实体链表删除对应规则,同时num成员变量减1,当num的值减小到0后,删除优先级链表对应的元素,否则优先级链表不做任何修改。
5.如权利要求1所述的基于分类优先级的五元组查询方法,其特征在于,在五元组中,共有五个元素,对该五个元素采用排列组合的方式,共有32种可能性,采用具有32个元素的数组表示五元组不同的组合方式,数组中的每个成员有指向规则实体部分参数discipline和规则实体部分的个数num;
五元组对每一个元素,1表示有效,0表示无效,组成的数正好对应数组的下标。
6.如权利要求1所述的基于分类优先级的五元组查询方法,其特征在于,所有规则按照所属五元组分类进行存储,在规则中体现对于五元组分类关心的元素。
7.如权利要求1所述的基于分类优先级的五元组查询方法,其特征在于,待处理数据包中包含待处理五元组,负载数据以及信息,通过编程从待处理数据包中提取待处理的五元组。
CN201910594661.4A 2019-07-03 2019-07-03 一种基于分类优先级的五元组查询方法 Pending CN110442586A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910594661.4A CN110442586A (zh) 2019-07-03 2019-07-03 一种基于分类优先级的五元组查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910594661.4A CN110442586A (zh) 2019-07-03 2019-07-03 一种基于分类优先级的五元组查询方法

Publications (1)

Publication Number Publication Date
CN110442586A true CN110442586A (zh) 2019-11-12

Family

ID=68429367

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910594661.4A Pending CN110442586A (zh) 2019-07-03 2019-07-03 一种基于分类优先级的五元组查询方法

Country Status (1)

Country Link
CN (1) CN110442586A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111431875A (zh) * 2020-03-12 2020-07-17 杭州迪普科技股份有限公司 一种下发插入规则的方法及装置
CN113656329A (zh) * 2021-08-09 2021-11-16 国家计算机网络与信息安全管理中心 一种基于tcam的掩码规则插入方法、电子设备和存储介质
CN114430341A (zh) * 2021-12-29 2022-05-03 武汉绿色网络信息服务有限责任公司 一种基于exact规则转mask规则的实现方法与装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1725736A (zh) * 2005-06-30 2006-01-25 杭州华为三康技术有限公司 配置访问控制列表的方法及其应用
US20090141716A1 (en) * 2007-11-30 2009-06-04 Hangzhou H3C Technologies Co., Ltd. Method and apparatus for packet rule matching
CN103188231A (zh) * 2011-12-30 2013-07-03 北京锐安科技有限公司 一种多核板卡acl规则匹配方法
CN103354527A (zh) * 2013-07-02 2013-10-16 中国人民解放军信息工程大学 提高服务质量的方法、装置及系统
CN106326234A (zh) * 2015-06-18 2017-01-11 深圳市中兴微电子技术有限公司 流分类方法及装置
CN109902204A (zh) * 2019-01-16 2019-06-18 北京左江科技股份有限公司 一种内容模糊查找方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1725736A (zh) * 2005-06-30 2006-01-25 杭州华为三康技术有限公司 配置访问控制列表的方法及其应用
US20090141716A1 (en) * 2007-11-30 2009-06-04 Hangzhou H3C Technologies Co., Ltd. Method and apparatus for packet rule matching
CN103188231A (zh) * 2011-12-30 2013-07-03 北京锐安科技有限公司 一种多核板卡acl规则匹配方法
CN103354527A (zh) * 2013-07-02 2013-10-16 中国人民解放军信息工程大学 提高服务质量的方法、装置及系统
CN106326234A (zh) * 2015-06-18 2017-01-11 深圳市中兴微电子技术有限公司 流分类方法及装置
CN109902204A (zh) * 2019-01-16 2019-06-18 北京左江科技股份有限公司 一种内容模糊查找方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111431875A (zh) * 2020-03-12 2020-07-17 杭州迪普科技股份有限公司 一种下发插入规则的方法及装置
CN111431875B (zh) * 2020-03-12 2022-07-01 杭州迪普科技股份有限公司 一种下发插入规则的方法及装置
CN113656329A (zh) * 2021-08-09 2021-11-16 国家计算机网络与信息安全管理中心 一种基于tcam的掩码规则插入方法、电子设备和存储介质
CN113656329B (zh) * 2021-08-09 2024-02-02 国家计算机网络与信息安全管理中心 一种基于tcam的掩码规则插入方法、电子设备和存储介质
CN114430341A (zh) * 2021-12-29 2022-05-03 武汉绿色网络信息服务有限责任公司 一种基于exact规则转mask规则的实现方法与装置

Similar Documents

Publication Publication Date Title
CN102484610B (zh) 路由表建立方法和装置及路由表查找方法和装置
CN110442586A (zh) 一种基于分类优先级的五元组查询方法
CN103238145B (zh) 用于网络装备中的高性能、可更新和确定的哈希表的方法和设备
CN104579941A (zh) 一种OpenFlow交换机中的报文分类方法
CN103473248B (zh) 一种路网环境下的连续移动k近邻查询方法
CN101655861B (zh) 基于双计数布鲁姆过滤器的哈希方法和哈希装置
CN100385880C (zh) 分组分类装置和使用字段级特里结构的方法
CN103631928A (zh) 一种基于局部敏感哈希的聚类索引方法及系统
CN101009656A (zh) 路由系统及其管理规则条目的方法
CN110070121A (zh) 一种基于树策略与平衡k均值聚类的快速近似k近邻方法
CN106708956B (zh) 一种基于多url规则集的http数据匹配方法
CN105975587A (zh) 一种高性能的内存数据库索引组织与访问方法
CN102420771B (zh) 高速网络环境中提高tcp并发连接速度的方法
CN105262833B (zh) 一种内容中心网络的跨层缓存方法及其节点
CN109471905A (zh) 一种支持时间范围和属性范围复合查询的区块链索引方法
CN108388642A (zh) 一种子图查询方法、装置及计算机可读存储介质
EP1063827B1 (en) Method for address lookup
CN111079949A (zh) 一种哈希学习方法、无监督的在线哈希学习方法及其应用
CN101286935A (zh) 一种基于ip地址范围的路由查找方法
CN106156281A (zh) 基于Hash‑Cube空间层次划分结构的最近邻点集快速检索方法
Mishra et al. PC-DUOS: Fast TCAM lookup and update for packet classifiers
CN103500165B (zh) 一种结合聚类和双key值的高维向量检索方法
CN112417507B (zh) 一种基于隐私保护的大型图的节点三角形计数的发布方法
CN106020724A (zh) 一种基于数据映射算法的近邻存储方法
CN110995876B (zh) 一种ip存储与查找的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20191112

RJ01 Rejection of invention patent application after publication