4.14 HTTPS 中 TLS 和 TCP 能同时握手吗?

目录

实现HTTPS中TLS和TCP同时握手的前提:

[什么是TCP Fast Open?](#什么是TCP Fast Open?)

[TLS v1.3](#TLS v1.3)

[TCP Fast Open + TLSv1.3](#TCP Fast Open + TLSv1.3)


HTTPS都是基于TCP传输协议实现的,得先建立完可靠得TCP连接才能做TLS握手的事情。

实现HTTPS中TLS和TCP同时握手的前提:

1、客户端和服务端开启了TCP Fast Open,且TLS版本在1.3;

2、客户端和服务端已经完成过一次通信。

什么是TCP Fast Open?

常规的TCP传输协议通信需要先建立TCP三次握手后才可以传输数据,前两次握手是不可携带数据的,第三次握手可以携带数据,因为这个时候客户端进入ESTABLISHED,表明客户端一方已经完成了TCP连接建立。

TCP Fast Open 是为了绕过 TCP 三次握手发送数据,这个功能可以减少 TCP 连接建立的时延。要使用 TCP Fast Open 功能,客户端和服务端都要同时支持才会生效。

开启了TCP Fast Open功能,想要绕过TCP三次握手发送数据,还是需要事先建立一次三次握手。

所以,如果客户端和服务端同时支持 TCP Fast Open 功能,那么在完成首次通信过程后,后续客户端与服务端 的通信则可以绕过三次握手发送数据,这就减少了握手带来的 1 个 RTT 的时间消耗。

TLS v1.3

TLSv1.3 握手过程只需 1-RTT 的时间

TCP Fast Open + TLSv1.3

客户端和服务端同时支持 TCP Fast Open 功能的情况下,在第二次以后到通信过程中,客户端可以绕过三次握手直接发送数据,而且服务端也不需要等收到第三次握手后才发送数据。

因此如果「TCP Fast Open + TLSv1.3」情况下,在第二次以后的通信过程中,TLS 和 TCP 的握手过程是可以同时进行的。

如果基于 TCP Fast Open 场景下的 TLSv1.3 0-RTT 会话恢复过程,不仅 TLS 和 TCP 的握手过程是可以同时进行的,而且 HTTP 请求也可以在这期间内一同完成。

相关推荐
莫回首�5 小时前
ubuntu 20.04 多网卡配置,遇到问题总结
linux·网络·ubuntu
星辰徐哥9 小时前
5G的行业应用:工业互联网、车联网、智慧医疗中的网络支撑
网络·5g·php
头疼的程序员9 小时前
计算机网络:自顶向下方法(第七版)第八章 学习分享(三)
网络·学习·计算机网络
@insist1239 小时前
网络工程师-核心考点:网络管理体系与 SNMP 协议全解析
网络·智能路由器·网络工程师·软考·软件水平考试
我科绝伦(Huanhuan Zhou)10 小时前
分享一个网络智能运维系统
运维·网络
codeejun10 小时前
每日一Go-44、Go网络栈深度拆解--从 TCP 到 HTTP 的资源复用艺术
网络·tcp/ip·golang
北京耐用通信10 小时前
无缝衔接·高效传输——耐达讯自动化CC-Link IE转Modbus TCP核心解决方案
网络·人工智能·物联网·网络协议·自动化·信息与通信
亚空间仓鼠11 小时前
OpenEuler系统常用服务(五)
linux·运维·服务器·网络
聊点儿技术11 小时前
CDN调度失准导致跨省流量浪费?在GSLB层用IP归属地查询实现精准就近接入
网络·ip·ip归属地查询·ip地址查询·ip离线库·cdn调度