Bits | Stream Type |
---|---|
0x00 | Client-Initiated, Bidirectional |
0x01 | Server-Initiated, Bidirectional |
0x02 | Client-Initiated, Unidirectional |
0x03 | Server-Initiated, Unidirectional |
Sending Part | Receiving Part | Composite State |
---|---|---|
No Stream / Ready | No Stream / Recv (*1) | idle |
Ready / Send / Data Sent | Recv / Size Known | open |
Ready / Send / Data Sent | Data Recvd / Data Read | half-closed (remote) |
Ready / Send / Data Sent | Reset Recvd / Reset Read | half-closed (remote) |
Data Recvd | Recv / Size Known | half-closed (local) |
Reset Sent / Reset Recvd | Recv / Size Known | half-closed (local) |
Reset Sent / Reset Recvd | Data Recvd / Data Read | closed |
Reset Sent / Reset Recvd | Reset Recvd / Reset Read | closed |
Data Recvd | Data Recvd / Data Read | closed |
Data Recvd | Reset Recvd / Reset Read | closed |
Type Value | Frame Type Name | Definition | Pkts | Spec |
---|---|---|---|---|
0x00 | PADDING | IH01 | NP | |
0x01 | PING | IH01 | ||
0x02-0x03 | ACK | IH_1 | NC | |
0x04 | RESET_STREAM | __01 | ||
0x05 | STOP_SENDING | __01 | ||
0x06 | CRYPTO | IH_1 | ||
0x07 | NEW_TOKEN | ___1 | ||
0x08-0x0f | STREAM | __01 | F | |
0x10 | MAX_DATA | __01 | ||
0x11 | MAX_STREAM_DATA | __01 | ||
0x12-0x13 | MAX_STREAMS | __01 | ||
0x14 | DATA_BLOCKED | __01 | ||
0x15 | STREAM_DATA_BLOCKED | __01 | ||
0x16-0x17 | STREAMS_BLOCKED | __01 | ||
0x18 | NEW_CONNECTION_ID | __01 | P | |
0x19 | RETIRE_CONNECTION_ID | __01 | ||
0x1a | PATH_CHALLENGE | __01 | P | |
0x1b | PATH_RESPONSE | ___1 | P | |
0x1c-0x1d | CONNECTION_CLOSE | ih01 | N | |
0x1e | HANDSHAKE_DONE | ___1 |
2MSB | Length | Usable Bits | Range |
---|---|---|---|
00 | 1 | 6 | 0-63 |
01 | 2 | 14 | 0-16383 |
10 | 4 | 30 | 0-1073741823 |
11 | 8 | 62 | 0-4611686018427387903 |
Type | Name | Section |
---|---|---|
0x00 | Initial | |
0x01 | 0-RTT | |
0x02 | Handshake | |
0x03 | Retry |
Value | Parameter Name | Specification |
---|---|---|
0x00 | original_destination_connection_id | |
0x01 | max_idle_timeout | |
0x02 | stateless_reset_token | |
0x03 | max_udp_payload_size | |
0x04 | initial_max_data | |
0x05 | initial_max_stream_data_bidi_local | |
0x06 | initial_max_stream_data_bidi_remote | |
0x07 | initial_max_stream_data_uni | |
0x08 | initial_max_streams_bidi | |
0x09 | initial_max_streams_uni | |
0x0a | ack_delay_exponent | |
0x0b | max_ack_delay | |
0x0c | disable_active_migration | |
0x0d | preferred_address | |
0x0e | active_connection_id_limit | |
0x0f | initial_source_connection_id | |
0x10 | retry_source_connection_id |
Value | Code | Description | Specification |
---|---|---|---|
0x00 | NO_ERROR | No error | |
0x01 | INTERNAL_ERROR | Implementation error | |
0x02 | CONNECTION_REFUSED | Server refuses a connection | |
0x03 | FLOW_CONTROL_ERROR | Flow control error | |
0x04 | STREAM_LIMIT_ERROR | Too many streams opened | |
0x05 | STREAM_STATE_ERROR | Frame received in invalid stream state | |
0x06 | FINAL_SIZE_ERROR | Change to final size | |
0x07 | FRAME_ENCODING_ERROR | Frame encoding error | |
0x08 | TRANSPORT_PARAMETER_ERROR | Error in transport parameters | |
0x09 | CONNECTION_ID_LIMIT_ERROR | Too many connection IDs received | |
0x0a | PROTOCOL_VIOLATION | Generic protocol violation | |
0x0b | INVALID_TOKEN | Invalid Token received | |
0x0c | APPLICATION_ERROR | Application error | |
0x0d | CRYPTO_BUFFER_EXCEEDED | CRYPTO data buffer overflowed | |
0x0e | KEY_UPDATE_ERROR | Invalid packet protection update | |
0x0f | AEAD_LIMIT_REACHED | Excessive use of packet protection keys | |
0x10 | NO_VIABLE_PATH | No viable network path exists | |
0x0100-0x01ff | CRYPTO_ERROR | TLS alert code |