一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种支持高并发的量子密钥管理服务系统的处理方法与流程

2022-04-27 11:01:25 来源:中国专利 TAG:


1.本发明涉及量子通信网络与量子密钥管理系统领域,具体涉及一种支持高并发的量子密钥管理服务系统的处理方法。


背景技术:

2.量子保密通信网络体系架构包括三层,自上而下依次是应用层、密钥管理层和量子层。量子层用来协商出量子密钥,并转发给密钥管理层,由密钥管理层对量子密钥进行加密存储并管理量子密钥,应用层从密钥管理层获取密钥,用于数据信息加密并且采用一次一密的加密策略。
3.量子层主要包括qkd设备,每对qkd设备通过光纤量子密钥分发链路协商出量子密钥,实现点对点qkd,并将密钥发送到密钥管理层;
4.密钥管理层主要包括量子密钥管理服务系统,由密钥管理终端(km)软件和密钥管理服务器(kms)软件组成,作为量子可信中继,用来存储量子层生成的密钥,并根据每对用户的请求,通过密钥管理服务器(kms)软件模块获取路由,从而建立任意两个节点之间的端到端密钥;
5.应用层主要包括可信路由器、客户端等,用于接入多种业务,包括语音、视频、文件传输等,客户端需要从密钥管理层获取密钥,对信息进行加密,保证通信安全。
6.量子密钥管理服务系统对于量子保密通信网路至关重要,它直接关系到所得到密钥的安全性以及整个网络通信的安全性。如果生成的密钥本身不安全或利用不合理造成密钥不足,则不能满足大量信息的加密,危害整个网络的通信安全。所以一种安全有效的量子密钥管理服务系统是量子保密通信网络能够为用户提供高质量服务的关键。
7.一个中大型量子保密通信网络由大量的用户端节点、接入网节点、骨干网节点组成,这些节点都需要通过km终端与kms进行网络通信,为了确保量子保密通信网络能够正常稳定的工作,kms作为服务端需要具备处理海量的网络连接请求和业务数据请求的能力。针对kms的这一性能要求,本发明提出了一种支持高并发的量子密钥管理服务系统的处理方法。


技术实现要素:

