HTTPS协议性能与优化
来源:互联网 发布:java字符串比较大小 编辑:程序博客网 时间:2024/06/07 22:14
1、HTTPS性能损耗
前文讨论了HTTPS原理与优势:身份验证、信息加密与完整性校验等,且未对TCP和HTTP协议做任何修改。但通过增加新协议以实现更安全的通信必然需要付出代价,HTTPS协议的性能损耗主要体现如下:(1).增加延时
分析前面的握手过程,一次完整的握手至少需要两端依次来回两次通信,至少增加延时2* RTT,利用会话缓存从而复用连接,延时也至少1* RTT*。
(2).消耗较多的CPU资源
除数据传输之外,HTTPS通信主要包括对对称加解密、非对称加解密(服务器主要采用私钥解密数据);压测 TS8 机型的单核 CPU:对称加密算法AES-CBC-256 吞吐量 600Mbps,非对称 RSA 私钥解密200次/s。不考虑其它软件层面的开销,10G 网卡为对称加密需要消耗 CPU 约17核,24核CPU最多接入 HTTPS 连接 4800;
静态节点当前10G 网卡的 TS8 机型的 HTTP 单机接入能力约为10w/s,如果将所有的HTTP连接变为HTTPS连接,则明显RSA的解密最先成为瓶颈。因此,RSA的解密能力是当前困扰HTTPS接入的主要难题。
2、HTTPS接入优化
(1).CDN接入HTTPS 增加的延时主要是传输延时 RTT,RTT 的特点是节点越近延时越小,CDN 天然离用户最近,因此选择使用 CDN 作为 HTTPS 接入的入口,将能够极大减少接入延时。CDN 节点通过和业务服务器维持长连接、会话复用和链路质量优化等可控方法,极大减少 HTTPS 带来的延时。
(2).会话缓存
虽然前文提到 HTTPS 即使采用会话缓存也要至少1*RTT的延时,但是至少延时已经减少为原来的一半,明显的延时优化;同时,基于会话缓存建立的 HTTPS 连接不需要服务器使用RSA私钥解密获取 Pre-master 信息,可以省去CPU 的消耗。如果业务访问连接集中,缓存命中率高,则HTTPS的接入能力讲明显提升。当前TRP平台的缓存命中率高峰时期大于30%,10k/s的接入资源实际可以承载13k/的接入,收效非常可观。
(3).硬件加速
为接入服务器安装专用的SSL硬件加速卡,作用类似 GPU,释放 CPU,能够具有更高的 HTTPS 接入能力且不影响业务程序的。测试某硬件加速卡单卡可以提供35k的解密能力,相当于175核 CPU,至少相当于7台24核的服务器,考虑到接入服务器其它程序的开销,一张硬件卡可以实现接近10台服务器的接入能力。
(4).远程解密
本地接入消耗过多的 CPU 资源,浪费了网卡和硬盘等资源,考虑将最消耗 CPU 资源的RSA解密计算任务转移到其它服务器,如此则可以充分发挥服务器的接入能力,充分利用带宽与网卡资源。远程解密服务器可以选择 CPU 负载较低的机器充当,实现机器资源复用,也可以是专门优化的高计算性能的服务器。当前也是 CDN 用于大规模HTTPS接入的解决方案之一。
(5).SPDY/HTTP2
前面的方法分别从减少传输延时和单机负载的方法提高 HTTPS 接入性能,但是方法都基于不改变 HTTP 协议的基础上提出的优化方法,SPDY/HTTP2 利用 TLS/SSL 带来的优势,通过修改协议的方法来提升 HTTPS 的性能,提高下载速度等。
本文内容摘自:http://www.wosign.com/faq/faq2016-0309-05.htm
阅读全文
0 0
- HTTPS协议性能与优化
- HTTPS协议详解(五):HTTPS性能与优化
- HTTPS协议详解(五):HTTPS性能与优化
- HTTPS性能优化
- HTTPS性能优化实践
- HTTPS 性能优化
- HTTPS 性能优化技巧
- http协议与https协议
- HTTPS协议与网络安全
- 数字证书与https协议
- 腾讯HTTPS性能优化实践
- HTTPS 协议 认识与加深
- HTTP与HTTPS协议介绍
- HTTPS 与 HTTP2 协议分析
- HTTPS 与 HTTP2 协议分析
- HTTPS 与 HTTP2 协议分析
- HTTP协议与HTTPS协议的区别
- Http协议与https协议区别
- 功能: 获取本地IP地址 (学习日记 2017-07-03)
- 阶乘问题
- 6. Python语言对文件的操作
- UVALive6886 Golf Bot[FFT]
- C#里WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变
- HTTPS协议性能与优化
- 解决OneNote“未安装桌面体验功能”问题
- 抽象代数学习笔记(3)映射
- 59 linux i2c设备驱动之dht12驱动
- (1)Linux的初步了解
- 低延时的RTMP网络直播
- python自然语言处理 第四章基本语法
- maven-assembly-plugin打包插件配置
- 20年程序员的碎碎念