← RFC

Fallback / Coordinator-Free Access — Measured Result

Status: Stage 2 result. Date: 2026-06-08. Tag: sim-result-v6. Reproduce: cd sim && python3 -m experiments.fallback_schemes (writes fallback_schemes.png).

Coordinator-free fallback: epoch-hash upgrades CSMA, static-hash collapses, TDMA is the ceiling

Tests the graceful-degradation / fallback story (synthesis §8.3; hash-slot-assignment-note.md — Alan's idea): when the INFRA coordinator is present you run TDMA; when it is absent you fall back to a stateless scheme. Which fallback? Four access disciplines on the same hidden-node hub (K mutually-hidden clients, 1 msg/min, LongFast):

K CSMA flood hash-static hash-epoch TDMA (coordinator)
10 0.868 0.952 0.977 0.997
20 0.720 0.857 0.903 0.995
50 0.490 0.203 0.607 0.988

What it shows

  1. Epoch-hash is a strict upgrade over CSMA as the coordinator-free fallback — better at every K (0.98 vs 0.87, 0.90 vs 0.72, 0.61 vs 0.49). It needs no carrier sense, so it works for hidden senders — exactly the case CSMA/CAD cannot help. slot = H(id, frame) mod S reshuffles collisions every frame, so blind retransmit recovers them.
  2. Static-hash is a trap, not a fallback. slot = H(id) mod S gives permanent collisions for ID pairs that hash equal; retransmit can't help (same slot every frame). It is fine at small K but collapses below even CSMA at K=50 (0.203 vs 0.490) — precisely the note's prediction. The lesson: if you hash, hash on the epoch.
  3. The coordinator is the ceiling, and its value is quantified. TDMA (~0.99) assigns unique slots — no birthday collisions — so the epoch-hash → TDMA gap (0.61 → 0.99 at K=50) is exactly what coordination buys. This is the hash-then-coordinator-refine argument: hashing is the floor, the INFRA refines the colliding/active nodes up to the ceiling.

Graceful degradation, framed

These four points are one degradation curve: coordinator present ⇒ TDMA (~99%); coordinator lost ⇒ epoch-hash fallback (still ~90% at K=20, and always > CSMA); worst case ⇒ CSMA (the Meshtastic-grade floor). So the design is never worse than a Meshtastic flood network, and strictly better wherever a coordinator — or even just a shared epoch — exists (synthesis §5). The same frame structure carries all three (one TDMA-schedule-plus-contention frame, mode-and-handoff-note.md); switching between them is the spec's job, not a separate protocol.

Honest notes

Bottom line: the coordinator-free fallback should be epoch-hash, not CSMA and never static-hash; it keeps hidden-node delivery well above the CSMA floor, and a coordinator lifts it the rest of the way to ~99%.