每隔约5秒停顿一次SSL连接就会失败

时间:2019-04-20 00:40:57

标签: c perl ssl tcp

我有一个Perl流应用程序,该应用程序通过HTTPS(用于RadioParadise)获取一些文件。由于播放器缓冲很多,TCP流通常会暂停几秒钟。结果,连接常常会提早断开/终止。

我采取了各种TCP日志,wireshark似乎都感到困惑,并且对更改密码规范和忽略的未知记录发了牢骚。显然,“更改密码”数据包是错误的,与重新握手不匹配,数据包中有些有趣的东西。日志肯定显示的是在提前终止的情况下,服务器正在关闭TCP连接(正确的FIN帧)

我写了一个小的Perl示例,通过使用各种长度的暂停来显示发生了什么,从而限制了下载。如果下载的暂停时间不超过1秒,则不会发生这种情况。暂停5秒后,它总是在下载的某个时刻发生。服务器的openSSL是1.0.2k,我已经尝试了客户端1.1.0j和从0.9.8到1.0.2的各种版本。我也尝试了各种Perl版本,没有变化

(这只是一个实际显示问题的示例,不应该是正确的代码)

我还用C编写了相同的应用程序,以消除Perl作为潜在的问题,并获得了完全相同的结果。

我还尝试了其他HTTPS服务器,但它们没有相同的问题,似乎与RP有关。也许有人会对我目前应该作进一步调查的想法有所了解,但我不知道该朝哪个方向继续。有关为何暂停5秒会对TCP或SSL级别产生任何影响的一些一般性建议(这不是SO_KEEPALIVE问题)。

注意:我的tcpdump中没有内核丢失的数据包

{{1}}

0 个答案:

没有答案