QUIC协议文档翻译——什么是QUIC

原文地址https://docs.google.com/document/d/1gY9-YNDNAB1eip-RTPbqphgySwSNSDHLq9D5Bty4FSU/edit

QUIC是一个谷歌提出的新的互联网协议。

QUIC解决出现在现在网络协议的一些传输层和应用层的问题,而且几乎不需要应用更改。QUIC和TCP+TLS+HTTP2十分相似,但是基于UDP实现。使用QUIC作为一个独立的协议可以做到一些别的协议做不到的创新,因为它们受到传统客户端和中间件的阻碍。

和TCP+TLS+HTTP2相比,QUIC的核心优势有以下几点:

  • 连接建立延迟
  • 提升拥塞控制
  • 无需排头阻塞的多路复用
  • 向前纠错
  • 连接迁移

连接建立

简单来说,在发送有效负载前,和TCP+TLS的1~3rt相比,QUIC通常需要0rt。

当QUIC客户端第一次链接到服务端时,客户端必须执行1rt的握手来获取完成握手的所有必要信息。客户端发送一个CHLO,服务端返回一个带有客户端用来继续执行的拒信,包括源地址令牌和服务器证书。下次客户端发送CHLO时,可以使用上次连接缓存的证书来立刻返回一个加密的消息。

拥塞控制

QUIC有可插拔的拥塞控制,而且比TCP给拥塞控制提供更丰富的信息。这允许一个QUIC发送者识别重发的ACK和原始的ACK避免TCP的重发歧义问题。QUIC ACK还明确传输数据包发送和接收的延时,以及单调增加的序列号。这允许准确的rt计算。

最后,QUIC的ACK帧支持多达256NACK范围,因此QUIC比TCP(带SACK)在重新排序上更有弹性,而且能够在重新排序和丢失时在线路上保存更多字节。客户端和服务端都可以准确地知道对方哪个包收到了。

多路复用

基于TCP的HTTP2更大的一个问题是排头阻塞。应用视TCP连接为一个字节流。当一个TCP包丢失,HTTP2连接上没有数据流向前推进,直到包被重传而且被远端接受——甚至当这些数据流已经到达而且在缓存等待。

由于QUIC一开始就是为多路复用操作设计的,因此传输单个流数据丢失的数据报通常只影响该特定的流。每个流的帧可以立即被分发并且在应用推进。

向前纠错

为了在不等待重传情况下从丢包中恢复,QUIC可以用FEC包补充一组包。很像RAID-4,在FEC组里包含部分FEC包。如果组中的一个包丢失,则可以从FEC包和组中剩余的包恢复这个包。发送者可以决定是否发送FEC包来优化特殊的场景(例如,一个请求的开始和结束)。

连接迁移

QUIC连接被一个64位的连接ID识别,被客户端随机生成。相比之下,TCP连接被一个由源地址,源端口,目标地址,目标端口的4元组识别。这意味着如果一个客户端改变地址(例如,从WI-FI切到移动网络)或者端口(如果一个NAT丢失并且这个端口连接重新绑定),任何可用的TPC连接不再有效。当一个QUIC客户端改变IP地址,它可以在不打断执行中的请求的情况下从这个新的IP地址使用这个老的连接ID。

原文地址:https://www.cnblogs.com/gouden/p/12230036.html

时间: 2024-10-14 00:12:16

QUIC协议文档翻译——什么是QUIC的相关文章

Google将向IETF标准提交QUIC协议提案

Google近期宣布,他们将向IETF提交实验性传输层网络协议QUIC的提案.此外,Google已经给出了QUIC协议优化页面加载时间的第一手数据. 自从2013年引入QUIC以来,Google一直在为更多的Google服务提供QUIC协议支持.他们认为,“目前,近半数来自Chrome访问Google服务器的请求都是基于QUIC协议的”,未来QUIC将会作为“Chrome和Google移动app向Google服务器发起请求的默认协议”. Google通过大规模的性能分析发现,“相对于TCP而言,

QUIC协议原理分析(转)

之前深入了解了一下HTTP1.1.2.0.SPDY等协议,发现HTTP层怎么优化,始终要面对TCP本身的问题.于是了解到了QUIC,这里分享一篇之前找到的有意义的文章. 原创地址:https://mp.weixin.qq.com/s/vpz6bp3PT1IDzZervyOfqw 作者介绍:lancelot,腾讯资深研发工程师.目前主要负责腾讯 stgw(腾讯安全云网关)的相关工作,整体推进腾讯内部及腾讯公有云,混合云的七层负载均衡及全站 HTTPS 接入.对 HTTPS,SPDY,HTTP2,Q

