用于基于SAAS的应用的SSL优化的跟踪SSL会话状态的方法转让专利
申请号 : CN201880079753.2
文献号 : CN111448788B
文献日 : 2021-05-11
发明人 : A·巴特 , P·R·丹那巴南
申请人 : 思杰系统有限公司
摘要 :
权利要求 :
1.一种用于发起连接的建立的系统,所述系统包括:在客户机和服务器之间的中间装置,所述装置被配置为:为在客户机上执行并与服务器建立安全会话的应用确定至少一个服务器名称指示符SNI;
为对应于至少一个SNI的每个域名确定相应域名的会话超时值;以及根据每个会话超时值向客户机发送消息,以使客户机使用所述安全会话发起针对相应域名的连接的建立。
2.根据权利要求1所述的系统,其中,所述安全会话包括安全套接字层(SSL)会话,并且所述消息包括服务器发送事件(SSE)消息。
3.根据权利要求1所述的系统,其中,所述应用被配置为访问所述服务器的基于软件即服务(SaaS)的资源。
4.根据权利要求1所述的系统,其中,所述装置被配置为使用访问所述服务器的一个或多个资源的所述应用的用户的历史数据来确定所述至少一个SNI。
5.根据权利要求1所述的系统,其中,所述装置被配置为根据授予所述应用的用户对所述服务器的一个或多个资源的访问,来确定所述至少一个SNI。
6.根据权利要求5所述的系统,其中,所述访问是根据基于角色的访问控制(RBAC)来授予的。
7.根据权利要求1所述的系统,其中,所述装置被配置为使用以下至少一项来确定会话超时值:所述装置的会话超时参数或所述应用的会话超时参数。
8.根据权利要求1所述的系统,其中如果所述应用包括浏览器,当所述装置的会话超时参数的值大于所述应用的会话超时参数的值时,所述装置被配置为根据来自所述应用的客户机问候消息的频率或间隔来确定第一会话超时值。
9.根据权利要求1所述的系统,其中如果所述应用包括浏览器,当所述装置的会话超时参数的值小于所述应用的会话超时参数的值时,所述装置被配置为根据所述装置的会话超时参数来确定第一会话超时值。
10.根据权利要求1所述的系统,其中建立所述安全会话以供所述应用访问所述服务器的网页,并且所述网页具有与第一域名相关联的链接,并且所述装置还被配置为:向客户机发送第一消息,以使客户机使用安全会话发起针对第一域名的第一连接的建立;
为第一域名确定第一会话超时值,以及根据所述第一会话超时值向所述客户机发送第二消息,以使所述客户机使用安全会话发起针对所述第一域名的第二连接的建立。
11.一种用于发起连接的建立的方法,所述方法包括:由客户机与服务器之间的中间装置,为在客户机上执行并与服务器建立安全会话的应用确定至少一个服务器名称指示符SNI;
由所述装置为对应于至少一个SNI的每个域名,确定相应域名的会话超时值;以及由所述装置根据每个确定的会话超时值向客户机发送消息,以使客户机使用安全会话发起针对相应域名的连接的建立。
12.根据权利要求11所述的方法,其中所述安全会话包括安全套接字层(SSL)会话,并且所述消息包括服务器发送事件(SSE)消息。
13.根据权利要求11所述的方法,其中所述应用被配置为访问所述服务器的基于软件即服务(SaaS)的资源。
14.根据权利要求11所述的方法,还包括使用访问服务器的一个或多个资源的应用的用户的历史数据来确定至少一个SNI。
15.根据权利要求11所述的方法,进一步包含根据授予所述应用的用户对所述服务器的一个或多个资源的访问来确定所述至少一个SNI。
16.根据权利要求15所述的方法,其中所述访问是根据基于角色的访问控制(RBAC)来授予的。
17.根据权利要求11所述的方法,还包括:使用以下至少一项来确定会话超时值:装置的会话超时参数或应用的会话超时参数。
18.根据权利要求11所述的方法,其中如果所述应用包括浏览器,所述方法还包括:当所述装置的会话超时参数的值大于应用的会话超时参数的值时,根据来自所述应用的客户机问候消息的频率或间隔来确定第一会话超时值。
19.根据权利要求11所述的方法,其中如果所述应用包括浏览器,所述方法还包括:当所述装置的会话超时参数的值小于所述应用的会话超时参数的值时,根据所述装置的会话超时参数来确定第一会话超时值。
20.根据权利要求11所述的方法,其中建立所述安全会话以供所述应用访问所述服务器的网页,并且所述网页具有与第一域名相关联的链接,所述方法还包括:向所述客户机发送第一消息,以使所述客户机使用安全会话发起针对所述第一域名的第一连接的建立;
为所述第一域名确定第一会话超时值;以及根据第一会话超时值向客户机发送第二消息,以使所述客户机使用安全会话发起针对所述第一域名的第二连接的建立。
说明书 :
用于基于SAAS的应用的SSL优化的跟踪SSL会话状态的方法
No.15/787,463的优先权,其全部内容通过引用包含于此以用于所有目的。
技术领域
背景技术
及数据完整性。客户机和服务器可以通过执行握手过程建立SSL/TLS会话,在握手过程中,
双方协商并商定一组定义SSL/TLS会话的会话参数。会话参数通常包含加密/解密信息,以
用于加密或解密在SSL/TLS建立的会话期间交换的数据。
发明内容
的权利要求的范围。
客户机和服务器可以通过执行握手过程(例如,根据握手协议)来创建SSL/TLS会话,在握手
过程中,该客户机和服务器协商并确定一组定义SSL/TLS会话的会话参数。为了增强会话安
全性,可以将SSL/TLS会话与服务器侧和客户机侧的超时值相关联。例如,超时值可以表示
两个实体例如在空闲状态期间将会话保存在高速缓存中的持续时间。
SSL/TLS会话建立,该客户机可以稍后请求访问各种其他相关链接或者域名。对此类链接或
域名的访问可能涉及与这些链接或域名所关联的服务器建立SSL连接。此外,在超过会话超
时值的空闲时间后请求访问此类链接或域名可导致重新执行握手和建立SSL连接。在当前
的公开中,描述了基于SSL优化机制的实施例,以向基于SaaS应用(和/或服务器资源)提供
更好的用户体验,和/或加速从服务器到客户机装置的连接和客户机装置上数据的加载。
户机装置基于与SSL/TLS会话相关的服务器名称指示符预先建立到服务器的连接。这实质
上将预先建立域名系统(DNS)解析、SSL会话和SSL连接。当客户机装置恢复SSL/TLS会话时,
相应的用户可以从寄载由客户机装置请求的数据的服务器体验更快的响应。
会话的应用确定至少一个服务器名称指示符(SNI)。该装置可为对应于至少一个SNI的每个
域名,确定相应域名的会话超时值。该装置可以根据每个会话超时值发送消息到客户机,以
使客户机使用安全会话发起针对相应域名的连接的建立。
件即服务(SaaS)的资源。在一些实施例中,装置可使用访问服务器的一个或多个资源的应
用的用户的历史数据,来确定至少一个SNI。在一些实施例中,装置可根据授予应用的用户
对服务器的一个或多个资源的访问,确定至少一个SNI。该访问可以是根据基于角色的访问
控制(RBAC)授予的。
时参数的值大于应用的会话超时参数的值时,装置可以根据来自应用的客户机问候消息的
频率或间隔来确定第一会话超时值。在一些实施例中,如果应用包括浏览器,则当装置的会
话超时参数的值小于应用的会话超时参数的值时,装置可以根据装置的会话超时参数确定
第一会话超时值。
全会话发起针对第一域名的第一连接的建立。装置可以为第一域名确定第一会话超时值。
装置可以根据第一会话超时值向客户机发送第二消息,以使客户机使用安全会话发起针对
第一域名的第二连接的建立。
一个服务器名称指示符(SNI)。该方法可以包括:装置为与至少一个SNI相对应的每个域名,
确定相应域名的会话超时值。该方法可以包括装置根据每个确定的会话超时值向客户机发
送消息,以使客户机使用安全会话发起针对相应域名的连接的建立。
服务(SaaS)的资源。在一些实施例中,该方法可包括装置使用访问服务器的一个或多个资
源的应用的用户的历史数据,来确定至少一个SNI。在一些实施例中,该方法可包括装置根
据授权给应用用户对服务器的一个或多个资源的访问,来确定至少一个SNI。该访问可以是
根据基于角色的访问控制(RBAC)授予的。
可包括当该装置的会话超时参数值大于应用的会话超时参数值时,该装置根据来自应用的
客户机问候消息的频率或间隔确定第一会话超时值。在一些实施例中,如果应用包括浏览
器,该方法可包括当该装置的会话超时参数值小于应用的会话超时参数值,该装置根据装
置的会话超时参数确定第一会话超时值。
机使用安全会话发起针对第一域名的第一连接的建立,为第一域名确定第一会话超时值,
并根据第一会话超时值发送第二消息至客户机,以使客户机使用安全会话发起针对第一域
名的第二连接的建立。
附图说明
他特征提供上下文,说明书中引入的与附图相关联的附图标记可以在一个或多个后续附图
中重复而无需在说明书中进行额外描述,并且在每个附图中并非每个元件都被标记。附图
不一定按比例绘制,而是将重点放在解释实施例、原理和概念上。附图无意于限制随附的权
利要求的范围。
具体实施方式
程机器106或服务器106)通信的一个或多个客户机102(1)‑102(n)(通常也称为本地机器
102或客户机102)。在一些实施例中,客户机102可以经由一个或多个设备200(1)‑200n(通
常称为设备200或网关200)与服务器106通信。
是相同类型的网络或不同类型的网络。例如,在一些实施例中,网络104(1)可以是诸如局域
网(LAN)或公司内联网的专用网络,而网络104(2)和/或网络104(n)可以是诸如广域网
(WAN)或因特网的公共网络。在其他实施例中,网络104(1)和网络104(n)都可以是专用网
络。网络104可以采用一种或多种类型的物理网络和/或网络拓扑,例如有线和/或无线网
络,并且可以采用一种或多种通信传输协议,例如传输控制协议(TCP)、互联网协议(IP)、用
户数据报协议(UDP)或其他类似协议。
以协同工作,例如加速客户机102和服务器106之间的网络流量。在其他实施例中,设备200
可以位于网络104上。例如,设备200可以被实现为客户机102和/或服务器106之一的一部
分。在一个实施例中,设备200可以实现为网络装置,例如佛罗里达州劳德代尔堡的思杰系
统有限公司销售的 产品。
点(例如,在本地)或在地理上分散(例如,基于云)。在一个实施例中,服务器群38(例如,作
为应用服务器)代表一个或多个客户机102执行一个或多个应用,当然其他用途也是可能
的,例如文件服务器、网关服务器、代理服务器或其他类似服务器用途。客户机102可以寻求
对服务器106上寄载的应用的访问。
如,WAN优化设备205可以加速、高速缓存、压缩或以其他方式优化或改善网络流量(例如去
往和/或来自WAN连接的流量)的性能、操作、流控制或服务质量,例如优化广域文件服务
(WAFS)、加速服务器消息块(SMB)或公用互联网文件系统(CIFS)。在一些实施例中,设备205
可以是性能增强代理或WAN优化控制器。在一个实施例中,设备205可以被实现为佛罗里达
州劳德代尔堡的思杰系统有限公司出售的 产品。
和/或数据文件的应用传送系统190。客户机102可以包括客户机代理120和计算环境15。计
算环境15可以执行或操作应用16,所述应用16访问、处理或使用数据文件17。可以经由设备
200和/或服务器106传送计算环境15、应用16和/或数据文件17。
应用及该应用可处理的数据文件从数据中心加速传送到远程用户位置。可以通过下列一种
或多种技术来提供这样的加速,例如:1)传输层连接池化,2)传输层连接多路复用,3)传输
控制协议缓冲,4)压缩,5)高速缓存或其他技术。设备200还可以提供服务器106的负载均衡
以处理来自客户机102的请求,充当代理或访问服务器以提供对一个或多个服务器106的访
问,提供安全性和/或充当客户机102与服务器106之间的防火墙,提供域名服务(DNS)解析,
提供一个或多个虚拟服务器或虚拟互联网协议服务器,和/或提供从客户机102到服务器
106的安全虚拟专用网络(VPN)连接,例如安全套接字层(SSL)VPN连接和/或提供加密和解
密操作。
任何网络连接的装置(例如客户机102)访问服务器存储的应用和数据文件。例如,设备200
可以从服务器106请求应用和数据文件。响应于该请求,应用传送系统190和/或服务器106
可以向客户机102传送该应用和数据文件,例如经由应用流以在客户机102上的计算环境15
中进行操作,或者经由远程显示协议或以其他方式经由基于远程或基于服务器的计算。在
一个实施例中,应用传送系统190可以被实现为思杰系统有限公司的Citrix Workspace
TM
Suite 的任何部分,例如 或
应用,例如基于服务器的计算、流式传输或传送传送应用到客户机120本地以供本地执行。
证书相关联的策略引擎195所应用的用户策略。例如,应用传送系统190可以使客户机102能
够接收通过在服务器106上执行应用而生成的应用输出数据,可以使客户机102能够在从服
务器106接收到应用之后本地执行该应用,或者可以经由网络104将应用流式传输到客户机
102。例如,在一些实施例中,该应用可以是代表客户机102在服务器106上执行的基于服务
器或基于远程的应用。服务器106可以使用诸如佛罗里达州劳德代尔堡的思杰系统有限公
司的独立计算体系结构(ICA)协议的远程显示协议之类的瘦客户端或远程显示协议向客户
机102显示输出。该应用可以是与实时数据通信相关的任何应用,例如用于流式传输图形、
流式传输视频和/或音频或其他数据,传送远程桌面或工作空间或寄载的服务或应用(例如
基础设施即服务(IaaS)、工作空间即服务(WaaS)、软件即服务(SaaS)或平台即服务(PaaS))
的应用。
合使用数据收集、聚集、分析、管理和报告来执行性能监控。性能监控可以包括一个或多个
代理,用于在客户机102上(例如,客户机代理120)、在服务器106上(例如,代理197)或在设
备200和/或205上(未示出的代理)执行监控、测量和数据收集活动。通常,监控代理(例如
120和/或197)对装置的任一应用和/或用户透明地(例如在后台)执行。在一些实施例中,监
控代理197包括佛罗里达州劳德代尔堡的思杰系统有限公司的称为EdgeSight的任何产品
实施例。
和/或客户机102、网络104、设备200和/或205、和/或服务器106的通信资源。例如,诸如传输
层连接之类的网络连接、网络延迟、带宽利用率、最终用户响应时间、应用使用和性能、与应
用的会话连接、高速缓存使用、存储器使用、处理器使用、存储使用、数据库事务、客户机和/
或服务器使用、活跃用户、用户活动的持续时间、应用崩溃、错误、或挂起、登录到应用、服务
器或应用交付系统所需的时间、和/或其他性能条件和指标都可以被监控。
络环境性能和条件来优化服务器106到客户机102的应用传送。
是能够通过至少一个网络通信并执行本文所述的操作的任何台式计算机、膝上型计算机或
移动装置。例如,客户机102、服务器106和/或设备200和205可各自对应于一个计算机、多个
计算机或诸如图1C所示的计算机101的分布式计算机的网络。
质、一个或多个固态驱动器(SSD)(例如闪存驱动器或其他固态存储介质)、一个或多个混合
磁性和固态驱动器、和/或一个或多个虚拟存储卷(例如云存储)、或这种物理存储卷和虚拟
存储卷或其阵列的组合)、用户接口(UI)123、一个或多个通信接口118和通信总线150。用户
接口123可包括图形用户接口(GUI)124(例如,触摸屏、显示器等)和一个或多个输入/输出
(I/O)装置126(例如,鼠标、键盘等)。非易失性存储器128存储操作系统115、一个或多个应
用116和数据117,从而例如由处理器103从易失性存储器122中执行操作系统115和/或应用
116的计算机指令。可以使用GUI 124的输入装置来输入数据,或者可以从I/O装置126接收
数据。计算机101的各种元件可以经由通信总线150进行通信。图1C所示的计算机101仅作为
示例示出,因为可以通过任何计算或处理环境以及使用可具有能够如本文所述地操作的合
适的硬件和/或软件的任何类型的机器或机器组,来实现客户机102、服务器106和/或设备
200和205。
的电子电路。功能、操作或操作序列可以被硬编码到电子电路中,或者通过存储在存储器装
置中的指令被软编码。“处理器”可以使用数字值或使用模拟信号执行功能、操作或操作序
列。在一些实施例中,“处理器”可以以一个或多个应用专用集成电路(ASIC)、微处理器、数
字信号处理器、微控制器、现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、多核处理器、
或具有关联存储器的通用计算机来实现。“处理器”可以是模拟、数字或混合信号。在一些实
施例中,“处理器”可以是一个或多个物理处理器或一个或多个“虚拟”(例如,位于远程的或
“云”)处理器。
寄载的桌面会话)内应用代表用户或客户机计算装置(例如客户机102)执行,可以执行终端
服务会话以提供寄载的桌面环境,或者可以提供对包括以下中的一个或多个的计算环境的
访问:一个或多个应用、一个或多个桌面应用以及可以在其中执行一个或多个应用的一个
或多个桌面会话。
No.9,538,345中所描述,其教导通过引用并入本文。
可以包括硬件层206和被划分为用户空间202和内核空间204的软件层205。硬件层206提供
硬件组件,在该硬件组件上执行内核空间204和用户空间202内的程序和服务,并允许内核
空间204和用户空间202中的程序和服务相对于设备200在内部和外部进行数据通信。如图2
所示,硬件层206可以包括用于执行软件程序和服务的一个或多个处理单元262、用于存储
软件和数据的存储器264、用于通过网络发送和接收数据的网络端口266、以及用于对诸如
与通过网络发送和接收的数据的安全套接字层(SSL)或传输层安全协议(TLS)处理有关的
数据进行加密和解密的加密处理器260。
核扩展或其他与内核相关的软件。如本领域技术人员所知,内核230是操作系统的核心,并
提供对应用104的资源和与硬件相关的组件的访问、控制和管理。内核空间204还可以包括
与高速缓存管理器232协同工作的多个网络服务或进程。
或终止在客户机102和服务器106之间的一个或多个传输层连接。每个网络协议栈267可以
包括用于对一个或多个网络分组进行排队以供设备200传输的缓冲器243。
作系统的内核地址空间中运行,这可以减少对存储器存取的数据事务的数量和/或内核模
式与用户模式之间的上下文切换的数量,例如,因为在内核模式下获得的数据可以不必传
递或复制到用户进程、线程或用户级别的数据结构。
储器264中的数据对象,或者可以是具有比存储器264更快的访问时间的物理存储器。
配置安全性、网络流量、网络访问、压缩或由设备200执行的其他功能。
102、服务器106和/或其他设备200或205之间设置或建立SSL、TLS或其他安全连接。在一些
实施例中,加密引擎234可以使用隧道协议以提供在客户机102和服务器106之间的VPN。在
一些实施例中,加密引擎234与加密处理器260通信。压缩引擎238在客户机102和服务器106
之间和/或在一个或多个设备200之间对网络分组进行双向压缩。
存管理器232、策略引擎236和压缩引擎238一起工作,例如以执行加密/解密、流量管理(例
如请求级内容切换和请求级缓存重定向)以及数据的压缩和解压缩。
调用来访问内核服务。用户空间202可以包括图形用户接口(GUI)210、命令行接口(CLI)
212、壳服务214、健康监控器216和守护进程服务218。GUI 210和CLI 212能够使系统管理员
或其他用户诸如经由设备200的操作系统与设备200的操作交互并控制设备200的操作。壳
服务214包括程序、服务、任务、进程或可执行指令,以支持用户经由GUI 210和/或CLI 212
与设备200的交互。
216拦截并检查经过设备200的任何网络流量。例如,健康状况监控器216可以与加密引擎
234、高速缓存管理器232、策略引擎236、压缩引擎238、分组引擎240、守护进程服务218和壳
服务214中的一个或多个相接口,以确定设备200的任何部分的状态、状况、操作条件或健康
状况。此外,健康监控器216可以确定程序、进程、服务或任务是否是激活的并且当前正在运
行,检查由任何程序、进程、服务或任务提供的状态、错误或历史日志以确定设备200的任何
部分的任何条件、状态或错误。此外,健康监控器216可以测量和监控在设备200上执行的任
何应用、程序、进程、服务、任务或线程的性能。
程,例如另一个守护进程服务218。
器106因重复打开和关闭与客户机102的传输层连接所引起的大部分处理负荷。为了执行连
接池化,设备200可以通过在传输层协议级别修改序列号和确认号来转换或复用通信(例
如,“连接多路复用”)。设备200还可以为客户机102和服务器106之间的通信提供交换或负
载均衡。
信的一个或多个应用。客户机代理120可以拦截来自一个或多个应用使用的网络协议栈的
网络通信。例如,客户机代理120可以在网络协议栈中的任意点处拦截网络通信,并将该网
络通信重定向到由客户机代理120期望、管理或控制的目的地,例如以拦截传输层连接并将
其重定向至由客户机代理120控制或管理的IP地址和端口。由此,客户机代理120可以透明
地拦截传输层下方的任何协议层(例如网络层)和传输层上方的任何协议层(例如会话、表
示或应用层)。客户机代理120可以与传输层相接口,以保护、优化、加速、路由或负载均衡经
由传输层所承载的任何协议提供的任何通信。
和/或其他操作。例如,客户机代理120可以加速从服务器106到客户机102的应用的流式传
输。客户机代理120还可以执行端点检测/扫描,并且收集关于针对设备200和/或服务器106
的客户机102的端点信息。设备200和/或服务器106可以使用所收集的信息来确定并提供对
客户机到网络104的连接的访问、身份验证和授权控制。例如,客户机代理120可以识别和确
定一个或多个客户机侧属性,例如:操作系统和/或操作系统的版本、操作系统的服务补丁、
正在运行的服务、正在运行的进程、文件、客户机的各种应用的存在或版本,例如防病毒、防
火墙、安全性和/或其他软件。
入本文。
理程序(或虚拟化管理器)301,其分配和管理由在虚拟化层303中执行的至少一个虚拟机
(VM)(例如,虚拟机306中之一)对硬件层307中的多个物理资源(例如,一个或多个物理处理
器321和一个或多个物理磁盘328)的访问。每个VM 306可以包括分配的虚拟资源,例如虚拟
处理器332和/或虚拟盘342,以及例如虚拟存储器和虚拟网络接口之类的虚拟资源。在一些
实施例中,VM 306中的至少一个可以包括控制操作系统(例如305),其与管理程序301通信
并用来执行用于管理和配置装置302上的其他VM(例如客户操作系统310)的应用。
件、虚拟化物理硬件以及执行提供对计算环境的访问的虚拟机。在示意性实施例中,管理程
序301可以被实现为XEN管理程序,例如,如由开源Xen.org社区所提供的。在示意性实施例
中,执行创建虚拟机平台的管理程序的装置302被称为主机服务器,可在该虚拟机平台上执
行客户操作系统。在这样的实施例中,装置302可以被实现为由佛罗里达州劳德代尔堡的思
杰系统有限公司提供的XEN服务器。
操作系统。管理程序301可以向VM 306提供硬件层307的抽象,和/或可以控制如何将硬件层
307的物理能力呈现给VM 306。例如,管理程序301可以管理分布在多个物理计算装置上的
资源池。
实施例中,VM可以经由例如一个或多个应用编程接口(API)、共享内存和/或其他技术与管
理程序301和/或其他VM通信。
中,VM 306可以被实现为完全虚拟化的VM,其不知道它们是虚拟机(例如,硬件虚拟机或
HVM)。在其他实施例中,VM可以知道它是虚拟机,和/或VM可以被实现为半虚拟化(PV)VM。
称为物理主机和/或主机。例如,设备200可以在任何计算装置(例如客户机102、服务器106
或设备200)上的虚拟化环境300中附加或替代地实现。虚拟设备可以提供用于可用性、性
能、健康监控、缓存和压缩、连接复用和池化和/或安全处理(例如,防火墙、VPN、加密/解密
等)的功能,类似于关于设备200所描述的。
引用合并于此。
1C、2和3中),但是一个或多个处理器可以被实现为单核或多核处理器,以提供多线程、并行
架构和/或多核架构。每个处理器和/或核都可以具有或使用分派或分配以供私人或本地使
用的、仅由该处理器/核可访问的存储器,和/或可以具有或使用公共或共享的并且由多个
处理器/核可访问的存储器。这样的架构可以允许在一个或多个处理器和/或一个或多个核
上的工作、任务、负载或网络流量分布(例如,通过功能并行、数据并行、基于流的数据并行
等)。
置之间实现该功能,例如计算装置的集群、服务器群或计算装置的网络等。各种处理器/核
可以使用多种接口技术(例如核到核消息传递、共享内存、内核API等)与彼此相接口或通
信。
定:每个核执行的功能,源和目的地地址,以及/或者相关联的核上的负载是否高于预定阈
值;相关联的核上的负载是否低于预定阈值;相关联的核上的负载是否小于其他核上的负
载;或者可以用于部分地基于处理器上的负载量来确定将数据分组转发到何处的任何其他
度量。
分组的有序传送。在一些实施例中,RSS可以使用哈希方案来确定用于处理分组的核或处理
器。
据流相关联的任何信息元组,例如地址和端口。哈希结果或其任何部分可以用于识别处理
器、核、引擎等,以例如经由哈希表、间接表或其他映射技术来分布网络分组。
过引用并入本文。
均衡、分布、配置或其他任务,以允许多个节点作为单个计算系统一起操作。可以将这种集
群视为单个虚拟设备或计算装置。图4示出了示意性计算装置集群或设备集群400的框图。
多个设备200或其他计算装置(例如,节点)可以被加入单个集群400中。集群400可以作为应
用服务器、网络存储服务器、备份服务或任何其他类型的计算装置操作来执行设备200和/
或205的许多功能。
该节点的处理器/核,这样的实施例可以采用一个设备两层分布系统。在许多实施例中,集
群400的设备200中的一个或多个可以被物理地分组或在地理位置上彼此邻近,例如给定机
箱、机架和/或数据中心中的一组刀片服务器或机架安装装置。在一些实施例中,集群400的
设备200中的一个或多个可以在地理上分布,即多个设备200不在物理上或地理位置上位于
同一位置。在这样的实施例中,地理上远程的设备可以通过专用网络连接和/或VPN来加入。
在地理上分布的实施例中,负载均衡还可以考虑地理上远程的设备之间的通信延迟。
机或进程。
集线器、路由器或集群400内部或外部的其他类似网络装置,以在集群400的各个节点之间
分布流量。例如,可以基于以下执行流量分布:等价多路径(ECMP)路由(其下一跳配置有集
群的设备或节点)、开放式最短路径优先(OSPF)、基于无状态哈希的流量分布、链路聚合
(LAG)协议或任何其他类型和形式的流量分布、负载均衡和路由。
可以在集群400的内部或外部。在一些实施例中,客户机数据平面402和服务器数据平面404
可以合并或组合到单个装置中。
将配置和控制流量从管理员或用户传送到集群400。在一些实施例中,背板406可以是物理
网络、VPN或隧道或其组合。
统和方法。客户机和服务器可以通过执行握手过程(通过握手协议)来创建SSL/T LS会话,
在此过程中,客户机和服务器可以协商并确定一组定义SSL/TLS会话的会话参数。为了增强
会话安全,SSL/TLS会话可以与服务器侧和客户机侧的超时值相关联。超时值表示两个实体
在空闲状态期间将会话保持在高速缓存中的持续时间。
建立了SSL/TLS会话,该客户机可以稍后请求访问各种其他相关链接或域名。访问此类链接
或域名可能会涉及建立与此类链接或域名所关联的服务器的SSL连接。此外,在超过会话超
时值的空闲时间后,请求访问链接或域名可能会导致重新执行握手和建立SSL连接。在本公
开中,描述了一种基于SSL优化的机制,其向基于SaaS的应用(和/或服务器资源)提供更好
的用户体验,和/或加速从服务器到客户机装置的连接和数据的加载。
户机装置基于与SSL/TLS会话关联的服务器名称指示符(SNI),预先建立到服务器的连接。
这实质上将预先建立域名系统(DNS)解析、SSL会话和/或SSL连接。当客户机装置恢复该
SSL/TLS会话时,相应的用户可以体验来自寄载该客户机装置请求的数据的服务器的更快
响应。
102a‑n,中间装置502和服务器群38。服务器群38可以包括一个或多个服务器106a‑n。如本
文所使用的,参数m和n表示整数。服务器106a‑n可以包括web服务器、与一个或多个基于
SaaS的应用相关联的服务器、其他服务器,或它们的组合。中间装置502可以包括服务器名
称指示符(SNI)解析器504、SSL会话状态监控器506、服务器事件处理器508、动态脚本510
和/或一个或多个SSL服务器高速缓存512a‑n(在下文中单独或共同称为SSL服务器高速缓
存512)。一个或多个客户机102a‑n可以包括一个或多个对应的SSL客户机高速缓存514a‑n
(在下文中单独或共同称为SSL客户机高速缓存514)。一个或多个客户机102a‑n可以通信地
连接到中间装置502。中间装置502可以与服务器106a‑n通信地连接。
序、库、脚本、任务、服务、进程或任何类型和形式的可执行指令。硬件包括诸如一个或多个
处理器的电路,例如,在一个或多个实施例中,如上面结合图1C的计算装置101所描述的那
样。
例如,与客户机装置握手的设备。本系统和方法可以在任何中间装置或网关中实现,例如本
文描述的设备或装置200的任何实施例。例如,本系统和方法的某些部分可以被实现为设备
的分组处理引擎和/或虚拟服务器的一部分。该系统和方法可以在任何类型和形式的环境
中实现,包括本文所述的多核设备、虚拟化环境和集群环境。例如,中间装置502可以包括上
文至少结合图1A‑1C、2和4描述的设备200的一个或多个特征的任何实施例。
机102可以与中间装置502执行相应的SSL/TLS握手过程。在握手过程期间,客户机102和中
间装置502可以协商或商定一组定义或用于建立该SSL/TLS会话的SSL/TLS参数。客户机102
可以将与对应的SSL/TLS会话相关联的SSL/TLS参数存储在对应的SSL客户机高速缓存514
中。在中间装置侧,中间装置502可以将与同一SSL/TLS会话相关联的SSL/TLS参数存储在对
应的SSL服务器高速缓存512中。例如,SSL客户机高速缓存514a和SSL服务器高速缓存512a
可以存储客户机102a与中间装置502之间的SSL/TLS会话的SSL/TLS参数,SSL客户机高速缓
存514b和SSL服务器高速缓存512b可以存储客户机102b与中间装置502之间的SSL/TLS会话
的SSL/TLS参数,如此等等。
立与一个或多个资源(例如,网页或文档)、一个或多个服务器(或web)应用,或其组合的
SSL/TLS连接。资源和/或服务器应用可以驻留在不同的服务器106上。例如,客户机102可以
建立到与这里表示为“链接‑1”的链接对应的网页(例如,“网页‑1”)的SSL/TLS连接。该网页
可以包含与多个其他网页相对应的多个链接,例如分别与“网页‑2”、“网页‑3”和“网页‑4”
相对应的“链接‑2”、“链接‑3”和“链接‑4”。客户机还可以建立到网页“网页‑2”、“网页‑3”和
“网页‑4”的SSL/TLS连接。例如,刷新或重新连接到“网页‑1”,或与“网页‑1”进行交互,可能
导致创建(或重新建立)客户机102与寄载网页“网页‑1”,“网页‑2”,“网页‑3”和/或“网页‑
4”的一个或多个服务器106之间的多个安全连接。
存储SSL客户机高速缓存514的持续时间。例如,客户机102a可以将第一SSL客户机高速缓存
超时值分配给SSL客户机高速缓存514a,客户机102b可以将第二SSL客户机高速缓存超时值
分配给SSL客户机高速缓存514b,如此等等。所分配的SSL客户机高速缓存超时值可以取决
于相应的客户机102、相应的SSL/TLS会话或其组合。当客户机102的用户未与所建立的SSL/
TLS会话交互(空闲状态)时,客户机102可以将对应的SSL客户机高速缓存514保持相当于或
等于SSL客户机高速缓存超时的时间段。客户机102可以在检测到SSL/TLS会话的空闲状态
时启动计时器。当计时器值等于分配给SSL/TLS会话的SSL客户机高速缓存超时时,客户机
102可以删除或清空相应的SSL客户机高速缓存514。
立、维护或恢复SSL/TLS会话相关联的SSL/TLS过程。例如,中间装置502可以执行SSL/TLS握
手、跟踪SSL/TLS会话状态对象、本公开中描述的方法、或其组合,而服务器106a‑n可以通过
所建立的SSL/TLS会话,对在服务器106a‑n和客户机102a‑n之间交换的数据进行加密或解
密。
类的客户机‑服务器应用相关联。对于在客户机102上执行并与客户机和服务器群38之间的
对应SSL/TLS会话相关联的给定的客户机‑服务器应用(例如SaaS应用),SNI解析器504可以
确定与该应用关联的SNI或者域名。虽然客户机102可以在建立SSL/TLS会话时指示单个服
务器地址或单个链接,但是一旦建立了SSL/TLS会话,客户机102可以访问由服务器群38的
一个或多个服务器106寄载的一个或多个其他资源(例如,网页、文档、基于SaaS的资源、或
其组合)。例如,可以跨越多个服务器106分布由服务器群寄载的应用。在访问该应用时,客
户机102可以经由该应用浏览各种网页或资源,并因而,访问寄载这些网页或资源的一个或
多个服务器106。
的应用或其资源。对于每个客户机102(或对应的用户),SNI解析器504(或中间装置502的其
他组件)可以在中间装置502的数据库(图5A中未示出)中或在中间装置502可访问的数据库
中,跟踪、记录或存储所访问的应用资源的指示。对于每个客户机‑应用对,中间装置502可
以在数据库中维护对所访问的应用资源的指示或它们的统计数据。中间装置502可以维护
每个应用的历史数据,该历史数据指示关于对资源的访问/连接和/或与应用的交互的、与
各个客户机102相关联的先前访问事件或访问统计数据。中间装置502可为每个客户机102
或相应的用户维护简档。每个简档可以包括历史数据,其指示与该简档相关联的客户机102
或用户的应用资源的访问事件(或相应的统计数据)。
客户机102和所访问的应用相关联的历史数据。SNI解析器504可以基于历史数据来识别(例
如,在先前的SSL/TLS会话中)客户机先前访问的应用的资源。SNI解析器504可以识别对于
该应用的每个识别的资源的访问频率或多个先前访问事件。SNI解析器504可以根据历史数
据,确定在当前建立的SSL/TLS会话期间客户机102最可能访问的应用的资源或相应的SNI
的集合。例如,所确定的SNI的集合可以包括客户机102先前访问的所有SNI(或相应的应用
资源),或者仅包括已经被访问了至少预定次数或满足至少预定访问频率的那些SNI。
设备中,或可由中间装置访问的存储器或存储设备中。RBAC信息可以包括指示各种客户机
102或对应用户的访问权限的信息。例如,用户X(或相应的客户机102)可具有访问应用(或
应用资源)A,B和C的权限,但没有访问应用(或应用资源)D的权限。SNI解析器504可以将与
所建立的SSL/TLS会话相关联的SNI(或相应资源)的集合确定为客户机102或相应用户具有
访问权限的SNI(或相应资源)。
选择客户机102或相应用户有权访问的所有SNI。然后,SNI解析器504可以基于历史数据或
指示在当前SSL/TLS会话期间访问的链接(或资源)的数据来过滤所选择的SNI。
个SSL/TLS会话(例如,与SaaS应用相关联的),SSL会话状态监控器506可以确定服务器侧和
客户机侧的SSL会话超时值,并将所确定的SSL会话超时值映射到与该SSL/TLS会话对应的
SNI(例如,通过将信息存储在表中)。在服务器侧,中间装置502可以对每个SSL服务器高速
缓存512a‑n,设置或分配对应的SSL会话超时值(或服务器高速缓存超时值)。SSL服务器高
速缓存512a‑n中的每一个可以包括(或关联)相应的服务器高速缓存超时值。对于给定的已
建立的SSL/TLS会话,SSL会话状态监控器506可以从与该SSL/TLS会话相关联的SSL服务器
高速缓存512中或从中间装置502的存储器中访问对应的服务器高速缓存超时值。
户机102上执行的应用是桌面或移动客户端(例如,SaaS/客户机‑服务器应用的本地代理或
实例)的情况下,对应的客户机高速缓存超时值可以等于例如由中间装置502分配的默认
值,或是该默认值的函数。例如,SSL会话状态监控器506可以使用函数“SSL_get_default_
timeout()”来确定SSL客户机高速缓存超时值。
如,由浏览器设置)可能小于在服务器侧的对应的SSL服务器高速缓存超时值。在这样的情
况下,SSL会话状态监控器506(或中间装置502)可以监控中间装置502从客户机102接收‘客
户机问候(Client Hello)’消息(例如,以零作为会话标识(ID))的频率,并基于这样的频率
推断SSL客户机高速缓存超时值。例如,在SSL会话状态监控器506可以确定SSL客户机高速
缓存超时值等于以零作为会话标识(ID)的‘客户机问候’消息频率的倒数。SSL会话状态监
测器506可以收集和维护历史数据来确定这样的频率信息。在SSL客户机高速缓存超时值大
于对应的SSL服务器高速缓存超时值的情况下,SSL会话状态监控器506可以从对应的SSL服
务器高速缓存超时值推断出SSL客户机高速缓存超时值。例如,在SSL会话状态监控器506可
估计SSL客户机高速缓存超时值等于对应的SSL服务器高速缓存超时值(或为其函数)。
他存储结构中维护该信息)。对于每个SSL/TLS会话,SSL会话状态监控器506(或中间装置
502)可以维护对应的表(或其他数据结构),其将由SNI解析器504为该SSL/TLS会话确定的
域名或SNI中的每一个映射到为该SSL/TLS会话确定的SSL客户机高速缓存超时值。将给定
SSL/TLS会话的域名或SNI映射到为该会话确定的SSL客户机高速缓存超时值,可以允许高
效地管理与该SSL/TLS会话相关联的客户机102和服务器106之间的SSL连接。
括由中间装置502自动发送或推送到客户机装置102的数据或更新,这些数据或更新与由服
务器群38寄载的并由客户机102访问的应用(或资源)相关。服务器事件处理器508可以确定
何时以及将什么数据推送到客户机102。服务器事件处理器508可以在发送到客户机102之
前,准备或生成与SSE相关联的数据。服务器事件处理器508可以发送SSE消息给客户机102
以提供和/或激活动态脚本510。
与服务器群38的一个或多个服务器106的一个或多个SSL连接。中间装置502可以包括或提
供多个动态脚本510,其例如与在客户机102a‑n和服务器群38的服务器106之间建立的相应
多个SSL/TLS会话相关联。对于每个SSL/TLS会话,相应的动态脚本510可以包括与该SSL/
TLS会话相关联的(例如,由SNI解析器504)已确定的域名(或SNI)、相应的SSL客户机高速缓
存超时值或其指示、与相应的SSL/TLS会话相关联的其他信息(例如,SSL/TLS会话ID)、与域
名建立SSL连接的指令、或它们的组合。
102,该消息包括该会话的动态脚本510。服务器事件处理器508可以将动态脚本510作为SSE
或其他类型的消息推送或发送到客户机102。中间装置502可以维护通用脚本,该通用脚本
包括由客户机102建立一个或多个SSL连接的指令。服务器事件处理器508可以使用通用脚
本来生成动态脚本510,例如,通过将以下插入通用脚本中:与所确定的SNI相关联的域名、
SSL客户机高速缓存超时的指示、SSL/TLS会话ID、或它们的组合。一旦检测到SSL/TLS会话
的空闲状态,服务器事件处理器508即可启动计时器。一旦计时器的值等于或大于SSL客户
机高速缓存超时值,则服务器事件处理器508可以将动态脚本510推送到客户机102。在一些
实现中,服务器事件处理器508可以在计时器的值达到SSL客户机高速缓存超时值之前,将
动态脚本510推送到客户机102。在这样的实现中,动态脚本510可以包括对客户机102将在
其处建立与动态脚本510中指示的域名的SSL连接的实例的指示。
102与中间装置502发起简化的握手,以重用原来建立的SSL/TLS会话(例如,具有超时的SSL
客户机高速缓存),并建立SSL连接。在简化的握手中,客户机102可以发送包括SSL/TLS会话
ID或会话票证的“客户机问候”消息。会话票证可以包括定义在客户机102和中间装置502之
间的先前建立的SSL/TLS会话的信息(或与之相关联的信息)。作为响应,中间装置502可以
基于先前协商的(例如,在先前的完整握手过程中)会话参数,恢复SSL/TLS会话。中间装置
502可以基于所接收的“客户机问候”消息中的SSL/TLS会话ID来识别先前协商的会话参数。
例如,中间装置502可以基于所接收的会话ID识别SSL服务器高速缓存512(或存储在中间装
置512的存储器中的会话数据,或中间装置512可访问的存储器中的会话数据)。在“客户机
问候”消息中使用会话票证的情况下,中间装置502可以使用会话票证中指示的会话参数。
在简化的握手(或会话重用过程)中,中间装置502和客户机102可以使用先前协商的会话加
密/解密信息,并跳过重新生成这种信息。由于生成会话加密/解密信息是需要大量计算的
和耗时的,与进行完整的握手相比,使用会话重用(或简化的握手)可以减少延迟和提高计
算效率。特别地,简化的握手可以减少中央处理单元(CPU)的使用率,和/或加快SSL连接的
预先建立。
504)可以将与这些链接相对应的SNI识别为最有可能被客户机102访问,并可向客户机102
发送第一消息(或动态脚本510)以使建立与此类链接(或对应服务器106)的连接。当达到会
话超时时(或在达到该超时之前,或预期达到该超时时),中间装置502可以发送第二消息
(或动态脚本510)以再次预先建立到相同链接的连接。执行动态脚本102可以使客户机102
预先建立与这四个链接所关联的服务器106的SSL连接。一旦SSL连接预先建立,客户机102
可以在恢复会话后体验更快的加载(例如,通过点击和先前由客户机访问的应用相关联的
四个链接中的一个)。特别地,当客户机102的用户在空闲一段时间之后,再次访问应用时,
点击其中一个链接,与该链接相关联的资源或数据可以被相对更快地加载到客户机102。更
快地加载是因为这样的事实:该链接(或域名)的域名系统(DNS)解析是已经被执行的,SSL/
TLS会话是重新建立的,和/或与相应的服务器106的连接是已经建立的。
史数据(522)。中间装置可以确定应用的至少一个服务器名称指示(SNI)(524)。该应用可以
在客户机上执行,并与服务器建立安全会话。在一些实施例中,中间装置502可以确定应用
的类型(526)。中间装置可以确定会话超时值(528)。中间装置可以为与至少一个SNI相对应
的每个域名,确定对应域名的会话超时值。中间装置可以发送消息以建立连接(530)。中间
装置可以根据每个确定的会话超时值将消息发送到客户机,以使客户机使用安全会话来发
起对相应域名的连接的建立。
代表服务器106的中间装置502发起SSL握手过程。客户机102和中间装置502可以协商并商
定一组定义SSL/TLS会话的会话参数。中间装置502和客户机102可以存储包括所协商的会
话参数的会话高速缓存(例如,分别为SSL服务器高速缓存514和SSL客户机高速缓存512)。
每个会话高速缓存可以关联有对应的超时值。
机102、请求的应用或服务器资源、由服务器群38寄载的其他应用或服务器资源、或它们的
组合收集和维护历史访问数据。中间设备可以拦截来自客户机102的对应用或资源的访问
请求(例如,统一资源定位符(URL)请求),并记录此类请求的指示(或与之相关的信息)。对
于每个客户机102(或相应的用户),中间装置502可以将对被访问的应用资源的指示存储在
中间装置502的数据库中,或可由中间装置502访问的数据库中。对于每个客户机‑应用对,
中间装置502可以在数据库中维护对被访问的应用资源或其统计数据的指示。中间装置502
可以为每个应用维护指示与各种客户机102相关联的先前访问事件或访问统计数据的历史
数据。中间装置502可以为每个客户机102或相应的用户维护简档。每个简档可以包括指示
与该简档相关联的客户机102或用户对应用资源的访问事件(或对应的统计数据)的历史数
据。
合。中间装置502可以基于该历史数据,识别先前由客户机102(例如,在先前的SSL/TLS会话
中)访问的应用的链接(或域名)。中间装置502可以为每个识别的原来请求的应用或服务器
资源的链路(或域名),识别访问频率或多个先前的访问事件。
的客户机‑服务器应用(例如,SaaS应用)或服务器资源,可以与对应于一个或多个SNI或一
个或多个域名的一个或多个其他链接相关联。尽管客户机102可以在建立SSL/TLS会话时指
示单个服务器地址或链接,但是一旦建立了SSL/TLS会话,客户机102可以访问由服务器群
38的一个或的多个其他服务器106寄载的一个或多个其他资源(例如,网页、文档、基于SaaS
的资源、或其组合)。例如,由服务器群寄载的应用可以具有分布在多个服务器106上的组件
和/或资源。在访问该应用时,客户机102可以请求或访问该应用的各个页面或资源,并因此
访问寄载这些页面或资源的一个或多个服务器106。中间装置502可以确定与SSL/TLS会话
(或对应的客户机‑服务器应用或服务器资源)相关联的SNI或域名。
102先前访问的所有SNI(或对应的应用资源),或者仅包括被访问至少给定次数或满足至少
给定访问频率的那些SNI。
(RBAC)信息,确定该SNI的集合。RBAC信息可以存储在中间装置502的,或可被中间装置502
访问的存储器或存储装置中。RBAC信息可以包括指示客户机102或相应用户的访问权限的
信息。中间装置502可以将与所建立的SSL/TLS会话相关联的SNI的集合确定为包括客户机
102或相应的用户具有访问权限的SNI。中间装置502可基于RBAC信息、历史数据、指示当前
SSL/TLS会话期间访问的链接的数据、或它们的组合,确定该SNI的集合。例如,中间装置502
可以首先选择客户机102或相应用户有权访问的所有SNI(或相应的应用或资源)。中间装置
502然后可以基于历史数据或指示当前SSL/TLS会话期间被访问链路(或资源)的数据对所
选择的SNI进行过滤。例如,中间装置502可以在客户机102可访问的SNI中,仅考虑那些在先
前会话中由客户机102或其他客户机102频繁访问的SNI。
话超时值。中间装置502可以为已建立的会话确定会话超时值,并将会话超时值映射到与至
少一个SNI对应的域名。中间装置502可以监控或跟踪所建立的SSL/TLS会话的状态对象。中
间装置502可确定在服务器侧和客户机侧的SSL会话超时值,并将所确定的SSL会话超时值
映射到与SSL/TLS会话对应的SNI。在服务器侧,中间装置502可以给每个SSL服务器高速缓
存512a‑n设置或分配相应的SSL会话超时值(或服务器高速缓存超时值)。SSL服务器高速缓
存512a‑n中的每一个可以包括(或关联)对应的服务器高速缓存超时值。中间装置502可以
从与所建立的SSL/TLS会话相关联的SSL服务器高速缓存512中,或从中间装置502的存储器
中,访问服务器高速缓存超时值。
在客户机102上执行的应用是桌面或移动客户端(例如,客户机‑服务器应用的实例或本地
代理)的情况下,对应的客户机高速缓存超时值可以等于默认值,例如,由中间装置502分配
的默认值。例如,中间装置502可以使用函数“SSL_get_default_timeout()”来确定SSL客
户机高速缓存超时值。
如,由浏览器设置)可能小于服务器侧对应的SSL服务器高速缓存的超时值。在这种情况下,
中间装置502可以监控中间装置502从客户机102接收“客户机问候”消息(例如,以零作为会
话标识(ID))的频率,并且基于这样的频率,推断SSL客户机高速缓存超时值。例如,中间装
置502可以确定SSL客户机高速缓存超时值等于以零作为会话标识(ID)的“客户机问候”消
息的频率的倒数。中间装置502可以收集和保存历史数据,以确定这样的频率信息。在SSL客
户机高速缓存超时值大于对应的SSL服务器高速缓存超时值的情况下的,中间装置502可以
从相应的SSL服务器高速缓存超时值推断SSL客户机高速缓存超时值。例如,中间装置502可
将SSL客户机高速缓存超时值估计为等于对应的SSL服务器高速缓存超时值(或为其函数)。
其将与SSL/TLS会话相关联的域名或SNI中的每一个映射到为SSL/TLS会话所确定的SSL客
户机高速缓存超时值。这样的映射信息可用于高效和可靠地管理和重建与所确定的SNI或
相应域名的SSL连接。
起到与至少一个SNI对应的域名的连接的建立。该消息可以包括供客户机102用来发起到域
名的连接的建立的参数。在一些实现中,该消息可以包括计算机代码指令(例如,动态脚本
510),其由客户机装置102执行时,可以使客户机装置发起与域名或SNI关联的SSL连接的预
建立/建立。
将该消息作为服务器发送事件(SSE)或其它消息类型推送或发送到客户机102。一旦检测到
SSL/TLS会话的空闲状态,中间装置502可以启动计时器。一旦计时器的值等于或大于SSL客
户机高速缓存超时值,中间装置502可以推送或发送消息给客户机102。在一些实现中,先于
或预计到计时器的值到达SSL客户机高速缓存超时值,中间装置502可向客户机102推送或
发送消息。在这样的实现中,例如,消息可以包括对客户机102将在其处发起预建立SSL连接
到域名或相应的服务器106的时间实例和/或触发条件的指示。
会话重用)可以包括客户机102在“客户机问候”消息或SSL握手的任何子集或变体中向中间
装置发送会话ID或会话票证。中间装置502和客户机102可以使用先前协商的会话加密/解
密信息,并可跳过重新生成这样的信息,因此,节省了CPU的使用率,减少了握手时交换的数
据量,和/或加快握手过程。
动态脚本510),以使得与此类链接(或相应服务器106)的连接建立。当会话超时时,中间装
置502可以发送第二消息(或动态脚本510)以再次预先建立到相同链接的连接。执行动态脚
本102可以使客户机102与四个链接相关联的服务器106预先建立SSL连接。一旦SSL连接预
先建立,客户机102可以在恢复会话时体验更快的加载(例如,在点击与客户机以前访问的
应用关联的链接之一时)。当客户机102或相应的用户恢复SSL/TLS会话并请求访问预先建
立了连接的域名或链接之一时,由于SSL/TLS会话已经重新建立,并且在客户机请求之前已
经预先建立了到域名的连接,客户机102可以体验与该域名关联数据的更快的加载。因此,
方法502产生改善的用户体验。
描述的过程不限于所描述的特定实施例。例如,本文描述的过程不限于本文描述的特定处
理顺序,而是,可以根据需要对过程块进行重新排序、组合、移除或并行或串行地执行,以实
现本文阐述的结果。