4 ms·
Quic can have multiple streams. Every stream is guaranteed to be ordered like TCP. The TLS is wrapped in "CRYPTO-frames" whose content is passed verbatim to TLS
by nielsole 4y ago
Quic can have multiple streams. Every stream is guaranteed to be ordered like TCP.
The TLS is wrapped in "CRYPTO-frames" whose content is passed verbatim to TLS.
Quic does require collaboration with TLS. There are a couple of events in which TLS calls the Quic implementation, for example for TLS state changes.
What I dont quite get is how the individual streams are encrypted. As I understood it, the initial vector(IV) is generated during the initial handshake, so all the streams would reuse the same IV which could make it leak the requested file.
- Dylan16807 4y agoI'm reasonably sure that the encryption uses packet numbers, which are global across the entire connection.
- syncsynchalt 4y agoEach endpoint maintains a packet number, starting at 0 and increasing by one for each packet sent. This is an input to the packet encryption IV. Note that unlike TCP retries do not re-use the packet number, they get a higher packet number on re-transmit. This lets endpoints differentiate packet retries from delayed packets, which isn’t possible in TCP (and the ambiguity of which is a problem in TCP stacks that want to react differently to each).