zoukankan      html  css  js  c++  java
  • 【网络知识之七】QUIC(http3)

    QUIC(Quick UDP Internet Connection)是谷歌制定的一种基于UDP的低时延的互联网传输层协议。

    1、避免前序包阻塞
    HTTP2的最大特性就是多路复用,而HTTP2最大的问题就是队头阻塞。
    首先了解下为什么会出现队头阻塞。比如HTTP2在一个TCP连接上同时发送3个Stream,其中第2个Stream丢了一个Packet,TCP为了保证数据可靠性,需要发送端重传丢失的数据包,虽然这时候第3个数据包已经到达接收端,但被阻塞了,这就是所谓的队头阻塞。
    而QUIC多路复用可以避免这个问题,因为QUIC的丢包、流控都是基于Stream的,所有Stream是相互独立的,一条Stream上的丢包,不会影响其他Stream的数据传输。

    2、零RTT建连:
    如果是客户端首次连接到服务器,由于QUIC将传输与加密结合在一起的特性所在,一般来说正常情况下初次握手只需要1个RTT就可以完成握手;但是对于触发版本协商、证书无法解密等问题当然也会导致多个RTT的产生。
    而重复连接的情况下握手,如果在证书有效的情况下,客户端发送Hello包并不用等待回复就可以直接发数据加密包,也就是实现了传说中的0RTT。

    3、FEC前向纠错
    QUIC协议的每个数据包除了本身的数据以外,会带有其他数据包的部分数据,在少量丢包的情况下,可以使用其他数据包的冗余数据完成数据组装而无需重传,从而提高数据的传输速度。具体实现类似于RAID5,将N个包的校验和(异或)建立一个单独的数据包发送,这样如果在这N个包中丢了一个包可以直接恢复出来,除此之外还可以用来校验包的正确性。


    参考:

    Quic浅析

  • 相关阅读:
    LightOJ 1132 Summing up Powers(矩阵快速幂)
    hdu 3804 Query on a tree (树链剖分+线段树)
    LightOJ 1052 String Growth && uva 12045 Fun with Strings (矩阵快速幂)
    uva 12304 2D Geometry 110 in 1! (Geometry)
    LA 3263 That Nice Euler Circuit (2D Geometry)
    2013 SCAUCPC Summary
    poj 3321 Apple Tree (Binary Index Tree)
    uva 11796 Dog Distance (几何+模拟)
    uva 11178 Morley's Theorem (2D Geometry)
    动手动脑
  • 原文地址:https://www.cnblogs.com/cac2020/p/11950684.html
Copyright © 2011-2022 走看看