CN111162947B - 一种pcre热切换方法、网络设备及存储介质 - Google Patents
一种pcre热切换方法、网络设备及存储介质 Download PDFInfo
- Publication number
- CN111162947B CN111162947B CN201911401847.XA CN201911401847A CN111162947B CN 111162947 B CN111162947 B CN 111162947B CN 201911401847 A CN201911401847 A CN 201911401847A CN 111162947 B CN111162947 B CN 111162947B
- Authority
- CN
- China
- Prior art keywords
- pcre
- shared memory
- feature library
- global
- working
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9035—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种PCRE热切换方法、网络设备及存储介质,属于网络安全技术领域。该方法应用于网络设备,网络设备包括:对应同一个共享内存的管理进程和多个工作进程。方法包括:管理进程将PCRE特征库加载至共享内存,更新共享内存中的全局数据指针的值,并保存每个工作进程的当前全局计数;管理进程定期获取每个工作进程各自的全局计数,并判断获取的全局计数相较于保存的当前全局计数是否均发生变化;在所有工作进程的全局计数均发生变化时,管理进程释放所述共享内存中前一次加载的PCRE特征库。通过共享内存,使得多个工作进程之间可以访问相同的特征数据,搭配全局计数实现高效、无锁、不阻塞、无需进程重启的PCRE热切换。
Description
技术领域
本申请属于网络安全技术领域,具体涉及一种PCRE热切换方法、网络设备及存储介质。
背景技术
在当前网络通信及安全领域,很多路由器及防火墙都采用基于包过滤的处理方式,来处理经过设备的报文。厂商为增加设备的数据处理能力,常常采用网卡与进程绑定的方式,利用特定进程对特定网卡进行轮询检测并转发报文。这就要求处理包转发的多个进程进行协调,并且每个进程处理每个报文的时间足够短,尽量降低网络的延迟。很多如入侵防御系统(Intrusion Prevention System,IPS),Web应用防护系统(Web ApplicationFirewall,WAF),防火墙等安全设备,会使用大量Perl兼容的正则表达式 (PerlCompatible Regular Expressions,PCRE)来定义各种过滤规则形成一个特征库,每次用户更改特征库的配置,定期升级自己特征库时,要求网络业务不能中断,而且不能长时间阻塞网络,导致影响整个网络的转发。目前所采用的处理方式,均无法满足上述要求。
发明内容
鉴于此,本申请的目的在于提供一种PCRE热切换方法、网络设备及存储介质,以改善当前在高负载数据包过滤处理进程中,PCRE特征库切换容易造成网络阻塞的问题。
本申请的实施例是这样实现的:
第一方面,本申请实施例提供了一种PCRE热切换方法,应用于网络设备,所述网络设备包括:管理进程和多个工作进程,所述管理进程和所述多个工作进程中的每个工作进程均对应有同一个共享内存;所述方法包括:所述管理进程将PCRE特征库加载至所述共享内存,更新所述共享内存中的全局数据指针的值,并保存每个工作进程的当前全局计数以及当前全局数据指针,其中,更新后的全局数据指针用于每个工作进程访问所述 PCRE特征库;所述管理进程定期获取每个工作进程各自的全局计数,并判断获取的全局计数相较于保存的所述当前全局计数是否均发生变化,其中,每个工作进程在根据所述PCRE特征库处理完成预设数量的报文处理时更新各自的全局计数;在所有工作进程的全局计数均发生变化时,所述管理进程根据所述当前全局数据指针释放所述共享内存中前一次加载的PCRE特征库。本申请实施例中,通过共享内存,使得管理进程每次在切换PCRE 特征库后,多个工作进程不需要重启,也不需要各自再重新配置PCRE特征库,就可直接访问该PCRE特征库进行报文处理,进而实现高效、无锁、不阻塞、无需进程重启的PCRE热切换;进一步,通过给每个工作进程配置全局计数,使得管理进程能够判断是否需要释放旧的特征库,以减少内存资源占用。
结合第一方面实施例的一种可能的实施方式,在所述管理进程将PCRE 特征库加载至所述共享内存之前,所述方法还包括:在启动所述管理进程的过程中,所述管理进程初始化所述共享内存以及所述全局数据指针,并初始化每个工作进程各自的全局计数。本申请实施例中,在启动管理进程的时候,初始化所述共享内存以及所述全局数据指针,并初始化每个工作进程各自的全局计数,以保证流程的顺利实施。
结合第一方面实施例的一种可能的实施方式,所述管理进程将PCRE 特征库加载至所述共享内存,包括:所述管理进程在接收到特征库重载信号时,将所述PCRE特征库加载至所述共享内存。本申请实施例中,管理进程在接收到特征库重载信号时,才加载新的特征库,避免造成特征库加载出错。
第二方面,本申请实施例还提供了一种PCRE热切换方法,应用于网络设备,所述网络设备包括:管理进程和多个工作进程,所述管理进程和所述多个工作进程中的每个工作进程均对应有同一个共享内存,所述管理进程,用于将PCRE特征库加载至所述共享内存,更新所述共享内存中的全局数据指针的值;所述方法包括:针对每个工作进程,该工作进程在接收到待处理报文时,根据所述全局数据指针读取所述PCRE特征库中的特征数据,并利用所述特征数据对所述待处理报文进行处理;统计已处理完成的报文数量;在所述报文数量达到预设数量后,更新该工作进程的全局计数,所述全局计数用于指示所述管理进程是否释放所述共享内存中前一次加载的PCRE特征库。本申请实施例中,通过共享内存,使得管理进程每次在切换PCRE特征库后,多个工作进程不需要重启,也不需要各自再重新配置PCRE特征库,就可直接访问该PCRE特征库进行报文处理,进而实现高效、无锁、不阻塞、无需进程重启的PCRE热切换;进一步,通过给每个工作进程配置全局计数,使得管理进程能够判断是否需要释放旧的特征库,以减少内存资源占用。
结合第二方面实施例的一种可能的实施方式,在根据所述全局数据指针读取所述PCRE特征库中的特征数据之前,所述方法还包括:在启动该工作进程的过程中,该工作进程将所述共享内存映射到自身进程中的特定起始地址,并利用所述PCRE特征库提供的接口函数分配自身进程的即时编译堆栈。本申请实施例中,各工作进程通过将共享内存映射到自身进程中的同一特定起始地址,实现内存共享,同时利用PCRE特征库提供的接口函数分配自身进程的即时编译堆栈,保证其处理性能。
第三方面,本申请实施例还提供了一种网络设备,包括:处理器,所述处理器上运行有管理进程和多个工作进程,所述管理进程和所述多个工作进程中的每个工作进程均对应有同一个共享内存;所述管理进程,用于将PCRE特征库加载至所述共享内存,更新所述共享内存中的全局数据指针的值,并保存每个工作进程的当前全局计数以及当前全局数据指针,其中,更新后的全局数据指针用于每个工作进程访问所述PCRE特征库;每个工作进程,均用于在接收到待处理报文时,根据所述全局数据指针读取所述PCRE特征库中的特征数据,并利用所述特征数据对所述待处理报文进行处理,待完成预设数量的报文处理后,更新自身的全局计数;所述管理进程,还用于定期获取每个工作进程各自的全局计数,并判断获取的全局计数相较于保存的所述当前全局计数是否均发生变化,在所有工作进程的全局计数均发生变化时,根据所述当前全局数据指针释放所述共享内存中前一次加载的PCRE特征库。
结合第三方面实施例的一种可能的实施方式,在启动所述管理进程的过程中,所述管理进程,还用于初始化所述共享内存以及所述全局数据指针,并初始化每个工作进程各自的全局计数。
结合第三方面实施例的一种可能的实施方式,在启动每个工作进程的过程中,每个工作进程,均还用于将所述共享内存映射到自身进程中的同一起始地址,并利用所述PCRE特征库提供的接口函数分配自身进程的即时编译堆栈。
结合第三方面实施例的一种可能的实施方式,所述管理进程,用于在接收到特征库重载信号时,将所述PCRE特征库加载至所述共享内存。
第四方面,本申请实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被计算机运行时执行如上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法,或者如上述第二方面实施例和/或结合第二方面实施例的一种可能的实施方式提供的方法。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本申请的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本申请的主旨。
图1示出了本申请实施例提供的一种网络设备的结构示意图。
图2示出了本申请实施例提供的管理进程以及工作进程各自的功能流程示意图。
图3示出了本申请实施例提供的一种PCRE热切换方法的流程示意图。
图4示出了本申请实施例提供的又一种PCRE热切换方法的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
发明人在研究本申请的过程中发现,当前安全设备在基于包过滤的处理方式来处理经过设备的报文时,主要有以下两种实施方式:1.每个进程单独加载PCRE特征库,在每次配置切换时,多个进程同时加载切换PCRE 特征库。在PCRE正则表达式多的情况下,可能需要几秒甚至十几秒,容易造成网络阻塞,形成丢包,并且会占用更多的内存。2.利用单独一个进程(管理进程)来加载配置,并通知工作进程进行配置切换。该方式虽然可以实现工作进程无阻塞,但是需要重启工作进程,这时为了保证网络业务不中断,需要将这段时间内的数据报文放过处理,而且在之前工作进程中保存的连接上的会话信息也会丢失,使新的工作进程无法对一些基于会话的应用报文进行规则检测,降低了设备的安全性。需要说明的是,针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应该是发明人在本申请过程中对本申请做出的贡献。
鉴于此,本申请实施例提供一种PCRE热切换方法,利用系统库函数 mmap(是一种内存映射文件的机制,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系)可以指定映射地址的特性,使得多个工作进程之间通过映射同一个文件(PCRE特征库)实现共享内存,使得各个工作进程可以访问相同的特征数据,即工作进程可以直接访问网络设备的内存空间,相较于从网络设备的内存空间拷贝数据到工作进程的地址空间,具有更高的效率。综上,本申请实施例的方案能够实现高效、无锁、不阻塞、无需进程重启的PCRE热切换,并且能够利用PCRE特征库提供的即时编译(Just In Time, JIT)特性,保证其处理性能。其中,PCRE特征库提供的JIT特性,使得工作进程在访问PCRE特征库的特征数据时,可以将特征数据直接编译成机器码,使得工作进程进行报文处理的速度更快,该部分内容为本领域技术人员所熟知的内容,在此不再赘述。
为了便于理解,下面将结合图1所示的网络设备进行说明。如图1所示,该网络设备包括:物理内存和处理器。其中,处理器上运行有管理进程和多个工作进程。其中,该处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路 (Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其中,该网络设备,包括但不限于路由器及防火墙等设备。本申请实施例中,可以根据PCRE特征库提供的 pcre_malloc函数与pcre_free函数实现一个简单的内存管理模块,用于从指定位置的共享内存中分配和释放内存,并确认关闭系统地址空间布局随机化(Address space layout randomization,ASLR)功能。在启动管理进程的过程中,管理进程在物理内存中创建共享内存(shm)并映射到自身进程特定的起始地址,同时初始化共享内存,初始化每个进程都能访问的全局计数 worker_counter[1…N],并将初始值设置为0,初始化全局数据指针g_rule,初始值设置为NULL,剩下的共享内存地址用于自定义内存分配模块 shm_malloc,与shm_free使用的系统内存,其示意图如图2所示。
在启动每个工作进程的过程中,每个工作进程各自将共享内存映射到本进程特定的起始地址,也即每个工作进程各自将该共享内存映射到自身进程中的同一起始地址,且与管理进程映射的起始地址相同,使得多个工作进程可以访问相同的特征数据。同时,每个工作进程设置自身进程id为 i,使用全局计数worker_counter[i],接着利用PCRE特征库提供的接口函数分配自身进程的即时编译堆栈(JIT stack),然后就可以正常访问PCRE特征库的全局数据指针,进入包处理循环。之后每个工作进程每处理完一定数目(例如16)的数据包之后,更新自身进程的全局计数,例如将当前进程的全局计数worker_counter[i]加1。
管理进程通过一定方式接收特征库重载信号(即切换信号),接收到特征库重载信号时,将该特征库重载信号对应的PCRE特征库加载至共享内存,更新共享内存中的全局数据指针的值,并保存每个工作进程的当前全局计数以及当前全局数据指针。管理进程会定期(例如每隔一秒)获取每个工作进程各自的全局计数,并判断获取的全局计数相较于保存的当前全局计数是否均发生变化,在所有工作进程的全局计数worker_counter[1...N] 均发生变化时,表明共享内存中前一次加载的PCRE特征库均已被所有的工作进程加载,因此可以通过释放共享内存中的旧的PCRE特征库(当前全局数据指针指向的资源),以减少对内存的资源占用。其中,每个工作进程在接收到待处理报文时,根据该全局数据指针读取PCRE特征库中的特征数据,并利用特征数据对待处理报文进行处理,待完成预设数量(例如 16)的报文处理后,更新自身的全局计数。其中,每个工作进程基于PCRE 特征库中的特征数据对待处理报文进行处理的具体过程已经为本领域技术人员所熟知,此处不再介绍。
管理进程在确定所有工作进程的全局计数均发生变化时,释放共享内存中的PCRE特征库,等待下次特征库重载信号,然后重复上述的操作,即在接收到下次特征库重载信号时,加载新的PCRE特征库,并更新共享内存中的全局数据指针的值,并保存每个工作进程的当前全局计数以及当前全局数据指针;然后定期获取每个工作进程各自的全局计数,并判断获取的全局计数相较于保存的当前全局计数是否均发生变化,在所有工作进程的全局计数均发生变化时,再次释放共享内存中的旧的PCRE特征库。请参阅图3,为本申请实施例提供的一种应用于网络设备的PCRE热切换方法,下面将结合图3对其所包含的步骤进行说明。其中,网络设备包括:管理进程和多个工作进程,所述管理进程和所述多个工作进程中的每个工作进程均对应有同一个共享内存。
步骤S101:所述管理进程将PCRE特征库加载至所述共享内存,更新所述共享内存中的全局数据指针的值,并保存每个工作进程的当前全局计数以及当前全局数据指针。
作为一种实施方式,管理进程将PCRE特征库加载至所述共享内存的过程可以是,在接收到特征库重载信号时,将该特征库重载信号对应的 PCRE特征库加载至所述共享内存。其中,更新后的全局数据指针用于每个工作进程访问所述PCRE特征库。
其中,在所述管理进程将PCRE特征库加载至所述共享内存之前,所述方法还包括:在启动所述管理进程的过程中,所述管理进程初始化所述共享内存以及所述全局数据指针,并初始化每个工作进程各自的全局计数。
步骤S102:所述管理进程定期获取每个工作进程各自的全局计数,并判断获取的全局计数相较于保存的所述当前全局计数是否均发生变化。
在所有工作进程的全局计数均发生变化时,执行步骤S103,否则重复执行步骤S102,直至确定所有工作进程的全局计数均发生变化为止。其中,每个工作进程在根据所述PCRE特征库处理完成预设数量的报文处理时会更新各自的全局计数。
步骤S103:所述管理进程根据所述当前全局数据指针释放所述共享内存中前一次加载的PCRE特征库。
在所有工作进程的全局计数均发生变化时,所述管理进程释放旧的 PCRE特征库。
请参阅图4,为本申请实施例提供的又一种应用于网络设备的 PCRE热切换方法,下面将结合图4对其所包含的步骤进行说明。其中,网络设备包括:管理进程和多个工作进程,所述管理进程和所述多个工作进程中的每个工作进程均对应有同一个共享内存。
步骤S201:针对每个工作进程,该工作进程在接收到待处理报文时,根据所述全局数据指针读取所述PCRE特征库中的特征数据,并利用所述特征数据对所述待处理报文进行处理。
其中,在根据所述全局数据指针读取所述PCRE特征库中的特征数据之前,所述方法还包括:在启动该工作进程的过程中,该工作进程将所述共享内存映射到自身进程中的特定起始地址,并利用所述PCRE特征库提供的接口函数分配自身进程的即时编译堆栈。
步骤S202:统计已处理完成的报文数量。
该工作进程在基于共享内存中的特征数据对接收到的待处理报文进行处理后,会实时统计已处理完成的报文数量,以便待处理完一定数据的报文后,更新自身的全局计数,如在原来的基础上加1。
步骤S203:在所述报文数量达到预设数量后,更新该工作进程的全局计数。
所述全局计数用于指示所述管理进程是否释放所述PCRE特征库。进一步地,管理进程在将PCRE特征库加载至共享内存的过程中,会保存每个工作进程的当前全局计数以及当前全局数据指针,之后管理进程会定期获取每个工作进程各自的全局计数,并判断获取的全局计数相较于保存的所述当前全局计数是否均发生变化,在所有工作进程的全局计数均发生变化时,管理进程根据当前全局数据指针释放共享内存中前一次加载的PCRE 特征库(旧的PCRE特征库)。
本申请实施例所提供的方法,其实现原理及产生的技术效果和前述装置实施例相同,为简要描述,方法实施例部分未提及之处,可参考前述装置实施例中相应内容。
本申请实施例还提供了一种非易失性计算机可读取存储介质(以下简称存储介质),该存储介质上存储有计算机程序,该计算机程序被计算机如上述的网络设备运行时,执行上述方法实施例所示的PCRE热切换方法。该存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种PCRE热切换方法,其特征在于,应用于网络设备,所述网络设备包括:管理进程和多个工作进程,所述管理进程和所述多个工作进程中的每个工作进程均对应有同一个共享内存;所述方法包括:
所述管理进程将PCRE特征库加载至所述共享内存,更新所述共享内存中的全局数据指针的值,并保存每个工作进程的当前全局计数以及当前全局数据指针,其中,更新后的全局数据指针用于每个工作进程访问所述PCRE特征库;
所述管理进程定期获取每个工作进程各自的全局计数,并判断获取的全局计数相较于保存的所述当前全局计数是否均发生变化,其中,每个工作进程在根据所述PCRE特征库处理完成预设数量的报文处理时更新各自的全局计数;
在所有工作进程的全局计数均发生变化时,所述管理进程根据所述当前全局数据指针释放所述共享内存中已加载的PCRE特征库。
2.根据权利要求1所述的方法,其特征在于,在所述管理进程将PCRE特征库加载至所述共享内存之前,所述方法还包括:
在启动所述管理进程的过程中,所述管理进程初始化所述共享内存以及所述全局数据指针,并初始化每个工作进程各自的全局计数。
3.根据权利要求1或2所述的方法,其特征在于,所述管理进程将PCRE特征库加载至所述共享内存,包括:
所述管理进程在接收到特征库重载信号时,将所述PCRE特征库加载至所述共享内存。
4.一种PCRE热切换方法,其特征在于,应用于网络设备,所述网络设备包括:管理进程和多个工作进程,所述管理进程和所述多个工作进程中的每个工作进程均对应有同一个共享内存,所述管理进程,用于将PCRE特征库加载至所述共享内存,更新所述共享内存中的全局数据指针的值;所述方法包括:
针对每个工作进程,该工作进程在接收到待处理报文时,根据所述全局数据指针读取所述PCRE特征库中的特征数据,并利用所述特征数据对所述待处理报文进行处理;
统计已处理完成的报文数量;
在所述报文数量达到预设数量后,更新该工作进程的全局计数,所述全局计数用于指示所述管理进程是否释放所述共享内存中已加载的PCRE特征库,其中,在所有工作进程的全局计数均发生变化时指示所述管理进程释放所述共享内存中已加载的PCRE特征库。
5.根据权利要求4所述的方法,其特征在于,在根据所述全局数据指针读取所述PCRE特征库中的特征数据之前,所述方法还包括:
在启动该工作进程的过程中,该工作进程将所述共享内存映射到自身进程中的特定起始地址,并利用所述PCRE特征库提供的接口函数分配自身进程的即时编译堆栈。
6.一种网络设备,其特征在于,包括:
处理器,所述处理器上运行有管理进程和多个工作进程,所述管理进程和所述多个工作进程中的每个工作进程均对应有同一个共享内存;
所述管理进程,用于将PCRE特征库加载至所述共享内存,更新所述共享内存中的全局数据指针的值,并保存每个工作进程的当前全局计数以及当前全局数据指针,其中,更新后的全局数据指针用于每个工作进程访问所述PCRE特征库;
每个工作进程,均用于在接收到待处理报文时,根据所述全局数据指针读取所述PCRE特征库中的特征数据,并利用所述特征数据对所述待处理报文进行处理,待完成预设数量的报文处理后,更新自身的全局计数;
所述管理进程,还用于定期获取每个工作进程各自的全局计数,并判断获取的全局计数相较于保存的所述当前全局计数是否均发生变化,在所有工作进程的全局计数均发生变化时,根据所述当前全局数据指针释放所述共享内存中已加载的PCRE特征库。
7.根据权利要求6所述的网络设备,其特征在于,在启动所述管理进程的过程中,所述管理进程,还用于初始化所述共享内存以及所述全局数据指针,并初始化每个工作进程各自的全局计数。
8.根据权利要求6所述的网络设备,其特征在于,在启动每个工作进程的过程中,每个工作进程,均还用于将所述共享内存映射到自身进程中的同一起始地址,并利用所述PCRE特征库提供的接口函数分配自身进程的即时编译堆栈。
9.根据权利要求6所述的网络设备,其特征在于,所述管理进程,用于在接收到特征库重载信号时,将所述PCRE特征库加载至所述共享内存。
10.一种存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被计算机运行时执行如权利要求1-3中任一项所述的方法,或者如权利要求4或5所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911401847.XA CN111162947B (zh) | 2019-12-30 | 2019-12-30 | 一种pcre热切换方法、网络设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911401847.XA CN111162947B (zh) | 2019-12-30 | 2019-12-30 | 一种pcre热切换方法、网络设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111162947A CN111162947A (zh) | 2020-05-15 |
CN111162947B true CN111162947B (zh) | 2022-08-12 |
Family
ID=70559316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911401847.XA Active CN111162947B (zh) | 2019-12-30 | 2019-12-30 | 一种pcre热切换方法、网络设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111162947B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112685063B (zh) * | 2020-12-30 | 2023-11-28 | 北京天融信网络安全技术有限公司 | 特征库更新方法、装置、网络设备及可读存储介质 |
CN114465882B (zh) * | 2021-12-24 | 2024-10-01 | 天翼云科技有限公司 | 一种网关配置加载、获取方法、装置及计算机设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110213286A (zh) * | 2019-06-12 | 2019-09-06 | 四川长虹电器股份有限公司 | 一种基于双引擎的高效waf设计方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101360088B (zh) * | 2007-07-30 | 2011-09-14 | 华为技术有限公司 | 正则表达式编译、匹配系统及编译、匹配方法 |
WO2011148553A1 (ja) * | 2010-05-24 | 2011-12-01 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および情報処理方法 |
CN104424030B (zh) * | 2013-08-22 | 2020-01-14 | 腾讯科技(深圳)有限公司 | 多进程操作共享内存的方法和装置 |
CN108595346B (zh) * | 2018-04-25 | 2020-12-04 | 新华三信息安全技术有限公司 | 一种特征库文件管理方法和装置 |
-
2019
- 2019-12-30 CN CN201911401847.XA patent/CN111162947B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110213286A (zh) * | 2019-06-12 | 2019-09-06 | 四川长虹电器股份有限公司 | 一种基于双引擎的高效waf设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111162947A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3221795B1 (en) | Service addressing in distributed environment | |
CN110753131A (zh) | 微服务分布式限流方法及装置、存储介质和电子设备 | |
CN114930295A (zh) | 利用预留容量而不抑制缩放的无服务器调用分配 | |
US9021138B2 (en) | Performance of multi-processor computer systems | |
US20220329651A1 (en) | Apparatus for container orchestration in geographically distributed multi-cloud environment and method using the same | |
US20090265450A1 (en) | Method and apparatus for managing computing resources of management systems | |
CN107590033B (zh) | 一种创建docker容器的方法、装置和系统 | |
CN104539708B (zh) | 一种云平台资源的缩容方法、装置与系统 | |
CN111162947B (zh) | 一种pcre热切换方法、网络设备及存储介质 | |
CN110750336B (zh) | 一种OpenStack虚拟机内存热扩容方法 | |
US8296552B2 (en) | Dynamically migrating channels | |
CN111562884B (zh) | 一种数据存储方法、装置及电子设备 | |
EP4006725A1 (en) | Virtual machine migration processing and strategy generation method, apparatus and device, and storage medium | |
CN112631994A (zh) | 数据迁移方法及系统 | |
CN113687940A (zh) | 负载均衡方法、装置及物理机 | |
CN113141267A (zh) | 固件升级、信息处理方法、装置及设备 | |
CN111143071A (zh) | 基于mcs系统的缓存分区管理方法、系统及相关组件 | |
CN111435320B (zh) | 一种数据处理方法及其装置 | |
CN116264550A (zh) | 资源的切片处理方法和装置、存储介质及电子装置 | |
CN110046040B (zh) | 分布式任务处理方法及系统和存储介质 | |
CN118519860B (zh) | 接口调用的控制方法、装置、存储介质和电子设备 | |
CN111131296B (zh) | 消息分发方法和装置 | |
CN115801787B (zh) | 路端数据传输方法、装置及电子设备、存储介质 | |
US20230422094A1 (en) | Systems and methods for determining loads of base stations for connection with fixed wireless access devices | |
CN111143073A (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 |