还在死守TCP吗,来看看即将成为HTTP3.0标准协议的QUIC

文章目录

    • 背景
    • 为什么需要QUIC
    • 为什么QUIC能撼动TCP的霸主地位
    • QUIC 缺点
    • 展望未来
    • 参考

背景

一段时间以来被称为 HTTP-over-QUIC 的协议现在已经改变了名称,将正式成为 HTTP/3。这是由马克•诺丁汉(Mark Nottingham)最初的建议引发的

具体博客地址

为什么需要QUIC

随着移动互联网快速发展以及物联网的逐步兴起,网络交互的场景越来越丰富,网络传输的内容也越来越庞大,用户对网络传输效率和 WEB 响应速度的要求也越来越高。

但是传统的协议比如TCP,一直有如下缺点:

  1. 依赖于操作系统的实现导致协议本身僵化。

TCP 是由操作系统在内核层面实现的,应用程序只能使用,不能直接修改。虽然应用程序的更新迭代非常快速和简单。但是 TCP 的迭代却非常缓慢,原因就是操作系统升级很麻烦。

现在移动终端更加流行,但是移动端部分用户的操作系统升级依然可能滞后数年时间。PC 端的系统升级滞后得更加严重,windows xp 现在还有大量用户在使用,尽管它已经存在快 20 年。

服务端系统不依赖用户升级,但是由于操作系统升级涉及到底层软件和运行库的更新,所以也比较保守和缓慢。

这也就意味着即使 TCP 有比较好的特性更新,也很难快速推广。比如 TCP Fast Open。它虽然 2013 年就被提出了,但是 Windows 很多系统版本依然不支持它

  1. 建立连接的握手延迟大。

不管是 HTTP1.0/1.1 还是 HTTPS,HTTP2,都使用了 TCP 进行传输。HTTPS 和 HTTP2 还需要使用 TLS 协议来进行安全传输。这就出现了两个握手延迟:

1.TCP 三次握手导致的 TCP 连接建立的延迟。

2.TLS 完全握手需要至少 2 个 RTT 才能建立,简化握手需要 1 个 RTT 的握手延迟。

对于很多短连接场景,这样的握手延迟影响很大,且无法消除

  1. 队头阻塞

队头阻塞主要是 TCP 协议的可靠性机制引入的。TCP 使用序列号来标识数据的顺序,数据必须按照顺序处理,如果前面的数据丢失,后面的数据就算到达了也不会通知应用层来处理。

另外 TLS 协议层面也有一个队头阻塞,因为 TLS 协议都是按照 record 来处理数据的,如果一个 record 中丢失了数据,也会导致整个 record 无法正确处理。

概括来讲,TCP 和 TLS1.2 之前的协议存在着结构性的问题,如果继续在现有的 TCP、TLS 协议之上实现一个全新的应用层协议,依赖于操作系统、中间设备还有用户的支持。部署成本非常高,阻力非常大。

所以 QUIC 协议选择了 UDP,因为 UDP 本身没有连接的概念,不需要三次握手,优化了连接建立的握手延迟,同时在应用程序层面实现了 TCP 的可靠性,TLS 的安全性和 HTTP2 的并发性,只需要用户端和服务端的应用程序支持 QUIC 协议,完全避开了操作系统和中间设备的限制。

  1. 中间设备的僵化

可能是 TCP 协议使用得太久,也非常可靠。所以我们很多中间设备,包括防火墙、NAT 网关,整流器等出现了一些约定俗成的动作。

比如有些防火墙只允许通过 80 和 443,不放通其他端口。NAT 网关在转换网络地址时重写传输层的头部,有可能导致双方无法使用新的传输格式。整流器和中间代理有时候出于安全的需要,会删除一些它们不认识的选项字段。

TCP 协议本来是支持端口、选项及特性的增加和修改。但是由于 TCP 协议和知名端口及选项使用的历史太悠久,中间设备已经依赖于这些潜规则,所以对这些内容的修改很容易遭到中间环节的干扰而失败。

