阿里云 CDN HTTPS 最佳实践——TLS record size

简介: 阿里云CDN HTTPS最佳实践系列文章,由CDN高防技术专家金九撰写

TLS 协议由两层协议组成:TLS 握手协议和 TLS 记录协议(TLS Record),TLS Record 协议在 TLS 握手协议之下。下面是 SSL/TLS 的分层结构:

https5_1

所有的 TLS 上层数据(包含 TLS 握手协议消息以及更上层的应用协议数据)都由 TLS Record 来封装和传输。下面是 TLS Record 协议的消息封装流程:

https5_2

一个消息会在 TLS Record 协议层被分段,然后对每个分段分别压缩(已废弃)和加密,最后加上 TLS Record 协议头再通过网络层发送出去,在 Wireshark 中可以看到:

https5_3

可以看出 TLS/SSL 数据加解密是基于分段的,接收方收到一个完整的分段就可以解密,如果分段过大,那接收方必须要等到接收完整个分段的数据才能解密,当网络不好出现丢包、拥塞、重传等等情况下会严重影响时延,如果分段过小,头部负载比重就会较大,影响吞吐率。所以,怎么分段就比较关键,也就是 TLS Record Size 大小多少合适。这就涉及到两个重要的指标:时延和吞吐率。

  1. 如果 TLS Record Size 设置较大
    假如超过了 MTU,一个分段会被 TCP 层再次分段,拆分成多个包发送,那么时延也相应地增大,但由于记录协议头占比很小,吞吐率也增大。
  2. 如果 TLS Record Size 设置较小
    一个分段在 TCP 层没有被再次分段,由一个包发送出去,时延会比较小,但吞吐率也会下降。

所以,对时延敏感的域名,TLS Record Size 建议设置为略小于 MTU 的大小(粗算:MTU - TLS Record Header Length - TCP Header Length - IP Header Length)。对吞吐率敏感的域名,TLS Record Size 建议设置为 16k(上限)。如果同时兼顾时延和吞吐率的话,建议设置为 8k (经验值)。

但是,TCP 有拥塞控制机制,在 TCP 连接刚开始的慢启动阶段,拥塞窗口会比较小,这时较大的 TLS Record Size 会导致 TLS Record 片段被 TCP 分成多个包来发送,从而导致时延较大,可能就会影响网页的首屏时间。在整个 TCP 数据传输过程中,可能启动拥塞避免算法,也可能遇到数据丢失和重传的情况,然后又重新进入慢启动阶段。

因此,更好的做法是动态调整 TLS Record Size 的大小,而不是使用固定的值。在 TCP 连接初期使用较小的值,等传输速度上来之后再使用更大的值。

目录
相关文章
|
9天前
|
对象存储 CDN
阿里云CDN边缘脚本实现+字符转义%2B
对象存储OSS中,文件名包含+字符时,请求URL未转义会导致404错误。解决方法是将URL中的+字符转义为%2B,或通过CDN/DCDN边缘脚本自动转义。示例脚本:若URI包含+,则替换为%2B。
51 10
|
19天前
|
网络协议 网络安全 Docker
将Certbot/ACME.sh自动化申请的证书自动部署到阿里云CDN
本文介绍了阿里云 CDN SSL 证书自动更新工具,定期检查证书有效期,使用Let's Encrypt 等工具签发的证书自动更新至阿里云 CDN,支持 Docker 及 .NET 8 部署,简化证书管理流程。
|
2月前
|
云安全 网络安全 CDN
阿里云CDN遇到攻击?别慌,教你如何应对!
阿里云CDN遇到攻击?别慌,教你如何应对!
|
2月前
|
缓存 监控 安全
阿里云CDN设置阀值的指南
阿里云CDN设置阀值的指南
|
2月前
|
缓存 前端开发 JavaScript
阿里云CDN:怎么让网站变快
阿里云CDN:怎么让网站变快
|
2月前
|
JSON API 数据格式
阿里云国际版CDN查询实时带宽步骤
阿里云国际版CDN查询实时带宽步骤
|
2月前
|
监控 安全 BI
阿里云国际跨账号迁移CDN域名操作步骤
阿里云国际跨账号迁移CDN域名操作步骤
|
Web App开发 安全 Windows
|
3月前
|
监控 安全 搜索推荐
设置 HTTPS 协议以确保数据传输的安全性
设置 HTTPS 协议以确保数据传输的安全性
|
3天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
26 1