Cross-reference
Where it enters the lineage
This concept is first developed in § m3-l4 — ICE: The State Machine That Saved P2P. The historical problem there matters: WebRTC components are not arbitrary layers; each is a repair for a specific limit in the system before it.
The complete RFC 8445 machine: candidates, priorities, checklists, roles, nomination — plus Trickle ICE, mDNS privacy candidates, consent freshness, and ICE restarts.
ICE gathers host, server-reflexive, peer-reflexive, and relay candidates, forms pairs, runs ordered connectivity checks, and nominates a working pair. Trickle sends candidates incrementally; a restart changes credentials and repeats path selection.
ICE candidates describe possible transport addresses, while connectivity checks prove which pairs actually work. The selected pair—not the most attractive-looking candidate—determines whether media is direct, server-reflexive, or relayed.
Separate the control plane from the data plane, then name the clock, identifier, and unit attached to each observation. Ask what is negotiated, what is measured live, and what is merely configured. A robust explanation predicts both a successful trace and the characteristic failure trace.
In an application, this concept does not stand alone. It participates in a chain of negotiation, transport, media processing, and feedback. The practical boundary is the API, SDP attribute, RTP/RTCP field, or stats record where the browser exposes it. Use that boundary in tests: feed controlled input, observe the named output, and verify fallback behavior when the preferred path is unavailable.
A useful study method is to draw three columns: configured, negotiated, and observed. Put application preferences and constraints in the first, the answer's accepted parameters in the second, and live packet, state, or stats evidence in the third. Disagreements between columns are diagnostic information. They reveal fallback, unsupported capability, stale state, or a mistaken assumption about which endpoint controls the behavior. This method scales from a single codec preference to an ICE restart or a multi-layer SFU route.
Diagnostic discipline
Do not infer success from configuration alone. A codec in capabilities is not necessarily negotiated; a candidate in SDP is not necessarily selected; a connected peer connection is not necessarily receiving decodable frames. Prefer the narrowest live evidence.
| Question | Evidence |
|---|---|
| Was it negotiated or selected? | Inspect the answer and the live stats graph. |
| Did the state transition complete? | Record ordered events with timestamps. |
| Are counters moving in the expected direction? | Compute deltas; never compare unrelated cumulative samples. |
| What happens beyond the latency or capacity budget? | Inject delay, loss, reordering, or constrained bandwidth. |
WebRTC: From First Principles · Concept reference