事件驱动器TLS服务器

时间:2017-11-16 21:15:53

标签: ssl event-driven

我正在研究一种服务器端软件,它通过TLS(通过TCP)接收来自客户端的请求。为了获得更好的性能和用户体验,我希望避免每次请求都进行完全握手。理想情况下,客户端只需与服务器建立TLS会话数小时,但大多数情况下会话可能处于空闲状态。同时,还需要高吞吐量。

一种简单的方法是为每个会话专用一个线程,并使用一个大线程池来提高吞吐量。但是,如果我想要成千上万的并发会话,这种方法的性能开销可能会很大。

高吞吐量的要求使我成为事件驱动的模型。这个想法是当连接空闲时(即底层套接字上没有IO事件),TLS服务器可以切换上下文以服务其他连接。其中一个挑战是在套接字空闲时冻结整个TLS会话上下文,并在套接字变为可读/可写时检索它。

我想知道TLS中是否已经支持这种功能?缓存和票证似乎都相关。另外,我想知道人们是否实现了这个想法。

1 个答案:

答案 0 :(得分:-1)

您正在讨论SSL会话恢复,它已经在OpenSSL和JSSE中实现,毫无疑问您将使用其他所有SSL API。 SSL会话已经存在连接。所以没有什么可以做到的。

关于冻结SSL会话环境的部分'是完全没有意义的。