我们有一个数据记录器运行一个相对较慢的处理器(7.3 MHz),其中包含使用SMTP发送电子邮件的说明。数据记录器操作系统使用axTLS来支持TLS连接。当连接到需要使用TLS的服务(例如GMail)时,可以花费数据记录器一段时间(12秒或更长时间)来执行完成握手所需的计算。在这种情况下,GMail会超时我们的客户端连接。在数据记录器完成所需的计算时是否会发送某种SSL心跳或keepalive消息?
答案 0 :(得分:1)
想象一下,所有客户都需要花费很长时间才能进行SSL握手。这会占用服务器上的大量资源,实际上更像是slowloris等拒绝服务尝试。
因此,客户希望在互联网上成为一个表现良好的公民,并且足够快以便在短时间内处理握手。使用30年前具有现有技术水平的处理器仅仅不足以连接旨在供当前客户使用的服务。
因此,如果您想从最低端设备使用此类服务,您应该将数据传输到您自己的中继服务器,该服务器愿意等待这么长时间,然后该中继可以以预期的速度传送数据到公共服务器。
答案 1 :(得分:1)
我找到了RFC(RFC 6520),讨论了TLS的HeartBeatRequest扩展。此RFC包含以下文本:
A HeartbeatRequest message can arrive almost at any time during the
lifetime of a connection. Whenever a HeartbeatRequest message is
received, it SHOULD be answered with a corresponding
HeartbeatResponse message.
However, a HeartbeatRequest message SHOULD NOT be sent during
handshakes. If a handshake is initiated while a HeartbeatRequest is
still in flight, the sending peer MUST stop the DTLS retransmission
timer for it. The receiving peer SHOULD discard the message
silently, if it arrives during the handshake.
这让我相信,虽然有可能延长握手时间,但不太可能这样做。