Article 27 research notes, checked on 2026-09-22 and reviewed on 2026-09-23. Primary sources: - RFC 9000 §§2, 5.1, 8.2, 9, 9.4, 12.3, 13.3, QUIC transport: https://www.rfc-editor.org/rfc/rfc9000.html Used for streams, packet/connection framing, connection IDs, migration, PATH_CHALLENGE/PATH_RESPONSE. - RFC 9001 §§4, 4.4, 4.6, 9.2, QUIC over TLS: https://www.rfc-editor.org/rfc/rfc9001.html Used for TLS integration and 0-RTT boundary. - RFC 9002 §§2, 4, 6, 7, QUIC loss detection and congestion control: https://www.rfc-editor.org/rfc/rfc9002.html Used for packet number spaces, ACK ranges, loss detection, PTO, congestion control. - RFC 9114, HTTP/3: https://www.rfc-editor.org/rfc/rfc9114.html Used only to keep the boundary: HTTP/3 mapping is article 28. Facts carried into the article: - Stream-local ordered byte streams do not mean per-stream congestion control. - QUIC packet numbers are separate from stream offsets. - Initial, Handshake, and Application Data packet number spaces are distinct; 0-RTT and 1-RTT packets are in the Application Data space. - PTO arithmetic can be hand-checked; PTO expiry alone is not a claim that the packet is lost or that cwnd is reduced. - 0-RTT depends on resumption material and server policy; it is not available on a first connection. - Path validation uses PATH_CHALLENGE/PATH_RESPONSE, and connection IDs help keep connection identity across address changes. - PTO expiry sends probes but does not itself mark earlier packets lost. - A newly validated path normally starts with reset congestion and RTT state; a peer port-only change is the specified exception. Verification boundary: - No mature QUIC implementation was run in this turn. - No packet capture, loss-injection, NAT rebinding, path migration, or HTTP/3 comparison was performed. - handcalc.py checks finite arithmetic examples only.