Summary

  • One UDP datagram may contain several complete QUIC packets, including Initial, Handshake, and application-data packets.
  • Each packet retains its own protection, packet-number space, processing, acknowledgment, loss, and retransmission semantics.
  • A carriage record must be joined to packet evidence and application receipts rather than treated as a single delivery result.

A packet capture can show an Initial packet, a Handshake packet, and a 1-RTT packet inside one UDP datagram. That visual grouping is useful, but it is not a protocol-level declaration that the packets share a fate. QUIC defines a packet as a complete processable unit, while UDP supplies the envelope in which one or more such units travel.

Coalescing exists for efficiency. It can reduce the number of UDP datagrams needed to complete the cryptographic handshake and start data transfer. It also creates an obligation for receivers: they must be able to find and process the contained packets. Initial, 0-RTT, and Handshake packets carry a Length field, allowing a receiver to locate their boundaries. A short-header packet has no Length field and therefore can only be last. Retry and Version Negotiation packets are not coalesced with another packet, and packets with different connection IDs must not be coalesced.

Those wire rules should not be mistaken for shared semantics. The receiver processes every coalesced packet individually and acknowledges it separately, as if the packets had arrived in different UDP datagrams. If one packet cannot be decrypted, that does not excuse abandoning the others: the receiver may discard or buffer the problematic packet while still attempting to process the remainder. A dashboard that records one indivisible handshake event has therefore erased distinctions the protocol requires operators to preserve.

The distinction becomes sharper when packet numbers are examined. Initial, Handshake, and application data use separate packet-number spaces. An ACK identifies packets in the space to which that ACK belongs; adjacency in a UDP payload does not combine those spaces or make their numbers one sequence. Nor does coalescing create one retransmission object. When a packet is declared lost, QUIC retransmits the information carried by its frames in new packets. The original packet number is not reused merely because the lost packet once shared an envelope with another packet.

There is another grouping that must not be confused with coalescing. Several frames can be placed in one QUIC packet, and losing that packet can block the streams whose data was inside it while other streams progress. That consequence comes from multiplexing frames into the same packet. It does not follow from placing two already complete QUIC packets in one UDP datagram.

The Initial rule is a deliberate exception at the carriage layer. UDP datagrams carrying Initial packets must reach 1200 bytes through padding or coalescing; a server discards an Initial packet in a smaller datagram. This is a size requirement for a particular datagram situation, not evidence that every packet in the envelope shares delivery, acknowledgment, or application fate.

RFC 9000 also explains why the boundary should not be overinterpreted. Apart from the Initial padding rule, changing how packets are grouped into UDP datagrams has no functional effect on the connection, although performance can change. An observer may therefore record the envelope without promoting it into a semantic unit.

The correct evidence model retains the datagram identifier and vantage point, total size, packet offsets and lengths, connection IDs, packet types, encryption levels, packet-number spaces, decryption and processing result, frame inventory, ACK lineage, loss declarations, retransmitted-information mapping, stream ranges, Initial-size compliance, and PMTU-probe role. Downstream application receipt must remain a separate field.

A single carriage event proves only that an envelope was observed at a particular vantage point. It does not prove that every contained packet decrypted, that all were acknowledged together, that their information was recovered, or that stream bytes reached user space. It certainly does not prove an application message completed, durable storage committed, or a business action occurred.