Glossary

View Source

Abbreviations and local vocabulary you will meet in the source. Read this alongside docs/MODULE_MAP.md when a variable name in quic_connection means nothing to you.

Protocol terms

TermMeaning
PNPacket number. Each number space (Initial, Handshake, application) counts separately
PN spaceOne of the three independent packet number spaces, each with its own ACK state and keys
CIDConnection ID. The routing label in a packet header
DCID, SCIDDestination and source connection ID, as written in an outgoing packet
ODCIDOriginal destination connection ID, the one the client first used. It keys the Initial secrets and the Retry integrity tag
HPHeader protection. The mask applied over the packet number and flag bits, separate from payload encryption
AEADThe authenticated cipher protecting a packet payload
PTOProbe timeout. The timer that fires when nothing has been acknowledged, triggering a probe
RTTRound-trip time. The code keeps a smoothed value, the latest sample, and a minimum
cwndCongestion window, in bytes. ssthresh is the slow-start threshold, BDP the bandwidth-delay product
ECNExplicit congestion notification, the codepoints a router sets to signal congestion without dropping
PMTUPath MTU. The largest datagram that crosses the path without fragmentation
HRRHelloRetryRequest. The server asking the client for a key share it will accept
0-RTT, early dataApplication data sent with the first flight, using keys from a previous session
PSK, epskPre-shared key, and an external one supplied by configuration rather than a prior session
Spin bitA bit flipped once per round trip so passive observers can measure RTT
GSO, GROLinux offloads that send or receive many datagrams in one system call
RICRequired Insert Count, a QPACK field prefix value saying which dynamic table entries a header block needs
Quarter stream idA stream id divided by four, how HTTP/3 datagrams name their stream

This codebase's vocabulary

These are our words, not the RFC's.

TermMeaning
TrainA batch of datagrams arriving as one message, typically from GRO. Processing a train in one pass amortizes the per-event work. See stream_train/2 in quic_connection
RunA sequence of packets that share a shape and can be handled in one step: contiguous stream data on the send side, uniform sizes for GSO. See split_uniform_runs/1 in quic_socket
OpenedA packet that has been decrypted and parsed, before its frames are applied. fold_opened/2 folds a list of them into the state
Recv passOne trip through the receive path for a batch of packets. The recv_pass flag defers ACK and delivery work until the pass ends, so a train produces one flush rather than one per packet
pqueueThe send queue: a bucket per urgency level 0 to 7, RFC 9218 priorities
amp_rx, amp_txBytes received from and sent to an unvalidated address. The anti-amplification limit caps amp_tx at three times amp_rx
Reclaimed streamA closed stream whose state has been dropped, tracked so late frames for it are not mistaken for a new stream
Lean pathA fast path taken when nothing unusual applies, for example a bulk stream with both flow control windows wide open
Shared senderOne process per listener that writes to the socket for many connections, so sends batch together
Sink, download sinkBenchmark harness roles: the sink receives a bulk transfer, the download sink requests one