开始体验 TLSv1.3 的 Early data (0-RTT)

2019-01-2712:31:25 12 276
摘要

如果你是使用军哥 LNMP一键安装包来部署VPS环境的,那么就可以参考「开始使用 lnmp 1.6 测试版 支持TLSv1.3 的 Early data」一文的方法更新部署环境即可体验TLSv1.3的Early data (0-RTT),需要强调的是如果你的站点开启了CDN加速服务的话,要让所有客户端访问都采用TLSv1.3就需要CDN本身也支持TLSv1.3才可以的

明月对 TLSv1.3 的体验其实已经很久了,比如我的运维学习笔记博客里的『纯自嗨,LNMP 下启用 TLSv1.3 支持过程全记录』一文都已经是一年前的事儿了,时至今日随着 lnmp 1.6 测试版的发布,在 VPS 上开启 TLSv1.3 支持也变得是越来越简单和稳定了,昨晚上将自己 VPS 上的 lnmp 1.5 给升级到了 lnmp 1.6 测试版就发现 TLSv1.3 的支持更加的健全和完美了,今天就给大家说道说道!

都说 TLSv1.3 好,可是 TLSv1.3 具体好在哪里?能详细回答上来的人估计没有几个,大家最多也就是笼统的知道 TLSv1.3 比 TLSv1.2、TLSv1.1 这些快,至于说为什么快?快在哪里?估计就说不清楚了,明月也是一知半解的一直,直到这次折腾结束才算是明白了一个大概。先了解一些基础的东西:

传输延迟(Transmission Latency)是 Web 性能的重要指标之一,低延迟意味着更流畅的页面加载以及更快的 API 响应速度。而一个完整的 HTTPS 链接的建立大概需要以下四步:

  • 第一步:DNS 查询

浏览器在建立链接之前,需要将域名转换为互联网 IP 地址。一般默认是由你的 ISP DNS 提供解析。ISP 通常都会有缓存的,一般来说花费在这部分的时间很少。

  • 第二步:TCP 握手( 1 RTT)

和服务器建立 TCP 连接,客户端向服务器发送 SYN 包,服务端返回确认的 ACK 包,这会花费一个往返(1 RTT)

  • 第三步:TLS 握手 (2 RTT)

该部分客户端会和服务器交换密钥,同时设置加密链接,对于 TLS 1.2 或者更早的版本,这步需要 2 个 RTT

  • 第四步:建立 HTTP 连接(1 RTT)

一旦 TLS 连接建立,浏览器就会通过该连接发送加密过的 HTTP 请求。

我们假设 DNS 的查询时间忽略不计,那么从开始到建立一个完整的 HTTPS 连接大概一共需要 4 个 RTT,如果是浏览刚刚已经访问过的站点的话,通过 TLS 的会话恢复机制,第三步 TLS 握手能够从 2 RTT 变为 1 RTT。

  • 总结:

建立新连接 :

4 RTT + DNS 查询时间

访问刚浏览过的连接:

3 RTT + DNS 查询时间

TLSv1.2 需要 2 个 RTT 完成 TLS 协商,TLSv1.3 只需要一个。而重复连接 TLSv1.2 需要 1RTT,TLSv1.3 Early data 就可以 0RTT 重复连接,也就是说 TLSv1.3 比 TLSv1.2 少了一个 0RTT,TLSv1.3 比 TLSv1.2 快就主要快在这里了。

如果你是使用军哥 LNMP 一键安装包来部署 VPS 环境的,那么就可以参考「开始使用 lnmp 1.6 测试版 支持 TLSv1.3 的 Early data」一文的方法更新部署环境即可体验 TLSv1.3 的 Early data (0-RTT),需要强调的是如果你的站点开启了 CDN 加速服务的话,要让所有客户端访问都采用 TLSv1.3 就需要 CDN 本身也支持 TLSv1.3 才可以的,目前明月使用又拍云 CDN 的几个博客都是支持 TLSv1.3 的,大家可以围观体验一下:

运维学习笔记博客

明月登楼 Hexo 博客

上述两个博客一个是 Typecho 动态博客,一个是 Hexo 框架下的纯静态博客,都已经支持 TLSv1.3 并开启了 Early data 支持 0-RTT

历史文章推荐:

  • 打赏明月一下下
  • 多谢您的赞赏!
  • weinxin
  • 本博客小程序
  • 微信内浏览本博客
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:12   其中:访客  6   博主  6

    • boke112导航 9

      会折腾就是爽,什么都可以折腾,只要折腾了就有文章写

      • Lenbs 2

        在CND启用了1.3

        • 久伴 1

          66666666

          • 弥雅尔尔 4

            TLSv1.3,印象中国产浏览器没有一个支持的!

            • 镜缘轩 4

              好多浏览器不是不支持吗?

                • 明月登楼  博主

                  @镜缘轩 嗯,默认支持的确实不多!不过,2019年会越来越普及的!