// 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.
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.
| Type | Encryptie | Multi-hop | Gebruik |
|---|---|---|---|
| Single | Asymmetrisch, per-packet ECDH | Ja | Privé applicatie-eindpunten, LXMF inboxen |
| Link | Ephemeral ECDH sessie | Ja | Betrouwbare channels, requests, resources |
| Group | Symmetrisch, pre-shared key | Nee | Lokaal groepsverkeer met gedeelde sleutel |
| Plain | Geen | Nee | Lokale publieke broadcast of discovery |
Alleen Single en Link destinations worden over meerdere hops getransporteerd. Plain en Group zijn bewust lokaal/direct.
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.
| Veld | Doel |
|---|---|
| Destination hash | Het 16-byte adres dat aangekondigd wordt |
| Public key materiaal | X25519 en Ed25519 public keys voor de identity |
| Name hash | Compact hash van de applicatie destination naam |
| Random hash | Versheid-materiaal voor announce validatie |
| Ratchet key | Optioneel: huidige ratchet public key |
| Signature | Ed25519 handtekening die bewijst dat de announce bij de identity hoort |
| Application data | Optioneel: metadata zoals display hints of capabilities |
| Regel | Effect |
|---|---|
| Duplicaat filtering | Al geziene announces worden genegeerd |
| Hop limiet | Announces stoppen na het geconfigureerde maximum (standaard 128) |
| Bandbreedte cap | Announces gebruiken maximaal 2% van de interface bandbreedte |
| Willekeurige vertraging | Re-broadcasts worden vertraagd om gesynchroniseerde floods te voorkomen |
| Locality prioriteit | Announces met minder hops worden eerst verzonden wanneer bandbreedte schaars is |
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 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.