【发布时间】:2012-07-06 17:45:09
【问题描述】:
我想为未加密的 TCP 和 SSL 使用 1 个端口。
目标是让 1 个端口成为机器的入口。这意味着将所有协议和传输复用到端口中。例如,我偷看流的前 4 个字节。如果它以“GET”、“POST”、“HEAD”等开头。我知道它是 HTTP 协议,所以我将连接传递给 HTTP 服务器。如果是“HELO”或“EHLO”,我知道将其传递给 SMTP 服务器。
问题是,如果它是 SSL 连接,我应该寻找什么(以便将其传递给 OpenSSL)?
【问题讨论】:
-
请注意,您的 SMTP 可能会失败。在RFC2821 中,第 4.3.1 节描述了 SMTP 会话的顺序。请注意,服务器首先发言。换句话说,您的系统必须确定它是否是 SMTP在客户端说什么之前。
-
@Robᵩ 是的,但我真的无能为力。我只能兼容先说话的系统。
-
一些像这样工作的系统允许使用 1 个协议,其中服务器通过使用一些超时首先发言(如果客户端在 x 毫秒内没有先发言,则假定它是该协议)。不过,它并不完全可靠。