阿里云 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 连接初期使用较小的值,等传输速度上来之后再使用更大的值。

目录
相关文章
|
6天前
|
弹性计算 Java 关系型数据库
最佳实践:阿里云倚天ECS在千寻位置时空智能服务的规模化应用
当前,千寻已有上千台倚天ECS实例在支撑线上核心业务。
|
6天前
|
弹性计算 运维 Java
最佳实践:阿里云倚天ECS在千寻位置时空智能服务的规模化应用
阿里云、平头哥及安谋科技联合举办的飞天技术沙龙探讨了倚天Arm架构在业务创新中的应用。活动中,千寻位置运维专家分享了将核心业务迁移到倚天处理器ECS实例的成功案例,强调了倚天处理器的高能效比和降本增效优势。迁移过程涉及操作系统、CICD系统和监控系统的适配,以及业务系统的性能测试。目前,千寻已迁移了上千台ECS实例到倚天处理器,实现了成本和效率的显著提升。未来计划继续扩展倚天处理器在核心业务和K8S中的应用。
|
7天前
|
弹性计算 缓存 安全
【阿里云弹性计算】阿里云ECS与CDN结合:构建高性能全球内容分发网络
【5月更文挑战第26天】阿里云ECS与CDN结合打造高性能全球内容分发网络,通过ECS的弹性伸缩和安全可靠性,配合CDN的全球覆盖、高可用性及安全防护,提升访问速度,减轻服务器压力,优化数据传输。以WordPress为例,通过配置CDN域名和ECS,实现高效内容分发,提高系统扩展性和稳定性。此解决方案满足用户对访问速度和稳定性的高要求,为企业提供优质的云计算体验。
34 0
|
10天前
|
Kubernetes Cloud Native Devops
【阿里云云原生专栏】DevOps与云原生的融合:阿里云CI/CD流水线最佳实践
【5月更文挑战第23天】阿里云融合DevOps与云原生技术,提供高效CI/CD解决方案,助力企业提升研发效能。通过云效平台,集成代码管理、构建服务、容器服务、持续部署及监控日志组件,实现自动化研发流程。案例中,应用从GitHub构建到Kubernetes部署,全程无缝衔接。借助阿里云,企业能快速构建适应云原生的DevOps体系,以应对复杂需求和提升市场竞争力。
57 1
|
16天前
|
域名解析 网络协议 CDN
网站接入阿里云CDN实现域名加速全流程
阿小云网站已通过ICP备案在广州节点上线,但为提升全国用户访问速度,计划接入CDN。以下是4步CDN接入教程:1) 开通阿里云CDN服务;2) 添加加速域名;3) 使用DNS解析验证域名归属权;4) 配置CNAME实现域名与CDN节点关联。详细指南见阿里云CDN官方文档。
|
18天前
|
安全 Go 网络安全
【Go语言专栏】Go语言中的HTTPS与TLS配置
【4月更文挑战第30天】本文介绍了在Go语言中配置HTTPS服务器和处理TLS证书的方法。首先,TLS证书由证书颁发机构(CA)颁发,用于验证服务器身份和加密通信。接着,展示了如何使用`crypto/tls`包加载自签名证书启动HTTPS服务器。在生产环境中,通常使用CA签名的证书,这需要获取证书链和私钥。为了自动续期证书,可以利用Go的`acme/autocert`包与ACME服务交互。掌握这些技能对于确保Web服务的安全至关重要。
|
18天前
|
SQL DataWorks Java
DataWorks操作报错合集之在阿里云 DataWorks 中,代码在开发测试阶段能够成功运行,但在提交后失败并报错“不支持https”如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
DataWorks操作报错合集之在阿里云 DataWorks 中,代码在开发测试阶段能够成功运行,但在提交后失败并报错“不支持https”如何解决
|
18天前
|
缓存 边缘计算 网络协议
阿里云CDN介绍
阿里云CDN介绍
30 0
|
18天前
|
缓存 网络协议 Serverless
阿里云CDN简介和使用流程
本文档介绍了如何在阿里云上配置和使用CDN服务。首先,需要注册并实名认证阿里云账号,然后购买CDN服务。接着,添加要加速的域名,通过CDN控制台和阿里云云解析DNS进行配置,并验证CNAME设置是否生效。之后,配置源站信息,可以选择OSS域名、IP、源站域名或函数计算域名作为源站。最后,设置缓存规则,如缓存过期时间、状态码过期时间、自定义HTTP响应头等,以优化资源访问效率。
阿里云CDN简介和使用流程
|
18天前
|
域名解析 网络协议 应用服务中间件
阿里云服务器配置免费https服务
阿里云服务器配置免费https服务