• Home
  • About
    • Chenyanfun photo

      Chenyanfun

      chenyanfun's blog.

    • Learn More
    • Facebook
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

quic网络协议学习

19 Jun 2024

Reading time ~1 minute

QUIC网络协议介绍(一)

wirte in ChengDu 19 June 2024

什么是quic

  • quic全称:Quick UDP Internet Connections,是一种基于传输层UDP的协议,由googel研发,目前IEFT已推出标准版RFC9000,RFC9001,RFC9002
  • quic = http/3+TSL+UDP

为什么需要quic

  • 传统的http1是基于tcp进行传输,串行,若某一个数据包丢失后后续的数据包将会阻塞;
  • http/2协议解决了串行发送数据的问题,但是依然存在tcp队头阻塞的问题。因此quic应运而生,quic不再使用tcp作为传输协议,而是使用udp作为传输协议;且采用乱序加密帧减少RTT的传输次数。

  • Http1 只能串行访问,
  • Http2 能并行访问:解决了http协议队头阻塞的问题,但tcp的队头阻塞依然没有解决
  • quic消耗的是1个RTT,在后面实现0-RTT发送的时候,会同时发送两个数据包(inital报文和数据包)
  • 必须缓存收到的乱序加密帧
  • 传统的tcp协议,以四元组(源IP地址、源端口号、目的IP地址、目的端口号)来识别一条连接;
  • quic使用连接ID来识别一条连接;连接ID:一组连接标识符、连接ID由一端独立选择;

quic可以做什么

  • quic基于udp可提供可靠传输能力,类似于tcp。但是tcp是基于内核态的,quic是基于用户态一种流式的方式。quic是一种面向连接的传输协议。quic协议在数据传输工程中具有报文丢失恢复和重传功能。可以保证数据完整性和正确性。可以保证数据包按照顺序达到,避免数据包乱序的错误。

quic有什么优势

  • 传输速度更快,当出现切换网络的场景时,不会卡顿;

简单抓包查看quic报文格式

Header Form Long Packet Type Connection ID Packet Number Version Length Payload
1 byte 1 byte 0-18 bytes 1-4 bytes 4 bytes 1-2 bytes Variable


Network Protocol Like Tweet +1