// 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.
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 |
| 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.
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
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 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.
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. |