QUIC:修订间差异
| (未显示同一用户的4个中间版本) | |||
| 第14行: | 第14行: | ||
* Transport extensibility | * Transport extensibility | ||
* Optional unreliable delivery | * Optional unreliable delivery | ||
= Overview = | |||
== Reliablity == | |||
While UDP is not a reliable transport, QUIC adds a layer on top of UDP that introduces reliability. It offers re-transmissions of packets, congestion control, pacing and the other features otherwise present in TCP. | |||
Data sent over QUIC from one end-point will appear in the other end sooner or later, as long as the connection is maintained. | |||
By doing the fragmentation, retransmission and acknowledgements in QUIC.<ref>https://www.quora.com/How-does-QUIC-ensure-reliability-if-it-uses-UDP</ref> | |||
=== Streams === | |||
Similar to SCTP, SSH and HTTP/2, QUIC features separate logical streams within the physical connections. A number of parallel streams that can transfer data simultaneously over a single connection without affecting the other streams. | |||
A connection is a negotiated setup between two end-points similar to how a TCP connection works. A QUIC connection is made to a UDP port and IP address, but once established the connection is associated by its "connection ID". | |||
Over an established connection, either side can create streams and send data to the other end. '''Streams are delivered in-order and they are reliable, but different streams may be delivered out-of-order.''' | |||
[[Image:Quic-stream-order.webp|600px]] | |||
QUIC offers flow control on both connection and streams. | |||
==Fast handshakes == | |||
QUIC offers both 0-RTT and 1-RTT connection setups, meaning that at best QUIC needs no extra round-trips at all when setting up a new connection. The faster of those two, the 0-RTT handshake, only works if there has been a previous connection established to a host and a secret from that connection has been cached. | |||
QUIC allows a client to include data already in the 0-RTT handshake. This feature allows a client to deliver data to the peer as fast as it possibly can, and that then of course allows the server to respond and send data back even sooner. | |||
== Encryption == | |||
The transport security used in QUIC is using TLS 1.3 (RFC 8446) and there are never any unencrypted QUIC connections. | |||
=Algorithm= | =Algorithm= | ||
| 第189行: | 第216行: | ||
== UDP Datagram 8 - Close connection == | == UDP Datagram 8 - Close connection == | ||