CN114584623B - 流量请求清理方法、装置、存储介质以及计算机设备 - Google Patents
流量请求清理方法、装置、存储介质以及计算机设备 Download PDFInfo
- Publication number
- CN114584623B CN114584623B CN202210240274.2A CN202210240274A CN114584623B CN 114584623 B CN114584623 B CN 114584623B CN 202210240274 A CN202210240274 A CN 202210240274A CN 114584623 B CN114584623 B CN 114584623B
- Authority
- CN
- China
- Prior art keywords
- cache
- characteristic information
- flow characteristic
- flow
- cache structure
- 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.)
- Active
Links
- 238000004140 cleaning Methods 0.000 title claims abstract description 81
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000003860 storage Methods 0.000 title claims abstract description 24
- 238000004590 computer program Methods 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 claims description 17
- 238000013507 mapping Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 abstract description 5
- 230000002829 reductive effect Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011010 flushing procedure Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及网络安全技术领域,提出一种流量请求清理方法、装置、存储介质以及计算机设备,该方法包括:获取客户端的流量特征信息;流量特征信息包括客户端标识;当第一缓存结构未存储有客户端标识时,若第一缓存结构满足预设清理条件,在与第一缓存结构关联的若干个第二缓存结构中,确定位于预设位置的目标流量特征信息;在第一缓存结构和若干个第二缓存结构中删除预设数量的目标流量特征信息;将流量特征信息存储至第一缓存结构;根据流量特征信息,获得客户端标识对应的一个第二缓存结构以及在第二缓存结构中的缓存权重;根据缓存权重,将流量特征信息存储至第二缓存结构对应位置。本申请实施例降低了资源消耗,避免漏检流量请求。
Description
技术领域
本申请实施例涉及网络安全技术领域,尤其涉及一种流量请求清理方法、装置、存储介质以及计算机设备。
背景技术
随着互联网技术的发展,网络已经成为人们生活和工作不可缺少的一部分。互联网用户通过计算机网络可以获取海量信息,并方便地与其他用户进行沟通和交流,实现信息资源的共享。然而,计算机网络技术的快速发展,使得网络环境变得越来越复杂,网络安全问题日益突出,例如,软件漏洞、黑客入侵、病毒木马等,严重影响了人们的正常活动。
目前的一种网络安全攻击方式是通过超大攻击流量方式来攻击服务器,使服务器资源耗尽,直至宕机崩溃。针对这种攻击方式,传统的防护方法是在服务器监听到流量攻击后,将流量请求转发到清洗设备;清洗设备接收到流量请求后快速的判断并且告诉服务器,该流量请求是否是攻击的请求,是否需要丢弃该流量请求或者执行该流量请求对应的动作。
其中,清洗设备其中有一个检测是针对客户端的,如果客户端每秒的请求数或者并发连接数超过设置的阈值则判断该客户端是攻击性客户端。然而,在海量客户端请求的情况下对客户端进行统计判断时,清洗设备会消耗大量内存资源,而且,容易出现漏检攻击的客户端的问题。
发明内容
本申请实施例提供了一种流量请求清理方法、装置、存储介质以及计算机设备,可以解决降低资源消耗,避免漏检流量请求的技术问题,该技术方案如下:
第一方面,本申请实施例提供了一种流量请求清理方法,包括如下步骤:
在服务器受到流量攻击时,获取客户端的流量特征信息;所述流量特征信息为从所述客户端发送的流量请求中提取的信息,所述流量特征信息包括客户端标识;
当第一缓存结构未存储有所述客户端标识时,若所述第一缓存结构满足预设清理条件,在与所述第一缓存结构关联的若干个第二缓存结构中,确定位于预设位置的目标流量特征信息;在所述第一缓存结构和若干个所述第二缓存结构中删除预设数量的所述目标流量特征信息;其中,所述预设位置为根据流量特征信息的权重按照由小至大的方式,从第二缓存结构表头位置至表尾位置依次存储流量特征信息时,第二缓存结构的表头位置;
将所述流量特征信息存储至所述第一缓存结构;根据所述流量特征信息,获得所述客户端标识对应的一个所述第二缓存结构以及在所述第二缓存结构中的缓存权重;根据所述缓存权重,将所述流量特征信息存储至所述第二缓存结构对应位置。
第二方面,本申请实施例提供了一种流量请求清理装置,包括:
流量特征信息获取模块,用于在服务器受到流量攻击时,获取客户端的流量特征信息;所述流量特征信息为从所述客户端发送的流量请求中提取的信息,所述流量特征信息包括客户端标识;
流量请求清理模块,用于当第一缓存结构未存储有所述客户端标识时,若所述第一缓存结构满足预设清理条件,在与所述第一缓存结构关联的若干个第二缓存结构中,确定位于预设位置的目标流量特征信息;在所述第一缓存结构和若干个所述第二缓存结构中删除预设数量的所述目标流量特征信息;其中,所述预设位置为根据流量特征信息的权重按照由小至大的方式,从第二缓存结构表头位置至表尾位置依次存储流量特征信息时,第二缓存结构的表头位置;
流量缓存模块,用于将所述流量特征信息存储至所述第一缓存结构;根据所述流量特征信息,获得所述客户端标识对应的一个所述第二缓存结构以及在所述第二缓存结构中的缓存权重;根据所述缓存权重,将所述流量特征信息存储至所述第二缓存结构对应位置。
第三方面,本申请实施例提供了一种计算机设备,处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述方法的步骤。
本申请实施例在服务器受到流量攻击时,获取客户端的流量特征信息;所述流量特征信息为从所述客户端发送的流量请求中提取的信息,所述流量特征信息包括客户端标识;当第一缓存结构未存储有所述客户端标识时,若所述第一缓存结构满足预设清理条件,在与所述第一缓存结构关联的若干个第二缓存结构中,确定位于预设位置的目标流量特征信息;在所述第一缓存结构和若干个所述第二缓存结构中删除预设数量的所述目标流量特征信息;将所述流量特征信息存储至所述第一缓存结构;根据所述流量特征信息,获得所述客户端标识对应的一个所述第二缓存结构以及在所述第二缓存结构中的缓存权重;根据所述缓存权重,将所述流量特征信息存储至所述第二缓存结构对应位置。
本申请实施例一方面通过第一缓存结构快速判断是否存储有客户端标识,另一方面在第二缓存结构中通过缓存权重存储流量特征信息,进而在第一缓存结构满足预设清理条件时,快速定位到第二缓存结构中位于按照缓存权重存储的预设位置的流量特征信息,进而在保留缓存权重大的流量特征信息的前提下,快捷腾出足够的空间来存储新的客户端标识,从而实现一边存储一边清理的目的,进而降低了资源消耗,避免漏检流量请求。
为了更好地理解和实施,下面结合附图详细说明本申请的技术方案。
附图说明
图1为本申请实施例提供的流量请求清理方法的应用场景示意图;
图2为本申请第一实施例提供的流量请求清理方法的流程示意图;
图3为本申请第一实施例提供的第一缓存结构的结构示意图;
图4为本申请第一实施例提供的第一缓存结构与若干个第二缓存结构的关系示意图;
图5为本申请第一实施例提供的流量特征信息与接口的关系示意图;
图6为本申请第一实施例提供的确定位于预设位置的目标流量特征信息的示意图;
图7为本申请第一实施例提供的获得第二缓存结构以及缓存权重的方法的流程示意图;
图8为本申请第一实施例提供的获得第二缓存结构的方法的流程示意图;
图9为本申请第一实施例提供的获得缓存权重的方法的流程示意图;
图10为本申请第一实施例提供的在第二缓存结构中存储流量特征信息的方法的流程示意图;
图11为本申请第一实施例提供的在第二缓存结构中存储流量特征信息的方法的流程示意图;
图12为本申请第一实施例提供的在第二缓存结构存储流量特征信息的示意图;
图13为本申请又一个实施例提供的流量清理方法的流程示意图;
图14为本申请第二实施例提供的流量请求清理装置的结构示意图;
图15为本申请第三实施例提供的计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”/“若”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本领域技术人员可以理解,本申请所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(PersonalCommunications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(GlobalPositioningSystem,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本申请所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的计算机设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
需要指出的是,本申请所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本申请的网络部署方式的实施方式。
请参阅图1,图1为本申请实施例提供的流量请求清理的方法的应用场景示意图,该应用场景包括客户端110、若干个代理服务器120、清洗设备130和服务器140。
所述客户端110经由任意一个所述代理服务器120与所述服务器140进行交互,所述清洗设备130与若干个所述代理服务器120进行交互。具体的,所述客户端110、所述代理服务器120以及所述清洗设备130均可以通过网络接入方式接入互联网,进而建立所述客户端110和所述代理服务器120之间、所述代理服务器120与所述服务器140之间以及所述清洗设备130与所述代理服务器120之间的数据通信链路。其中,网络可以是能够在所述客户端110和所述代理服务器120之间、所述代理服务器120与所述服务器140之间以及所述清洗设备130与所述代理服务器120之间提供通信链路的各种连接类型的通信介质,例如可以是有线通信链路、无线通信链路或者光纤电缆等等,本申请在此不做限制。
所述客户端110是指发送对服务器140的流量请求的一端。所述客户端110所指向的硬件,本质上是指计算机设备,具体地,如图1所示,其可以是智能手机、智能交互平板和个人计算机等类型的计算机设备。
所述代理服务器120是指将流量请求转发至服务器140的一端。其中,所述代理服务器120是网络信息的中转站,主要用于转发客户端110的流量请求,且,所述代理服务器120还可以对接收到的访问请求进行决策,并根据过滤规则对流量请求进行过滤。所述代理服务器120所指向的硬件,本质上是指计算机设备,其可以是电脑等类型的计算机设备,具体地,所述代理服务器120可以为Nginx(engine x,是一个高性能的HTTP和反向代理web服务器)设备,或者,所述代理服务器可以是HAProxy形式的软件。需要说明的是,对于一个服务器140,其可以存在一个或者一个以上的代理服务器120,客户端110向服务器140发送的访问请求可以经由其中一个代理服务器120转发至服务器140。
所述服务器140可作为一个业务服务器140,其可以负责进一步连接起相关音频数据服务器140、视频流服务器140以及其他提供相关支持的服务器140等,以此构成逻辑上相关联的服务机群,来为相关的终端设备,例如图1中所示的客户端110提供服务。
所述清洗设备130是指在服务器受到流量攻击时,所有代理服务器120将流量请求牵引缓存的一端,其中,所述清洗设备130还通过统计流量请求,向代理服务器120反馈拦截流量请求或者放行流量请求的一端。其中,其中,所述清洗设备130所指向的硬件,本质上是指计算机设备,具体地,其可以是电脑等类型的计算机设备。
本申请实施例的流量请求清理方法可以应用于网络安全的攻击防御应用场景中,具体可以应用于通过超大攻击流量方式来攻击服务器,使服务器资源耗尽,直至宕机崩溃的应用场景中,例如,应用于Web应用防护系统(Web Application Firewall,WAF)受到超大攻击流量攻击的应用场景中;又例如,应用于直播间应用场景中,在直播间搞活动时,攻击者通过控制超大攻击流量向活动接口发送流量请求,而导致服务器资源耗尽,直至宕机崩溃的场景。
针对上述应用场景,传统的防护方法是在服务器监听到流量攻击后,将流量请求转发到清洗设备;清洗设备接收到流量请求后快速的判断并且告诉服务器,该流量请求是否是攻击的请求,是否需要丢弃该流量请求或者执行该流量请求对应的动作。
其中,清洗设备其中有一个检测是针对客户端的,如果客户端每秒的请求数或者并发连接数超过设置的阈值则判断该客户端是攻击性客户端。然而,在海量客户端流量请求的情况下对客户端进行统计判断时,如果都将客户端流量请求保存到内存,清洗设备很可能会崩溃,即使能扛住,资源消耗也大。
传统方式的解决方式有两种,一种方式是固定内存缓存大小,当内存缓存满了以后,对客户端的流量请求将不予统计,这种方式很可能出现漏检了攻击的客户端的问题;另一种方式是采用内嵌的文件进行缓存,这种方式需要消耗大量内存资源。
基于上述,本申请实施例提供了一种流量请求清理方法。请参阅图2,图2为本申请第一实施例提供的流量请求清理方法的流程示意图,在本实施例中,是从清洗设备为执行主体对流量请求清理方法进行描述的。具体的,本申请实施例提供的流量请求清理方法包括如下步骤:
步骤S101:在服务器受到流量攻击时,获取客户端的流量特征信息;所述流量特征信息为从所述客户端发送的流量请求中提取的信息,所述流量特征信息包括客户端标识。
具体的,服务器接收代理服务器转发的流量请求,并对接收的流量请求进行统计;当流量请求的请求数量达到预设数量阈值时,服务器判断出受到流量攻击,此时,服务器将会向各个服务器发送受到流量攻击的信息;各个代理服务器接收到流量攻击的信息后,将客户端的流量请求进行缓存,并从所述流量请求中提取流量特征信息,将所述流量特征信息发送至清洗设备;清洗设备接收到客户端的流量特征信息后,根据所述流量特征信息进一步判断当前的流量请求是否是攻击流量,从而反馈对应的代理服务器,是否将该流量请求转发至服务器。
流量特征信息包括客户端标识,客户端标识用于指示发送流量请求的客户端,其可以为IP地址、域名或者其他可以唯一确定客户端的信息。可选的,流量特征信息还可以包括流量请求时间,请求时间用于指示发送流量请求的时间。
步骤S102:当第一缓存结构未存储有所述客户端标识时,若所述第一缓存结构满足预设清理条件,在与所述第一缓存结构关联的若干个第二缓存结构中,确定位于预设位置的目标流量特征信息;在所述第一缓存结构和若干个所述第二缓存结构中删除预设数量的所述目标流量特征信息。
在一个实施例中,所述第一缓存结构为并发映射缓存结构;具体的,所述第一缓存结构为采用并发映射(concurrent map)方式缓存流量特征信息的数据表。concurrent map是JDK1.5提供的一套用于应对并发且能保证线程安全的一套映射机制,其可通过并发多线程方式来响应请求。例如,当同一时间存在大量的流量请求时,对每个流量请求对应生成一个线程,通过多个线程同时对所述第一缓存结构进行查询,以判断第一缓存结构中是否存储有对应流量请求的客户端标识,从而提高清洗效率。
concurrent map底层是基于数组+链表结构来进行存储,数组的每一个位置都称之为是一个桶,每一个桶中维系一个缓存链表,每个缓存链表可以存储若干个流量特征信息。如图3所示,数组的第一个位置维系了一个缓存链表,缓存链表内存储有流量特征信息1、流量特征信息2、流量特征信息3和流量特征信息4。需要说明的是,图3所示的数组数量和缓存链表数量存储的流量特征信息的数量只是作为示意,并不作为限制。
concurrent map的链表在存储流量特征信息时,通过并发分散的方式存储流量特征信息;而且,链表还采用可扩容方式存储流量特征信息。所谓可扩容方式为链表可根据当前存储的流量特征信息的数量以及预设的扩容因子动态调整容量,进而节省存储资源。例如,链表可以容纳的流量特征信息的数量为16,预设的扩容因子为0.75,则当链表存储的流量特征信息的数量大于16*0.75=12时,则链表自动进行扩容,直至容纳16个流量特征信息为止,从而通过在初始时仅仅提供少量容量,进而节省存储资源。
在一个实施例中,所述第二缓存结构为桶列表(bucket list),每个桶列表内存储有若干个流量特征信息。所述第一缓存结构与若干个所述第二缓存结构进行关联,也即,在所述第一缓存结构存储的每个流量特征信息,在其中一个第二缓存结构也唯一对应存储有该流量特征信息,但是,所述第一缓存结构存储的流量特征信息的位置与第二缓存结构存储的流量特征信息的位置互不影响。如图4所示,流量特征信息1存储在第一缓存结构的第一个链表的第一位置,同时也存储在第二缓存结构1的第一个位置;流量特征信息5存储在第一缓存结构的第二个链表的第一位置,同时也存储在第二缓存结构1内的第二个位置;流量特征信息6存储在第一缓存结构的第三个链表的第一位置,同时也存储在第二缓存结构2内的第一个位置;流量特征信息7存储在第一缓存结构的第三个链表的第二位置,同时也存储在第二缓存结构3内的第一个位置。
可选的,在第二缓存结构中对该流量特征信息进行的存储以及删除操作,也可对应地触发在所述第一缓存结构对该流量特征信息进行存储以及删除。
所述第二缓存结构存储流量特征信息时,按照流量特征信息的权重依序存储。可选的,可以根据流量特征信息的权重,按照由小至大的方式,从第二缓存结构的表头位置至表尾位置依次存储;或者,根据流量特征信息的权重,按照由小至大的方式,从第二缓存结构的表尾位置至表头位置依次存储等。
在一个实施例中,所述第一缓存结构和所述第二缓存结构中对流量特征信息进行处理时,通过接口的方式进行实现。
具体的,如图5所示,对于所述第一缓存结构和所述第二缓存结构中的每个流量特征信息均提供以下接口:GetKey(),GetCnt(),GetUpdateTm(),GetWeight(),Update(),Delete()。GetKey用于获取流量特征信息中的客户端标识;GetCnt用于获取流量特征信息对应的流量请求计数值;GetUpdateTm用于获取流量特征信息的更新时长;GetWeight用于获取流量特征信息的权重,权重将影响到该流量特征信息在第二缓存结构中的位置;Update用于对流量特征信息执行更新操作,可以是增加计数,更新时长和权重等;Delete用于对流量特征信息的清理工作,如果流量特征信息被清理,如果有资源需要释放则调用该接口。通过设置接口,可以在实现在所述第一缓存结构和所述第二缓存结构中,针对每个流量特征信息进行快捷处理。
可以理解的是,当第一缓存结构中未存储有所述客户端标识时,说明是新的客户端发送的流量请求,需要在第一缓存结构中添加该客户端标识对应的流量特征信息,此时,若所述第一缓存结构满足预设清理条件,需要对所述第一缓存结构进行清理,以腾出空间添加新的流量特征信息。
其中,预设清理条件可以为第一缓存结构的缓存容量满,或者,第一缓存结构的缓存容量大于预设比例,或者,达到预设的清理时间间隔中的一种或者多种。
在一个实施例中,当第二缓存结构中按照缓存权重依序存储流量特征信息时,那么在第二缓存结构中的各个位置都可以用于指示缓存权重,因此,可以通过预设位置来确定删除对应的缓存权重的流量特征信息。
可选的,若根据流量特征信息的权重,按照由小至大的方式,从第二缓存结构表头位置至表尾位置依次存储流量特征信息,那么,可以将预设位置设置为第二缓存结构的表头位置,进而可以将每个第二缓存结构中缓存权重最小的流量特征信息作为目标流量特征信息。如图6所示,在第二缓存结构1、第二缓存结构2和第二缓存结构3中,将位于表头位置也即缓存权重最小的流量特征信息1、流量特征信息4和流量特征信息7均作为目标流量特征信息进行删除。当然还可以将预设位置设置为第二缓存结构的表头位置和其他位置等,本申请并不加以限制。
预设数量可以根据实际需要进行设置,其可以为所有目标流量特征信息,也可以为部分的目标流量特征信息等,本申请并不加以限制。
需要说明的是,由于在各个第二缓存结构中删除目标流量特征信息,是为了同时清理各个第二缓存结构中的至少一个目标流量特征信息,以使各个第二缓存结构有足够的空间来存储新的流量特征信息,而在第二缓存结构中只存储有一个或者少量的目标流量特征信息时,此时,删除给目标流量特征信息的作用不大,反而会影响对目标流量特征信息的监测,因此,在一个实施例中,所述在所述第一缓存结构和若干个所述第二缓存结构中删除预设数量的所述目标流量特征信息的步骤之前,还包括:分别获取各个所述第二缓存结构存储的流量特征信息的数量,若所述第二缓存结构存储的流量特征信息的数量少于或等于预设数量阈值,保留所述第二缓存结构中的目标流量特征信息;若所述第二缓存结构存储的流量特征信息的数量大于预设数量阈值,删除所述第二缓存结构中的目标流量特征信息。例如,若预设数量阈值为1,则当所述第二缓存结构存储的流量特征信息的数量为1,则目标流量特征数量也就是存储的该1个流量特征,此时,删除这个流量特征数量来增加空间的必要性不大,因此,可以保留该流量特征信息。应当理解的是,预设数量阈值可以根据实际需要进行设置,本申请并不加以限制。
可以理解的是,若所述第一缓存结构不满足预设清理条件,则直接执行步骤S103。
步骤S103:将所述流量特征信息存储至所述第一缓存结构;根据所述流量特征信息,获得所述客户端标识对应的一个所述第二缓存结构以及在所述第二缓存结构中的缓存权重;根据所述缓存权重,将所述流量特征信息存储至所述第二缓存结构对应位置。
可选的,所述第一缓存结构为并发映射缓存结构;所述将所述流量特征信息存储至所述第一缓存结构的步骤包括:通过并发映射方式将所述流量特征信息存储至所述第一缓存结构。
本申请实施例在服务器受到流量攻击时,获取客户端的流量特征信息;所述流量特征信息为从所述客户端发送的流量请求中提取的信息,所述流量特征信息包括客户端标识;当第一缓存结构未存储有所述客户端标识时,若所述第一缓存结构满足预设清理条件,在与所述第一缓存结构关联的若干个第二缓存结构中,确定位于预设位置的目标流量特征信息;在所述第一缓存结构和若干个所述第二缓存结构中删除预设数量的所述目标流量特征信息;将所述流量特征信息存储至所述第一缓存结构;根据所述流量特征信息,获得所述客户端标识对应的一个所述第二缓存结构以及在所述第二缓存结构中的缓存权重;根据所述缓存权重,将所述流量特征信息存储至所述第二缓存结构对应位置。
本申请实施例一方面通过第一缓存结构快速判断是否存储有客户端标识,另一方面在第二缓存结构中通过缓存权重存储流量特征信息,进而在第一缓存结构满足预设清理条件时,快速定位到第二缓存结构中位于按照缓存权重存储的预设位置的流量特征信息,进而在保留缓存权重大的流量特征信息的前提下,快捷腾出足够的空间来存储新的客户端标识,从而实现一边存储一边清理的目的,进而降低了资源消耗,避免漏检流量请求。
请参阅图7,其为本申请第一实施例提供的获得第二缓存结构以及缓存权重的方法的流程示意图。
在一个实施例中,步骤S103中所述根据所述流量特征信息,获得所述客户端标识对应的一个所述第二缓存结构以及在所述第二缓存结构中的缓存权重的步骤,包括步骤S1031-S1032:
步骤S1031:对所述客户端标识进行哈希计算,获得所述客户端标识对应的一个所述第二缓存结构。
步骤S1032:根据所述流量特征信息以及所述第二缓存结构,获得所述流量特征信息在所述第二缓存结构中的缓存权重。
本申请实施例通过对所述客户端标识进行哈希计算,以获得所述客户端标识对应的一个所述第二缓存结构,进而获得缓存权重,从而实现快捷准确地定位到所述客户端标识对应的一个所述第二缓存结构以及所述流量特征信息在第二缓存结构中的位置。
请参阅图8,其为本申请第一实施例提供的获得第二缓存结构的方法的流程示意图。
在一个实施例中,步骤S1031中所述对所述客户端标识进行哈希计算,获得所述客户端标识对应的一个所述第二缓存结构的步骤,包括步骤S10311-S10312:
步骤S10311:对若干个所述第二缓存结构依序进行标号,统计若干个所述第二缓存结构的数量。
步骤S10312:对所述客户端标识进行哈希计算,将哈希计算后的结果取模所述第二缓存结构的数量,将取模后的结果作为标号,将标号对应的第二缓存结构作为所述客户端标识对应的第二缓存结构。
例如,若所述第二缓存结构的数量为3000个,则对若干个所述第二缓存结构依序进行标号依次为1,2,3…,则对客户端标识进行计算哈希计算后,再取模3000得到1,那么,标号为1的第二缓存结构即为所述客户端标识对应的第二缓存结构;若客户端标识进行计算哈希计算后,再取模3000得到50,那么,标号为50的第二缓存结构即为所述客户端标识对应的第二缓存结构。
本申请实施例通过对所述第二缓存结构依序进行标号,进而对所述客户端标识进行哈希计算和取模计算,从而实现快捷准确地定位到所述客户端标识对应的第二缓存结构。
请参阅图9,其为本申请第一实施例提供的获得缓存权重的方法的流程示意图。
在一个实施例中,所述流量请求还包括流量请求时间;步骤S1032中所述根据所述流量特征信息以及所述第二缓存结构,获得所述流量特征信息在所述第二缓存结构中的缓存权重的步骤,包括步骤S10321-S10322:
步骤S10321:根据所述第二缓存结构,获得所述客户端标识对应的流量请求次数。
步骤S10322:根据所述流量请求时间、所述流量请求次数以及缓存标识,获得所述流量特征信息在所述第二缓存结构中的缓存权重;其中,所述缓存标识用于指示所述客户端标识是否存储在最近使用的缓存中。
其中,对于清洗设备,每发生一次读内存操作时,均需要查找待读取的数据是否存在于缓存中,若是,则缓存命中,返回数据;若否,则缓存未命中,从内存中读取数据,并把该数据添加到缓存中。向缓存添加数据时,如果缓存已满,则需要删除访问时间最早的那条数据,这种更新缓存的方法就叫做最近使用缓存方法,(LRU,Least Recently Used)。在本申请实施例中,当第一缓存结构中存储有客户端标识时,则会将客户端标识添加到缓存中;当在与所述第一缓存结构关联的若干个第二缓存结构中,确定位于预设位置的目标流量特征信息时,也会将目标流量特征信息添加到缓存中。此时,在缓存中将会对客户端标识和目标流量特征信息缓存一段时间,若缓存满了,则会删除访问时间最早的客户端标识。为此,可以从缓存中来判断是否存在客户端标识。
可选的,当客户端标识存储在最近使用的缓存中时,将所述流量请求次数乘以第一预设系数,再加上所述流量请求时间以及第二预设系数作为所述客户端标识对应的缓存权重。当客户端标识未存储在最近使用的缓存中时,将所述流量请求次数乘以第一预设系数,再加上所述流量请求时间作为所述客户端标识对应的缓存权重。所述第一预设系数和第二预设系数可以根据实际需要进行设置。
需要说明的是,在所述第一缓存结构未存储有客户端标识时,流量请求次数为1;当所述缓存结构存储有客户端标识时,将统计所述客户端标识对应流量请求次数,进而计算对应的缓存权重。
本申请实施例根据所述流量请求时间、所述流量请求次数以及缓存标识确定所述流量特征信息在所述第二缓存结构中的缓存权重,从而可以间接得到流量特征信息为攻击流量请求的权重,进而在后续可以根据权重大小,对权重大的流量请求进行缓存,对权重小的流量请求进行清理放行。
请参阅图10,其为本申请第一实施例提供的在第二缓存结构中存储流量特征信息的方法的流程示意图。在一个实施例中,所述第二缓存结构按照所述缓存权重依序存储所述流量特征信息包括:所述第二缓存结构按照所述缓存权重从小至大的顺序依次从表头位置至表尾位置存储所述流量特征信息;步骤S103中所述根据所述缓存权重,将所述流量特征信息存储至所述第二缓存结构对应位置的步骤,包括步骤S10331-S10333:
步骤S10331:将所述客户端标识对应的缓存权重与所述第二缓存结构中表头位置存储的客户端标识的缓存权重进行比较;
步骤S10332:若所述客户端标识对应的缓存权重小于或等于所述第二缓存结构中表头位置存储的客户端标识的缓存权重,将所述客户端标识对应的流量特征信息插入存储至表头位置前面,将所述客户端标识对应的流量特征信息所在的位置更新为所述第二缓存结构的表头位置;
步骤S10333:若所述客户端标识对应的缓存权重大于所述第二缓存结构中表头位置存储的客户端标识的缓存权重,从所述第二缓存结构的表尾位置向表头位置遍历比较缓存权重,将所述客户端标识对应的流量特征信息放置在所述第二缓存结构的对应位置。
如图11所示,在第二缓存结构1中,通过比对各个流量特征信息的缓存权重,将流量特征信息10插入至流量特征信息2和流量特征信息3之间,也即,在第二缓存结构1的第二位置存储流量特征信息10。
本申请实施例通过将所述客户端标识对应的缓存权重与所述第二缓存结构中表头位置存储的客户端标识的缓存权重进行比较,再依次从表尾位置向表头位置对应的缓存权重进行遍历比较,可以实现快捷地将所述客户端标识对应的流量特征信息放置在合适位置。
在一个实施例中,步骤S102中所述根据所述缓存权重,将所述流量特征信息存储至所述第二缓存结构对应位置;将所述流量特征信息存储至所述第一缓存结构的步骤之前,还包括:在所述第二缓存结构中,将更新时长大于或等于预设时长阈值的流量特征信息从所述第二缓存结构中删除,更新时长大于预设时长阈值说明对应的流量请求时超大攻击流量的可能性很小,为此,将更新时长大于预设时长阈值的流量特征信息从所述第二缓存结构中清除,可以腾出尽可能多的空间来存储新的流量特征信息,从而节省资源。
在一个实施例中,所述在所述第二缓存结构中,将更新时长大于或等于预设时长阈值的流量特征信息从所述第二缓存结构中删除步骤,包括:从所述第二缓存结构的表头位置开始,将所述第二缓存结构各个位置的更新时长与预设时长阈值进行比较,若对应位置的流量特征信息的更新时长大于或等于预设时长阈值,将所述流量特征信息从所述第二缓存结构中删除,继续比较下一位置的流量特征信息的更新时长是否大于预设阈值;若对应位置的流量特征信息的更新时长小于预设时长阈值,停止删除所述流量特征信息。
请参阅图12,其为本申请第一实施例提供的在第一缓存结构中存储流量特征信息的方法的流程示意图。
在一个实施例中,所述第一缓存结构包括若干个缓存链表;步骤S103中所述将所述流量特征信息存储至所述第一缓存结构的步骤,包括步骤S10341-S10343:
步骤S10341:对若干个所述缓存链表依序进行标号,统计若干个所述缓存链表的数量;
步骤S10342:对所述客户端标识进行哈希计算,将哈希计算后的结果取模所述缓存链表的数量,将取模后的结果作为标号,将标号对应的缓存链表作为所述客户端标识对应的缓存链表;
步骤S10343:将所述客户端标识对应的流量特征信息存储至所述缓存链表中;其中,所述缓存链表可存储的流量特征信息的数量小于所述第二缓存结构可存储的流量特征信息的数量。
本申请实施例通过对所述客户端标识进行哈希计算,进而将所述客户端标识对应的流量特征信息存储至对应的所述缓存链表中,可以方便将所述客户端标识对应的流量特征信息存储至对应的所述缓存链表,进而在判断第一缓存结构中是否存储有客户端标识时,通过对所述客户端标识进行哈希计算后,就可以从对应的缓存链表中,快捷判断出对应的缓存链表中是否存储有客户端标识。
在一个实施例中,当所述第一缓存结构存储有所述客户端标识时,根据所述流量特征信息,获得所述客户端标识所在的第二缓存结构以及在所述第二缓存结构中的缓存权重;根据所述缓存权重,更新所述客户端标识对应的流量特征信息在所述第二缓存结构的位置,从而在所述第二缓存结构中对所述流量特征信息按照缓存权重进行有序存储。其中,获得所述客户端标识所在的第二缓存结构以及在所述第二缓存结构中的缓存权重的方式,以及,更新所述客户端标识对应的流量特征信息在所述第二缓存结构的位置的方式,均与所述第一缓存结构未存储有所述客户端标识的方式相同,这里不加以赘述。
请参阅图13,下面以具体的例子说明本申请的技术方案:
在服务器受到流量攻击时,获取客户端的流量特征信息,判断第一缓存结构是否存储有所述客户端标识。
若第一缓存结构存储有所述客户端标识,根据所述流量特征信息,对所述客户端标识进行哈希计算,获得所述客户端标识所在的所述第二缓存结构;根据流量请求时间、流量请求次数以及缓存标识,计算所述流量特征信息在所述第二缓存结构中的缓存权重,将计算后的缓存权重作为所述流量特征信息对应更新为新的缓存权重存储,根据更新后的缓存权重,更新所述流量特征信息在所述第二缓存结构的位置。
若第一缓存结构未存储有所述客户端标识,判断第一缓存结构是否满足预设清理条件,若满足,执行清理,删除各个第二缓存结构中位于预设位置的目标流量特征信息;对所述客户端标识进行哈希计算,获得所述客户端标识对应的一个所述第二缓存结构;在所述客户端标识对应的一个所述第二缓存结构中,将更新时长大于预设时长阈值的流量特征信息从所述第二缓存结构中删除;根据流量请求时间、流量请求次数以及缓存标识,计算所述流量特征信息在所述第二缓存结构中的缓存权重,将流量特征信息插入到所述第二缓存结构对应位置。
请参阅图14,为本申请第二实施例提供的流量请求清理装置的结构示意图。该装置可以通过软件、硬件或两者的结合实现成为计算机设备的全部或一部分。本申请实施例的流量请求清理装置200包括:
流量特征信息获取模块201,用于在服务器受到流量攻击时,获取客户端的流量特征信息;所述流量特征信息为从所述客户端发送的流量请求中提取的信息,所述流量特征信息包括客户端标识;
流量请求清理模块202,用于当第一缓存结构未存储有所述客户端标识时,若所述第一缓存结构满足预设清理条件,在与所述第一缓存结构关联的若干个第二缓存结构中,确定位于预设位置的目标流量特征信息;在所述第一缓存结构和若干个所述第二缓存结构中删除预设数量的所述目标流量特征信息;
流量缓存模块203,用于将所述流量特征信息存储至所述第一缓存结构;根据所述流量特征信息,获得所述客户端标识对应的一个所述第二缓存结构以及在所述第二缓存结构中的缓存权重;根据所述缓存权重,将所述流量特征信息存储至所述第二缓存结构对应位置。
需要说明的是,上述实施例提供的流量请求清理装置在执行流量请求清理方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分为不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的流量请求清理装置与流量请求清理方法属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
本申请第二实施例的流量请求清理的装置的实施例可以应用在计算机设备上,例如清洗设备上,该装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在文件处理的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,其所在的计算机设备可以包括处理器、网络接口、内存以及非易失性存储器,通过数据总线或其他公知方式互相共联。
请参见图15,其为本申请第三实施例计算机设备的一种硬件结构图,该计算机设备300其包括处理器301、网络接口302和存储器303,通过数据总线或其他公知方式互相共联。除了图15所示的处理器301、网络接口302和存储器303之外,本申请所述计算机设备的实际功能,还可以包括其他硬件,对此不再赘述。
所述存储器340运行有计算机程序,例如:域名缓存方法;该处理器301执行该计算机程序时实现上述流量请求清理的方法的步骤。其中,所述计算机设备300也以作为流量请求清理的装置的载体。
其中,所述处理器301可以包括一个或多个处理核心。所述处理器301利用各种接口和线路连接计算机设备300的各个部分,通过运行或执行存储在存储器340和/或内存330内的指令、程序、代码集或指令集,以及调用存储器303内的数据,执行计算机设备300的各种功能和处理数据,可选的,处理器301可以采用数字信号处理(Digital SignalProcessing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programble Logic Array,PLA)中的至少一个硬件形式来实现。处理器301可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责触摸显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器301中,单独通过一块芯片进行实现。
其中,存储器301可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器301可用于存储指令、程序、代码、代码集或指令集。存储器301可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控指令等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。
本申请第四实施例还提供了一种计算机存储介质,该计算机存储介质可以存储有多条指令,该指令适用于由处理器加载并执行第一实施例的方法步骤,具体执行过程可以参见第一实施例的具体说明,在此不进行赘述。所述存储介质所在设备可以是个人计算机、笔记本电脑、智能手机、平板电脑等电子设备。
计算机存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中选定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中选定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中选定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (14)
1.一种流量请求清理方法,其特征在于,所述方法包括步骤:
在服务器受到流量攻击时,获取客户端的流量特征信息;所述流量特征信息为从所述客户端发送的流量请求中提取的信息,所述流量特征信息包括客户端标识;
当第一缓存结构未存储有所述客户端标识时,若所述第一缓存结构满足预设清理条件,在与所述第一缓存结构关联的若干个第二缓存结构中,确定位于预设位置的目标流量特征信息;在所述第一缓存结构和若干个所述第二缓存结构中删除预设数量的所述目标流量特征信息;其中,所述预设位置为根据流量特征信息的权重按照由小至大的方式,从第二缓存结构表头位置至表尾位置依次存储流量特征信息时,第二缓存结构的表头位置;
将所述流量特征信息存储至所述第一缓存结构;根据所述流量特征信息,获得所述客户端标识对应的一个所述第二缓存结构以及在所述第二缓存结构中的缓存权重;根据所述缓存权重,将所述流量特征信息存储至所述第二缓存结构对应位置。
2.根据权利要求1所述的流量请求清理方法,其特征在于:
当所述第一缓存结构存储有所述客户端标识时,根据所述流量特征信息,获得所述客户端标识所在的第二缓存结构以及在所述第二缓存结构中的缓存权重;根据所述缓存权重,更新所述客户端标识对应的流量特征信息在所述第二缓存结构的位置。
3.根据权利要求1或2所述的流量请求清理方法,其特征在于:
所述根据所述流量特征信息,获得所述客户端标识对应的一个所述第二缓存结构以及在所述第二缓存结构中的缓存权重的步骤,包括:
对所述客户端标识进行哈希计算,获得所述客户端标识对应的一个所述第二缓存结构;
根据所述流量特征信息以及所述第二缓存结构,获得所述流量特征信息在所述第二缓存结构中的缓存权重。
4.根据权利要求3所述的流量请求清理方法,其特征在于:
所述对所述客户端标识进行哈希计算,获得所述客户端标识对应的一个所述第二缓存结构的步骤,包括:
对若干个所述第二缓存结构依序进行标号,统计若干个所述第二缓存结构的数量;
对所述客户端标识进行哈希计算,将哈希计算后的结果取模所述第二缓存结构的数量,将取模后的结果作为标号,将标号对应的第二缓存结构作为所述客户端标识对应的第二缓存结构。
5.根据权利要求3所述的流量请求清理方法,其特征在于:
所述流量特征信息还包括流量请求时间;
所述根据所述流量特征信息以及所述第二缓存结构,获得所述流量特征信息在所述第二缓存结构中的缓存权重的步骤,包括:
根据所述第二缓存结构,获得所述客户端标识对应的流量请求次数;
根据所述流量请求时间、所述流量请求次数以及缓存标识,获得所述流量特征信息在所述第二缓存结构中的缓存权重;其中,所述缓存标识用于指示所述客户端标识是否存储在最近使用的缓存中。
6.根据权利要求1或2所述的流量请求清理方法,其特征在于:
所述第二缓存结构按照所述缓存权重从小至大的顺序依次从表头位置至表尾位置存储所述流量特征信息;所述根据所述缓存权重,将所述流量特征信息存储至所述第二缓存结构对应位置的步骤,包括:
将所述客户端标识对应的缓存权重与所述第二缓存结构中表头位置存储的客户端标识的缓存权重进行比较;
若所述客户端标识对应的缓存权重小于或等于所述第二缓存结构中表头位置存储的客户端标识的缓存权重,将所述客户端标识对应的流量特征信息插入存储至表头位置前面,将所述客户端标识对应的流量特征信息所在的位置更新为所述第二缓存结构的表头位置;
若所述客户端标识对应的缓存权重大于所述第二缓存结构中表头位置存储的客户端标识的缓存权重,从所述第二缓存结构的表尾位置向表头位置遍历比较缓存权重,将所述客户端标识对应的流量特征信息放置在所述第二缓存结构的对应位置。
7.根据权利要求6所述的流量请求清理方法,其特征在于:
所述根据所述缓存权重,将所述流量特征信息存储至所述第二缓存结构对应位置的步骤之前,还包括:
在所述第二缓存结构中,将更新时长大于或等于预设时长阈值的流量特征信息从所述第二缓存结构中删除。
8.根据权利要求7所述的流量请求清理方法,其特征在于:
所述在所述第二缓存结构中,将更新时长大于或等于预设时长阈值的流量特征信息从所述第二缓存结构中删除的步骤,包括:
从所述第二缓存结构的表头位置开始,将所述第二缓存结构各个位置的更新时长与预设时长阈值进行比较,若对应位置的流量特征信息的更新时长大于或等于预设时长阈值,将所述流量特征信息从所述第二缓存结构中删除,比较下一位置的流量特征信息的更新时长是否大于预设阈值;若对应位置的流量特征信息的更新时长小于预设时长阈值,停止删除所述流量特征信息。
9.根据权利要求1或2所述的流量请求清理方法,其特征在于:
所述第一缓存结构包括若干个缓存链表;所述将所述流量特征信息存储至所述第一缓存结构的步骤,包括:
对若干个所述缓存链表依序进行标号,统计若干个所述缓存链表的数量;
对所述客户端标识进行哈希计算,将哈希计算后的结果取模所述缓存链表的数量,将取模后的结果作为标号,将标号对应的缓存链表作为所述客户端标识对应的缓存链表;
将所述客户端标识对应的流量特征信息存储至所述缓存链表中;其中,所述缓存链表可存储的流量特征信息的数量小于所述第二缓存结构可存储的流量特征信息的数量。
10.根据权利要求1或2所述的流量请求清理方法,其特征在于:
所述在所述第一缓存结构和若干个所述第二缓存结构中删除预设数量的所述目标流量特征信息的步骤之前,还包括:
分别获取各个所述第二缓存结构存储的流量特征信息的数量;
若所述第二缓存结构存储的流量特征信息的数量少于或等于预设数量阈值,保留所述第二缓存结构中的目标流量特征信息;
若所述第二缓存结构存储的流量特征信息的数量大于预设数量阈值,删除所述第二缓存结构中的目标流量特征信息。
11.根据权利要求1或2所述的流量请求清理方法,其特征在于:
所述第一缓存结构为并发映射缓存结构;所述将所述流量特征信息存储至所述第一缓存结构的步骤包括:通过并发映射方式将所述流量特征信息存储至所述第一缓存结构。
12.一种流量请求清理装置,其特征在于,包括:
流量特征信息获取模块,用于在服务器受到流量攻击时,获取客户端的流量特征信息;所述流量特征信息为从所述客户端发送的流量请求中提取的信息,所述流量特征信息包括客户端标识;
流量请求清理模块,用于当第一缓存结构未存储有所述客户端标识时,若所述第一缓存结构满足预设清理条件,在与所述第一缓存结构关联的若干个第二缓存结构中,确定位于预设位置的目标流量特征信息;在所述第一缓存结构和若干个所述第二缓存结构中删除预设数量的所述目标流量特征信息;其中,所述预设位置为根据流量特征信息的权重按照由小至大的方式,从第二缓存结构表头位置至表尾位置依次存储流量特征信息时,第二缓存结构的表头位置;
流量缓存模块,用于将所述流量特征信息存储至所述第一缓存结构;根据所述流量特征信息,获得所述客户端标识对应的一个所述第二缓存结构以及在所述第二缓存结构中的缓存权重;根据所述缓存权重,将所述流量特征信息存储至所述第二缓存结构对应位置。
13.一种计算机设备,包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至11任意一项所述方法的步骤。
14.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至11任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210240274.2A CN114584623B (zh) | 2022-03-10 | 2022-03-10 | 流量请求清理方法、装置、存储介质以及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210240274.2A CN114584623B (zh) | 2022-03-10 | 2022-03-10 | 流量请求清理方法、装置、存储介质以及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114584623A CN114584623A (zh) | 2022-06-03 |
CN114584623B true CN114584623B (zh) | 2024-03-29 |
Family
ID=81775015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210240274.2A Active CN114584623B (zh) | 2022-03-10 | 2022-03-10 | 流量请求清理方法、装置、存储介质以及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114584623B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106209775A (zh) * | 2016-06-24 | 2016-12-07 | 深圳信息职业技术学院 | 一种ssl加密网络流的应用类型识别方法与装置 |
KR20170090161A (ko) * | 2016-01-28 | 2017-08-07 | 동서대학교산학협력단 | SDN에서의 DoS공격 방어시스템 및 이의 구현방법 |
CN107169346A (zh) * | 2017-04-28 | 2017-09-15 | 中国人民解放军信息工程大学 | 基于动态内存重映射和缓存清除的侧信道攻击防御方法及其装置 |
CN110430062A (zh) * | 2019-07-22 | 2019-11-08 | 杭州吉讯汇通科技有限公司 | 登录请求处理方法、装置、设备及介质 |
CN110505232A (zh) * | 2019-08-27 | 2019-11-26 | 百度在线网络技术(北京)有限公司 | 网络攻击的检测方法及装置、电子设备、存储介质 |
CN112671736A (zh) * | 2020-12-16 | 2021-04-16 | 深信服科技股份有限公司 | 一种攻击流量确定方法、装置、设备及存储介质 |
CN113225263A (zh) * | 2021-04-20 | 2021-08-06 | 新华三半导体技术有限公司 | 一种流量请求处理方法、装置及网络芯片 |
CN113395369A (zh) * | 2021-06-10 | 2021-09-14 | 北京天融信网络安全技术有限公司 | 一种缓存管理方法、装置、电子设备及存储介质 |
CN113836024A (zh) * | 2021-09-27 | 2021-12-24 | 中南大学 | 基于配置驱动的流量复用ab测试方法及系统 |
CN113890746A (zh) * | 2021-08-16 | 2022-01-04 | 曙光信息产业(北京)有限公司 | 攻击流量识别方法、装置、设备以及存储介质 |
-
2022
- 2022-03-10 CN CN202210240274.2A patent/CN114584623B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170090161A (ko) * | 2016-01-28 | 2017-08-07 | 동서대학교산학협력단 | SDN에서의 DoS공격 방어시스템 및 이의 구현방법 |
CN106209775A (zh) * | 2016-06-24 | 2016-12-07 | 深圳信息职业技术学院 | 一种ssl加密网络流的应用类型识别方法与装置 |
CN107169346A (zh) * | 2017-04-28 | 2017-09-15 | 中国人民解放军信息工程大学 | 基于动态内存重映射和缓存清除的侧信道攻击防御方法及其装置 |
CN110430062A (zh) * | 2019-07-22 | 2019-11-08 | 杭州吉讯汇通科技有限公司 | 登录请求处理方法、装置、设备及介质 |
CN110505232A (zh) * | 2019-08-27 | 2019-11-26 | 百度在线网络技术(北京)有限公司 | 网络攻击的检测方法及装置、电子设备、存储介质 |
CN112671736A (zh) * | 2020-12-16 | 2021-04-16 | 深信服科技股份有限公司 | 一种攻击流量确定方法、装置、设备及存储介质 |
CN113225263A (zh) * | 2021-04-20 | 2021-08-06 | 新华三半导体技术有限公司 | 一种流量请求处理方法、装置及网络芯片 |
CN113395369A (zh) * | 2021-06-10 | 2021-09-14 | 北京天融信网络安全技术有限公司 | 一种缓存管理方法、装置、电子设备及存储介质 |
CN113890746A (zh) * | 2021-08-16 | 2022-01-04 | 曙光信息产业(北京)有限公司 | 攻击流量识别方法、装置、设备以及存储介质 |
CN113836024A (zh) * | 2021-09-27 | 2021-12-24 | 中南大学 | 基于配置驱动的流量复用ab测试方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114584623A (zh) | 2022-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3131265B1 (en) | Data prefetching method for distributed hash table dht storage system, node, and system | |
US10521358B2 (en) | System, apparatus and method for prioritizing the storage of content based on a threat index | |
CN108429800B (zh) | 一种移动设备 | |
US9491253B2 (en) | Data storage based on content popularity | |
US20190222603A1 (en) | Method and apparatus for network forensics compression and storage | |
KR102292471B1 (ko) | 다이내믹 캐시 할당 및 네트워크 관리 | |
CN106230997B (zh) | 一种资源调度方法和装置 | |
CN107391280A (zh) | 一种小文件的接收和存储方法及装置 | |
US10404603B2 (en) | System and method of providing increased data optimization based on traffic priority on connection | |
US20160299971A1 (en) | Identifying Search Engine Crawlers | |
CN107301215A (zh) | 一种搜索结果缓存方法及装置、搜索方法及装置 | |
US10382551B2 (en) | Cloud file processing method and apparatus | |
CN114510711A (zh) | 防护cc攻击的方法、装置、介质以及计算机设备 | |
EP2568386A1 (en) | Method for accessing cache and fictitious cache agent | |
US20160205047A1 (en) | Hierarchical caching system for lossless network packet capture applications | |
CN110245129A (zh) | 一种分布式全局数据去重方法和装置 | |
CN114584623B (zh) | 流量请求清理方法、装置、存储介质以及计算机设备 | |
KR102172056B1 (ko) | Icn 라우터 및 콘텐츠 제공자 단말을 포함하는 토큰 기반 캐싱 시스템의 제어 방법, 장치 및 프로그램 | |
CN111708594A (zh) | 页面渲染方法、装置、电子设备及存储介质 | |
US20140136647A1 (en) | Router and operating method thereof | |
CN105025042B (zh) | 一种确定数据信息的方法及系统、代理服务器 | |
JP2018511131A (ja) | オンライン媒体のための階層的なコストベースのキャッシング | |
Pan et al. | Nb-cache: Non-blocking in-network caching for high-performance content routers | |
CN111324438B (zh) | 请求的调度方法、装置、存储介质及电子设备 | |
CN116418893A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |