// architectuur

Protocol architectuur

Hoe Reticulum destinations vindt, paden leert en verkeer doorstuurt. Dit is de technische verdieping van Wat is Reticulum? voor lezers die willen begrijpen wat er onder de apps gebeurt.

Destination-based addressing

Reticulum routeert niet naar hosts, subnetten, poorten of DNS namen. Het routeert naar destination hashes. Een destination wordt aangemaakt uit een applicatienaam, optionele aspects en, voor Single destinations, een identity. Dat materiaal wordt gehasht tot een 16-byte adres, weergegeven als 32 hex karakters.

Destination types

Type Encryptie Multi-hop Gebruik
SingleAsymmetrisch, per-packet ECDHJaPrivé applicatie-eindpunten, LXMF inboxen
LinkEphemeral ECDH sessieJaBetrouwbare channels, requests, resources
GroupSymmetrisch, pre-shared keyNeeLokaal groepsverkeer met gedeelde sleutel
PlainGeenNeeLokale publieke broadcast of discovery

Alleen Single en Link destinations worden over meerdere hops getransporteerd. Plain en Group zijn bewust lokaal/direct.

Announces

Een announce maakt een destination vindbaar op het netwerk. Transport nodes die een announce horen slaan op waar die vandaan kwam, verhogen de hop count en kunnen hem opnieuw uitzenden. Zo ontstaan paden zonder centraal register of vaste routeringstabel.

Wat een announce bevat

Veld Doel
Destination hashHet 16-byte adres dat aangekondigd wordt
Public key materiaalX25519 en Ed25519 public keys voor de identity
Name hashCompact hash van de applicatie destination naam
Random hashVersheid-materiaal voor announce validatie
Ratchet keyOptioneel: huidige ratchet public key
SignatureEd25519 handtekening die bewijst dat de announce bij de identity hoort
Application dataOptioneel: metadata zoals display hints of capabilities

Announce propagatie regels

Regel Effect
Duplicaat filteringAl geziene announces worden genegeerd
Hop limietAnnounces stoppen na het geconfigureerde maximum (standaard 128)
Bandbreedte capAnnounces gebruiken maximaal 2% van de interface bandbreedte
Willekeurige vertragingRe-broadcasts worden vertraagd om gesynchroniseerde floods te voorkomen
Locality prioriteitAnnounces met minder hops worden eerst verzonden wanneer bandbreedte schaars is

Routing

Reticulum routing is next-hop routing gebouwd uit announces:

1 Node A stuurt een announce uit op zijn interfaces.
2 Een transport node hoort de announce en slaat op: "A is bereikbaar via deze buur op deze interface."
3 De transport node zendt de announce opnieuw uit met een verhoogde hop count.
4 Andere transport nodes herhalen dit proces tot de announce het bereikbare mesh heeft bereikt.
5 Wanneer Node B naar A stuurt, zoekt het de destination hash op en stuurt het packet naar de volgende hop. Elke transport node herhaalt dit lokaal tot het packet aankomt.

Als er geen pad bestaat, kan de afzender een path request sturen of wachten tot de destination opnieuw een announce stuurt.

Transport en metadata

Transport nodes sturen packets door zonder plaintext toegang. Ze zien wel transport metadata die nodig is voor forwarding: interface activiteit, timing, packet grootte, hop counts en destination hashes.

Reticulum packets bevatten geen bronadressen, dus een packet zegt niet van wie het komt. Traffic analysis op de metadata hierboven blijft wel mogelijk.