CN107193673B - 一种报文处理方法及设备 - Google Patents
一种报文处理方法及设备 Download PDFInfo
- Publication number
- CN107193673B CN107193673B CN201710509548.2A CN201710509548A CN107193673B CN 107193673 B CN107193673 B CN 107193673B CN 201710509548 A CN201710509548 A CN 201710509548A CN 107193673 B CN107193673 B CN 107193673B
- Authority
- CN
- China
- Prior art keywords
- message
- shared memory
- kernel
- processing
- user
- 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
-
- 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/546—Message passing systems or structures, e.g. queues
-
- 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/542—Event management; Broadcasting; Multicasting; Notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种报文处理方法及设备,用于提升DNS服务器的域名解析速度,进而提升DNS服务器的QPS。该方法包括:报文处理设备通过处于内核态的第一进程侦听报文;所述报文处理设备通过报文收发进程接收用户设备发送的第一报文,并且将所述第一报文存储到共享内存;其中,所述共享内存能够被处于用户态的第一进程访问;所述报文处理设备将所述第一进程由内核态切换为用户态,并通过所述第一进程从所述共享内存中读取所述第一报文;所述报文处理设备通过所述第一进程处理所述第一报文,根据处理结果生成应答报文,并且通过所述第一进程将所述应答报文存储到所述共享内存。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种报文处理方法及设备。
背景技术
域名***(Domain Name System,DNS)服务器用于存储网络中所有主机的域名和该域名对应的网际协议(Internet Protocol,IP)地址。用户设备在进行域名访问时,需通过DNS服务器进行域名解析并返回该域名对应的IP地址,从而根据IP地址进行访问。其中,域名解析防护每秒查询率(Query Per Second,QPS)是指DNS服务器域名解析的阈值量,若同一时刻DNS服务器接收的域名解析请求超过域名解析防护QPS,则DNS服务器会出现域名解析超时的情况,使得用户设备无法正常的进行域名访问。也就是说,若域名解析防护QPS较低,则不法分子通过发送大量域名解析请求来攻击DNS服务器的成功率更高,使得DNS服务器无法正常为用户设备提供服务的成功率更高,这显然影响着用户的网络使用体验。因此,QPS是DNS服务器的一个极为重要的指标。
而目前通常是通过提升DNS服务器的硬件处理能力来提高DNS服务器的QPS。例如,通过设置多个DNS服务器,其中,不同的DNS服务器为不同范围内的用户设备提供域名解析服务,进而使得每个DNS服务器的域名解析的压力更小,以保证用户设备的域名访问得以正常进行;或者,采用更大内存或者更高性能中央处理器(Central Processing Unit,CPU)的DNS服务器。但这两种方法或者需要对DNS服务器进行改造,或者需要设置更多的DNS服务器,工作量大,需要耗费较多的人力。
发明内容
本发明实施例提供一种报文处理方法及设备,用于提升DNS服务器的域名解析速度,进而提升DNS服务器的QPS。
第一方面,提供一种报文处理方法,该方法包括:
报文处理设备通过处于内核态的第一进程侦听报文收发进程接收的报文;
所述报文处理设备通过所述报文收发进程接收用户设备发送的第一报文,并且将所述第一报文存储到共享内存;其中,所述共享内存能够被处于用户态的第一进程访问;
当所述报文处理设备通过所述处于内核态的第一进程侦听到所述报文收发进程已接收到所述第一报文时,则所述报文处理设备将所述第一进程由内核态切换为用户态,并通过所述第一进程从所述共享内存中读取所述第一报文;
所述报文处理设备通过所述第一进程处理所述第一报文,根据处理结果生成应答报文,并且通过所述第一进程将所述应答报文存储到所述共享内存。
可选的,当所述处于内核态的第一进程侦听到所述报文收发进程已接收到所述第一报文时,则所述报文处理设备将所述第一进程由内核态切换为用户态,包括:
所述报文处理设备通过所述处于内核态的所述第一进程接收所述报文收发进程发送的指示消息,所述指示消息用于指示所述第一进程,所述报文收发进程已接收所述第一报文;
所述报文处理设备将所述第一进程由内核态切换为用户态。
可选的,在所述报文处理设备通过所述第一进程将所述应答报文存储到所述共享内存之后,还包括:
所述报文处理设备通过所述报文收发进程将所述应答报文发送给所述用户设备。
可选的,在所述报文处理设备通过所述第一进程将所述应答报文存储到所述共享内存之后,还包括:
所述报文处理设备通过所述第一进程确定所述共享内存中是否存在待处理的第二报文;
若确定所述共享内存中存在待处理的第二报文,则所述报文处理设备通过所述第一进程从所述共享内存中读取并处理所述第二报文;否则,所述报文处理设备将所述第一进程由用户态切换为内核态,以通过处于内核态的所述第一进程继续侦听报文。
可选的,所述共享内存中存储的报文均采用无锁数据结构。
第二方面,提供一种报文处理设备,该设备包括:
侦听单元,用于通过内核态的第一进程用于侦听报文收发进程接收的报文;
收发单元,用于通过所述报文收发进程接收用户设备发送的第一报文,并且将所述第一报文存储到共享内存;其中,所述共享内存能够被处于用户态的第一进程访问;
读取单元,用于当所述侦听单元通过所述处于内核态的第一进程侦听到所述报文收发进程已接收到所述第一报文时,则将所述第一进程由内核态切换为用户态,并通过所述第一进程从所述共享内存中读取所述第一报文;
处理单元,用于通过所述第一进程处理所述第一报文,根据处理结果生成应答报文,并且通过所述第一进程将所述应答报文存储到所述共享内存。
可选的,当所述处于内核态的第一进程侦听到所述报文收发进程已接收到所述第一报文时,所述读取单元则将所述第一进程由内核态切换为用户态,包括:
当所述处于内核态的所述第一进程接收所述报文收发进程发送的指示消息时,所述指示消息用于指示所述第一进程,所述报文收发进程已接收所述第一报文;所述读取单元将所述第一进程由内核态切换为用户态。
可选的,所述收发单元还用于:在通过所述第一进程将所述应答报文存储到所述共享内存之后,通过所述报文收发进程将所述应答报文发送给所述用户设备。
可选的,所述设备还包括确定单元,
所述确定单元用于:在所述处理单元通过所述第一进程将所述应答报文存储到所述共享内存之后,通过所述第一进程确定所述共享内存中是否存在待处理的第二报文;
所述处理单元还用于:若确定单元确定所述共享内存中存在待处理的第二报文,通过所述第一进程从所述共享内存中读取并处理所述第二报文;
所述侦听单元还用于:若确定单元确定所述共享内存中不存在待处理的第二报文,将所述第一进程由用户态切换为内核态,以通过处于内核态的所述第一进程继续侦听报文。
可选的,所述共享内存中存储的报文均采用无锁数据结构。
第三方面,提供一种计算机装置,所述装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如第一方面提供的报文处理方法中任一项所述方法的步骤。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如第一方面提供的报文处理方法中任一项所述方法的步骤。
在本发明实施例中,在报文处理设备接收第一报文之后,会将第一报文存储到处于用户态的第一进程能够访问的共享内存中,这样第一进程则可以直接从共享内存中读取第一报文并进行报文处理,无需通过第一进程将第一报文复制到第一进程可以访问的内存空间中,进而提高处理效率。并且,在第一进程处理完第一报文后,还会将应答报文存储到共享内存中,这样也就不需要第一进程再次切换状态来复制应答报文,同样提高了处理效率。这样,就能够在不改变DNS服务器的硬件资源的情况下,通过提升每一次报文处理的速度,进而使得同一时刻能够处理的报文数量更多,也就是相应地提高了DNS服务器的QPS。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中DNS服务器进行域名解析的示意图;
图2为本发明实施例提供的报文处理方法的流程示意图;
图3为本发明实施例提供的报文处理设备的一种结构示意图;
图4为本发明实施例提供的计算机装置的一种结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
下面介绍本发明实施例的技术背景。
请参见图1,为现有技术中DNS服务器进行域名解析的示意图。首先,DNS服务器中DNS进程需要由用户态切换为内核态,并通过DNS服务器中***提供的SOCKET接口侦听报文;当DNS服务器接收到用于请求查询IP地址的查询报文时,DNS进程被唤醒,由内核态切换为用户态;由于DNS服务器接收的查询报文是存储在只允许处于内核态的进程访问的内存空间,而查询报文只能被处于用户态的DNS进程处理,因此DNS进程还需要通过SOCKET接口将查询报文复制到允许处于用户态的进程访问的内存空间,才能对查询报文进行处理。在DNS进程处理完该查询报文后并根据处理结果生成应答报文后,还需要通过SOCKET接口将应答报文复制到允许处于内核态的进程访问的内存空间,进而才能发送给相对应的用户设备。其中,DNS进程每处理一次查询报文都需要切换状态至少两次,较为繁琐,并且还需要进行查询报文和应答报文的复制,十分消耗时间。其中,这只是处理一个DNS查询报文的过程,可以预见,DNS查询报文较多时,则很有可能会堆积很多的待处理DNS查询报文,使得用户域名访问速度更慢,影响用户的使用体验。而显然,处理一个DNS查询报文的速度较慢,则DNS服务器的QPS也更低,也就增加了DNS服务器无法正常提供域名解析服务的可能性。
鉴于此,本发明实施例提供一种报文处理方法,在该方法中,报文处理设备接收第一报文之后,会将第一报文存储到处于用户态的第一进程能够访问的共享内存中,这样第一进程则可以直接从共享内存中读取第一报文并进行报文处理,无需再通过第一进程将第一报文复制到第一进程可以访问的内存空间中,进而提高处理效率。并且,在第一进程处理完第一报文后,还会将应答报文存储到共享内存中,这样也就不需要第一进程再次切换状态来复制应答报文,同样提高了处理效率,从而能够提升域名解析的速度,提高DNS服务器的QPS。
下面结合附图介绍本发明实施例提供的技术方案。
请参见图2,本发明一实施例提供一种报文处理方法,该方法的流程描述如下:
在本发明实施例中,报文处理设备可以是能够收发并处理报文的任何设备,例如报文处理设备可以是DNS服务器等。该报文处理设备可以包括第一线程、报文收发线程和共享内存,当然,第一线程、报文收发线程和共享内存也可以不设置在报文处理设备之内。下面以报文处理设备可以包括第一线程、报文收发线程和共享内存为例进行说明。
步骤S201:报文处理设备通过处于内核态的第一进程侦听报文收发进程接收的报文。
在本发明实施例中,当报文处理设备没有接收到报文时,报文处理设备则会通过报文处理设备中第一进程来侦听报文。其中,因为报文处理设备接收的报文是被存储在内核态的进程才能访问的内存空间,因此若是第一进程处于用户态,是无法侦听到报文的,则报文处理设备在没有待处理的报文时,则会将第一进程由用户态切换为内核态。具体的,报文处理设备可以通过第一进程经报文处理设备中的操作***提供的应用程序编程接口(Application Programming Interface,API)来调用内核,以切换成内核态。其中,API例如可以是NETLINK接口。
在本发明实施例中,当报文处理设备是DNS服务器时,第一进程则可以是DNS服务器中的DNS进程。
步骤S202:用户设备向报文处理设备发送第一报文,报文处理设备通过报文收发进程接收第一报文。
在用户设备需要处理第一报文时,用户设备则会向报文处理设备发送第一报文,例如当用户设备需要进行域名访问时,用户设备则会将DNS查询报文发送给DNS服务器,以请求DNS查询该域名对应的IP地址,进而用户设备才能根据该IP地址进行访问。相应地,报文处理设备可以通过报文收发进程接收用户设备发送的第一报文。
步骤S203:报文处理设备通过报文收发进程将第一报文存储到共享内存。
在报文处理设备通过报文收发进程接收第一报文之后,则报文处理设备可以通过报文收发进程将接收到的第一报文存储到共享内存。其中,报文收发进程是一个始终处于内核态的进程,也就是说报文收发进程是运行在报文处理设备中的内核空间的,因此报文收发进程可以直接接收到第一报文,并能够将第一报文存储在共享内存中。共享内存是本发明实施例在报文处理设备的内存中划出的一部分内存空间,并将该部分内存空间设置成用户态的进程也可以访问的内存空间。
在本发明实施例中,当报文处理设备是DNS服务器时,报文收发进程则可以是DNS服务器中的快转DNS进程。其中,快转DNS进程用于收取报文和将处理完成的应答报文转发给相应的用户设备。
步骤S204:报文处理设备通过报文收发进程向第一进程发送指示消息,报文处理设备通过第一进程接收指示消息。
当报文处理设备通过报文收发进程将第一报文存储到共享内存之后,报文收发进程则可以向第一进程发送指示消息,以告知第一进程报文收发进程已经收到第一报文并存储。其中,报文收发设备接收的报文可能有多个,因此,报文收发进程可以每存储一个报文之后都向第一进程发送指示消息。当然,为了减少报文收发进程与第一进程的交互量,报文收发进程可以在存储收到的第一个报文之后就向第一进程发送指示消息,而之后连续收到的报文则不发送指示消息。相应的,报文处理设备可以通过第一进程接收该指示消息。
具体的,报文收发进程可以通过操作***提供的API向第一进程发送指示消息,例如上述的NETLINK接口。
步骤S205:报文处理设备通过第一进程从共享内存中读取第一报文。
具体的,由于处于内核态的第一进程是无法对第一报文进行处理的,因此在报文处理设备通过第一进程接收到指示消息之后,报文处理设备首先会将第一进程由内核态切换为用户态。
在报文处理设备将第一进程由内核态切换为用户态之后,报文处理设备则可以通过第一进程从共享内存中读取第一报文。因为共享内存中存储的数据是可以被用户态的第一进程访问的,因此第一进程是可以直接从共享内存中读取第一报文的,而无需再将第一报文复制到第一进程可以访问的内存空间中才能继续后续的处理,显然,相较复制第一报文,本发明实施例从共享空间中直接读取第一报文显然更加节省时间。
在本发明实施例中,为了保证共享内存中存储的报文能够按照顺序依次被处理,因此共享内存中存储报文所采用的数据结构为无锁数据结构。当然,也可以采用能够实现报文能够按照顺序依次被处理的功能的其他可能的数据结构,本发明实施例对此不做限制。其中,报文能够按照顺序依次被处理是指第一进程在读取报文时,会从共享内存中存储的报文队列的第一个报文开始读取,当第一个报文被处理完成后,下一个报文则变成第一个报文,依次类推,也就是说第一进程读取的报文始终是处于报文队列中的第一个报文。而在报文收发进程存储报文,会将新接收到的报文存储在报文队列的最后面。其中,在报文收发进程发送应答报文时也是类似,即报文收发进程会读取应答报文队列中第一个应答报文并发送给相应的用户设备,第一进程在存储应答报文时,也会将应答报文存储在应答报文队列的最后。
具体的,本发明实施例的无锁数据结构除了能够实现上述功能外,还可以使得读取报文和存储应答报文能够同时进行,不需要加数据锁进行数据保护,则可以防止在读取报文或者存储应答报文时线程被挂起,进而无法继续下一次的读取报文或者存储应答报文,因此通过采用无锁数据结构还可以加快读取报文或者存储应答报文的速度。
步骤S206:报文处理设备通过第一进程处理第一报文,根据处理结果生成应答报文。
在本发明实施例中,在报文处理设备通过第一进程读取第一报文之后,报文处理设备通过第一进程处理第一报文,并根据处理结果生成应答报文。例如,当报文处理设备为DNS服务器时,DNS服务器中的DNS进程读取第一报文后,则会根据第一报文包括的信息查询相应的IP地址,并根据查询结果生成应答报文。
步骤S207:报文处理设备通过第一进程将应答报文存储到共享内存。
在本发明实施例中,在报文处理设备通过第一进程将应答报文存储到共享内存之后,报文处理设备还可以通过第一进程确定共享内存中是否存在待处理的第二报文。若是报文处理设备通过第一进程确定共享内存中存在待处理的第二报文,则报文处理设备则会继续通过第一进程从共享内存中读取并处理第二报文;而若是报文处理设备通过第一进程确定共享内存中已经没有任何待处理的第二报文,报文处理设备将第一进程由用户态切换为内核态,以通过处于内核态的第一进程继续侦听报文。其中,由于第一进程处理完第一报文之后,无需切换成内核态来发送应答报文,而是将应答报文存储到共享内存,这样第一进程则可以处理共享内存中存储的其他报文,而无需频繁的切换状态,显然更加节省时间。例如,当报文处理设备为DNS服务器时,则DNS服务器中的DNS进程可以持续处理DNS查询报文,而不需要频繁的切换DNS进程的状态,则域名解析的速度显然会更大的提升,相应的,DNS服务器的QPS也会相应的得到提升。同时,也不必像现有技术中需要投入更多的硬件资源来提升DNS服务器的QPS,更加节约成本,节省人力。
步骤S208:报文处理设备通过第一进程向报文收发进程发送应答指示消息,报文处理设备通过报文收发进程接收应答指示消息。
在报文处理设备通过第一进程将应答报文存储到共享内存,为了使得报文收发进程及时将应答报文转发给用户设备,则报文处理设备可以通过第一进程经操作***提供的API向报文收发进程发送应答指示消息,以通知报文收发进程第一报文已经被第一进程处理完成,并且已经已经存储到共享内存。其中,API例如可以是上述的NETLINK接口。
步骤S209:报文处理设备通过报文收发进程从共享内存中读取应答报文。
步骤S210:报文处理设备通过报文收发进程将应答报文发送给用户设备。
本发明实施例中,由于报文处理设备可以直接通过报文收发进程从共享内存读取应答报文并发送给相应的用户设备,而无需像现有技术中还需要通过第一进程还需要由用户态切换成内核态,再将应答报文发送给相应的用户设备,本申请实施例中的应答报文发送的过程更加节省时间。
在本发明实施例中,为了实现进一步的有益效果,增加步骤208~步骤S210,虽然图中一并示出,但是执行到s207就可以实现本申请的有益效果,即在减少工作量的同时提升DNS服务器的QPS。
综上所述,在本发明实施例中,在报文处理设备接收第一报文之后,会将第一报文存储到处于用户态的第一进程能够访问的共享内存中,这样第一进程则可以直接从共享内存中读取第一报文并进行报文处理,无需再通过第一进程将第一报文复制到第一进程可以访问的内存空间中,进而提高处理效率。并且,在第一进程处理完第一报文后,还会将应答报文存储到共享内存中,这样也就不需要第一进程再次切换状态来复制应答报文,同样提高了处理效率,从而能够提升域名解析的速度,提高DNS服务器的QPS。
下面结合附图介绍本发明实施例提供的设备。
请参见图3,基于同一发明构思,本发明一实施例提供一种报文处理设备30,该设备包括:
侦听单元301,用于通过内核态的第一进程用于侦听收发进程接收的报文;
收发单元302,用于通过报文收发进程接收用户设备发送的第一报文,并且将所述第一报文存储到共享内存;其中,所述共享内存能够被处于用户态的第一进程访问;
读取单元303,用于当侦听单元通过处于内核态的第一进程侦听到报文收发进程已接收到第一报文时,则将所述第一进程由内核态切换为用户态,并通过所述第一进程从所述共享内存中读取所述第一报文;
处理单元304,用于通过所述第一进程处理所述第一报文,根据处理结果生成应答报文,并且通过所述第一进程将所述应答报文存储到所述共享内存。
可选的,当处于内核态的第一进程侦听到报文收发进程已接收到第一报文时,读取单元则将第一进程由内核态切换为用户态,包括:
当处于内核态的第一进程接收报文收发进程发送的指示消息时,指示消息用于指示第一进程,报文收发进程已接收第一报文;读取单元将第一进程由内核态切换为用户态。
可选的,所述收发单元302还用于:在通过所述第一进程将所述应答报文存储到所述共享内存之后,通过所述报文收发进程将所述应答报文发送给所述用户设备。
可选的,所述设备还包括确定单元305,
所述确定单元305用于:在所述处理单元304通过所述第一进程将所述应答报文存储到所述共享内存之后,通过所述第一进程确定所述共享内存中是否存在待处理的第二报文;
所述处理单元304还用于:若确定单元305确定所述共享内存中存在待处理的第二报文,通过所述第一进程从所述共享内存中读取并处理所述第二报文;
所述侦听单元301还用于:若确定单元305确定所述共享内存中不存在待处理的第二报文,将所述第一进程由用户态切换为内核态,以通过处于内核态的所述第一进程继续侦听报文。
可选的,所述共享内存中存储的报文均采用无锁数据结构。
该设备可以用于执行图2所示的实施例所提供的方法。因此,对于该设备的各功能模块所能够实现的功能等可参考图2所示的实施例的描述,不多赘述。其中,确定单元305不是必选的功能模块,因此在图3中以虚线示出。
请参见图4,本发明一实施例还提供一种计算机装置,该计算机装置包括处理器401,处理器401用于执行存储器中存储的计算机程序时实现本发明实施例提供的计算音频和视频异步时差的方法的步骤。
可选的,处理器401具体可以是中央处理器、特定应用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC),可以是一个或多个用于控制程序执行的集成电路,可以是使用现场可编程门阵列(英文:Field Programmable GateArray,简称:FPGA)开发的硬件电路,可以是基带处理器。
可选的,处理器401可以包括至少一个处理核心。
可选的,该计算机装置还包括存储器402,存储器402可以包括只读存储器(英文:Read Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)和磁盘存储器。存储器402用于存储处理器401运行时所需的数据。存储器402的数量为一个或多个。其中,存储器402在图4中一并示出,但需要知道的是存储器402不是必选的功能模块,因此在图4中以虚线示出。
在本发明实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性或其它的形式。
在本发明实施例中的各功能单元可以集成在一个处理单元中,或者各个单元也可以均是独立的物理模块。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备,例如可以是个人计算机,服务器,或者网络设备等,或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:通用串行总线闪存盘(Universal Serial Bus flash drive)、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明实施例的方法,不应理解为对本发明实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本发明实施例的保护范围之内。
Claims (12)
1.一种报文处理方法,其特征在于,包括:
报文处理设备通过处于内核态的第一进程侦听报文收发进程接收的报文;
所述报文处理设备通过所述报文收发进程接收用户设备发送的第一报文,并且将所述第一报文存储到共享内存;其中,所述共享内存能够被处于用户态的第一进程访问;
当所述处于内核态的第一进程侦听到所述报文收发进程已接收到所述第一报文时,则所述报文处理设备将所述第一进程由内核态切换为用户态,并通过所述第一进程从所述共享内存中读取所述第一报文;
所述报文处理设备通过所述第一进程处理所述第一报文,根据处理结果生成应答报文,并且通过所述第一进程将所述应答报文存储到所述共享内存。
2.如权利要求1所述的方法,其特征在于,当所述处于内核态的第一进程侦听到所述报文收发进程已接收到所述第一报文时,则所述报文处理设备将所述第一进程由内核态切换为用户态,包括:
所述报文处理设备通过所述处于内核态的所述第一进程接收所述报文收发进程发送的指示消息,所述指示消息用于指示所述第一进程,所述报文收发进程已接收所述第一报文;
所述报文处理设备将所述第一进程由内核态切换为用户态。
3.如权利要求1所述的方法,其特征在于,在所述报文处理设备通过所述第一进程将所述应答报文存储到所述共享内存之后,还包括:
所述报文处理设备通过所述报文收发进程将所述应答报文发送给所述用户设备。
4.如权利要求1-3任一所述的方法,其特征在于,在所述报文处理设备通过所述第一进程将所述应答报文存储到所述共享内存之后,还包括:
所述报文处理设备通过所述第一进程确定所述共享内存中是否存在待处理的第二报文;
若确定所述共享内存中存在待处理的第二报文,则所述报文处理设备通过所述第一进程从所述共享内存中读取并处理所述第二报文;否则,所述报文处理设备将所述第一进程由用户态切换为内核态,以通过处于内核态的所述第一进程继续侦听报文。
5.如权利要求4所述的方法,其特征在于,所述共享内存中存储的报文均采用无锁数据结构。
6.一种报文处理设备,其特征在于,包括:
侦听单元,用于通过处于内核态的第一进程用于侦听报文收发进程接收的报文;
收发单元,用于通过所述报文收发进程接收用户设备发送的第一报文,并且将所述第一报文存储到共享内存;其中,所述共享内存能够被处于用户态的第一进程访问;
读取单元,用于当所述处于内核态的第一进程侦听到所述报文收发进程已接收到所述第一报文时,则将所述第一进程由内核态切换为用户态,并通过所述第一进程从所述共享内存中读取所述第一报文;
处理单元,用于通过所述第一进程处理所述第一报文,根据处理结果生成应答报文,并且通过所述第一进程将所述应答报文存储到所述共享内存。
7.如权利要求6所述的设备,其特征在于,当所述处于内核态的第一进程侦听到所述报文收发进程已接收到所述第一报文时,所述读取单元则将所述第一进程由内核态切换为用户态,包括:
当所述处于内核态的所述第一进程接收所述报文收发进程发送的指示消息时,所述指示消息用于指示所述第一进程,所述报文收发进程已接收所述第一报文;所述读取单元将所述第一进程由内核态切换为用户态。
8.如权利要求6所述的设备,其特征在于,
所述收发单元还用于:在通过所述第一进程将所述应答报文存储到所述共享内存之后,通过所述报文收发进程将所述应答报文发送给所述用户设备。
9.如权利要求6-8任一所述的设备,其特征在于,所述设备还包括确定单元,
所述确定单元用于:在所述处理单元通过所述第一进程将所述应答报文存储到所述共享内存之后,通过所述第一进程确定所述共享内存中是否存在待处理的第二报文;
所述处理单元还用于:若确定单元确定所述共享内存中存在待处理的第二报文,通过所述第一进程从所述共享内存中读取并处理所述第二报文;
所述侦听单元还用于:若确定单元确定所述共享内存中不存在待处理的第二报文,将所述第一进程由用户态切换为内核态,以通过处于内核态的所述第一进程继续侦听报文。
10.如权利要求9所述的设备,其特征在于,所述共享内存中存储的报文均采用无锁数据结构。
11.一种计算机装置,其特征在于,所述装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-5中任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710509548.2A CN107193673B (zh) | 2017-06-28 | 2017-06-28 | 一种报文处理方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710509548.2A CN107193673B (zh) | 2017-06-28 | 2017-06-28 | 一种报文处理方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107193673A CN107193673A (zh) | 2017-09-22 |
CN107193673B true CN107193673B (zh) | 2020-05-26 |
Family
ID=59881499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710509548.2A Active CN107193673B (zh) | 2017-06-28 | 2017-06-28 | 一种报文处理方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107193673B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108234481B (zh) * | 2017-12-29 | 2020-10-30 | 上海品顺信息科技有限公司 | 一种控制多机分布式访问外部***的方法及分布式*** |
CN110149262B (zh) * | 2019-04-02 | 2021-03-12 | 视联动力信息技术股份有限公司 | 一种信令报文的处理方法和装置、及存储介质 |
CN110635569A (zh) * | 2019-09-24 | 2019-12-31 | 南京智联达科技有限公司 | 一种基于Linux的配电终端设计架构及方法 |
CN112995753B (zh) * | 2019-12-16 | 2024-03-22 | 中兴通讯股份有限公司 | 一种媒体流分发方法、cdn节点服务器、cdn***和可读存储介质 |
CN113760560A (zh) * | 2020-06-05 | 2021-12-07 | 华为技术有限公司 | 一种进程间通信方法以及进程间通信装置 |
CN112104572B (zh) * | 2020-09-11 | 2023-02-07 | 北京天融信网络安全技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN113612773B (zh) * | 2021-08-03 | 2023-06-16 | 厦门至恒融兴信息技术股份有限公司 | 人工智能实现的智能报文识别和解析***与方法 |
CN116414572A (zh) * | 2021-12-29 | 2023-07-11 | 华为技术有限公司 | 流量管理装置、报文缓存方法、芯片及网络设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942149A (zh) * | 2014-03-27 | 2014-07-23 | 汉柏科技有限公司 | 用户态程序与内核交互报文的方法及*** |
CN104796337A (zh) * | 2015-04-10 | 2015-07-22 | 京信通信***(广州)有限公司 | 一种转发报文的方法及装置 |
CN105656808A (zh) * | 2015-12-29 | 2016-06-08 | 京信通信技术(广州)有限公司 | 报文处理方法及其*** |
-
2017
- 2017-06-28 CN CN201710509548.2A patent/CN107193673B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942149A (zh) * | 2014-03-27 | 2014-07-23 | 汉柏科技有限公司 | 用户态程序与内核交互报文的方法及*** |
CN104796337A (zh) * | 2015-04-10 | 2015-07-22 | 京信通信***(广州)有限公司 | 一种转发报文的方法及装置 |
CN105656808A (zh) * | 2015-12-29 | 2016-06-08 | 京信通信技术(广州)有限公司 | 报文处理方法及其*** |
Also Published As
Publication number | Publication date |
---|---|
CN107193673A (zh) | 2017-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107193673B (zh) | 一种报文处理方法及设备 | |
CN107678835B (zh) | 一种数据传输方法及*** | |
US10305813B2 (en) | Socket management with reduced latency packet processing | |
CN112333298B (zh) | 报文传输方法、装置、计算机设备及存储介质 | |
CN108933829A (zh) | 一种负载均衡方法及装置 | |
US20200167186A1 (en) | Container isolation method and apparatus for netlink resource | |
CN112087401B (zh) | 分布式存储中实现服务质量的方法和装置 | |
WO2023103419A1 (zh) | 基于消息队列的5g消息批量发送方法、装置及电子设备 | |
CN112311907A (zh) | 一种arp请求响应方法、负载均衡设备及相关装置 | |
WO2014183417A1 (zh) | 管理内存的方法、装置和*** | |
CN112468874B (zh) | 一种视频播放方法、终端设备及*** | |
CN105592134B (zh) | 一种负载分担的方法和装置 | |
WO2018000195A1 (zh) | 一种报文传输方法、虚拟交换机及服务器 | |
CN108429703B (zh) | Dhcp客户端上线方法及装置 | |
CN105635138B (zh) | 一种防止arp攻击的方法和装置 | |
US8260942B2 (en) | Cluster view performance | |
US20220269411A1 (en) | Systems and methods for scalable shared memory among networked devices comprising ip addressable memory blocks | |
CN114218317B (zh) | 进度信息管控方法、微服务装置、电子设备及存储介质 | |
CN112511440B (zh) | 报文转发方法、***、存储介质和电子设备 | |
CN110046040B (zh) | 分布式任务处理方法及***和存储介质 | |
CN107231339B (zh) | 一种DDoS攻击的检测方法以及装置 | |
CN109391707B (zh) | 域名解析的方法、装置、设备及存储介质 | |
US20200145371A1 (en) | Electronic apparatus for providing fast packet forwarding with reference to additional network address translation table | |
CN112433820A (zh) | 一种获取虚拟机主机ip的方法及*** | |
CN110753043A (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 |