Riguz​(留言 | 贡献)
Riguz​(留言 | 贡献)
 
(未显示同一用户的7个中间版本)
第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 ==
= FAQ =
== How does QUIC ensure reliability if it uses UDP? ==