【问题标题】:Getting SSL_ERROR_SYSCALL for an incoming DTLS Connection on an existing DTLS Connection on the same port为同一端口上现有 DTLS 连接上的传入 DTLS 连接获取 SSL_ERROR_SYSCALL
【发布时间】:2016-07-15 07:47:03
【问题描述】:

在现有的 DTLS 连接上,即 DTLS 握手已经在端口 5000 上成功完成,如果服务器收到传入的 DTLS 连接,即 DTLS 客户端 Hello 数据包,则 SSL_read 正在生成 SSL_ERROR_SYSCALL

谁能告诉我原因。

场景是客户端在服务器的 5000 端口上与服务器建立了 DTLS 连接。客户端更改的 IP 地址可能是由于从 Wi-Fi 过渡到 3G 或反之亦然。因此,现在客户端将再次尝试在服务器的同一端口 5000 上与服务器建立 DTLS 连接。

请大家告诉我

  • 第一季度。为什么 SSL_read 会生成错误 SSL_ERROR_SYSCALL 以及如何继续?

  • 第二季度。我们是否可以在同一端口上的现有 DTLS 连接上处理另一个传入的 DTLS 连接,而无需清理已经存在的 DTLS 连接?

提前感谢您的帮助, 维内特·斯利瓦斯塔瓦

【问题讨论】:

  • 你的问题在雷达下飞行。始终指明您的编程环境。我想这是关于你拥有的代码,对吧?如果是这样,代码在哪里?如果这只是关于 OpenSSL 本身,您可以尝试使用 serverfault 或超级用户。
  • 编程环境-Unix。
  • 已找到问题的解决方案。确定的问题有两个: 1. 在具有另一个 DLTS 连接的端口上获得传入 DTLS 连接时,需要生成另一个 SSL 句柄并将其视为单独的 DTLS 连接。 2. SSL_Read 调用中提供的长度必须正确。在提供适当的参数并生成新的 SSL 句柄后,问题就解决了。无论如何感谢 cmets。

标签: c openssl cryptography dtls


【解决方案1】:

已找到问题的解决方案。

发现的问题有两个:

  1. 在具有另一个 DLTS 连接的端口上获得传入 DTLS 连接时,需要生成另一个 SSL 句柄并将其视为单独的 DTLS 连接。

  2. SSL_Read 调用中提供的长度必须正确。

在提供适当的参数并生成新的 SSL 句柄后,问题就解决了。无论如何感谢 cmets。

【讨论】:

    猜你喜欢
    • 2017-07-10
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2022-08-12
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多