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