Let independent questions finish independently
03One persistent QUIC connection can carry many DNS transactions at once. Each has its own ordered stream; an earlier unanswered question need not hold up a later answer.
Both schematic transfer response messages use stream 8, each with a length prefix; FIN follows the final one. Shared flow control still limits all the streams.
Source for this drawing: RFC 9250 · Read RFC section 5.5.1 ↗
New to this? Start hereA quick picture + helpful background
A message needs an address.
Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.
Helpful first, if these ideas are unfamiliar
These pictures are analogies to help you learn. The linked RFC explains the actual rules.
Terms in this drawing
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
Separate stream ordering does not create separate network capacity.
- Clients and servers SHOULD support connection reuse. A client SHOULD send concurrent queries without waiting for each preceding reply.
- Queries may arrive out of order; servers SHOULD process them as they arrive. Resolvers are RECOMMENDED to prepare responses in parallel and send them as soon as available.
- A transaction still has exactly one query. A zone is DNS data administered together. AXFR requests a full zone transfer; IXFR requests an incremental transfer. A transfer may have multiple response messages, each with its own length prefix; server FIN follows the last response.
- DoQ servers MUST handle multiple concurrent AXFR requests and multiple concurrent IXFR requests on one connection. Same-primary connection reuse and parallel transfer requests are SHOULD-level recommendations.
- Only the connection initiator sends queries. This mapping does not support server-initiated transactions or DNS Stateful Operations; unidirectional streams and server-initiated bidirectional streams are protocol errors.
- QUIC per-stream and connection-wide flow control bound resources. Streams have independent delivery ordering but share connection credit and congestion control.
The stream 8 transfer is a schematic two-response example, not a complete AXFR record tutorial. The gap on stream 0 is missing stream data; it does not mean every packet on the connection is lost. Peer flow-control limits are assumed to allow these three streams; no particular budget is prescribed here.
Read the RFC section ↗