下面 , 我们将分别介绍基于这两种优化的思路和实践总结 。
五、连接优化之“TLS的连接优化”
TLS的连接优化 , 需要服务端和客户端都需要支持 , 共同完成优化手段 , 包括Session Resumption和False Start 。
5.1 Session Resumption
Session Resumption中文意思是会话复用 , 下图讲解了Session Resumption的协议原理 。
▲ Session Resumption的协议原理
通过上图可以看出TLS密钥协商交换的过程没有了 , 但具体是如何实现的呢?包含两种方式 , 一种是Sesssion Identifier , 一种是Session Ticket 。
1)Session Identifier:
Session Identifier中文为会话标识符 , 更像我们熟知的session的概念 。是 TLS 握手中生成的 Session ID 。服务端会将Session ID保存起来 , 客户端也会存储Session ID , 在后续的ClientHello中带上它 , 服务端如果能找到匹配的信息 , 就可以完成一次快速握手 。
2)Session Ticket:
Session Identifier存在一些弊端 , 比如客户端多次请求如果没有落在同一台机器上就无法找到匹配的信息 , 但Session Ticket可以 。Session Ticket更像我们熟知的cookie的概念 , Session Ticket用只有服务端知道的安全密钥加密过的会话信息 , 保存在客户端上 。客户端在ClientHello时带上了Session Ticket , 服务器如果能成功解密就可以完成快速握手 。
不管是Session Identifier还是Session Ticket都存在时效性问题 , 不是永久生效 , 对于这两种方式大家可以查看参考资料【4】 。百度App的网络协议层对这两种方式都是支持的 , 省去了TLS握手过程中证书下载 , 密钥协商交换的环节 , 节省了1个RTT的时间 。
5.2 False Start
False Start的中文意思是抢跑 , 下图讲解了False Start的协议原理 。
▲ False Start的协议原理
上图很清晰的说明在TLS第一步握手成功后 , 客户端在发送Change Cipher Spec Finished的同时开始数据传输 , 服务端在TLS握手完成时直接返回应用数据 。应用数据的发送实际上并未等到握手全部完成 , 所以称之为抢跑 。
从结果看省去了1个RTT的时间 。False Start有两个前提条件:
一是要通过应用层协议协商ALPN(Application Layer Protocol Negotiation)握手;
二是要支持前向安全的加密算法 。
False Start在未完成握手的情况下就发送了数据 , 前向安全可以提高安全性 , 具体协议实现 , 大家可以查看参考资料【3】 。百度App的网络协议层对False Start是支持的 。
这里说句题外话 , 其实TCP层有个类似的连接优化手段叫Fast Open , 感兴趣的同学 , 可以查看参考资料【5】 。
5.3 Session Resumption和False Start的区别
两者对于TLS来说都是节省一个RTT , Session Resumption在第一次握手时还是需要2个RTT , 在第二次握手时才能复用减少到1个RTT 。False Start是端上的行为 , 故每次都会减少到1个RTT 。
六、连接优化之“TCP的连接优化”
TCP的连接优化 , 我们先从连接池说起 , 首先让我们来认识下连接池都有哪些类型 。
6.1 连接池
▲ 连接池的类型
上图展示了连接池的不同类型 , 都是大家耳熟能详的协议连接池 , 有低级连接池 , 包含TCP连接池(管理HTTP请求的连接)和WebSocket连接池(管理WebSocket连接) 。
有高级连接池 , 包括HTTP代理连接池(管理HTTP代理请求的连接) , SpdySession连接池(管理SPDY和HTTP/2请求的连接) , SOCKS连接池(管理SOCKS和SOCKS5代理的连接) , SSL连接池(管理HTTPS请求的连接) 。
- 怎么样做百度推广 百度推广应该怎么做
- 百度怎么优化 百度人工优化
- 最新能赚钱的短视频应用 最新能赚钱的短视频
- 做百度关键词优化怎么样 做百度关键词优化
- 重庆百度seo 重庆百度网站优化
- 百度打广告怎么收费 在百度做广告怎么收费
- 都市妖奇谈 百度网盘 都市妖奇谈全集下载
- 百度广告推广价格 百度广告的价位
- 摩尔庄园百度版下载 摩尔庄园手游单机版
- 百度竞价优化中心 百度优化价格
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
