CN109194536A - 一种网络流量过滤方法、装置及终端 - Google Patents
一种网络流量过滤方法、装置及终端 Download PDFInfo
- Publication number
- CN109194536A CN109194536A CN201810845271.5A CN201810845271A CN109194536A CN 109194536 A CN109194536 A CN 109194536A CN 201810845271 A CN201810845271 A CN 201810845271A CN 109194536 A CN109194536 A CN 109194536A
- Authority
- CN
- China
- Prior art keywords
- network address
- filtered
- network
- binary tree
- node
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000001914 filtration Methods 0.000 claims abstract description 147
- 241001582888 Lobus Species 0.000 claims description 41
- 238000004590 computer program Methods 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 14
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 238000004458 analytical method Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 235000012054 meals Nutrition 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种网络流量过滤方法、装置及终端,涉及网流量监控领域,主要目的在于解决客户端应用程序更新时兼容性差及人工成本高的问题。本发明的主要技术方案包括:获得待过滤网络地址;在预设的二叉树过滤模型中查找与所述待过滤网络地址匹配的目标网络地址,获得查找结果,其中,所述二叉树过滤模型用于描述已知网络地址中每一位编码之间的关系;若所述查找结果表明查找到所述目标网络地址,则按照所述目标网络地址对应的过滤规则过滤所述待过滤网络。
Description
技术领域
本发明涉及网流量监控领域,特别是涉及一种网络流量过滤方法、装置及终端。
背景技术
随着互联网络的普及,目前移动终端通过移动网络接入互联网时,很多无用的域名、站点会占用宝贵的流量资源从而使用户流量的费用提高,或者快速消耗用户流量套餐中的流量。
目前,为了解决上述问题,大多采用黑名单或者白名单的方式来对网络流量进行过滤。但是,由于无用的域名或者站点数量庞大且层出不穷,无法完全将这些无用的域名或者站点全部列入黑名单,这样就无法达到有效的网络流量过滤;若将相对来说属于少数的有用的域名或者站点列入白名单的话,也还是存在由于有用的域名或者站点的绝对数目仍然非常大,比如超过1000万个,在进行网络流量过滤时导致网络流量存储分析数据量较多,占用较多的系统资源。
所以,现有技术中并不存在一种合理的网络流量过滤方法。
发明内容
有鉴于此,本发明实施例提供一种网络流量过滤方法、装置及终端,主要目的在于减少网络流量存储分析数据量,进而实现网络流量的快速过滤。
依据本发明实施例第一个方面,提供了一种网络流量过滤方法,包括:获得待过滤网络地址;在预设的二叉树过滤模型中查找与所述待过滤网络地址匹配的目标网络地址,获得查找结果,其中,所述二叉树过滤模型用于描述已知网络地址中每一位编码之间的关系;若所述查找结果表明查找到所述目标网络地址,则按照所述目标网络地址对应的过滤规则过滤所述待过滤网络。
依据本发明实施例第二个方面,提供了一种网络流量过滤装置,包括:获得单元,用于获得待过滤网络地址;查找单元,用于在预设的二叉树过滤模型中查找与所述待过滤网络地址匹配的目标网络地址,获得查找结果,其中,所述二叉树过滤模型用于描述已知网络地址中每一位编码之间的关系;过滤单元,用于若所述查找结果表明查找到所述目标网络地址,则按照所述目标网络地址对应的过滤规则过滤所述待过滤网络。
依据本发明实施例第三个方面,提供了一种终端,包括:存储器和处理器,所述存储器用于存储计算机程序;所述处理器用于在调用所述计算机程序时执行如上述技术方案所述的网络流量过滤方法。
依据本发明实施例第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述技术方案所述的网络流量过滤方法。
借由上述技术方案,本发明实施例提供的网络流量过滤方法、装置及终端,在获得待过滤网络地址之后,在预设的二叉树过滤模型中查找与待过滤网络地址匹配的目标网络地址,获得查找结果,这里,二叉树过滤模型用于描述已知网络地址中每一位编码之间的关系,那么,若查找结果表明查找到目标网络地址,则按照目标网络地址对应的过滤规则过滤待过滤网络。与现有技术相比,本发明实施例中采用根据已知网络地址的编码构建的该二叉树过滤模型来对待过滤网络地址进行过滤,这样,无需遍历列表式的黑名单或者白名单,而是可以将待过滤网络地址与二叉树过滤模型中的节点进行较少次数的匹配,来确定待过滤网络地址是否为已知网络地址,再对待过滤网络地址进行过滤。如此,大大减少网络流量存储分析数据量,进而实现网络流量的快速过滤。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例中的网络流量过滤方法的实施流程示意图;
图2为本发明实施例中的二叉树过滤模型的示意图;
图3为本发明实施例中的网络流量过滤装置的结构示意图;
图4为本发明实施例中的终端的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在相关技术中,在进行网络流量过滤时,往往采用列表式的白名单或者黑名单,通过遍历列表内的已知网络地址,来与待过滤网络地址进行匹配,若匹配成功,则表明待过滤网络地址包含在白名单或者黑名单中,进而对该待过滤网络地址进行相应的操作。但是,在实际应用中,白名单或者黑名单中已知网络地址的数量可能会出现百万级,甚至千万级,那么,如果对这么多已知网络地址都逐一匹配的话,网络流量存储分析数据量是十分庞大的,占用较多的系统资源。
那么,为了解决上述技术问题,本发明实施例提供一种网络流量过滤方法,该方法可以应用于如智能手机、平板电脑、笔记本电脑、台式电脑等终端上,当然,还可以应用于其他终端,只要该终端具备访问网络的功能即可,本发明实施例不作具体限定。
图1为本发明实施例中的网络流量过滤方法的实施流程示意图,参见图1所示,该方法可以包括:
S101:获得待过滤网络地址;
这里,当终端通过如3G(第三代移动通信技术,3rd-Generation)网络、4G(第四代移动通信技术,4th-Generation)网络或者Wi-Fi(无线保真,Wireless-Fidelity)等访问互联网时,许多网络地址就会占用终端的网络来进行数据的交互,如上传数据或者下载数据,那么,终端在检测到要访问某一个网络地址时,首先,获取该网络地址,也就是待过滤网络地址。
在实际应用中,本发明实施例中所述的网络地址为IP(网络之间互连的协议,Internet Protocol)地址,可以为IPv4(网际协议版本4,Internet Protocol Version 4)地址,也可以为IPv6(网际协议版本6,Internet Protocol Version 6)地址,当然,也可以为IP的其他演进版本,本发明实施例不作具体限定。
S102:在预设的二叉树过滤模型中查找与待过滤网络地址匹配的目标网络地址,获得查找结果;
其中,二叉树过滤模型用于描述已知网络地址中每一位编码之间的关系;
这里,为了减少网络流量存储分析数据量,终端中预先存储有以二叉树方式的黑名单或者白名单,也就是二叉树过滤模型。该二叉树过滤模型是根据黑名单或者白名单中的已知网络地址的编码构建的,每一个节点与已知网络地址的每一位编码对应。那么,终端在S101获得待过滤网络地址后,就可以在二叉树过滤模型中查找是否存在与待过滤网络地址匹配的已知网络地址,即目标网络地址,并输出相应的查找结果。
S103:若查找结果表明查找到目标网络地址,则按照目标网络地址对应的过滤规则过滤待过滤网络。
这里,如果上述查找结果表明查找到了与待过滤网络地址匹配的目标网络地址,就说明待过滤网络地址包含于二叉树过滤模型所表征的白名单或者黑名单,此时,终端可以允许或者禁止访问目标网络地址,也就是说,当目标网络地址为合法网络地址时,允许待过滤网络地址访问;或者,当目标网络地址为非法网络地址时,禁止待过滤网络地址访问。例如,二叉树过滤模型是用来表征访问白名单的,那么,如果待过滤网络地址包含于该白名单,则终端允许访问该待过滤网络地址;反之,二叉树过滤模型是用来表征访问黑名单的,那么,如果待过滤网络地址包含于该黑名单,则终端禁止访问该待过滤网络地址。
由此可知,在本发明实施例中,采用根据已知网络地址的编码构建的该二叉树过滤模型来对待过滤网络地址进行过滤,这样,无需遍历列表式的黑名单或者白名单,而是可以将待过滤网络地址与二叉树过滤模型中的节点进行较少次数的匹配,来确定待过滤网络地址是否为已知网络地址,再对待过滤网络地址进行过滤。如此,大大减少网络流量存储分析数据量,节约系统资源,进而实现网络流量的快速过滤。
基于前述实施例,为了实现网络地址的查找,终端可以预先构建上述二叉树过滤模型,并保存,那么,二叉树过滤模型的具体构建过程可以为:获得网络地址集合,网络地址集合中包括合法性相同的已知网络地址;根据已知网络地址的编码,构建二叉树过滤模型,二叉树过滤模型的每一个节点与已知网络地址的每一位编码对应。
具体来说,首先,终端获得包含已知网络地址的网络地址集合,在该网络地址集合中可以包含数量级在百万级甚至千万级的已知网络地址,将这些已知网络地址按照其编码逐位地添加到二叉树中,使得二叉树过滤模型的每一个节点与已知网络地址的每一位编码对应,由此生成二叉树过滤模型。
以已知网络地址为IPv4地址为例,举例来说,终端获得包含两个已知网络地址的网络地址集合,这两个已知网络地址分别为:10.0.1.2、64.255.255.255,相应地,两个网络地址的编码分别为:00001010000000000000000100000010、01000000111111111111111111111111,每个已知网络地址均为32位编码。接下来,结合图2所示(其中虚线表示省略),逐位将上述网络地址的编码添加到二叉树201中,第一网络地址的第1位为0,第二网络地址的第1位为0,那么,就分别以关键字值为0的节点分别作为二叉树的第一个根节点;第一网络地址的第2位为0,第二网络地址的第2位为1,那么,就在关键字值为0的根节点下,将关键字值为0的节点链接为其左叶子节点,将关键字值为1的节点链接为其右叶子节点,第一网络地址的第3位为0,第二网络地址的第3位为0,那么,就在关键字值为0的第2个根节点下,将关键字值为0的节点链接为其左叶子节点,此时,第2个根节点的右叶子节点为空,同样的,在关键字值为1的第2个根节点下,将关键字值为0的节点链接为其左叶子节点,此时,第2个根节点的右叶子节点为空。如此类推,将每个已知网络地址的32位编码全部添加到二叉树中,构建二叉树过滤模型。
需要说明的是,根据已知网络地址的第1位编码的值,可以构建包含一个二叉树的二叉树过滤模型,也可以构建出包括两个二叉树的二叉树过滤模型。那么,若存在另一个已知网络地址的第1位编码为1时,将关键字值为1的节点作为第一根节点,接下来,若已知网络地址的第2位编码为1,则在关键字值为1的根节点下仅链接关键字值为1的节点为其右叶子节点,此时,关键字值为1的根节点的左叶子节点为空。当然,对于不同的编码方式,构建的二叉树过滤模型也可以为其他,本发明实施例不作具体限定。
当然,上述二叉树过滤模型中,还可以将关键字值为1的节点作为根节点的左叶子节点,将关键字值为0的节点作为根节点的右叶子节点,本发明实施例不具体限定。
在本发明实施例中,终端在构建了上述二叉树过滤模型后,S102可以包括:将待过滤网络地址输入二叉树过滤模型;沿着二叉树过滤模型的根节点,将待过滤网络地址的每一位编码逐位与二叉树过滤模型的节点匹配,输出查找结果。
具体来说,终端将待过滤网络地址输入二叉树过滤模型,待过滤网络地址由第一位编码开始逐位与二叉树过滤模型中的二叉树上的节点进行匹配,直至每一位编码都匹配到一个节点,或者某一位编码没有匹配到节点,此时,流程结束,输出查找结果。在实际应用中,若每一位编码在二叉树过滤模型中都匹配有一个节点,则表明在二叉树过滤模型中查找到了与待过滤网络地址对应的目标网络地址,输出相应的查找结果;若任一位编码,也就是待过滤网络地中的任意一位编码在二叉树过滤模型中不存在匹配的节点,则表明未查找到上述目标网络地址,输出相应的查找结果。
那么,具体的匹配过程如下:对于待过滤网络地址的第i位编码,将其与第i个根节点的关键字值进行匹配,i可以为正整数;若第i位编码小于或者等于第i个根节点的关键字值,则将第i+1位编码与第i个根节点的左叶子节点进行匹配;若第i位编码大于第i个根节点的关键字值,则将第i+1位编码与第i个根节点的右叶子节点进行匹配;直至每一位编码在二叉树过滤模型中匹配有一个节点,比如待过滤网络地址为32位编码,那么,在第32位编码与第31个根节点的叶子节点匹配完成后,就表示这32位编码中每一位都匹配到了对应的一个节点;或者直至第i个根节点的左叶子节点或者右叶子节点为空,确定待过滤网络地址中任一位编码在二叉树过滤模型中不存在匹配的节点,比如待过滤网络地址为32位编码,那么,假设第2位编码大于第2个根节点的关键字值,此时,第3位编码就应该与第2个根节点的右叶子节点匹配,但是若第2个根节点的右叶子节点为空,就表示第2位编码不存在匹配的节点。
在本发明其他实施例中,在采用二叉树过滤模型进行网络地址匹配的过程中,还可以先判断一下二叉树过滤模型中是否存在对应的二叉树,所以,在将第i位编码与第i个根节点的关键字值进行匹配之前,方法还可以包括:当i=1时,判断二叉树过滤模型中是否存在待过滤网络地址的第1位编码匹配的第1个根节点;若存在,则返回将第i位编码与第i个根节点的关键字值进行匹配的步骤;若不存在,则确定待过滤网络地址中任一位编码在二叉树过滤模型中不存在匹配的节点。
这里,由于对于二叉树的第1个根节点来说,其为整个二叉树的根节点,并不具备相应的根节点,所以,终端首先可以判断二叉树过滤模型中是否存在待过滤网络地址的第1位编码匹配的第1个根节点,若存在,就继续对第2位编码进行匹配,返回上述将第i位编码与第i个根节点的关键字值进行匹配的步骤;若不存在,流程结束,确定待过滤网络地址中任一位编码在二叉树过滤模型中不存在匹配的节点。
下面以具体实例来对上述网络地址过滤方法进行说明。
假设,终端获得的待过滤网络地址为10.0.1.2,编码为00001010000000000000000100000010,然后,终端将该网络地址输入如图2所示的表示白名单的二叉树过滤模型中,先判断第1位编码0是否存在匹配的第1个根节点,在二叉树过滤模型中存在关键字值为0的第1个根节点,然后,将第2位编码0继续与第1个根节点的左叶子节点进行匹配,匹配成功,此时,该左叶子节点就是第2个根节点,接着,继续将第3位编码0继续与第2个根节点的左叶子节点进行匹配,如此类推,直至将第32位编码0与第31个根节点的左叶子节点匹配成功,流程结束,说明在二叉树过滤模型中查找到了与待过滤网络地址对应的目标网络地址10.0.1.2,输出查找结果,最后,终端允许访问10.0.1.2。
或者,终端获得的待过滤网络地址为10.1.1.2,编码为00001010000000010000000100000010,然后,终端将该网络地址输入如图2所示的表示白名单的二叉树过滤模型中,先判断第1位编码0是否存在匹配的第1个根节点,在二叉树过滤模型中存在关键字值为0的第1个根节点,然后,将第2位编码0继续与第1个根节点的左叶子节点进行匹配,匹配成功,此时,该左叶子节点就是第2个根节点,接着,继续将第3位编码0继续与第2个根节点的左叶子节点进行匹配,如此类推,直至将第16位编码1与第15个根节点的右叶子节点匹配,此时右叶子节点为空,流程结束,说明在二叉树过滤模型中未查找到了与待过滤网络地址对应的目标网络地址,输出查找结果,最后,终端禁止访问10.1.1.2。
由上述可以看出,由于网络地址的编码位数相对来说较少,如IPv4地址为32位编码,IPv6地址为128编码,并且每一位编码仅有两个取值,所以,由上述过程构建的二叉树过滤模型中节点的数量也是相对来说较少的。如果将待过滤网络地址的编码与二叉树过滤模型中的节点进行匹配,也仅需要匹配32次或者128次,大大减少网络流量存储分析数据量,节约系统资源,进而实现网络流量的快速过滤。
借由上述技术方案,本发明实施例提供的网络流量过滤方法,在获得待过滤网络地址之后,在预设的二叉树过滤模型中查找与待过滤网络地址匹配的目标网络地址,获得查找结果,这里,二叉树过滤模型用于描述已知网络地址中每一位编码之间的关系,那么,若查找结果表明查找到目标网络地址,则按照目标网络地址对应的过滤规则过滤待过滤网络。与现有技术相比,本发明实施例中采用根据已知网络地址的编码构建的该二叉树过滤模型来对待过滤网络地址进行过滤,这样,无需遍历列表式的黑名单或者白名单,而是可以将待过滤网络地址与二叉树过滤模型中的节点进行较少次数的匹配,来确定待过滤网络地址是否为已知网络地址,再对待过滤网络地址进行过滤。如此,大大减少网络流量存储分析数据量,进而实现网络流量的快速过滤。
基于同一发明构思,本发明实施例提供一种网络流量过滤装置,该装置可以应用于上述如智能手机、平板电脑、笔记本电脑、台式电脑等终端。
图3为本发明实施例中的网络流量过滤装置的结构示意图,参见图3所示,该网络流量过滤装置300可以包括:获得单元301,用于获得待过滤网络地址;查找单元302,用于在预设的二叉树过滤模型中查找与待过滤网络地址匹配的目标网络地址,获得查找结果,其中,二叉树过滤模型用于描述已知网络地址中每一位编码之间的关系;过滤单元303,用于若查找结果表明查找到目标网络地址,则按照目标网络地址对应的过滤规则过滤待过滤网络。
在实际应用中,本发明实施例中所述的网络地址为IP(网络之间互连的协议,Internet Protocol)地址,可以为IPv4(网际协议版本4,Internet Protocol Version 4)地址,也可以为IPv6(网际协议版本6,Internet Protocol Version 6)地址,当然,也可以为IP的其他演进版本,本发明实施例不作具体限定。
在本发明实施例中,上述查找单元,包括:输入子单元,用于将待过滤网络地址输入二叉树过滤模型;匹配子单元,用于沿着二叉树过滤模型的根节点,将待过滤网络地址的每一位编码逐位与二叉树过滤模型的节点匹配;输出子单元,用于输出查找结果。
在本发明实施例中,上述输出子单元,用于若每一位编码在二叉树过滤模型中匹配有一个节点,则输出用于表明查找到目标网络地址的查找结果;还用于若任一位编码在二叉树过滤模型中不存在匹配的节点,则输出用于表明未查找到目标网络地址的查找结果。
在本发明实施例中,上述匹配子单元,用于将第i位编码与第i个根节点的关键字值进行匹配,i为正整数;若第i位编码小于或者等于第i个根节点的关键字值,则将第i+1位编码与第i个根节点的左叶子节点进行匹配;若第i位编码大于第i个根节点的关键字值,则将第i+1位编码与第i个根节点的右叶子节点进行匹配;直至第i个根节点的左叶子节点或者右叶子节点为空,确定待过滤网络地址中任一位编码在二叉树过滤模型中不存在匹配的节点。
在本发明实施例中,上述查找单元,还包括:判断子单元,用于当i=1时,在匹配子单元将第i位编码与第i个根节点的关键字值进行匹配之前,判断二叉树过滤模型中是否存在待过滤网络地址的第1位编码匹配的第1个根节点;若存在,则调用匹配子单元;若不存在,则确定待过滤网络地址中任一位编码在二叉树过滤模型中不存在匹配的节点。
在本发明实施例中,上述装置还包括:建模单元,用于获得网络地址集合,网络地址集合中包括合法性相同的已知网络地址;根据已知网络地址的编码,构建二叉树过滤模型,二叉树过滤模型的每一个节点与已知网络地址的每一位编码对应。
在本发明实施例中,上述过滤单元,用于当目标网络地址为合法网络地址时,允许待过滤网络地址访问;或者,当目标网络地址为非法网络地址时,禁止待过滤网络地址访问。
这里需要指出的是:以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同该方法实施例相似的有益效果。对于本发明装置实施例中未披露的技术细节,请参照本发明中方法实施例的描述而理解。
基于同一发明构思,本发明实施例还提供一种终端,与上述一个或者多个实施例所述的终端一致。
图4为本发明实施例中的终端的结构示意图,参见图4所示,该终端40包括:至少一个处理器41;以及与处理器41连接的至少一个存储器42、总线43;其中,处理器41、存储器42通过总线43完成相互间的通信;处理器41用于调用存储器42中的程序指令,以执行如上述一个或者多个实施例所述的网络流量过滤方法的步骤。
需要说明是,上述处理器可以包括中央处理器(CPU,Central Processing Unit)、图形处理器(GPU,Graphics Processing Unit)、嵌入式微控制器(MCU,MicrocontrollerUnit)、嵌入式微处理器(EMPU,Embedded Microprocessor Unit)、嵌入式数字信号处理器(DSP,Digital Signal Processor)或者嵌入式片上系统(SoC,System on a Chip),还可以包括驱动电路等。本发明实施例不做具体限定。
这里需要指出的是:以上终端实施例的描述,与上述方法实施例的描述是类似的,具有同该方法实施例相似的有益效果。对于本发明终端实施例中未披露的技术细节,请参照本发明中方法实施例的描述而理解。
基于同一发明构思,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述一个或者多个实施例所述的网络流量过滤方法的步骤。
借由上述技术方案,本发明实施例提供的网络流量过滤方法、装置及终端,在获得待过滤网络地址之后,在预设的二叉树过滤模型中查找与待过滤网络地址匹配的目标网络地址,获得查找结果,这里,二叉树过滤模型用于描述已知网络地址中每一位编码之间的关系,那么,若查找结果表明查找到目标网络地址,则按照目标网络地址对应的过滤规则过滤待过滤网络。与现有技术相比,本发明实施例中采用根据已知网络地址的编码构建的该二叉树过滤模型来对待过滤网络地址进行过滤,这样,无需遍历列表式的黑名单或者白名单,而是可以将待过滤网络地址与二叉树过滤模型中的节点进行较少次数的匹配,来确定待过滤网络地址是否为已知网络地址,再对待过滤网络地址进行过滤。如此,大大减少网络流量存储分析数据量,进而实现网络流量的快速过滤。
本发明实施例还提供A1、一种网络流量过滤方法,包括:获得待过滤网络地址;在预设的二叉树过滤模型中查找与所述待过滤网络地址匹配的目标网络地址,获得查找结果,其中,所述二叉树过滤模型用于描述已知网络地址中每一位编码之间的关系;若所述查找结果表明查找到所述目标网络地址,则按照所述目标网络地址对应的过滤规则过滤所述待过滤网络。
A2、根据A1所述的方法,所述在预设的二叉树过滤模型中查找与所述待过滤网络地址匹配的目标网络地址,获得查找结果,包括:将所述待过滤网络地址输入所述二叉树过滤模型;沿着所述二叉树过滤模型的根节点,将所述待过滤网络地址的每一位编码逐位与所述二叉树过滤模型的节点匹配,输出所述查找结果。
A3、根据A2所述的方法,所述将所述待过滤网络地址的每一位编码逐位与所述二叉树过滤模型的节点匹配,输出所述查找结果,包括:若所述每一位编码在所述二叉树过滤模型中匹配有一个节点,则输出用于表明查找到所述目标网络地址的查找结果;若任一位编码在所述二叉树过滤模型中不存在匹配的节点,则输出用于表明未查找到所述目标网络地址的查找结果。
A4、根据A3所述的方法,所述将所述待过滤网络地址的每一位编码逐位与所述二叉树过滤模型的节点匹配,包括:将所述第i位编码与所述第i个根节点的关键字值进行匹配,i为正整数;若所述第i位编码小于或者等于所述第i个根节点的关键字值,则将第i+1位编码与所述第i个根节点的左叶子节点进行匹配;若所述第i位编码大于所述第i个根节点的关键字值,则将第i+1位编码与所述第i个根节点的右叶子节点进行匹配;直至所述第i个根节点的左叶子节点或者右叶子节点为空,确定所述待过滤网络地址中任一位编码在所述二叉树过滤模型中不存在匹配的节点。
A5、根据A4所述的方法,在所述将所述第i位编码与所述第i个根节点的关键字值进行匹配之前,所述方法还包括:当i=1时,判断所述二叉树过滤模型中是否存在所述待过滤网络地址的第1位编码匹配的第1个根节点;若存在,则返回将所述第i位编码与所述第i个根节点的关键字值进行匹配的步骤;若不存在,则确定所述待过滤网络地址中任一位编码在所述二叉树过滤模型中不存在匹配的节点。
A6、根据A1所述的方法,所述方法还包括:获得网络地址集合,所述网络地址集合中包括合法性相同的已知网络地址;根据所述已知网络地址的编码,构建所述二叉树过滤模型,所述二叉树过滤模型的每一个节点与所述已知网络地址的每一位编码对应。
A7、根据A1所述的方法,所述按照所述目标网络地址对应的过滤规则过滤所述待过滤网络,包括:当所述目标网络地址为合法网络地址时,允许访问所述待过滤网络地址;或者,当所述目标网络地址为非法网络地址时,禁止访问所述待过滤网络地址。
本发明实施例还提供B8、一种网络流量过滤装置,包括:获得单元,用于获得待过滤网络地址;查找单元,用于在预设的二叉树过滤模型中查找与所述待过滤网络地址匹配的目标网络地址,获得查找结果,其中,所述二叉树过滤模型用于描述已知网络地址中每一位编码之间的关系;过滤单元,用于若所述查找结果表明查找到所述目标网络地址,则按照所述目标网络地址对应的过滤规则过滤所述待过滤网络。
B9、根据B8所述的装置,所述查找单元,包括:输入子单元,用于将所述待过滤网络地址输入所述二叉树过滤模型;匹配子单元,用于沿着所述二叉树过滤模型的根节点,将所述待过滤网络地址的每一位编码逐位与所述二叉树过滤模型的节点匹配;输出子单元,用于输出所述查找结果。
B10、根据B9所述的装置,所述输出子单元,用于若所述每一位编码在所述二叉树过滤模型中匹配有一个节点,则输出用于表明查找到所述目标网络地址的查找结果;还用于若任一位编码在所述二叉树过滤模型中不存在匹配的节点,则输出用于表明未查找到所述目标网络地址的查找结果。
B11、根据B10所述的装置,所述匹配子单元,用于将所述第i位编码与所述第i个根节点的关键字值进行匹配,i为正整数;若所述第i位编码小于或者等于所述第i个根节点的关键字值,则将第i+1位编码与所述第i个根节点的左叶子节点进行匹配;若所述第i位编码大于所述第i个根节点的关键字值,则将第i+1位编码与所述第i个根节点的右叶子节点进行匹配;直至所述第i个根节点的左叶子节点或者右叶子节点为空,确定所述待过滤网络地址中任一位编码在所述二叉树过滤模型中不存在匹配的节点。
B12、根据B11所述的装置,所述查找单元,还包括:判断子单元,用于当i=1时,在所述匹配子单元将所述第i位编码与所述第i个根节点的关键字值进行匹配之前,判断所述二叉树过滤模型中是否存在所述待过滤网络地址的第1位编码匹配的第1个根节点;若存在,则调用所述匹配子单元;若不存在,则确定所述待过滤网络地址中任一位编码在所述二叉树过滤模型中不存在匹配的节点。
B13、根据B8所述的装置,所述装置还包括:建模单元,用于获得网络地址集合,所述网络地址集合中包括合法性相同的已知网络地址;根据所述已知网络地址的编码,构建所述二叉树过滤模型,所述二叉树过滤模型的每一个节点与所述已知网络地址的每一位编码对应。
B14、根据B8所述的装置,所述过滤单元,用于当所述目标网络地址为合法网络地址时,允许访问所述待过滤网络地址;或者,当所述目标网络地址为非法网络地址时,禁止访问所述待过滤网络地址。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种网络流量过滤方法,其特征在于,包括:
获得待过滤网络地址;
在预设的二叉树过滤模型中查找与所述待过滤网络地址匹配的目标网络地址,获得查找结果,其中,所述二叉树过滤模型用于描述已知网络地址中每一位编码之间的关系;
若所述查找结果表明查找到所述目标网络地址,则按照所述目标网络地址对应的过滤规则过滤所述待过滤网络。
2.根据权利要求1所述的方法,其特征在于,所述在预设的二叉树过滤模型中查找与所述待过滤网络地址匹配的目标网络地址,获得查找结果,包括:
将所述待过滤网络地址输入所述二叉树过滤模型;
沿着所述二叉树过滤模型的根节点,将所述待过滤网络地址的每一位编码逐位与所述二叉树过滤模型的节点匹配,输出所述查找结果。
3.根据权利要求2所述的方法,其特征在于,所述将所述待过滤网络地址的每一位编码逐位与所述二叉树过滤模型的节点匹配,输出所述查找结果,包括:
若所述每一位编码在所述二叉树过滤模型中匹配有一个节点,则输出用于表明查找到所述目标网络地址的查找结果;
若任一位编码在所述二叉树过滤模型中不存在匹配的节点,则输出用于表明未查找到所述目标网络地址的查找结果。
4.根据权利要求3所述的方法,其特征在于,所述将所述待过滤网络地址的每一位编码逐位与所述二叉树过滤模型的节点匹配,包括:
将所述第i位编码与所述第i个根节点的关键字值进行匹配,i为正整数;
若所述第i位编码小于或者等于所述第i个根节点的关键字值,则将第i+1位编码与所述第i个根节点的左叶子节点进行匹配;
若所述第i位编码大于所述第i个根节点的关键字值,则将第i+1位编码与所述第i个根节点的右叶子节点进行匹配;
直至所述第i个根节点的左叶子节点或者右叶子节点为空,确定所述待过滤网络地址中任一位编码在所述二叉树过滤模型中不存在匹配的节点。
5.根据权利要求4所述的方法,其特征在于,在所述将所述第i位编码与所述第i个根节点的关键字值进行匹配之前,所述方法还包括:
当i=1时,判断所述二叉树过滤模型中是否存在所述待过滤网络地址的第1位编码匹配的第1个根节点;
若存在,则返回将所述第i位编码与所述第i个根节点的关键字值进行匹配的步骤;
若不存在,则确定所述待过滤网络地址中任一位编码在所述二叉树过滤模型中不存在匹配的节点。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获得网络地址集合,所述网络地址集合中包括合法性相同的已知网络地址;
根据所述已知网络地址的编码,构建所述二叉树过滤模型,所述二叉树过滤模型的每一个节点与所述已知网络地址的每一位编码对应。
7.根据权利要求1所述的方法,其特征在于,所述按照所述目标网络地址对应的过滤规则过滤所述待过滤网络,包括:
当所述目标网络地址为合法网络地址时,允许访问所述待过滤网络地址;或者,
当所述目标网络地址为非法网络地址时,禁止访问所述待过滤网络地址。
8.一种网络流量过滤装置,其特征在于,包括:
获得单元,用于获得待过滤网络地址;
查找单元,用于在预设的二叉树过滤模型中查找与所述待过滤网络地址匹配的目标网络地址,获得查找结果,其中,所述二叉树过滤模型用于描述已知网络地址中每一位编码之间的关系;
过滤单元,用于若所述查找结果表明查找到所述目标网络地址,则按照所述目标网络地址对应的过滤规则过滤所述待过滤网络。
9.一种终端,其特征在于,包括:存储器和处理器,所述存储器用于存储计算机程序;所述处理器用于在调用所述计算机程序时执行如权利要求1-7任一项所述的网络流量过滤方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的网络流量过滤方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810845271.5A CN109194536A (zh) | 2018-07-27 | 2018-07-27 | 一种网络流量过滤方法、装置及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810845271.5A CN109194536A (zh) | 2018-07-27 | 2018-07-27 | 一种网络流量过滤方法、装置及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109194536A true CN109194536A (zh) | 2019-01-11 |
Family
ID=64937346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810845271.5A Pending CN109194536A (zh) | 2018-07-27 | 2018-07-27 | 一种网络流量过滤方法、装置及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109194536A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110460593A (zh) * | 2019-07-29 | 2019-11-15 | 腾讯科技(深圳)有限公司 | 一种移动流量网关的网络地址识别方法、装置及介质 |
CN113347173A (zh) * | 2021-05-31 | 2021-09-03 | 新华三信息安全技术有限公司 | 一种包过滤方法、装置及电子设备 |
CN114301680A (zh) * | 2021-12-29 | 2022-04-08 | 山石网科通信技术股份有限公司 | 一种安全策略的匹配方法及装置、存储介质 |
CN116633865A (zh) * | 2023-07-25 | 2023-08-22 | 北京城建智控科技股份有限公司 | 网络流量控制方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102148746A (zh) * | 2010-02-05 | 2011-08-10 | 中兴通讯股份有限公司 | 一种报文分类方法和系统 |
CN102739520A (zh) * | 2012-05-31 | 2012-10-17 | 华为技术有限公司 | 查找方法及装置 |
CN107707477A (zh) * | 2017-09-28 | 2018-02-16 | 杭州迪普科技股份有限公司 | 报文的处理方法及装置、计算机可读存储介质 |
-
2018
- 2018-07-27 CN CN201810845271.5A patent/CN109194536A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102148746A (zh) * | 2010-02-05 | 2011-08-10 | 中兴通讯股份有限公司 | 一种报文分类方法和系统 |
CN102739520A (zh) * | 2012-05-31 | 2012-10-17 | 华为技术有限公司 | 查找方法及装置 |
CN107707477A (zh) * | 2017-09-28 | 2018-02-16 | 杭州迪普科技股份有限公司 | 报文的处理方法及装置、计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
V. SRINIVASAN等: "Faster IP Lookups using Controlled Prefix Expansion", 《PROCEEDINGS OF THE 1998 ACM SIGMETRICS JOINT INTERNATIONAL CONFERENCE ON MEASUREMENT AND MODELING OF COMPUTER SYSTEMS》 * |
庞立会等: "一种IPV6环境下的高性能规则匹配算法研究", 《计算机科学》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110460593A (zh) * | 2019-07-29 | 2019-11-15 | 腾讯科技(深圳)有限公司 | 一种移动流量网关的网络地址识别方法、装置及介质 |
CN113347173A (zh) * | 2021-05-31 | 2021-09-03 | 新华三信息安全技术有限公司 | 一种包过滤方法、装置及电子设备 |
CN113347173B (zh) * | 2021-05-31 | 2022-04-22 | 新华三信息安全技术有限公司 | 一种包过滤方法、装置及电子设备 |
CN114301680A (zh) * | 2021-12-29 | 2022-04-08 | 山石网科通信技术股份有限公司 | 一种安全策略的匹配方法及装置、存储介质 |
CN114301680B (zh) * | 2021-12-29 | 2024-05-07 | 山石网科通信技术股份有限公司 | 一种安全策略的匹配方法及装置、存储介质 |
CN116633865A (zh) * | 2023-07-25 | 2023-08-22 | 北京城建智控科技股份有限公司 | 网络流量控制方法、装置、电子设备及存储介质 |
CN116633865B (zh) * | 2023-07-25 | 2023-11-07 | 北京城建智控科技股份有限公司 | 网络流量控制方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109194536A (zh) | 一种网络流量过滤方法、装置及终端 | |
KR20150103248A (ko) | 심층 패킷 검사 방법 및 기기, 그리고 코프로세서 | |
CN102957622B (zh) | 一种数据处理的方法、装置及系统 | |
CN104025520B (zh) | 查找表的创建方法、查询方法、控制器、转发设备和系统 | |
CN101794318A (zh) | Url解析方法及设备 | |
US9043264B2 (en) | Scanning data streams in real-time against large pattern collections | |
CN109921995A (zh) | 一种配置地址表的方法、fpga和应用该fpga的网络设备 | |
CN107306247B (zh) | 资源访问控制方法及装置 | |
CN111355816A (zh) | 服务器选取方法、装置、设备及分布式服务系统 | |
CN114666212A (zh) | 配置数据下发方法 | |
CN113079198A (zh) | 一种云平台接口协议转换的方法及装置 | |
CN107239542A (zh) | 一种数据统计方法、装置、服务器及存储介质 | |
CN110659019A (zh) | 参数校验方法、装置和服务器 | |
CN105872063A (zh) | 一种基于dcc协议的ipv6地址编码、解码方法及对应的系统 | |
CN116360809B (zh) | 一种嵌入式智能终端固件远程升级方法、系统及介质 | |
CN109388388A (zh) | 功能模块间的信息交互方法、装置、设备及存储介质 | |
CN106656936B (zh) | 一种访问控制方法、prp实体、pdp实体和pep实体 | |
CN104169930A (zh) | 资源访问方法及装置 | |
CN110399534B (zh) | 终端性能报表生成方法、装置、设备和存储介质 | |
CN111310076A (zh) | 地理位置查询方法、装置、介质及电子设备 | |
CN105989276B (zh) | Rbac权限体系中的角色优化方法和装置 | |
CN107800630A (zh) | 报文处理方法及装置 | |
CN107493234A (zh) | 一种基于虚拟网桥的报文处理方法以及装置 | |
CN104378393A (zh) | 一种资源分享方法和相应的装置 | |
CN106034119A (zh) | 应用安装包的加密混淆方法及装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190111 |