CN113660342A - 一种基于ssl的通信方法和装置 - Google Patents
一种基于ssl的通信方法和装置 Download PDFInfo
- Publication number
- CN113660342A CN113660342A CN202110951713.6A CN202110951713A CN113660342A CN 113660342 A CN113660342 A CN 113660342A CN 202110951713 A CN202110951713 A CN 202110951713A CN 113660342 A CN113660342 A CN 113660342A
- Authority
- CN
- China
- Prior art keywords
- ssl
- request
- thread group
- thread
- target
- 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
- 230000006854 communication Effects 0.000 title claims abstract description 84
- 238000004891 communication Methods 0.000 title claims abstract description 76
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000008569 process Effects 0.000 claims abstract description 32
- 238000012545 processing Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- 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
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
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
本发明公开了一种基于SSL的通信方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接收客户端发来的SSL请求;对SSL请求进行解析,确定SSL请求的类型;根据SSL请求的类型,从预设的线程组中确定执行SSL请求的目标线程组,其中,预设的线程组包括用于建立SSL连接的第一线程组、以及用于基于SSL连接进行通信的第二线程组;将SSL请求分配至目标线程组,以使目标线程组处理SSL请求。该实施方式提高了通信过程的效率和性能。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于SSL的通信方法和装置。
背景技术
目前,越来越多的用户使用HTTPS协议进行通信,以提高信息在传输过程中的安全性。而在使用HTTPS协议进行通信的客户端与服务器之间,如何提高通信过程的效率和性能,是技术人员一直在解决的问题。
发明内容
有鉴于此,本发明实施例提供一种基于SSL的通信方法和装置,能够在接收到客户端发来的SSL请求之后,对SSL请求进行解析,确定出SSL请求的类型,进而根据SSL请求的类型,从预设的线程组中确定执行SSL请求的目标线程组,其中,预设的线程组包括用于建立SSL连接的第一线程组、以及用于基于SSL连接进行通信的第二线程组,再将SSL请求分配至目标线程组,以使目标线程组处理SSL请求,从而提高了通信过程的效率和性能。
为实现上述目的,根据本发明实施例的一个方面,提供了一种基于SSL的通信方法。
本发明实施例的一种基于SSL的通信方法包括:
接收客户端发来的SSL请求;
对SSL请求进行解析,确定SSL请求的类型;
根据SSL请求的类型,从预设的线程组中确定执行SSL请求的目标线程组,其中,预设的线程组包括用于建立SSL连接的第一线程组、以及用于基于SSL连接进行通信的第二线程组;
将SSL请求分配至目标线程组,以使目标线程组处理SSL请求。
可选地,
在类型指示SSL请求为SSL握手请求的情况下,从预设的线程组中确定第一线程组作为执行SSL握手请求的目标线程组;
将SSL握手请求分配至第一线程组,以使第一线程组处理SSL握手请求。
可选地,
将SSL握手请求分配至第一线程组,以使第一线程组处理SSL握手请求,包括:
在类型指示SSL请求为与客户端建立SSL连接的请求的情况下,通过第一线程组中的第一线程与客户端建立SSL连接;
和/或,
在类型指示SSL请求为向外握手请求的情况下,通过第一线程组中的第二线程向第二SSL握手请求指示的外部服务器发送SSL握手请求,以与外部服务器建立SSL连接。
可选地,
在类型指示SSL请求为SSL通信请求的情况下,从预设的线程组中确定第二线程组作为执行SSL通信请求的目标线程组;
将SSL通信请求分配至第二线程组,以使第二线程组处理SSL通信请求。
可选地,
在接收客户端发来的SSL请求之前,包括:
根据CPU核心的数量,确定第一线程组中线程的数量;
和/或,
根据CPU核心的数量以及网络IO吞吐量,确定第二线程组中线程的数量。
可选地,
在与外部服务器建立SSL连接之后,还包括:
通过与外部服务器之间的SSL连接获取外部服务器的目标证书;
在接收到目标证书的情况下,使用预设的本地证书对目标证书进行重新签发,得到新的目标证书;
通过第一线程将新的目标证书发送至客户端,以与客户端建立SSL连接。
可选地,
对SSL请求进行解析,确定SSL请求的类型,包括:
对SSL请求进行解析,得到SSL请求的报头信息;
根据报头信息,确定SSL请求的类型。
可选地,
将SSL请求分配至目标线程组,以使目标线程组处理SSL请求,包括:
将SSL请求分配至目标线程组;
从目标线程组的多个线程中,选择处于就绪状态的线程作为目标线程;
通过目标线程处理SSL请求。
为实现上述目的,根据本发明实施例的又一方面,提供了一种基于SSL的通信装置。
本发明实施例的一种基于SSL的通信装置包括请求接收模块、解析模块、线程组确定模块、以及分配模块;其中:
请求接收模块,用于接收客户端发来的SSL请求;
解析模块,用于对SSL请求进行解析,确定SSL请求的类型;
线程组确定模块,用于根据SSL请求的类型,从预设的线程组中确定执行SSL请求的目标线程组,其中,预设的线程组包括用于建立SSL连接的第一线程组、以及用于基于SSL连接进行通信的第二线程组;
分配模块,用于将SSL请求分配至目标线程组,以使目标线程组处理SSL请求。
为实现上述目的,根据本发明实施例的又一方面,提供了一种基于SSL的通信电子设备。
本发明实施例的一种基于SSL的通信电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明实施例的一种基于SSL的通信方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读存储介质。
本发明实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种基于SSL的通信方法。
上述发明中的一个实施例具有如下优点或有益效果:能够在接收到客户端发来的SSL请求之后,对SSL请求进行解析,确定出SSL请求的类型,进而根据SSL请求的类型,从预设的线程组中确定执行SSL请求的目标线程组,其中,预设的线程组包括用于建立SSL连接的第一线程组、以及用于基于SSL连接进行通信的第二线程组,再将SSL请求分配至目标线程组,以使目标线程组处理SSL请求,从而提高了通信过程的效率和性能。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的一种基于SSL的通信方法的主要步骤的示意图;
图2是一种与客户端建立SSL连接的方法的主要步骤的示意图;
图3是将SSL请求分配至目标线程组,以使目标线程组处理SSL请求的过程示意图;
图4是根据本发明实施例的一种基于SSL的通信装置的主要模块的示意图;
图5是本发明实施例可以应用于其中的示例性系统架构图;
图6是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要指出的是,在不冲突的情况下,本发明的实施例以及实施例中的技术特征可以相互结合。
图1是根据本发明实施例的一种基于SSL的通信方法的主要步骤的示意图。
如图1所示,本发明实施例的一种基于SSL的通信方法主要包括以下步骤:
步骤S101:接收客户端发来的SSL请求。
在本发明实施例中,在使用SSL进行通信的时候,我们可以将整个通信过程分为两个阶段:握手阶段和加密通信阶段。
具体地,在握手阶段,由于需要进行证书验证、密钥交换等工作,这些工作都需要使用非对称密钥算法来进行数据的加解密工作,而这些操作都需要消耗大量的CPU资源。同时在这个阶段,使用网络发送和接收的数据量是很少的,因此可以将握手阶段视为CPU密集型计算阶段。
而在加密通信阶段,主要进行数据加解密、数据压缩、以及数据接收等工作,其中的数据加解密过程使用的是对称加密算法,相较于非对称加密算法来说,本阶段对于CPU的开销较小,而更大的开销在于网络数据的传输,因此可以将加密通信阶段视为IO密集型计算阶段。
由于可以将握手阶段视为CPU密集型计算阶段、而将加密通信阶段视为IO密集型计算阶段,所以后续可以分别将握手阶段的SSL请求与加密通信阶段的SSL请求分配至不同的线程组进行处理。
步骤S102:对SSL请求进行解析,确定SSL请求的类型。
在本发明实施例中,SSL请求的类型可以为:SSL握手请求或SSL通信请求。
在本发明实施例中,可以对SSL请求进行解析,得到SSL请求的报头信息;根据报头信息,确定SSL请求的类型。根据SSL请求的报头信息,能够更加准确、快速地确定出SSL请求的类型,进而能够更快速地执行后续步骤,提高了通信效率。
步骤S103:根据SSL请求的类型,从预设的线程组中确定执行SSL请求的目标线程组,其中,预设的线程组包括用于建立SSL连接的第一线程组、以及用于基于SSL连接进行通信的第二线程组。
在本发明实施例中,预设的线程组包括用于建立SSL连接的第一线程组、以及用于基于SSL连接进行通信的第二线程组。而第一线程组以及第二线程组中各自包含线程的数量,可以在接收客户端发来的SSL请求之前就预先设定好。
具体地,在接收客户端发来的SSL请求之前,可以先根据CPU核心的数量,确定第一线程组中线程的数量。同理,也可以在接收客户端发来的SSL请求之前,先根据CPU核心的数量以及网络IO吞吐量,确定第二线程组中线程的数量。
在本发明一个优选的实施例中,第一线程组中线程的数量可以与CPU核心的数量相等;而在网络IO吞吐量没有吞吐压力的情况下,第二线程组中线程的数量可以为CPU核心的数量的1.5倍。
在本发明实施例中,在类型指示SSL请求为SSL握手请求的情况下,就从预设的线程组中确定第一线程组作为执行SSL握手请求的目标线程组,进而将SSL握手请求分配至第一线程组,以使第一线程组处理SSL握手请求;而在类型指示SSL请求为SSL通信请求的情况下,就从预设的线程组中确定第二线程组作为执行SSL通信请求的目标线程组,进而将SSL通信请求分配至第二线程组,以使第二线程组处理SSL通信请求。
通过上述方式,在线程分配层面上将SSL握手请求的处理过程与SSL通信请求的处理过程相分离,也就实现了握手阶段和加密通信阶段的分离,即:第一线程组专门用于执行CPU密集型的握手阶段,减少了IO操作延时导致的等待时长,提高了处理SSL握手请求的性能;第二线程组专门用于执行IO密集型的加密通信阶段,由于这一阶段本身的计算量相对较小,从而更关注于对网络的读写,减少了等待CPU操作的时长,提高了加密通信阶段的效率。
由于SSL握手请求进一步包括:与客户端建立SSL连接的请求、以及客户端指示的向外握手请求,因此在本发明一个优选的实施例中,可以进一步根据SSL请求的报头信息,确定类型指示的SSL请求是与客户端建立SSL连接的请求,还是向外握手请求。
在本发明实施例中,可以将第一线程组中的线程进一步分为第一线程和第二线程两种。在类型指示SSL请求为与客户端建立SSL连接的请求的情况下,可以通过第一线程组中的第一线程与客户端建立SSL连接。而在类型指示SSL请求为向外握手请求的情况下,可以通过第一线程组中的第二线程向第二SSL握手请求指示的外部服务器发送SSL握手请求,以与外部服务器建立SSL连接。
在本发明实施例中,在与外部服务器建立SSL连接之后,一种与客户端建立SSL连接的方法如图2所示,主要包括以下步骤:
步骤S201:通过与外部服务器之间的SSL连接获取外部服务器的目标证书;
步骤S202:在接收到目标证书的情况下,使用预设的本地证书对目标证书进行重新签发,得到新的目标证书;
步骤S203:通过第一线程将新的目标证书发送至客户端,以与客户端建立SSL连接。
上述与客户端建立SSL连接的过程中,使用预设的本地证书对目标证书进行重新签发,得到新的目标证书,并利用新的目标证书与客户端建立SSL连接,能够使得后续客户端与外部服务器之间的通信内容更加安全。此时,客户端发出的通信数据被新的目标证书加密,即使外部服务器的目标证书被泄露至恶意用户,恶意用户也无法使用该目标证书对客户端发出的通信数据进行解密,从而有效保护了客户端敏感信息的安全。
步骤S104:将SSL请求分配至目标线程组,以使目标线程组处理SSL请求。
在本发明实施例中,将SSL请求分配至目标线程组,以使目标线程组处理SSL请求的过程如图3所示,主要包括以下步骤:
步骤S301:将SSL请求分配至目标线程组;
步骤S302:从目标线程组的多个线程中,选择处于就绪状态的线程作为目标线程;
步骤S303:通过目标线程处理SSL请求。
在本发明实施例中,目标线程组中的每一个线程分别对应一个优先级;在处于就绪状态的线程有多个的情况下,从多个处于就绪状态的线程中选择优先级最高的线程作为目标线程来处理SSL请求。
在本发明实施例中,在处于就绪状态的、且优先级最高的线程有多个的情况下,将多个处于就绪状态的、且优先级最高的线程均作为目标线程,并采用时间片轮转调度策略选择一个目标线程处理SSL请求。
根据本发明实施例的一种基于SSL的通信方法可以看出,该方法能够在接收到客户端发来的SSL请求之后,对SSL请求进行解析,确定出SSL请求的类型,进而根据SSL请求的类型,从预设的线程组中确定执行SSL请求的目标线程组,其中,预设的线程组包括用于建立SSL连接的第一线程组、以及用于基于SSL连接进行通信的第二线程组,再将SSL请求分配至目标线程组,以使目标线程组处理SSL请求,从而提高了通信过程的效率和性能。
图4是根据本发明实施例的一种基于SSL的通信装置的主要模块的示意图。
如图4所示,本发明实施例的一种基于SSL的通信装置400包括请求接收模块401、解析模块402、线程组确定模块403、以及分配模块404;其中:
请求接收模块401,用于接收客户端发来的SSL请求;
解析模块402,用于对SSL请求进行解析,确定SSL请求的类型;
线程组确定模块403,用于根据SSL请求的类型,从预设的线程组中确定执行SSL请求的目标线程组,其中,预设的线程组包括用于建立SSL连接的第一线程组、以及用于基于SSL连接进行通信的第二线程组;
分配模块404,用于将SSL请求分配至目标线程组,以使目标线程组处理SSL请求。
在本发明实施例中,在类型指示SSL请求为SSL握手请求的情况下,线程组确定模块403进一步用于:从预设的线程组中确定第一线程组作为执行SSL握手请求的目标线程组;分配模块404进一步用于:将SSL握手请求分配至第一线程组,以使第一线程组处理SSL握手请求。
在本发明实施例中,分配模块404进一步用于:在类型指示SSL请求为与客户端建立SSL连接的请求的情况下,通过第一线程组中的第一线程与客户端建立SSL连接。
在本发明实施例中,分配模块404进一步用于:在类型指示SSL请求为向外握手请求的情况下,通过第一线程组中的第二线程向第二SSL握手请求指示的外部服务器发送SSL握手请求,以与外部服务器建立SSL连接。
在本发明实施例中,在类型指示SSL请求为SSL通信请求的情况下,线程组确定模块403进一步用于:从预设的线程组中确定第二线程组作为执行SSL通信请求的目标线程组;分配模块404进一步用于:将SSL通信请求分配至第二线程组,以使第二线程组处理SSL通信请求。
在本发明实施例中,在接收客户端发来的SSL请求之前,请求接收模块401进一步用于:根据CPU核心的数量,确定第一线程组中线程的数量。
在本发明实施例中,在接收客户端发来的SSL请求之前,请求接收模块401进一步用于:根据CPU核心的数量以及网络IO吞吐量,确定第二线程组中线程的数量。
在本发明实施例中,在与外部服务器建立SSL连接之后,分配模块404进一步用于:通过与外部服务器之间的SSL连接获取外部服务器的目标证书;在接收到目标证书的情况下,使用预设的本地证书对目标证书进行重新签发,得到新的目标证书;通过第一线程将新的目标证书发送至客户端,以与客户端建立SSL连接。
在本发明实施例中,解析模块402进一步用于:对SSL请求进行解析,得到SSL请求的报头信息;根据报头信息,确定SSL请求的类型。
在本发明实施例中,分配模块404进一步用于:将SSL请求分配至目标线程组;从目标线程组的多个线程中,选择处于就绪状态的线程作为目标线程;通过目标线程处理SSL请求。
根据本发明实施例的一种基于SSL的通信装置可以看出,该装置能够在接收到客户端发来的SSL请求之后,对SSL请求进行解析,确定出SSL请求的类型,进而根据SSL请求的类型,从预设的线程组中确定执行SSL请求的目标线程组,其中,预设的线程组包括用于建立SSL连接的第一线程组、以及用于基于SSL连接进行通信的第二线程组,再将SSL请求分配至目标线程组,以使目标线程组处理SSL请求,从而提高了通信过程的效率和性能。
图5示出了可以应用本发明实施例的一种基于SSL的通信方法或一种基于SSL的通信装置的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501、502、503,网络504和电子设备505。网络504用以在终端设备501、502、503和电子设备505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与电子设备505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
电子设备505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所浏览的购物类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息)反馈给终端设备。
需要说明的是,本发明实施例所提供的一种基于SSL的通信方法一般由电子设备505执行,相应地,一种基于SSL的通信装置一般设置于电子设备505中。
应该理解,图5中的终端设备、网络和电子设备的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和电子设备。
下面参考图6,其示出了适于用来实现本发明实施例的终端设备的计算机系统600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括请求接收模块、解析模块、线程组确定模块、以及分配模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,请求接收模块还可以被描述为“用于接收客户端发来的SSL请求的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:接收客户端发来的SSL请求;对SSL请求进行解析,确定SSL请求的类型;根据SSL请求的类型,从预设的线程组中确定执行SSL请求的目标线程组,其中,预设的线程组包括用于建立SSL连接的第一线程组、以及用于基于SSL连接进行通信的第二线程组;将SSL请求分配至目标线程组,以使目标线程组处理SSL请求。
根据本发明实施例的技术方案,能够在接收到客户端发来的SSL请求之后,对SSL请求进行解析,确定出SSL请求的类型,进而根据SSL请求的类型,从预设的线程组中确定执行SSL请求的目标线程组,其中,预设的线程组包括用于建立SSL连接的第一线程组、以及用于基于SSL连接进行通信的第二线程组,再将SSL请求分配至目标线程组,以使目标线程组处理SSL请求,从而提高了通信过程的效率和性能。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (11)
1.一种基于SSL的通信方法,其特征在于,包括:
接收客户端发来的SSL请求;
对所述SSL请求进行解析,确定所述SSL请求的类型;
根据所述SSL请求的类型,从预设的线程组中确定执行所述SSL请求的目标线程组,其中,所述预设的线程组包括用于建立SSL连接的第一线程组、以及用于基于所述SSL连接进行通信的第二线程组;
将所述SSL请求分配至所述目标线程组,以使所述目标线程组处理所述SSL请求。
2.根据权利要求1所述的方法,其特征在于,
在所述类型指示所述SSL请求为SSL握手请求的情况下,从预设的线程组中确定所述第一线程组作为执行所述SSL握手请求的所述目标线程组;
将所述SSL握手请求分配至所述第一线程组,以使所述第一线程组处理所述SSL握手请求。
3.根据权利要求2所述的方法,其特征在于,所述将所述SSL握手请求分配至所述第一线程组,以使所述第一线程组处理所述SSL握手请求,包括:
在所述类型指示所述SSL请求为与客户端建立SSL连接的请求的情况下,通过所述第一线程组中的第一线程与所述客户端建立SSL连接;
和/或,
在所述类型指示所述SSL请求为向外握手请求的情况下,通过所述第一线程组中的第二线程向所述第二SSL握手请求指示的外部服务器发送SSL握手请求,以与所述外部服务器建立SSL连接。
4.根据权利要求1所述的方法,其特征在于,
在所述类型指示所述SSL请求为SSL通信请求的情况下,从预设的线程组中确定所述第二线程组作为执行所述SSL通信请求的所述目标线程组;
将所述SSL通信请求分配至所述第二线程组,以使所述第二线程组处理所述SSL通信请求。
5.根据权利要求1所述的方法,其特征在于,在所述接收客户端发来的SSL请求之前,包括:
根据CPU核心的数量,确定所述第一线程组中线程的数量;
和/或,
根据CPU核心的数量以及网络IO吞吐量,确定所述第二线程组中线程的数量。
6.根据权利要求3所述的方法,其特征在于,在与所述外部服务器建立SSL连接之后,还包括:
通过与所述外部服务器之间的SSL连接获取所述外部服务器的目标证书;
在接收到所述目标证书的情况下,使用预设的本地证书对所述目标证书进行重新签发,得到新的目标证书;
通过所述第一线程将所述新的目标证书发送至所述客户端,以与所述客户端建立SSL连接。
7.根据权利要求1所述的方法,其特征在于,所述对所述SSL请求进行解析,确定所述SSL请求的类型,包括:
对所述SSL请求进行解析,得到所述SSL请求的报头信息;
根据所述报头信息,确定所述SSL请求的类型。
8.根据权利要求1所述的方法,其特征在于,所述将所述SSL请求分配至所述目标线程组,以使所述目标线程组处理所述SSL请求,包括:
将所述SSL请求分配至所述目标线程组;
从所述目标线程组的多个线程中,选择处于就绪状态的线程作为目标线程;
通过所述目标线程处理所述SSL请求。
9.一种基于SSL的通信装置,其特征在于,包括请求接收模块、解析模块、线程组确定模块、以及分配模块;其中:
所述请求接收模块,用于接收客户端发来的SSL请求;
所述解析模块,用于对所述SSL请求进行解析,确定所述SSL请求的类型;
所述线程组确定模块,用于根据所述SSL请求的类型,从预设的线程组中确定执行所述SSL请求的目标线程组,其中,所述预设的线程组包括用于建立SSL连接的第一线程组、以及用于基于所述SSL连接进行通信的第二线程组;
所述分配模块,用于将所述SSL请求分配至所述目标线程组,以使所述目标线程组处理所述SSL请求。
10.一种基于SSL的通信电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-8中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110951713.6A CN113660342A (zh) | 2021-08-18 | 2021-08-18 | 一种基于ssl的通信方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110951713.6A CN113660342A (zh) | 2021-08-18 | 2021-08-18 | 一种基于ssl的通信方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113660342A true CN113660342A (zh) | 2021-11-16 |
Family
ID=78481149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110951713.6A Pending CN113660342A (zh) | 2021-08-18 | 2021-08-18 | 一种基于ssl的通信方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113660342A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020169980A1 (en) * | 1998-12-01 | 2002-11-14 | David Brownell | Authenticated firewall tunneling framework |
US6859834B1 (en) * | 1999-08-13 | 2005-02-22 | Sun Microsystems, Inc. | System and method for enabling application server request failover |
CN101159747A (zh) * | 2007-11-12 | 2008-04-09 | 中兴通讯股份有限公司 | 一种基于tcp并发多链路的通信系统及其方法 |
US20150341386A1 (en) * | 2013-02-20 | 2015-11-26 | Fastly, Inc. | Enhanced thread handling in security handshaking |
US20160119374A1 (en) * | 2014-10-28 | 2016-04-28 | International Business Machines Corporation | Intercepting, decrypting and inspecting traffic over an encrypted channel |
CN109639619A (zh) * | 2017-10-09 | 2019-04-16 | 北京安软天地科技有限公司 | 一种面向安全认证网关的大并发加密通讯算法 |
-
2021
- 2021-08-18 CN CN202110951713.6A patent/CN113660342A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020169980A1 (en) * | 1998-12-01 | 2002-11-14 | David Brownell | Authenticated firewall tunneling framework |
US6859834B1 (en) * | 1999-08-13 | 2005-02-22 | Sun Microsystems, Inc. | System and method for enabling application server request failover |
CN101159747A (zh) * | 2007-11-12 | 2008-04-09 | 中兴通讯股份有限公司 | 一种基于tcp并发多链路的通信系统及其方法 |
US20150341386A1 (en) * | 2013-02-20 | 2015-11-26 | Fastly, Inc. | Enhanced thread handling in security handshaking |
US20160119374A1 (en) * | 2014-10-28 | 2016-04-28 | International Business Machines Corporation | Intercepting, decrypting and inspecting traffic over an encrypted channel |
CN109639619A (zh) * | 2017-10-09 | 2019-04-16 | 北京安软天地科技有限公司 | 一种面向安全认证网关的大并发加密通讯算法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113364795B (zh) | 一种数据传输方法和代理服务器 | |
CN110377440B (zh) | 信息处理方法和装置 | |
CN113271296A (zh) | 一种登录权限管理的方法和装置 | |
CN110753020A (zh) | 网络请求处理方法和装置 | |
CN113765968A (zh) | 一种文件传输方法、装置和系统 | |
CN113438256B (zh) | 一种基于双层ssl的数据传输方法、系统和代理服务器 | |
EP4180985A1 (en) | File sharing method, apparatus, and system | |
CN111339206A (zh) | 一种基于区块链的数据共享方法和装置 | |
CN111787048B (zh) | 一种终端设备的连接方法、调度服务器及物联网系统 | |
CN113742389A (zh) | 一种业务处理方法和装置 | |
CN112948138A (zh) | 一种处理消息的方法和装置 | |
CN111984613B (zh) | 一种共享文件的方法、装置和系统 | |
CN112685481A (zh) | 一种数据处理方法和装置 | |
CN113660342A (zh) | 一种基于ssl的通信方法和装置 | |
CN115967553A (zh) | 一种基于虚拟化系统的文件安全下发方法和系统 | |
CN115567263A (zh) | 一种数据传输管理的方法、数据处理的方法和装置 | |
CN111984614B (zh) | 一种共享文件的方法、装置和系统 | |
CN111984612B (zh) | 一种共享文件的方法、装置和系统 | |
CN111984616A (zh) | 一种更新共享文件的方法、装置和系统 | |
CN113676482B (zh) | 数据传输系统和方法与基于双层ssl的数据传输系统和方法 | |
CN111209014A (zh) | 一种参数校验的方法和装置 | |
CN113419878B (zh) | 一种数据操作方法和装置 | |
CN113132480B (zh) | 一种数据传输方法、装置和系统 | |
CN111783044B (zh) | 一种共享登录态的方法和装置 | |
CN116112172B (zh) | Android客户端gRPC接口安全校验的方法和装置 |
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 |