// interfaces

Network interfaces

Een interface is de manier waarop Reticulum bytes verstuurt: via TCP, LoRa, BLE, serial of iets anders. Reticulum behandelt ze allemaal op dezelfde manier, dus je kunt op een node meerdere verbindingen tegelijk gebruiken.

Interface families

Reticulum interfaces vallen grofweg in vijf families. Meestal begin je met een of twee soorten en breid je later pas uit.

Familie Interfaces Wanneer
IP-based TCPClient, TCPServer, UDP, AutoInterface, Backbone, I2P Internet, LAN, anonieme verbindingen
LoRa / RNode RNodeInterface, RNodeMulti Off-grid radio, long range mesh
Bluetooth BLE RNode bridge, Bluetooth Peer Mobiel, radio zonder kabel, telefoon-naar-telefoon
Serial / Packet radio Serial, KISS, AX.25 KISS, HDLC, Pipe Bestaande radiohardware, TNC's, modems
Overig Pipe Bytes door elk subprocess met stdin/stdout

IP, LAN en I2P

Interface Wat het doet Config voorbeeld
TCPClientInterface Uitgaande TCP verbinding naar een hub, publieke server of transport node. Auto-reconnect bij verbreken. target_host = voorbeeld.nl
target_port = 4242
TCPServerInterface Accepteert inkomende TCP verbindingen. Draai op een host met routeerbaar adres of achter port-forward. listen_ip = 0.0.0.0
listen_port = 4242
AutoInterface Zero-config LAN discovery via IPv6 multicast. Vindt automatisch andere nodes op hetzelfde subnet. Discovery op UDP 29716, data op UDP 42671. enabled = true
group_id = reticulumnet
Backbone High-throughput TCP interface voor WAN links. Bedoeld voor infrastructuur en server rollen. target_host = backbone.example
target_port = 4243
I2P Transport via het I2P overlay netwerk. Verbergt IP-adressen aan beide kanten. Trager maar anoniem. i2p_tunneled = yes

AutoInterface werkt niet op managed switches die multicast droppen, hotel- of captive-portal-wifi die clients isoleert, en de meeste commerciƫle VPN's zonder IPv6 multicast. Gebruik op die netwerken liever TCPClientInterface.

LoRa en RNode

RNode interfaces verbinden via USB serial, Android USB-OTG, Bluetooth LE of een TCP bridge met LoRa hardware. De radio doet de modulatie, Reticulum doet de rest. Zie LoRa netwerk voor frequentie-instellingen en de hardware pagina voor ondersteunde boards.

RNode over TCP is niet hetzelfde als een TCPClientInterface. Een TCPClient verbindt met een andere Reticulum node. RNode TCP verbindt met de radio's KISS control stream: packets gaan nog steeds over LoRa op de ether.

# RNode via USB

[[LoRa Radio]]

type = RNodeInterface

port = /dev/ttyUSB0

frequency = 869463000

bandwidth = 125000

spreadingfactor = 8

codingrate = 5

# RNode via TCP (radio bij het raam via WiFi)

[[LoRa Radio WiFi]]

type = RNodeInterface

port = tcp://192.168.1.50:7633

frequency = 869463000

bandwidth = 125000

spreadingfactor = 8

codingrate = 5

Bluetooth

Twee Bluetooth dialecten die niet uitwisselbaar zijn:

Type Wat het doet Hardware nodig
BLE RNode bridge Verbindt een telefoon draadloos met een LoRa radio. KISS frames over BLE in plaats van USB. Dezelfde radio, alleen een ander transport naar het modem. BLE-equipped RNode of Ratdeck
Bluetooth Peer Directe telefoon-naar-telefoon of laptop-naar-telefoon verbinding. Vormt een Reticulum link zonder radio, router of internet. Geen, alleen BLE op beide apparaten

Koppelen: zet de RNode in pairing mode (lang indrukken linker knop tot het scherm een 6-cijferige passkey toont), scan in de app, voer de passkey in. Bonding is persistent: volgende keer verbindt de app automatisch.

Serial en packet radio

Serial is het laagste gemeenschappelijke transport. Werkt over koper, RS-232 kabels, AX.25 packet radio op amateurbanden, LoRa modems op ISM banden en willekeurige half-duplex links. Geen DHCP, geen router, geen provider: twee eindpunten en een framer ertussen.

Interface Wanneer
SerialInterface Directe point-to-point kabel, hardware die geen KISS of HDLC spreekt. Minimale overhead.
KISSInterface Hardware TNC's, LoRa modems met KISS firmware, alles met het label "KISS-compatible".
AX.25 KISS Amateur radio gateways. AX.25 framing met callsigns over KISS.
HDLC / Pipe Raw HDLC framing of bytes door een subprocess met stdin/stdout.

Beide kanten moeten exact dezelfde parameters gebruiken: baudrate, databits, parity, stopbits. Een baudrate mismatch produceert stilte. Een parity mismatch produceert rommel die eruit ziet als stilte nadat de CRC faalt.

Interface modes en IFAC

Elke interface kan een mode krijgen die bepaalt hoe het verkeer behandeld wordt. En met IFAC (Interface Access Codes) kun je een interface afsluiten met een gedeelde passphrase, zodat alleen nodes met de juiste sleutel erop kunnen.

Concept Uitleg
mode = gateway Gebruik op de client-facing kant van een node die ook een ander segment brugt (bijv. LoRa naar internet).
mode = boundary Gebruik op de wider-network kant wanneer je announce flow wilt beperken.
IFAC Signeert packets met een network_name + passphrase. Ontvangers zonder match droppen de packets. Segmenteert het netwerk maar vervangt geen end-to-end encryptie.
Announce Cap Standaard 2% van de interface bandbreedte. Voorkomt dat routing updates payload verkeer verdringen op langzame links.