8.为了解决上述技术问题,提出了一种具备处理海量的网络连接请求和业务数据请求的能力的支持高并发的量子密钥管理服务系统的处理方法。
9.为实现上述目的,本发明采取的技术方案如下:一种支持高并发的量子密钥管理服务系统的处理方法,该方法包括以下步骤:
10.步骤1:kms处理km的连接请求;
11.步骤2:kms对km发送业务数据的处理;
12.步骤3:kms处理km断开请求;
13.其中步骤1:kms处理km的连接请求过程如下:
14.步骤1-1:kms创建n个接收线程,用于监听与多个并行km连接的kms端口列表中端口的变化;
15.步骤1-2:kms创建线程池以及任务队列;
16.步骤1-3:kms在端口列表中添加accept接收连接事件,accept接收连接事件指kms服务端套接字接收km客户端连接的事件;
17.步骤1-4:km请求与kms建立连接;
18.步骤1-5:kms接收线程检测到端口状态变化,创建新的监听socket端口;所述监听socket端口用于与km客户端建立通信
19.步骤1-6:将新建的socket端口添加到接收线程的端口列表中。
20.优选地,步骤2:kms对km发送业务数据的处理过程如下:
21.步骤2-1:km发送业务数据到kms,触发kms接收线程中端口列表中相应端口的变化;
22.步骤2-2:kms接收线程检测到相应端口的变化;
23.步骤2-3:所述步骤1-1中创建的接收线程解析该端口,并确定事件类型;
24.步骤2-4:根据事件类型将其添加到不同的任务队列,所述任务队列根据事件类型的不同分为命令任务队列、定时器任务队列、退出任务队列和io(输入输出)任务队列;
25.步骤2-5:将所述任务队列提交给线程池处理;
26.步骤2-6:线程池将处理结果存放在结果队列,并将写操作事件写入端口列表中的一个端口(即写入端口列表中与某一km对应的文件描述符,文件描述符在形式上是一个非负整数,实际上它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表);
27.步骤2-7:kms接收线程检测到即端口列表中的一个端口的变化(即某一km对应的文件描述符的变化);
28.步骤2-8:确定步骤2-7中变化端口事件类型并执行发送操作。
29.优选地,步骤3:kms处理km断开请求:
30.步骤3-1:km主动断开或者异常退出;
31.步骤3-2:km断开或者异常退出触发kms接收线程中端口列表中的一个端口的变化(与某一km对应的文件描述符的变化);
32.步骤3-3:接收线程检测到端口列表中端口的变化;
33.步骤3-4:接收线程解析该端口,确定事件类型;
34.步骤3-5:根据事件类型添加到不同的任务队列;
35.步骤3-6:在kms的端口列表中删除该端口,并释放端口的资源。
36.本发明有益的技术效果:本发明减少了线程的数量,从而减少系统资源的消耗,能够满足大量km同时发送连接请求或者发送数据到kms,支持高并发处理;提高了网络传输的效率。
附图说明
37.图1为本发明kms处理km的连接请求流程图;
38.图2为本发明kms对km发送业务数据的处理过程流程图;
39.图3为本发明kms处理km断开请求流程图。
具体实施方式
40.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例对本发明进行进一步详细说明,但本发明要求保护的范围并不局限于下述具体实施例。
41.如图1所示,一种支持高并发的量子密钥管理服务系统的处理方法,该方法包括以下步骤:
42.步骤1:kms处理km的连接请求;
43.步骤2:kms对km发送业务数据的处理;
44.步骤3:kms处理km断开请求;
45.一个完整的网络通信的过程,首先需要步骤1建立网络连接,其次步骤2是在步骤1的基础上进行业务数据的收发处理;最后如果长时间不需要进行业务通信将会执行步骤3断开与kms的网络连接。
46.其中步骤1:kms处理km的连接请求过程如下:
47.步骤1-1:kms运行后需要首先创建n个接收线程,用于监听与多个并行km连接的kms端口列表中监听端口的变化;
48.具体地,n=cpu核数*2 2,因为线程数=cpu核心数*(1 io耗时/cpu耗时),由于本系统io耗时大于cpu耗时,所以创建的线程数应大于cpu核心数*2。
49.监听端口主要是指文件描述符,端口列表即存储文件描述符的列表,该步骤主要通过创建多个线程用来监听km的连接请求引起的端口变化。
50.步骤1-2:kms创建线程池以及任务队列;
51.其中线程池是指kms在系统启动时创建多个空闲的线程,程序将一个待执行的任务提交给线程池,线程池就会启动一条空闲线程来执行这个任务,执行结束后,该线程并不会死亡,而是再次返回线程池中称为空闲状态。
52.任务队列主要用来缓冲存储待执行的任务,解决高并发时出现待执行任务不能及时处理而丢弃的问题。
53.该步骤主要是初始化线程池和任务队列,为后续高并发的任务处理做准备。
54.步骤1-3:添加accept(表示接收)接收连接事件;
55.accept接收连接事件主要是指kms服务端套接字接收km客户端连接的事件,kms将accept接收事件主动添加到端口列表中。
56.该步骤主要作用是在kms系统中监听端口列表中关于km的连接请求事件的变化;
57.步骤1-4:km请求与kms建立连接;
58.步骤1-5:kms接收线程检测到端口状态有变化,创建新的监听socket端口;
59.监听socket端口对应的是新建的一个km连接的文件描述符,该监听socket端口后续主要用于与km客户端建立通信(读写操作)。
60.步骤1-6:将新建的socket端口添加到接收线程的端口列表中;
61.主要是通过步骤1-1中创建的多个接收线程监听端口列表中该新建的socket端口的变化,实现了kms与该新建socket端口对应的km之间的通信。
62.以上处理流程可以解决接入请求的高并发情况,当大量km发送请求连接时,kms端
只需要根据监听端口的变化,对每一个连接请求新建监听socket端口,并将其添加到接收线程的监听列表中。
63.优选地,步骤2:kms对km发送业务数据的处理过程如下:
64.步骤2-1:km发送业务数据到kms,触发kms接收线程中端口列表中socket端口的变化;
65.步骤2-2:kms接收线程检测到socket端口的变化;
66.步骤2-3:步骤1-1中创建的接收线程解析socket端口,并确定事件类型;
67.步骤2-4:根据事件类型添加到不同的任务队列,任务队列主要根据事件类型的不同分为命令任务队列、定时器任务队列、退出任务队列和io(输入输出)任务队列;
68.步骤2-5:将任务队列提交给线程池处理;
69.步骤2-6:线程池将处理结果存放在结果队列,并将写操作事件写入端口列表中与某一km对应的文件描述符;
70.步骤2-7:kms接收线程检测到某一km对应的文件描述符(即端口列表中的一个端口)的变化;
71.步骤2-8:确定该端口事件类型并执行发送操作。
72.以上处理流程可以解决业务数据通信的高并发情况,当大量km同时发送业务数据到kms时,kms会根据多个接收线程检测端口的变化解析端口事件类型,并将待处理的业务数据放在任务队列中交由线程池处理,线程池会从任务队列提取多个任务交给多个线程并行进行处理,直到任务队列处理完为止。
73.优选地,步骤3:kms处理km断开请求:
74.步骤3-1:km主动断开或者异常退出;
75.步骤3-2:km断开或者异常退出会触发kms接收线程中与某一km对应的文件描述符(即端口列表中的一个端口)的变化;
76.步骤3-3:接收线程检测到与某一km对应的文件描述符(即端口列表中的一个端口)的变化;
77.步骤3-4:解析与某一km对应的文件描述符(即端口列表中的一个端口),确定事件类型;
78.步骤3-5:根据事件类型添加到不同的任务队列。
79.步骤3-6:在端口列表中删除与某一km对应的文件描述符(即端口列表中的一个端口),并释放端口的资源。
80.以上处理流程可以解决网络断开的高并发情况,当大量km主动断开或者异常退出时,kms会根据多个接收线程检测端口的变化解析端口事件类型,并将其添加到任务队列交由线程池处理,最后在端口列表中删除该端口,并释放该端口所使用的资源。
81.本发明有益的技术效果:本发明满足大量km同时发送连接请求或者发送数据到kms,kms支持高并发处理;
82.减少线程的数量,从而减少系统资源的消耗;
83.提高了网络传输的效率。
84.根据上述说明书的揭示和教导,本发明所属领域的技术人员还可以对上述实施方式进行变更和修改。因此,本发明并不局限于上面揭示和描述的具体实施方式,对发明的一
些修改和变更也应当落入本发明的权利要求的保护范围内。此外,尽管本说明书中使用了一些特定的术语,但这些术语只是为了方便说明,并不对发明构成任何限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献