我正在使用 openssl 库来实现 tls 服务器。 如何使用openssl API配置Heartbeat请求超时和重试次数来控制keepalive消息流?
最佳答案
我假设您确实如您所说的那样指的是 TLS,而不是 DTLS。在 TLS 中使用心跳是很不寻常的,尽管 OpenSSL 在版本 1.0.2 中支持它。该支持已从 OpenSSL 1.1.0 中删除,因此,出于这个原因,我建议不要在新应用程序中使用它。改用 TCP keep alives。
Heartbeat API 非常简单。你可以做三件事:
1) 使用SSL_heartbeat()
发送心跳
2) 使用 SSL_get_tlsext_heartbeat_pending()
和
3) 使用SSL_set_tlsext_heartbeat_no_requests()
其他任何事情都取决于应用程序。 TLS 中不需要重试,因为它被设计为在可靠的传输层上运行。如果连接存在,它将到达那里。如果不是,它不会。 TCP 层将处理丢失数据包的重传。超时也应该在 TCP 层完成。如果 TCP 连接超时,SSL 连接将失败。
关于c - 什么是配置 Heartbeat 空闲超时的 openssl API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42109328/