我尝试使用不同的协议设置客户端和服务器,并在它们之间发送一些字节。
看起来他们工作得很好。当他们意识到差异时,任何人都可以给我一些关于内部发生的事情的链接吗?诸如协议协商之类的东西?自我降级?
一旦确定了协议版本,它们就不能互操作,但是有一种机制可以在握手开始时协商版本。本质上,客户端在开始握手时通告它支持的最高版本,服务器返回它支持的最高版本,该版本小于或等于客户端支持的版本。当然,服务器也可以根据需要禁用这些低版本(在这种情况下连接不会建立)。
TLS 规范server_version
对消息中的内容有这样的说法Server Hello
:
server_version This field will contain the lower of that suggested by the client in the client hello and the highest supported by the server. For this version of the specification, the version is 3.3. (See Appendix E for details about backward compatibility.)
附录 E.1也应该给你进一步的解释。
看起来它们并不完全可互操作,但根据这篇 MDSN 文章,如果需要,TLS 将退回到 SSLv3。hth