为什么QUIC能撼动TCP的霸主地位

QUIC 协议是 Google 提出的一套基于 UDP 的开源协议,它汇集了 TCPUDP 的优点,传输高效并且可靠,解决了TCP目前遇到的困境。QUIC优点如下:

  1. 更新迭代更容易:TCPUDP 协议是操作系统内核实现的,部署进度慢。QUIC直接基于客户端实现,能实现快速迭代更新
  2. 没有队头阻塞的多路复用: TCP 为了保证可靠性,使用了基于字节序号的 Sequence Number 及 Ack 来确认消息的有序到达,数据必须按照顺序处理,可能会造成队头阻塞。HTTP2 支持多路复用,但是由于强制使用 TLS,还存在一个 TLS 协议层面的队头阻塞,QUIC 最基本的传输单元是 Packet,不会超过 MTU 的大小,整个加密和认证过程都是基于 Packet 的,不会跨越多个 Packet。这样就能避免 TLS 协议存在的队头阻塞。Stream 之间相互独立,比如 Stream2 丢了一个 Pakcet,不会影响 Stream3 和 Stream4,所以也不存在 TCP 队头阻塞。
  3. 自由选择拥塞控制:TCP 的拥塞控制实际上包含了四个算法:慢启动,拥塞避免,快速重传,快速恢复,QUIC 协议当前默认使用了 TCP 协议的 Cubic 拥塞控制算法,同时也支持 CubicBytes, Reno, RenoBytes, BBR, PCC 等拥塞控制算法。从拥塞算法本身来看,QUIC 只是按照 TCP 协议重新实现了一遍,那么 QUIC 协议到底改进在哪些方面呢?主要有如下几点:
  • 可插拔:应用程序层面就能实现不同的拥塞控制算法,不需要操作系统,不需要内核支持,即使是单个应用程序的不同连接也能支持配置不同的拥塞控制
  • 扩展方便:应用程序不需要停机和升级就能实现拥塞控制的变更,我们在服务端只需要修改一下配置,reload 一下,完全不需要停止服务就能实现拥塞控制的切
  1. 更多的 Ack 块:TCP 的 Sack 选项能够告诉发送方已经接收到的连续 Segment 的范围,方便发送方进行选择性重传。

    由于 TCP 头部最大只有 60 个字节,标准头部占用了 20 字节,所以 Tcp Option 最大长度只有 40 字节,再加上 Tcp Timestamp option 占用了 10 个字节 [25],所以留给 Sack 选项的只有 30 个字节。
    每一个 Sack Block 的长度是 8 个,加上 Sack Option 头部 2 个字节,也就意味着 Tcp Sack Option 最大只能提供 3 个 Block。
    但是 Quic Ack Frame 可以同时提供 256 个 Ack Block,在丢包率比较高的网络下,更多的 Sack Block 可以提升网络的恢复速度,减少重传量

  2. 握手更迅速:TCP需三次握手才能建立连接,有等待时延,如果用了TLS加密,还会进一步增加时延。QUIC采用了类似于TCP Fast Open的设计,在之前已经连接过的情况下可以无需握手,直接开始传送数据,连接建立时延为0

  3. 连接保持:TCP 连接是由四元组标识的(源 IP,源端口,目的 IP,目的端口),当其中一项发生改变,都需要重新建立和服务端的 TCP 连接。QUIC连接不再以 IP 及端口四元组标识,而是以一个 64 位的随机数作为 ID 来标识,这样就算 IP 或者端口发生变化时,只要 ID 不变,这条连接依然维持着。这就意味着:在IP地址和端口变化的情况下(比如从Wi-Fi切换到流量),可以无需重新建立连接,继续通信

QUIC 缺点

既然QUIC如此优秀,但是为什么还是没有大量普及呢?有如下原因

  1. QUIC 基于 UDP ,目前很多网络运营商会降低 UDP 包的优先级,使得 UDP 丢包率特别高
  2. 支持QUIC协议的浏览器比较少

