quic的优点

  • Low-latency connection establishment
  • Multiplexing without head-of-line blocking
  • Authenticated and encrypted header and payload
  • Rich signaling for congestion control and loss recovery
  • Stream and connection flow control
  • Connection  migration and resilience to NAT rebindin
  • Version negotiation

 QUIC packet type:Long Header Format  or short header
 Long Header Format

0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+
|1| Type (7) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Connection ID (64) +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Packet Number (32) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version (32) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload (*) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   Long headers are used for packets that are sent prior to the completion of version negotiation and establishment of 1-RTT keys.
Once both conditions are met, a sender switches to sending packets  using the short header

  • Header Form: The most significant bit (0x80) of octet 0 (the firstoctet) is set to 1 for long headers.
  • Long Packet Type: The remaining seven bits of octet 0 contain the packet type. This field can indicate one of 128 packet types
    • packet types are defined:
  • Version: Octets 9 to 12 contain the selected protocol version. This field indicates which version of QUIC is in use and determines how
    the rest of the protocol fields are interpreted

Short Header Format

The short header can be used after the version and 1-RTT keys are negotiated.

  • Packet Numbers:

The packet number is an integer in the range 0 to 2^62-1. The value is used in determining the cryptographic nonce for packet encryption.
Each endpoint maintains a separate packet number for sending and receiving. The packet number for sending MUST increase by at least
one after sending any packet, unless otherwise specified (see Section 5.7.1). A QUIC endpoint MUST NOT reuse a packet number within the same
connection (that is, under the same cryptographic keys). If the packet number for sending reaches 2^62 - 1, the sender MUST close the
connection without sending a CONNECTION_CLOSE frame or any further packets; a server MAY send a Stateless Reset (Section 7.9.4) in
response to further packets that it receives.

最新文章

  1. jquery 元素控制(追加元素/追加内容)
  2. CocoaPods pod 安装、更新慢解决方法
  3. 两个int的和判断溢出
  4. js中var 笔记
  5. 【Android】 Android实现录音、播音、录制视频功能
  6. Python核心编程读笔 5: python的序列
  7. 应该知道的Linux技巧
  8. LeetCode OJ 73. Set Matrix Zeroes
  9. block、inline、inline-block对比
  10. 01_JavaSE之OOP--面向对象(类和面向对象的简单认识)
  11. hdu 4747 线段树
  12. Centos7 安装 tree
  13. IOS 获取系统相册和拍照使用HXPhotoPicker 返回页面时页面上移被nav遮住问题
  14. vue-cli watch简单用法
  15. 10、jQuery初识
  16. 微信内置浏览器submit函数无效的问题
  17. mysql 动态增加列,查找表中有多少列,具体什么列。 通过JSON生成mysql表 支持子JSON
  18. SSM_CRUD新手练习(2)配置文件
  19. 对simhash算法的一些思考
  20. C++ 内联函数inline

热门文章

  1. MeteoInfoLab脚本示例:天气现象符号
  2. 4-20mA模拟量采集
  3. async-await和Promise的关系
  4. Git软件操作过程
  5. centos8平台使用dnf/yum管理软件包
  6. PHP SPL标准库-接口
  7. Postgres 10.11安装教程
  8. Anderson《空气动力学基础》5th读书笔记 第5记——推导二维机翼的空气动力学系数
  9. 【Flutter 1-2】在 Windows 10下安装Flutter+Dart+Android Studio 配置Flutter开发环境
  10. 彻底理解RSA加密算法