CN115550004A - 数据处理的方法、装置、电子设备及计算机可读存储介质 - Google Patents
数据处理的方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115550004A CN115550004A CN202211145674.1A CN202211145674A CN115550004A CN 115550004 A CN115550004 A CN 115550004A CN 202211145674 A CN202211145674 A CN 202211145674A CN 115550004 A CN115550004 A CN 115550004A
- Authority
- CN
- China
- Prior art keywords
- data
- target data
- queue
- protocol stack
- determined
- 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
Images
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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0245—Filtering by information in the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请属于数据处理技术领域,公开了数据处理的方法、装置、电子设备及计算机可读存储介质,该方法包括,通过内核协议栈中的网络过滤器,接收网络层发送的目标数据;内核协议栈中还包含网络层和协议栈,目标数据为UDP数据;若确定目标数据符合设定传输条件,则通过网络过滤器,将目标数据存储至数据队列中,并停止将目标数据传输至协议栈;通过应用层对数据队列中的目标数据进行处理。这样,降低了耗费的CPU资源以及丢包率。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,涉及数据处理的方法、装置、电子设备及计算机可读存储介质。
背景技术
数据处理设备中的内核协议栈包括内核空间(即内核态)和用户空间(即用户态)。内核空间中通常包括设备驱动、网络层以及协议栈。用户空间包括应用层。
现有技术下,数据处理设备通常通过设备驱动接收其它设备发送的数据,并将该数据依次通过网络层以及协议栈传输到应用层,以通过应用层进行数据处理。
但是,在这个过程中,通常需要进行协议栈的内存拷贝,以及内核态和用户态之间的切换,这会耗费大量的中央处理器(Central Processing Unit /Processor,CPU)资源,应用层会由于CPU资源较少而数据处理能力较弱,进而导致用户数据报协议(UserDatagram Protocol,UDP)的丢包率较高。
发明内容
本申请实施例的目的在于提供数据处理的方法、装置、电子设备及计算机可读存储介质,用以在对接收的数据进行传输以及处理的过程中,降低耗费的CPU资源以及数据的丢包率。
一方面,提供一种数据处理的方法,包括:
通过内核协议栈中的网络过滤器,接收网络层发送的目标数据;内核协议栈中还包含网络层和协议栈,目标数据为UDP数据;
若确定目标数据符合设定传输条件,则通过网络过滤器,将目标数据存储至数据队列中,并停止将目标数据传输至协议栈;
通过应用层对数据队列中的目标数据进行处理。
在上述实现过程中,降低了耗费的CPU资源以及丢包率。
一种实施方式中,数据队列为无锁循环队列;
数据队列的存储空间为共享内存。
一种实施方式中,若确定目标数据符合设定传输条件,则通过网络过滤器,将目标数据存储至数据队列中,并停止将目标数据传输至协议栈,包括:
若通过网络过滤器,确定目标数据为待本地应用处理的数据,则调用回调函数,将目标数据存储到无锁循环队列中,回调函数注册于网络过滤器中的本地进入节点,本地进入节点用于接收待本地应用处理的数据;
若确定接收到回调函数返回的数据阻断成功通知,则结束针对目标数据的中断任务,中断任务为将目标数据传输至协议栈的任务。
在上述实现过程中,从网络过滤器中进行数据截断,并将截断的数据转存到数据队列,以便应用层直接获取以及处理,降低了丢包率。
一种实施方式中,对数据队列中的目标数据进行处理,包括:
确定符合触发条件时,判断数据队列中是否存在目标数据;
若是,则从数据队列中获取目标数据;
根据目标数据中的网络地址信息,获取目标数据匹配的连接;
调用连接对应的数据操作函数,针对目标数据执行相应的数据处理操作。
在上述实现过程中,应用层可以通过数据匹配的数据操作函数进行数据处理。
一种实施方式中,确定符合触发条件时,判断数据队列中是否存在目标数据,包括:
确定符合以下至少一个条件时,判断数据队列中是否存在目标数据:
确定达到设定时长;以及,确定接收到数据处理指令。
在上述实现过程中,应用层可以周期性或者收到相应指令时进行数据处理。
一方面,提供一种数据处理的装置,包括:
接收单元,用于通过内核协议栈中的网络过滤器,接收网络层发送的目标数据;内核协议栈中还包含网络层和协议栈,目标数据为UDP数据;
存储单元,用于若确定目标数据符合设定传输条件,则通过网络过滤器,将目标数据存储至数据队列中,并停止将目标数据传输至协议栈;
处理单元,用于通过应用层对数据队列中的目标数据进行处理。
一种实施方式中,数据队列为无锁循环队列;
数据队列的存储空间为共享内存。
一种实施方式中,存储单元用于:
若通过网络过滤器,确定目标数据为待本地应用处理的数据,则调用回调函数,将目标数据存储到无锁循环队列中,回调函数注册于网络过滤器中的本地进入节点,本地进入节点用于接收待本地应用处理的数据;
若确定接收到回调函数返回的数据阻断成功通知,则结束针对目标数据的中断任务,中断任务为将目标数据传输至协议栈的任务。
一种实施方式中,处理单元用于:
确定符合触发条件时,判断数据队列中是否存在目标数据;
若是,则从数据队列中获取目标数据;
根据目标数据中的网络地址信息,获取目标数据匹配的连接;
调用连接对应的数据操作函数,针对目标数据执行相应的数据处理操作。
一种实施方式中,处理单元用于:
确定符合以下至少一个条件时,判断数据队列中是否存在目标数据:
确定达到设定时长;以及,确定接收到数据处理指令。
一方面,提供了一种电子设备,包括处理器以及存储器,存储器存储有计算机可读取指令,当计算机可读取指令由处理器执行时,运行如上述任一种数据处理的各种可选实现方式中提供的方法的步骤。
一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时运行如上述任一种数据处理的各种可选实现方式中提供的方法的步骤。
一方面,提供了一种计算机程序产品,计算机程序产品在计算机上运行时,使得计算机执行如上述任一种数据处理的各种可选实现方式中提供的方法的步骤。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种数据处理设备的架构示意图;
图2为本申请实施例提供的一种数据处理的方法的流程图;
图3为本申请实施例提供的一种网络过滤器的架构示意图;
图4为本申请实施例提供的数据循环处理的方法的流程图;
图5为本申请实施例提供的一种数据处理的装置的结构框图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先对本申请实施例中涉及的部分用语进行说明,以便于本领域技术人员理解。
终端设备:可以是移动终端、固定终端或便携式终端,例如移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统设备、个人导航设备、个人数字助理、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,终端设备能够支持任意类型的针对用户的接口(例如可穿戴设备)等。
服务器:可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务以及大数据和人工智能平台等基础云计算服务的云服务器。
传统技术下,数据处理设备通常通过设备驱动接收其它设备发送的数据,并将该数据依次通过网络层以及协议栈传输到应用层,以通过应用层进行数据处理。
但是,在这个过程中,通常需要进行协议栈的内存拷贝、内核态和用户态之间的切换,以输入输出(Input Output,IO)系统调用等操作,这会耗费大量的中央处理器(CentralProcessing Unit/Processor,CPU)资源,使得应用层获得CPU资源较少,进而数据处理能力较弱。UDP协议无链接状态,不保证数据可靠性,出现上述问题,UDP报文不会主动降低吞吐来保证数据可靠,导致UDP的丢包率较高。再者,应用层中的应用程序接收数据的socket缓存区较小,因此,在应用程序处理能力弱时,socket缓存区基本起不到缓存作用,出现丢包问题。即使应用层选择高性能的nginx架构,也只是提高了一些吞吐但是无法从根本上改变问题。以及,在单向网闸场景中,由于单向网闸的特殊性,数据经过单向网闸是不允许丢包的,因此,高吞吐情况下大量丢包情况是无法满足实际需求的。
其中,单向光闸(又称单向网闸)部署在不同安全等级的网络之间,通过单向无反馈传输物理环境,实现数据由低安全域单向传输到高安全域。单向光闸的硬件架构通常采用2+1架构,即由外端机、内端机和单向隔部件组成,单向隔离部件由两块单向隔离卡通过单向光纤连接构成。外端机和内端机上运行网络代理程序和安全引擎构成软件架构,通过硬件架构和软件架构形成安全主机,最终通过安全主机提供数据单向传输服务。
可见,UDP吞吐量低的原因在于大量CPU资源消耗在协议栈中的内存拷贝、内核态与用户态的切换,以及I/O系统调用等操作中,使得应用程序获取的CPU资源太少,导致处理能力较弱,出现丢包问题。因此,需要尽可能的缩减数据的处理流程,减少用户态和内核态的切换,以及减少I/O调用等,来达到节省CPU资源目的。
为了在对接收的数据进行传输以及处理的过程中,降低耗费的CPU资源以及数据的丢包率,提高linux环境下的UDP性能,本申请实施例中,本申请实施例提供了数据处理的方法、装置、电子设备及计算机可读存储介质,具体的,选择共享内存+无锁循环队列方式构成传输队列(即数据队列),队列内存空间为共享内存,应用层进程可直接访问。无锁循环队列满足各个情况下的生产者和消费者,通过Netfilter+nginx+传输队列的架构,实现了快速通道的作用,将内核协议栈中的目标数据直接传递到应用层(即用户层),节省了大量CPU资源,增大了应用层处理能力,增大了UDP的吞吐量,以及还可以通过增大数据队列,以在一定程度上缓解丢包情况。
参阅图1所示,为本申请实施例提供的一种数据处理设备的架构示意图。图1中,数据处理设备可以为服务器,也可以为终端设备。
数据处理设备中包括内核协议栈、数据队列以及应用层。其中,内核协议栈包括网卡驱动(即,设备驱动)、链路层、网络层、网络过滤器(Netfilter),以及协议栈。
需要说明的是,Netfilter为Linux自带的子系统,已经适配了Linux的协议栈,对于Netfilter的操作只需要找到对应的钩子(hook)点,在该处注册回调函数即可。
一种实施方式中,数据处理设备可以为部署有单向光闸的设备。
参阅图2所示,为本申请实施例提供的一种数据处理的方法的流程图,应用于图1中的数据处理设备,结合图1对图2中的数据处理的方法进行说明,该方法的具体实施流程如下:
步骤200:通过内核协议栈中的网络过滤器,接收网络层发送的目标数据。
其中,目标数据为采用UDP协议传输的UDP数据;内核协议栈中还包含网络层和协议栈。
其中,UDP协议是一个简单的面向数据包的传输层协议,提供的是非全面向连接的、不可保的数据流传输。
一种实施方式中,目标数据依次经过网卡驱动以及网络层,传输到网络过滤器。
步骤201:若确定目标数据符合设定传输条件,则通过网络过滤器,将目标数据存储至数据队列中,并停止将目标数据传输至协议栈。
作为一个示例,数据队列为无锁循环队列。数据队列的存储空间为共享内存。
一种实施方式中,执行步骤201时,可以采用以下步骤:
S2011:若通过网络过滤器,确定目标数据为待本地应用处理的数据,则调用回调函数,将目标数据存储到无锁循环队列中。
其中,回调函数注册于网络过滤器中的本地进入节点,本地进入节点用于接收待本地应用处理的数据。
S2012:若确定接收到回调函数返回的数据阻断成功通知,则结束针对目标数据的中断任务,中断任务为将目标数据传输至协议栈的任务。
Netfilter是linux下的子系统,提供给一整套的hook函数的管理机制,它与网络层是无缝切合的,可以对数据包进行过滤、修改、地址转换等处理。
一种实施方式中,网络过滤器中设置有本地进入节点(本地进入节点可以采用NF_IP_LOCAL_IN节点),则预先在本地进入节点中注册回调函数,并在首次调用回调函数时,申请共享内存,以及采用无锁循环队列对申请的共享内存进行初始化。在目标数据(如,UDP数据包)经过本地进入节点时,回调函数对该目标数据进行数据判断,确定符合调用条件时(即目标数据为待本地应用处理的数据),则将目标数据存储到无锁循环队列中,并返回数据阻断成功通知(如,NF_DROP)。内核协议栈确定接收到该数据阻断成功通知之后,会认为数据被阻断,则结束此次针对目标数据的中断处理。
参阅图3所示,为一种网络过滤器的架构示意图。网络过滤器包括数据接收节点、数据触发节点(如,NF_IP_PRE_ROUTE节点)、第一路由判决节点、本地进入节点(如,F_IP_LOCAL_IN节点)、转发报文节点(如,NF_IP_FORWARD)、第二路由判决节点、数据发出节点(如,NF_IP_LOCAL_OUT)、数据已发节点(如,NF_IP_POST_ROUTIN),以及报文发送节点。
其中,数据触发节点为数据进入协议栈的节点。本地进入节点为传输待本地应用处理的数据的节点。转发报文节点为传输待转发到其它设备(如,主机)的数据的节点。数据发出节点为传输待发出的数据的节点。数据已发节点用于传输已经发出的数据的节点。可以在上述五个节点中的任一节点中注册函数,以可以在数据经过任一注册函数对应的hook时,调用相应的注册函数。
这样,在位于网络层之后的Netfilter中注册NF_IP_LOCAL_IN节点,从而可以将完整的UDP数据转存到数据队列中,以便后续的数据匹配等处理。
进一步的,还可以以应用层的运行状态,调整数据队列的大小。
作为一个示例,当上层应用出现阻塞或者发送比接收慢时,可以增大无锁循环队列。
这样,就可以将数据可以囤积在数据队列中,从而起到缓存数据的作用,有效的缓解了丢包问题。
步骤202:通过应用层对数据队列中的目标数据进行处理。
一种实施方式中,执行步骤202时,可以采用以下步骤:
S2021:确定符合触发条件时,判断数据队列中是否存在目标数据。
一种实施方式中,确定符合以下至少一个条件时,判断数据队列中是否存在目标数据:确定达到设定时长;以及,确定接收到数据处理指令。
实际应用中,设定时长可以根据实际应用场景进行设置,如,5s。
S2022:若是,则从数据队列中获取目标数据。
这样,通过Netfilter+nginx+数据队列的架构,构建了快速传输通道,使得应用层可以通过快速传输通道直接获取内核协议栈的目标数据,简化了数据处理的繁琐操作步骤。
S2023:根据目标数据中的网络地址信息,获取目标数据匹配的连接。
可选的,网络地址信息可以为四元组,包括:目的IP地址,目的端口,源IP地址以及源端口。
S2024:调用连接对应的数据操作函数,针对目标数据执行相应的数据处理操作。
一种实施方式中,应用层中设置有nginx进程,nginx进程可以周期性从数据队列中读取并处理数据。
需要说明的是,Nginx中间层应用设计的原理如下:nginx本身是通过epoll方式去触发响应,如,传输控制协议(TCP,Transmission Control Protocol)协议数据可以直接通过epoll事件找到对应的连接。但是,由于UDP协议没有连接状态,因此,无法与nginx响应UDP报文数据(即目标数据),只能先找到对应监听的结构体listen,在listen的结构体中,有一颗红黑树来保存数据对应的连接信息,因此,可以通过UDP报文数据的四元组匹配来找到对应的连接,并通过匹配的连接,回调对应的读写事件(即,数据操作函数)。
由于通过快速传输通道(即数据队列)传输目标数据,目标数据不会被放入套接字(socket)缓冲区,epoll事件不会被触发,因此,将nginx的触发方式进行了修改,即通过定时轮询的方式查询数据队列是否有待处理的目标数据,若是,则采用原来的处理流程进行后续的数据处理。
nginx中间层的修改如下:在工作者(worker)的初始化过程中,获取数据队列,并添加定时器。通过定时器定时轮询检测数据队列中是否存在待处理的目标数据,若确定不存在待处理的目标数据,则重新添加定时器,以执行下一轮的数据查询即处理。若确定存在待处理的目标数据,则提取目标数据的四元组,并通过结构体,获得匹配的连接,以及通过该连接复用原始的nginx处理流程,进行数据处理。
需要说明的是,Nginx是一个高性能的超文本传输协议(Hyper Text TransportProtocol,HTTP)和反向代理服务器架构,具有占用内存小,并发能力强的特点,适配了多种异步IO机制,如epoll以及投票(poll)等。
作为一个示例,数据操作函数可以为读写事件,数据处理操作可以为读写操作。
这样,未采用nginx进程中原生的epoll触发方式,而是在nginx进程中增加中了间层,并通过该中间层进行数据处理。
参阅图4所示,为一种数据循环处理的方法的流程图。下面采用一个具体的应用场景结合图4对图2中的一种应用层处理数据的方法进行说明。
步骤400:根据定时器,确定符合触发条件。
具体的,确定达到设定时长。
步骤401:判断无锁循环队列中是否存在待处理的目标数据,若是,则执行步骤402,否则,执行步骤405。
步骤402:从无锁循环队列中提取目标数据。
步骤403:根据目标数据的四元组,确定目标数据匹配的连接。
步骤404:调用连接对应的数据操作函数,针对目标数据执行相应的数据处理操作。
步骤405:设置定时器,执行步骤400。
这样,就可以通过定时器,不断循环获取并处理无锁循环队列中的数据。
本申请实施例中,设计了Netfilter+nginx+数据队列的架构,在Netfilter中的NF_IP_LOCAL_IN节点处截断目标数据,并将目标数据放入到数据队列中,结束内核协议栈对目标数据的处理,以此为目标数据构建了快速通道,使得应用层的nginx进程定时从数据队列中收取数据处理。在这个过程中,目标数据仅经过了设备驱动、链路层以及网络层三层处理,就转存到了数据队列中,进而可以快速传递到用户程序,跳过了内核协议栈中后续各层的处理,避免了目标数据从内核空间到用户空间的数据拷贝,并且在多核架构下,处理内核的CPU不需要进行状态切换,应用程序便可拿到数据,跳过了大量的内核态与用户态之间的切换,节省了大量CPU资源。
基于同一发明构思,本申请实施例中还提供了一种数据处理的装置,由于上述装置及设备解决问题的原理与一种数据处理的方法相似,因此,上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图5所示,其为本申请实施例提供的一种数据处理的装置的结构示意图,包括:
接收单元501,用于通过内核协议栈中的网络过滤器,接收网络层发送的目标数据;内核协议栈中还包含网络层和协议栈,目标数据为UDP数据;
存储单元502,用于若确定目标数据符合设定传输条件,则通过网络过滤器,将目标数据存储至数据队列中,并停止将目标数据传输至协议栈;
处理单元503,用于通过应用层对数据队列中的目标数据进行处理。
一种实施方式中,数据队列为无锁循环队列;
数据队列的存储空间为共享内存。
一种实施方式中,存储单元502用于:
若通过网络过滤器,确定目标数据为待本地应用处理的数据,则调用回调函数,将目标数据存储到无锁循环队列中,回调函数注册于网络过滤器中的本地进入节点,本地进入节点用于接收待本地应用处理的数据;
若确定接收到回调函数返回的数据阻断成功通知,则结束针对目标数据的中断任务,中断任务为将目标数据传输至协议栈的任务。
一种实施方式中,处理单元503用于:
确定符合触发条件时,判断数据队列中是否存在目标数据;
若是,则从数据队列中获取目标数据;
根据目标数据中的网络地址信息,获取目标数据匹配的连接;
调用连接对应的数据操作函数,针对目标数据执行相应的数据处理操作。
一种实施方式中,处理单元503用于:
确定符合以下至少一个条件时,判断数据队列中是否存在目标数据:
确定达到设定时长;以及,确定接收到数据处理指令。
本申请实施例提供的数据处理的方法、装置、电子设备及计算机可读存储介质中,通过内核协议栈中的网络过滤器,接收网络层发送的目标数据;内核协议栈中还包含网络层和协议栈,目标数据为UDP数据;若确定目标数据符合设定传输条件,则通过网络过滤器,将目标数据存储至数据队列中,并停止将目标数据传输至协议栈;通过应用层对数据队列中的目标数据进行处理。这样,降低了耗费的CPU资源以及丢包率。
图6示出了一种电子设备6000的结构示意图。参阅图6所示,电子设备6000包括:处理器6010以及存储器6020,可选的,还可以包括电源6030、显示单元6040、输入单元6050。
处理器6010是电子设备6000的控制中心,利用各种接口和线路连接各个部件,通过运行或执行存储在存储器6020内的软件程序和/或数据,执行电子设备6000的各种功能,从而对电子设备6000进行整体监控。
本申请实施例中,处理器6010调用存储器6020中存储的计算机程序时执行上述实施例中的各个步骤。
可选的,处理器6010可包括一个或多个处理单元;优选的,处理器6010可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器6010中。在一些实施例中,处理器、存储器、可以在单一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
存储器6020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、各种应用等;存储数据区可存储根据电子设备6000的使用所创建的数据等。此外,存储器6020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件等。
电子设备6000还包括给各个部件供电的电源6030(比如电池),电源可以通过电源管理系统与处理器6010逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗等功能。
显示单元6040可用于显示由用户输入的信息或提供给用户的信息以及电子设备6000的各种菜单等,本发明实施例中主要用于显示电子设备6000中各应用的显示界面以及显示界面中显示的文本、图片等对象。显示单元6040可以包括显示面板6041。显示面板6041可以采用液晶显示屏(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置。
输入单元6050可用于接收用户输入的数字或字符等信息。输入单元6050可包括触控面板6051以及其他输入设备6052。其中,触控面板6051,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触摸笔等任何适合的物体或附件在触控面板6051上或在触控面板6051附近的操作)。
具体的,触控面板6051可以检测用户的触摸操作,并检测触摸操作带来的信号,将这些信号转换成触点坐标,发送给处理器6010,并接收处理器6010发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板6051。其他输入设备6052可以包括但不限于物理键盘、功能键(比如音量控制按键、开关机按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
当然,触控面板6051可覆盖显示面板6041,当触控面板6051检测到在其上或附近的触摸操作后,传送给处理器6010以确定触摸事件的类型,随后处理器6010根据触摸事件的类型在显示面板6041上提供相应的视觉输出。虽然在图6中,触控面板6051与显示面板6041是作为两个独立的部件来实现电子设备6000的输入和输出功能,但是在某些实施例中,可以将触控面板6051与显示面板6041集成而实现电子设备6000的输入和输出功能。
电子设备6000还可包括一个或多个传感器,例如压力传感器、重力加速度传感器、接近光传感器等。当然,根据具体应用中的需要,上述电子设备6000还可以包括摄像头等其它部件,由于这些部件不是本申请实施例中重点使用的部件,因此,在图6中没有示出,且不再详述。
本领域技术人员可以理解,图6仅仅是电子设备的举例,并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
本申请实施例中,一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使得通信设备可以执行上述实施例中的各个步骤。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本申请时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种数据处理的方法,其特征在于,包括:
通过内核协议栈中的网络过滤器,接收网络层发送的目标数据;所述内核协议栈中还包含所述网络层和协议栈,所述目标数据为用户数据报协议UDP数据;
若确定所述目标数据符合设定传输条件,则通过所述网络过滤器,将所述目标数据存储至数据队列中,并停止将所述目标数据传输至所述协议栈;
通过应用层对所述数据队列中的所述目标数据进行处理。
2.如权利要求1所述的方法,其特征在于,所述数据队列为无锁循环队列;
所述数据队列的存储空间为共享内存。
3.如权利要求2所述的方法,其特征在于,所述若确定所述目标数据符合设定传输条件,则通过所述网络过滤器,将所述目标数据存储至数据队列中,并停止将所述目标数据传输至所述协议栈,包括:
若通过所述网络过滤器,确定所述目标数据为待本地应用处理的数据,则调用回调函数,将所述目标数据存储到所述无锁循环队列中,所述回调函数注册于所述网络过滤器中的本地进入节点,所述本地进入节点用于接收待本地应用处理的数据;
若确定接收到所述回调函数返回的数据阻断成功通知,则结束针对所述目标数据的中断任务,所述中断任务为将所述目标数据传输至所述协议栈的任务。
4.如权利要求1-3任一项所述的方法,其特征在于,所述对所述数据队列中的所述目标数据进行处理,包括:
确定符合触发条件时,判断所述数据队列中是否存在所述目标数据;
若是,则从所述数据队列中获取所述目标数据;
根据所述目标数据中的网络地址信息,获取所述目标数据匹配的连接;
调用所述连接对应的数据操作函数,针对所述目标数据执行相应的数据处理操作。
5.如权利要求4所述的方法,其特征在于,所述确定符合触发条件时,判断所述数据队列中是否存在所述目标数据,包括:
确定符合以下至少一个条件时,判断所述数据队列中是否存在所述目标数据:
确定达到设定时长;以及,确定接收到数据处理指令。
6.一种数据处理的装置,其特征在于,包括:
接收单元,用于通过内核协议栈中的网络过滤器,接收网络层发送的目标数据;所述内核协议栈中还包含所述网络层和协议栈,所述目标数据为用户数据报协议UDP数据;
存储单元,用于若确定所述目标数据符合设定传输条件,则通过所述网络过滤器,将所述目标数据存储至数据队列中,并停止将所述目标数据传输至所述协议栈;
处理单元,用于通过应用层对所述数据队列中的所述目标数据进行处理。
7.如权利要求6所述的装置,其特征在于,所述数据队列为无锁循环队列;
所述数据队列的存储空间为共享内存。
8.如权利要求7所述的装置,其特征在于,所述存储单元用于:
若通过所述网络过滤器,确定所述目标数据为待本地应用处理的数据,则调用回调函数,将所述目标数据存储到所述无锁循环队列中,所述回调函数注册于所述网络过滤器中的本地进入节点,所述本地进入节点用于接收待本地应用处理的数据;
若确定接收到所述回调函数返回的数据阻断成功通知,则结束针对所述目标数据的中断任务,所述中断任务为将所述目标数据传输至所述协议栈的任务。
9.如权利要求6-8任一项所述的装置,其特征在于,所述处理单元用于:
确定符合触发条件时,判断所述数据队列中是否存在所述目标数据;
若是,则从所述数据队列中获取所述目标数据;
根据所述目标数据中的网络地址信息,获取所述目标数据匹配的连接;
调用所述连接对应的数据操作函数,针对所述目标数据执行相应的数据处理操作。
10.如权利要求9所述的装置,其特征在于,所述处理单元用于:
确定符合以下至少一个条件时,判断所述数据队列中是否存在所述目标数据:
确定达到设定时长;以及,确定接收到数据处理指令。
11.一种电子设备,其特征在于,包括处理器以及存储器,所述存储器存储有计算机可读取指令,当所述计算机可读取指令由所述处理器执行时,运行如权利要求1-5任一所述方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时运行如权利要求1-5任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211145674.1A CN115550004A (zh) | 2022-09-20 | 2022-09-20 | 数据处理的方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211145674.1A CN115550004A (zh) | 2022-09-20 | 2022-09-20 | 数据处理的方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115550004A true CN115550004A (zh) | 2022-12-30 |
Family
ID=84727771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211145674.1A Pending CN115550004A (zh) | 2022-09-20 | 2022-09-20 | 数据处理的方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115550004A (zh) |
-
2022
- 2022-09-20 CN CN202211145674.1A patent/CN115550004A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20100077035A1 (en) | Optimized Polling in Low Resource Devices | |
CN110413822B (zh) | 离线图像结构化分析方法、装置、系统和存储介质 | |
CN112910802B (zh) | 一种报文处理方法及装置 | |
CN111221638B (zh) | 并发任务的调度处理方法、装置、设备和介质 | |
CN104133728A (zh) | 一种进程间通讯的方法、及装置 | |
CN114124929A (zh) | 跨网络的数据处理方法和装置 | |
CN114205762A (zh) | 短信流量控制方法、设备及存储介质 | |
US10154079B2 (en) | Pre-boot file transfer system | |
US9467526B2 (en) | Network communication using intermediation processor | |
CN109361749B (zh) | 报文处理方法、相关设备及计算机存储介质 | |
US8521902B2 (en) | Shared buffer for connectionless transfer protocols | |
US20170155739A1 (en) | Advertisement data processing method and router | |
WO2004001585A1 (en) | Mobile application environment | |
CN103490939A (zh) | 一种处理数据包的方法及装置 | |
WO2020135485A1 (zh) | 一种结果获取方法、装置及设备 | |
CN115550004A (zh) | 数据处理的方法、装置、电子设备及计算机可读存储介质 | |
CN109766347B (zh) | 一种数据更新方法、装置、系统、计算机设备及存储介质 | |
CN113225830B (zh) | 数据网络上行调度方法、装置及电子设备 | |
US11455185B2 (en) | Service schedule optimization for background execution limits | |
CN115361348A (zh) | 由数据采集设备执行的与web浏览器通信的方法 | |
US20140310361A1 (en) | Method and system for handling message on instant messaging open platform | |
Ezzeddine et al. | RESTful hardware microservices using reconfigurable networked accelerators in cloud and edge datacenters | |
CN112333787B (zh) | 数据传输方法、装置、存储介质、终端及网络接入点设备 | |
CN113037816B (zh) | 通信方法、存储介质及相关设备 | |
CN113867940B (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 |