展望未来

  • 阿里云CDN目前也是在慢慢支持QUIC

在这里插入图片描述

原文链接

  • 快手也是自研了KQUIC
    在这里插入图片描述
    原文链接

参考

博客
知乎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/13236.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

近期EI收录的国际会议汇总(AI/CV/深度学习等领域)

鉴于一些小伙伴正在为找不到投稿渠道而苦恼 本期小编为大家推荐三则国际会议信息 了解领域前沿,分享研究成果 启发科研思路,尽在学术会议 近期EI收录的国际会议汇总,相信总有一个适合你! 01 第二届图像、视觉与智能系统国际学术会…

一代「博雅」大师离世!缅怀复旦大学原校长、中国科学院院士杨福家教授

作者丨Joey 好困 来源丨新智元 【导读】2022年7月17日,著名核物理学家、复旦大学原校长、中科院院士杨福家在上海因病逝世,享年86岁。 据复旦大学消息,著名核物理学家、复旦大学原校长、中国科学院院士杨福家教授于7月17日在上海因病离世&…

诺丁汉为满足当地需求新建一个数据中心

日前,在英国诺丁汉新建的一个数据中心开通运营,该数据中心可以部署约2500台服务器。 据诺丁汉邮报报道,SpaceDataCenters公司表示在诺丁汉的贝斯福德投资建设了一个数据中心,这是因为当地缺乏高质量的数据中心,因此&am…

深度学习求解魔方新方法!诺丁汉大学研究团队提出适应度函数

作者 | 凌霄 责编 | 寇雪芹 头图 | 下载于视觉中国 人工智能和人类之间的“竞赛”一直都是热门的研究话题,AlphaGo 战胜了人类围棋玩家,AlphaZero 在围棋比赛中击败了AlphaGo 及其更高版本,并在国际象棋比赛中击败了顶级象棋引擎之一 Stockfi…

013英超:托特纳姆热刺 VS 诺丁汉森林icon胜平负:主胜

013英超:托特纳姆热刺 VS 诺丁汉森林icon 胜平负:主胜 分析:作为英超豪门之一的热刺相较于上个赛季,在本赛季发挥依旧很平稳,目前球队以14胜3平9负积45分排在联赛第4位,刚刚卡在下赛季欧冠icon资格区,多赛一…

导致计算机科学硕士和计算机科学理学硕士,诺丁汉大学计算机科学理学硕士研究生offer一枚...

原标题:诺丁汉大学计算机科学理学硕士研究生offer一枚 指南者留学学员背景 学生姓名:Q同学 本科学校:中国计量大学 本科专业:电子科学与技术 录取学校:诺丁汉大学 录取专业:计算机科学理学硕士 背景资料 大…

宁波市教育学院计算机系主任,欢迎宁波诺丁汉大学计算机系主任白瑞斌教授一行到访南科大...

2021年1月10日至11日,受南方科技大学计算机科学与工程系刘江教授邀请,宁波诺丁汉大学(UNNC)计算机科学系主任白瑞斌教授率崔天翔、任剑锋、李家炜、卢正四位助理教授,专程赴深圳到访南方科技大学计算机科学与工程系,双方学校的老师…

ChatGPT,拯救半导体?

关注、星标公众号,精彩内容每日送达 来源:内容由半导体行业观察(ID:icbank)编译自kedglobal,谢谢。 2023年6月22日,OMDIA高级咨询总监Akira Minamikawa先生在该公司主办的半导体市场趋势研讨会活…

上海亚商投顾:沪指午后放量跳水两市上涨个股不足500只

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 指数早间震荡走高,沪指盘中收复3300点,午后集体跳水,创业板指一度跌超2%。Chat…

AI帮我写代码,上班摸鱼不是梦(调教过程全记录)

