通信技术|从起源到发展 详说HTTP从1到3的演变( 七 )
TFO 使得 TCP 协议有可能变成 0-RTT,核心思想和 Session Ticket 的概念类似: 将当前会话的上下文缓存在客户端 。如果以后需要恢复对话,只需要将缓存发给服务器校验,而不必花费一个 RTT 去等待 。
结合 TFO 和 Session Ticket 技术,一个本来需要花费 3 个 RTT 才能完成的请求可以被优化到一个 RTT 。如果使用 QUIC 协议,我们甚至可以更进一步,将 Session Ticket 也放到 TFO 中一起发送,这样就实现了 0-RTT 的对话恢复 。
QUIC 是怎么做的
让我们看看 QUIC 是怎么做的 。
首先声明一点,如果一对使用 QUIC 进行加密通信的双方此前从来没有通信过,那么 0-RTT 是不可能的,即便是 QUIC 也是不可能的 。
QUIC 握手的过程需要一次数据交互,0-RTT 时延即可完成握手过程中的密钥协商,比 TLS 相比效率提高了 5 倍,且具有更高的安全性 。在握手过程中使用 Diffie-Hellman 算法协商初始密钥,初始密钥依赖于服务器存储的一组配置参数,该参数会周期性的更新 。初始密钥协商成功后,服务器会提供一个临时随机数,双方根据这个数再生成会话密钥 。
具体握手过程如下:
(1) 客户端判断本地是否已有服务器的全部配置参数,如果有则直接跳转到(5),否则继续
(2) 客户端向服务器发送 inchoate client hello(CHLO) 消息,请求服务器传输配置参数
(3) 服务器收到 CHLO,回复 rejection(REJ) 消息,其中包含服务器的部分配置参数
(4) 客户端收到 REJ,提取并存储服务器配置参数,跳回到(1)
(5) 客户端向服务器发送 full client hello 消息,开始正式握手,消息中包括客户端选择的公开数 。此时客户端根据获取的服务器配置参数和自己选择的公开数,可以计算出初始密钥 。
(6) 服务器收到 full client hello,如果不同意连接就回复 REJ,同(3);如果同意连接,根据客户端的公开数计算出初始密钥,回复 server hello(SHLO)消息,SHLO 用初始密钥加密,并且其中包含服务器选择的一个临时公开数 。
(7) 客户端收到服务器的回复,如果是 REJ 则情况同(4);如果是 SHLO,则尝试用初始密钥解密,提取出临时公开数
(8) 客户端和服务器根据临时公开数和初始密钥,各自基于 SHA-256 算法推导出会话密钥
(9) 双方更换为使用会话密钥通信,初始密钥此时已无用,QUIC 握手过程完毕 。之后会话密钥更新的流程与以上过程类似,只是数据包中的某些字段略有不同 。
写在最后
想起有一个名言:计算机领域没有什么问题是加一层解决不了的,如果有,就再加一层 。网络模型本来就是层层累加,到了 Web 得以快速生动的展现给人们以丰富的内容 。从 HTTP 的演变过程中,我们可以看到中间又累加了若干层 。不知道以后,又会是怎么样呢?
大家会发现,笔者在文中不止一次提到了演变这个词 。是的,这是来自达尔文进化论中的理论 。在笔者看来,“物竞天择,适者生存”的演变理论和计算机领域的技术变化是很类似的,只不过在这里,不是天择,而是人择 。由市场,由用户来选择 。不知道接下来,作为选择者的我们,又将怎样主导技术的走向?
访问:
【通信技术|从起源到发展 详说HTTP从1到3的演变】阿里云 - 最高1888元通用代金券立即可用
推荐阅读
- |潍坊新昌发展区:城市管理有妙招 用好诚信积分制
- 教育信息化|西藏:推动教育信息化发展建设“数字校园”
- 怀进鹏|怀进鹏:汇聚中小企业力量推动数字经济合作发展
- TikTok|海外发展受阻国内拓展新领域字节跳动的全球平衡术
- OLEDOLED面板出货量|2020年全球OLED市场发展现状和供需分析预测 全球OLED面板预期出货4.65亿片
- 可再生能源可再生能源发电|2020年全球可再生能源发展趋势投资前景 全球可再生能源发电规模放缓至6%
- 通信技术|印度首富宣布成功研发5G技术:献给莫迪“自力更生的印度”计划
- 农业|我国首次对乡村产业发展做出全面规划乡村产业,等你来
- 通信技术|国家统计局:上半年全国光缆产量1.32亿芯千米
- 聚乙烯塑料购物袋|2020年聚乙烯市场发展现状和前景 中国明年禁用不可降解塑料购物袋