Session ID复用
在建立TLS连接时,服务器返回的Server Hello包会携带一个Session ID,如图。
在之后建立TLS连接时可以复用此Session ID,可以减少一个来回的过程。下图是完整的TLS连接建立过程:
下图是复用Session ID连接建立过程:
可以看出Session ID的复用的确节约了一半的连接建立时间。
负载均衡
下图是在对同一域名的两次连接时的抓包,发现Session ID重用失效,重新建立了新的TLS连接。仔细检查发现两次连接到了两个不同的IP。这是因为服务器使用了负载均衡,一个域名对应了多个ip,会根据服务器的负载情况动态调整。Session ID A是保存在服务器A上的,服务器B没有Session ID A的记录。就导致了Session ID复用的失效。
总结
可以考虑在使用负载均衡时Session ID由一台服务器统一创建,并分发到其他服务器,这样就不会导致复用失效的问题。
