【发布时间】:2017-11-16 21:15:52
【问题描述】:
我正在开发一个服务器端软件,该软件通过 TLS(通过 TCP)接收来自客户端的请求。为了获得更好的性能和用户体验,我想避免每次请求都完全握手。理想情况下,客户端可以只与服务器建立几个小时的 TLS 会话,尽管大部分时间会话可能是空闲的。同时也需要高吞吐量。
一种简单的方法是为每个会话指定一个线程并使用大线程池来提高吞吐量。但是这种方法的性能开销可能是巨大的,如果我想要 1 万个并发会话。
高吞吐量的要求导致我采用事件驱动模型。这个想法是当连接空闲时(即底层套接字上没有 IO 事件),TLS 服务器可以切换上下文以服务其他连接。挑战之一是在套接字空闲时冻结整个 TLS 会话上下文,并在套接字变为可读/可写时检索它。
我想知道 TLS 中是否已经支持这种功能?缓存和票证似乎都是相关的。另外,我想知道人们是否已经实现了这个想法。
【问题讨论】:
标签: ssl event-driven