最近发现磁盘空间严重不足,都弹窗提示我了: 想想看到底哪个文件夹占的空间比较大,好做针对性的删除和清理。奈何Windows系统没有查看文件夹大小的工具,只能鼠标放在某个文件夹上,等提示: AI时代都来临了&am…

程序员躺平摸鱼指南

温馨提醒:本文提供的上班摸鱼指南,不建议经常性使用,以免被炒鱿鱼。 1、项目编译和debug:命令行界面或者IDE界面不停的刷新各种奇怪的字符,并把程序最大化整个屏幕,看起来就非常忙碌 2、假装windows或者开…

小米万兆路由器里的 Docker 安装 chatgpt-next-web,打造自己的专属ChatGPT

小米万兆路由器里的 Docker 安装 chatgpt-next-web,打造自己的专属ChatGPT 0. 先体验一下效果1. 准备工作2. 查看Docker Hub镜像信息3. 拉取 ChatGPT-Next-Web 镜像和运行容器4. 感谢99. (Optional)其他 小米2022年12月份发布了万兆路由器,里面可以使用D…

chatgpt教我内存对齐,对齐了但没完全对齐?

文章目录 内存对齐关于chatgpt的回答总结 内存对齐 关于chatgpt的回答 我与chatgpt的对话如下: 我现在来描述与总结上述对话都干了啥以及我为什么要问这个。 我本来是在学习rapidjson源码里面的内存池实现,然后 RAPIDJSON_ALIGN 没有看懂,…

用PostMan调用chatGPT API示例

官网:OpenAI 登录,左上角选择API Key 生成一个API key 添加请求头 添加请求体

【ChatGPT实战案例】ChatGPT如何帮助产品经理高效工作?

目录 一、使用ChatGPT梳理主要工作方向​ 二、使用ChatGPT对具体工作提供思路 1、产品规划和定位 2、市场调研和分析 2.1 进行市场研究和竞争对手分析 2.2 生成用户画像和用户配置文件 3、需求收集和整理 3.1 估客户需求和反馈 4、产品设计和开发 4.1 生成产品想法和…

【学习ChatGPT】1. 复习:Seq2Seq、Transformer、GPT

ref. https://zhuanlan.zhihu.com/p/360932588 https://zhuanlan.zhihu.com/p/611472975 目录 2014年-Seq2Seq模型2015年-注意力Seq2Seq模型Google2017年-Transformer模型: Attention is all you need注意力机制 OpenAI2018年-GPT无监督预训练:神经网络语言模型无监…

ChatGPT将要创造出来的新职业有哪些?

根据当前趋势和数据分析,基于AI和ChatGPT等技术可能创造出的十个新兴职业以及每个职业的潜在需求评分。满分10分,分数越高表示需求可能性越大。请注意,这些评分和解释是基于目前的技术发展水平和趋势。 AI训练师 - 9分:随着AI系统…

学会ChatGPT模型调参,让你的文章质量飞速提升(提供免费测试网站)

在阐述观点的时候,首先分享一个免费且无需登录即可使用,结合问答与绘图,可调节模型参数的AI(懂的都懂,手动狗头)公益平台: https://shdily.com Temperature和Top_p都是用于控制生成文本的多样性和准确性的…

王国维《人间词话》风格评析七律之冠《登高》-ChatGPT调试

杜甫先生习诗当峥嵘岁月,因禅静福地育天才,故嘉名而扬。其诗风甘露脆玉,让人称道。《登高》一诗,被誉为七言诗之首。本文谦陈顾虑,为诗友愚论。余不执意与常规,不徇情以赞叹,纯生为素志&#xf…

极客故事|AI Hackathon:从每一个微小的时刻开始

上周末,由 SegmentFault 思否和 ONES 主办,SegmentFault AI Hackathon 杭州站暨思否 11 周年特别活动在杭州圆满结束。大赛延续 Hack with AI, Rebuild Everything with AI 的主题,鼓励开发者使用 Generative AI 技术构建创新应用&#xff0c…