[译] QUIC Wire Layout Specification - Frame Types and Formats | QUIC协议标准中文翻译(4) 帧类型和格式

欢迎访问我的个人网站获取更好的阅读排版体验: [译] QUIC Wire Layout Specification - Frame Types and Formats | QUIC协议标准中文翻译(4) 帧类型和格式 | yoko blog (https://pengrl.com/p/47156/) 目录 Frame Types | 帧类型 STREAM Frame | 流类型帧 ACK Frame | ACK帧 STOP_WAITING Frame | 停止等待帧 WINDOW_UPDATE

SIP 协议文档翻译

SIP:会话发起协议 文档地位 这篇文档制订了一个用于互联网通信,请求讨论和提升建议的互联网标准追踪协议.请参考“互联网官方协议标准”为了这个协议的标准化状态.转发不限! 版权声明 版权(c)互联网社区(2002).保留所有权利! 概要 这篇文档描述了会话发起协议(SIP),一个用于创建,修改,和终止会话与一个或更多参与者的应用层控制(发信号)协议.这些会话包括互联网电话,多媒体分发和多媒体会议. SIP邀请用于创建会话携带允许参与者同意一系列的兼容媒体类型的会话描述.SIP利用代理服务器向用户

完美解决全面屏蔽Google教程(终结者)

最近谷歌的IP被大范围的禁用了.身处一个连谷歌都用不了的过度的程序员,深感命运多舛.幸好,魔高一尺,道高一丈.下面是几种可以使用谷歌的方法. 方法一 1)在chrome浏览器中输入:chrome://flags/ 2)如下图,开启实验性 QUIC 协议和经由实验性 QUIC 协议发出的 HTTPS 请求两个选项重启浏览器,大功告成. 方法二 此次屏蔽的方法主要屏蔽Google部分IP地址的443端口,包括google.com.hk,accounts.google.com的部分IP的443端口被封

Google不可用的若干解决办法

对于习惯于使用Chrome以及Google搜索,Gmail,Google Scholar,code google等相关业务的用户而言,Google不可用实在是太难过了,本人依据个人使用过的方案,以及网络参看的某些方案,这里提出若干建议,仅供参考,依个人喜好可选择策略. 修改hosts文件         要知道在中国大陆访问很多网站都是受限的,一个解决办法是通过修改hosts文件就可以访问某些网站,可以一定程度缓解这一问题,但这样的修改并不总是有效,可能需要随时更新,这一方法本人在很久以前试过,

新一代互联网传输协议QUIC

QUIC(Quick UDP Internet Connections,快速UDP互联网连接)是Google提出的一种基于UDP改进的通信协议,其目的是降低网络通信的延迟,提供更好的用户互动体验. QUIC的主要特点包括:具有SPDY(SPDY是谷歌研制的提升HTTP速度的协议,是HTTP/2.0的基础)所有的优点:0-RTT连接:减少丢包:前向纠错,减少重传时延:自适应拥塞控制, 减少重新连接:相当于TLS加密. 1.重传与恢复 与TCP类似,QUIC每发送一个包后,都会等待回复一个确认包.当

小技巧:利用QUIC提升Chrome浏览器网页打开速度

个人因为比较偏爱轻盈小巧不臃肿的软件,所以浏览器一直用谷歌的Chrome.近几年因为其启动和打开网页速度快等诸多优点,被广大国内用户喜爱,并迅速在国内市场占据一定的份额. 这里和大家分享一个可以提升Chrome网页打开速度的小技巧 首先,打开Chrome浏览器,在地址栏里输入:Chrome://flags 然后找到QUIC协议标签,可以按"CTRL+F"快速定位. Chrome截图 把选项"默认"改为"已启用".所做的更改会在下次重新启动 Goo

HTTP3.0(QUIC的实现机制)

回顾HTTP2.0 HTTP1.1在应用层以纯文本的形式进行通信,每次通信都要带完整的HTTP的头,而且不考虑pipeli模式的化,每次的过程总是像上面描述的那样一去一回.那样在实时性.并发想上都存在问题 头部压缩:HTTP2.0会对HTTP的头进行一定的压缩,将原来每次都要携带的大量key value在两端建立一个索引表,对相同的头只发送索引表中的索引 HTTP2.0协议将一个TCP的连接中,切分成多个流.每个流都有自己的ID,而且流可以是客户端发服务端,也可以是服务端发客户端,它其实只是一个