ssl - 事件驱动 TLS 服务器

标签 ssl event-driven

我正在开发一个服务器端软件,它通过 TLS(通过 TCP)接收来自客户端的请求。为了获得更好的性能和用户体验,我想避免对每个请求进行完整的握手。理想情况下,客户端可以与服务器建立几个小时的 TLS session ,尽管大多数时间 session 可能是空闲的。同时,还需要高吞吐量。

一种简单的方法是为每个 session 指定一个线程,并使用一个大线程池来提高吞吐量。但是这种方法的性能开销可能很大,如果我想要,比如说,数以万计的并发 session 。

高吞吐量的需求让我想到了事件驱动模型。这个想法是当连接空闲时(即底层套接字上没有 IO 事件),TLS 服务器可以切换上下文以服务其他连接。挑战之一是在套接字空闲时卡住整个 TLS session 上下文,并在套接字变得可读/可写时检索它。

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

最佳答案

您正在谈论 SSL session 恢复,它已经在 OpenSSL 和 JSSE 中实现,毫无疑问,您将使用的所有其他 SSL API。 SSL session 已经存在连接。因此,您无需执行任何操作即可获得此信息。

关于“卡住 SSL session 上下文”的部分完全没有意义。

关于ssl - 事件驱动 TLS 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47339181/

相关文章:

ssl - k8s 签名的证书在 pod 中不受信任

gwt - 在 GWT 中实现 SSL 或 HTTPS

svn checkout 失败并显示 TLS 警告警报

python - 推荐使用 django 的扭曲网络

microservices - 如何在事件驱动微服务架构中进行查询?

Java SSL - 使用 pkcs12 (.p12) 文件连接到安全 Rest 服务

r - 连接到 api.twitter.com 时出现未知 SSL 协议(protocol)错误 :443

java - Keylistener 与timerlistener 在同一类内。

c - 多处理器架构中的状态机事件生成

http - 微服务异步操作 HTTP 响应