1.1 KiB
1.1 KiB
Packet Flow & Allocation Handling
Komponenten
- UDP Listener (
udp_reader_loop): Empfängt STUN/TURN Nachrichten aufbindAdresse. - AllocationManager: Verwaltet Relay-Sockets je Client (
allocate_for). - TLS Listener (
tls::serve_tls): Optional, Wrappt dieselbe Logik über TCP/TLS.
Ablauf (UDP)
UdpSocket::recv_fromliest Paket,parse_messageprüft STUN-Header.- Enthält
MESSAGE-INTEGRITY→ Username wird aus CredentialStore geladen und verifiziert. - Bei
ALLOCATE→AllocationManagererstellt Relay-Port, sendetXOR-RELAYED-ADDRESSzurück. - Ohne gültige Credentials → Antwort
401 UnauthorizedmitNONCE.
Ablauf (Relay)
- Für jedes Allocation wird ein Task gespawnt, der Pakete vom Relay-Socket liest und sie zurück zum Client sendet.
- TODO: Channel-Bindings und PeerData-Handling implementieren.
TODOs
- Allocation Timeout & Refresh Requests.
- Permission Handling (CreatePermission).
- Bandbreitenlimits, Statistik (Prometheus).
- Shared Secret Mechanismus für Long-Term Credentials (RFC 5389/5766).