CN114500052B - 一种基于事件驱动的高效数据加密转发方法及装置 - Google Patents
一种基于事件驱动的高效数据加密转发方法及装置 Download PDFInfo
- Publication number
- CN114500052B CN114500052B CN202210098842.XA CN202210098842A CN114500052B CN 114500052 B CN114500052 B CN 114500052B CN 202210098842 A CN202210098842 A CN 202210098842A CN 114500052 B CN114500052 B CN 114500052B
- Authority
- CN
- China
- Prior art keywords
- client
- data
- server
- reading
- connection
- 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
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000012544 monitoring process Methods 0.000 claims abstract description 42
- 230000005540 biological transmission Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于事件驱动的高效数据加密转发方法及装置,所述方法包括建立本端与客户端、服务端之间的网络连接,通过异步方式调用加密卡,以初始状态监听每个连接和加密卡的读事件;当客户端连接可读时,从客户端读取数据并尝试写入数据到加密卡输入队列;当加密卡可写时,将未成功写入的客户端数据写入到加密卡输入队列;当加密卡可读时,从加密卡输出队列读取数据并尝试发送给服务端;当服务端连接可写时,将未成功发送的数据发送到服务端,完成整个客户端数据到服务端的转发过程,本发明确保程序运行不阻塞不空转,高效完成数据加解密和数据转发过程。
Description
技术领域
本发明涉及一种基于事件驱动的高效数据加密转发方法及装置,属于数据传输技术领域。
背景技术
在物联网环境中,海量物联终端需要与后端服务器进行通信,为验证物联终端身份,并保证传输数据的安全性,一般通过加密网关等装置进行终端身份验证和数据加密传输,这要求加密网关具有高并发、高吞吐的特性。在处理网络请求时,一般有如下几种模型:
1)多线程模型,该模型对于每一个连接创建一个线程处理。在海量物联终端的背景下,该模型需要创建大量的线程,线程切换将是一笔很大的开销。
2)线程池模型,该模型一般创建一个线程接收任务,并将任务加入队列,若干个工作线程从队列中取任务执行。该模型存取任务都需要加锁,且接收任务的线程可能会成为整个系统的瓶颈。
3)多进/线程独立监听模型,该模型使用Linux内核提供的REUSEPORT特性,多进/线程同时监听同一个端口,且每个进/线程的监听独立。该模型避免了“惊群”现象的发生,可以最大限度的利用多核处理器的优势,现代网络程序一般采用该模型进行网络连接的处理。但该模型存在进/线程数量变化时数据包会按新的进/线程数重新分配的问题。
加密网关需要进行大量的数据加解密运算,在同步加密卡调用模式下,会造成程序等待加解密运算结果的情形,不利于处理器的利用。
物联终端一般通过无线网络进行通信,且终端性能一般不高,势必会导致加密网关两侧网络收发速度不匹配问题。对于此问题,一般可以采用如下方法处理。方法一,循环等待数据发送结束,但该方式会阻塞线程,不能及时处理其他已经就绪的连接;方法二,缓存数据,等待下次发送,该方法在存在大量慢连接时,会消耗大量内存。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种基于事件驱动的高效数据加密转发方法及装置,确保程序运行不阻塞不空转,高效完成数据加解密和数据转发过程。
为达到上述目的,本发明是采用下述技术方案实现的:
第一方面,本发明提供了一种基于事件驱动的高效数据加密转发方法及装置,包括:
建立本端与客户端、服务端之间的网络连接,通过异步方式调用加密卡,以初始状态监听每个连接和加密卡的读事件;
当客户端连接可读时,从客户端读取数据并尝试写入数据到加密卡输入队列;
当加密卡可写时,将未成功写入的客户端数据写入到加密卡输入队列;
当加密卡可读时,从加密卡输出队列读取数据并尝试发送给服务端;
当服务端连接可写时,将未成功发送的数据发送到服务端,完成整个客户端数据到服务端的转发过程。
进一步的,所述当客户端连接可读时,从客户端读取数据并尝试写入数据到加密卡输入队列,包括:
如果写入失败,开始监听加密卡读写,等待下次写入加密卡;
判断客户端连接是否存在未发送数据,如果存在,监听客户端连接写,否则不监听客户端连接写。
进一步的,还包括:在客户端数据成功发送到服务端前,不监听客户端连接读。
进一步的,所述当加密卡可写时,将未成功写入的客户端数据写入到加密卡输入队列,包括:
如果写入失败,则继续监听加密卡读写,如果写入成功,仅监听加密卡读。
进一步的,所述当加密卡可读时,从加密卡输出队列读取数据并尝试发送给服务端,包括:
如果发送成功,则开始监听客户端连接读,否则等待服务端可写时再次发送。
进一步的,还包括:当客户端连接存在未发送数据时,服务端不监听读,如果服务端数据全部发送至客户端,则开始监听服务端读。
进一步的,所述当服务端连接可写时,将未成功发送的数据发送到服务端,包括:
如果发送失败,继续等待服务端可写;
如果发送成功,则开始监听客户端连接读,并停止服务端连接写监听。
进一步的,还包括:如果客户端连接有未发送的数据,客户端连接继续监听写,服务端连接不监听读;如果客户端连接数据全部发送,服务端连接开始监听读,客户端不监听写。
进一步的,还包括:当数据全部发送到服务器后,完成整个客户端数据到服务端的转发过程,此时客户端、服务端、加密卡恢复到初始监听读状态。
第二方面,本发明提供一种基于事件驱动的高效数据加密转发装置,包括:
网络连接建立单元,用于建立本端与客户端、服务端之间的网络连接,通过异步方式调用加密卡,以初始状态监听每个连接和加密卡的读事件;
客户端可读单元,用于当客户端连接可读时,从客户端读取数据并尝试写入数据到加密卡输入队列;
加密卡可写单元,用于当加密卡可写时,将未成功写入的客户端数据写入到加密卡输入队列;
加密卡可读单元,用于当加密卡可读时,从加密卡输出队列读取数据并尝试发送给服务端;
服务端可写单元,用于当服务端连接可写时,将未成功发送的数据发送到服务端,完成整个客户端数据到服务端的转发过程。
与现有技术相比,本发明所达到的有益效果:
本发明提供一种基于事件驱动的高效数据加密转发方法及装置,在调用加密卡进行数据加解密时,通过进程与加密卡通道一对一的绑定实现了进程对加密卡的无锁调用,减少了性能损失。在数据加解密转发阶段,设计了一套根据加密卡状态和网络收发状态控制加密卡和两端连接读写监听的机制,有效解决了当两端传输速率不一致时数据转发难题和同步调用加密卡时处理器等待的问题,实现了即不用阻塞进程,也不需要占用大量内存缓存数据的效果,最终实现加密数据的高效转发。
附图说明
图1是本发明实施例提供的一种基于事件驱动的高效数据加密转发方法的流程图;
图2是本发明实施例提供的客户端连接可读事件处理流程图;
图3是本发明实施例提供的加密卡可写事件处理流程图;
图4是本发明实施例提供的加密卡可读事件处理流程图;
图5是本发明实施例提供的服务端连接可写事件处理流程图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
实施例1
本实施例介绍一种基于事件驱动的高效数据加密转发方法及装置,包括:
建立本端与客户端、服务端之间的网络连接,通过异步方式调用加密卡,以初始状态监听每个连接和加密卡的读事件;
当客户端连接可读时,从客户端读取数据并尝试写入数据到加密卡输入队列;
当加密卡可写时,将未成功写入的客户端数据写入到加密卡输入队列;
当加密卡可读时,从加密卡输出队列读取数据并尝试发送给服务端;
当服务端连接可写时,将未成功发送的数据发送到服务端,完成整个客户端数据到服务端的转发过程。
本实施例提供的基于事件驱动的高效数据加密转发方法及装置,其应用过程具体涉及如下步骤:
(1)连接准备
建立本端与客户端、服务端之间的网络连接,通过异步方式调用加密卡,初始状态监听每个连接和加密卡的读事件。以下以客户端连接可读开始描述整个流程。
(2)客户端连接可读
当客户端连接可读时,从客户端读取数据并尝试写入数据到加密卡输入队列。如果写入失败,开始监听加密卡读写,等待下次写入加密卡。然后判断客户端连接是否存在未发送数据,如果存在,监听客户端连接写,否则不监听客户端连接写。在客户端数据成功发送到服务端前,不监听客户端连接读。
(3)加密卡可写
当加密卡可写时,将未成功写入的客户端数据写入到加密卡输入队列,如果写入失败,则继续监听加密卡读写,如果写入成功,仅监听加密卡读。
(4)加密卡可读
当加密卡可读时,从加密卡输出队列读取数据并尝试发送给服务端,如果发送成功,则可以开始监听客户端连接读了,否则需要等待服务端可写时再次发送。当客户端连接存在未发送数据时,服务端不监听读,如果服务端数据全部发送至客户端,则可以开始监听服务端读。
(5)服务端连接可写
当服务端连接可写时,将未成功发送的数据发送到服务端,如果仍然发送失败,继续等待服务端可写;如果发送成功,则可以开始监听客户端连接读,并停止服务端连接写监听。如果客户端连接有未发送的数据,客户端连接继续监听写,服务端连接不监听读;如果客户端连接数据全部发送,服务端连接开始监听读,客户端不监听写。
当数据全部发送到服务器后,就完成了整个客户端数据到服务端的转发过程,此时客户端、服务端、加密卡恢复到初始监听读状态。当服务端连接可读时,整体流程与上述流程基本一致,只需将加密卡从解密运算设置成加密运算即可。
实施例2
本实施例提供一种基于事件驱动的高效数据加密转发装置,包括:
网络连接建立单元,用于建立本端与客户端、服务端之间的网络连接,通过异步方式调用加密卡,以初始状态监听每个连接和加密卡的读事件;
客户端可读单元,用于当客户端连接可读时,从客户端读取数据并尝试写入数据到加密卡输入队列;
加密卡可写单元,用于当加密卡可写时,将未成功写入的客户端数据写入到加密卡输入队列;
加密卡可读单元,用于当加密卡可读时,从加密卡输出队列读取数据并尝试发送给服务端;
服务端可写单元,用于当服务端连接可写时,将未成功发送的数据发送到服务端,完成整个客户端数据到服务端的转发过程。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (2)
1.一种基于事件驱动的高效数据加密转发方法,其特征在于,包括:
建立本端与客户端、服务端之间的网络连接,通过异步方式调用加密卡,以初始状态监听每个连接和加密卡的读事件;
当客户端连接可读时,从客户端读取数据并尝试写入数据到加密卡输入队列;如果写入失败,开始监听加密卡读写,等待下次写入加密卡;然后判断客户端连接是否存在未发送数据,如果存在,监听客户端连接写,否则不监听客户端连接写;在客户端数据成功发送到服务端前,不监听客户端连接读;
当加密卡可写时,将未成功写入的客户端数据写入到加密卡输入队列;如果写入失败,则继续监听加密卡读写,如果写入成功,仅监听加密卡读;
当加密卡可读时,从加密卡输出队列读取数据并尝试发送给服务端;如果发送成功,则开始监听客户端连接读,否则等待服务端可写时再次发送,当客户端连接存在未发送数据时,服务端不监听读,如果服务端数据全部发送至客户端,则可以开始监听服务端读;
当服务端连接可写时,将未成功发送的数据发送到服务端,如果仍然发送失败,继续等待服务端可写;如果发送成功,则可以开始监听客户端连接读,并停止服务端连接写监听;如果客户端连接有未发送的数据,客户端连接继续监听写,服务端连接不监听读;如果客户端连接数据全部发送,服务端连接开始监听读,客户端不监听写;当数据全部发送到服务器后,完成整个客户端数据到服务端的转发过程,此时客户端、服务端、加密卡恢复到初始监听读状态。
2.一种基于事件驱动的高效数据加密转发装置,其特征在于,包括:
网络连接建立单元,用于建立本端与客户端、服务端之间的网络连接,通过异步方式调用加密卡,以初始状态监听每个连接和加密卡的读事件;
客户端可读单元,用于当客户端连接可读时,从客户端读取数据并尝试写入数据到加密卡输入队列;如果写入失败,开始监听加密卡读写,等待下次写入加密卡;然后判断客户端连接是否存在未发送数据,如果存在,监听客户端连接写,否则不监听客户端连接写;在客户端数据成功发送到服务端前,不监听客户端连接读;
加密卡可写单元,用于将未成功写入的客户端数据写入到加密卡输入队列;如果写入失败,则继续监听加密卡读写,如果写入成功,仅监听加密卡读;
加密卡可读单元,用于从加密卡输出队列读取数据并尝试发送给服务端;如果发送成功,则开始监听客户端连接读,否则等待服务端可写时再次发送,当客户端连接存在未发送数据时,服务端不监听读,如果服务端数据全部发送至客户端,则可以开始监听服务端读;
服务端可写单元,用于将未成功发送的数据发送到服务端,如果仍然发送失败,继续等待服务端可写;如果发送成功,则可以开始监听客户端连接读,并停止服务端连接写监听;如果客户端连接有未发送的数据,客户端连接继续监听写,服务端连接不监听读;如果客户端连接数据全部发送,服务端连接开始监听读,客户端不监听写;当数据全部发送到服务器后,完成整个客户端数据到服务端的转发过程,此时客户端、服务端、加密卡恢复到初始监听读状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210098842.XA CN114500052B (zh) | 2022-01-24 | 2022-01-24 | 一种基于事件驱动的高效数据加密转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210098842.XA CN114500052B (zh) | 2022-01-24 | 2022-01-24 | 一种基于事件驱动的高效数据加密转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114500052A CN114500052A (zh) | 2022-05-13 |
CN114500052B true CN114500052B (zh) | 2023-12-19 |
Family
ID=81477142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210098842.XA Active CN114500052B (zh) | 2022-01-24 | 2022-01-24 | 一种基于事件驱动的高效数据加密转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114500052B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279813A (zh) * | 2011-08-12 | 2011-12-14 | 无锡城市云计算中心有限公司 | 一种加密卡内系统的保护方法 |
CN102724035A (zh) * | 2012-06-15 | 2012-10-10 | 中国电力科学研究院 | 一种加密卡的加解密方法 |
CN108076106A (zh) * | 2016-11-15 | 2018-05-25 | 中国科学院声学研究所 | 一种面向云存储数据加解密的流式处理系统及方法 |
WO2021121203A1 (zh) * | 2019-12-17 | 2021-06-24 | 中兴通讯股份有限公司 | 业务表的配置方法、装置、网络设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8862835B2 (en) * | 2011-06-14 | 2014-10-14 | Texas Instruments Incorporated | Multi-port register file with an input pipelined architecture and asynchronous read data forwarding |
-
2022
- 2022-01-24 CN CN202210098842.XA patent/CN114500052B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102279813A (zh) * | 2011-08-12 | 2011-12-14 | 无锡城市云计算中心有限公司 | 一种加密卡内系统的保护方法 |
CN102724035A (zh) * | 2012-06-15 | 2012-10-10 | 中国电力科学研究院 | 一种加密卡的加解密方法 |
CN108076106A (zh) * | 2016-11-15 | 2018-05-25 | 中国科学院声学研究所 | 一种面向云存储数据加解密的流式处理系统及方法 |
WO2021121203A1 (zh) * | 2019-12-17 | 2021-06-24 | 中兴通讯股份有限公司 | 业务表的配置方法、装置、网络设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114500052A (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3719657B1 (en) | Communication with accelerator via rdma-based network adapter | |
EP2552081B1 (en) | Interrupt management | |
US7480840B2 (en) | Apparatus, system, and method for facilitating port testing of a multi-port host adapter | |
EP1257909B1 (en) | Method and apparatus for improving utilization of a resource on a shared client | |
CN104994032B (zh) | 一种信息处理的方法和装置 | |
WO2014082562A1 (en) | Method, device, and system for information processing based on distributed buses | |
CN106034120B (zh) | 一种多进程访问可信应用的方法和系统 | |
CN104580011A (zh) | 一种数据转发装置和方法 | |
US20130042236A1 (en) | Virtualization of interrupts | |
CN113515320A (zh) | 一种硬件加速处理方法、装置以及服务器 | |
US20140280709A1 (en) | Flow director-based low latency networking | |
EP0871307A2 (en) | Apparatus for flexible control of interrupts in multiprocessor systems | |
CN102314382A (zh) | 一种紧急探查系统信息的方法及模块 | |
CN114500052B (zh) | 一种基于事件驱动的高效数据加密转发方法及装置 | |
CN116932454B (zh) | 数据传输方法、装置、电子设备及计算机可读存储介质 | |
US7707584B2 (en) | Method and apparatus for synchronizing calls in a server and client system | |
US9558149B2 (en) | Dual system | |
CN111552668B (zh) | 一种基于zfs文件系统的高性能跨域复制方法 | |
US11438448B2 (en) | Network application program product and method for processing application layer protocol | |
WO2024040846A1 (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN115981893A (zh) | 消息队列任务处理方法、装置、服务器及存储介质 | |
US20030214909A1 (en) | Data processing device and its input/output method and program | |
US20060181734A1 (en) | Method and apparatus for transmitting data to network and method and apparatus for receiving data from network | |
JP2001051871A (ja) | リモートデバッグ装置 | |
CN115904602B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20221129 Address after: No.8 Nanrui Road, Gulou District, Nanjing City, Jiangsu Province 211106 Applicant after: NARI INFORMATION & COMMUNICATION TECHNOLOGY Co. Applicant after: NARI TECHNOLOGY Co.,Ltd. Address before: Nan Shui Road Gulou District of Nanjing city of Jiangsu Province, No. 8 210003 Applicant before: NARI INFORMATION & COMMUNICATION TECHNOLOGY Co. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |