# Protokoll Hamnet70 implementiert die untersten beiden Schichten des ISO/OSI-Modells: Bitübertragungsschicht und Sicherungsschicht. ## Schichtenmodell ### Bitübertrangunsschicht TODO: Modulation (OFDM? QAM16?) #### Header Auf der Bitübertragungsschicht wird jedem Paket ein Header vorangestellt, der die Synchronisierung und das Auslesen der Paketlänge ermöglicht. Format: _tbd._ ### Sicherungsschicht Ein Faltungscode wird zur Fehlerkorrektur angewendet. Zusätzlich wird eine CRC32 über das komplette Paket berechnet und bei Fehlern das Paket verworfen (wenn der Faltungscode diese Fehler nicht korrigieren konnte). Headerformat: | Word | Bits 31..24 | 23..16 | 15..8 | 7..0 | |------|-------------|--------|-------|------| | 0 | Absender-Rufzeichen (47..16) [1] |||| | 1 | Absender-Rufzeichen (15..0) [1] || Absender-Stations-ID | Empfänger-Stations-ID | | 2 | Empfänger-Rufzeichen (47..16) [1] |||| | 3 | Empfänger-Rufzeichen (15..0) [1] || Next Protocol | Flags | [1] codiert nach [HAM-64](https://rawgit.com/darconeous/ham-addr/master/n6drc-arnce.html) #### Stations-ID Wird verwendet, um mehrere Stationen mit dem selben Rufzeichen zu unterscheiden (analog zu APRS/Packet Radio). #### Next Protocol Im Paket enthaltenes Protokoll: | Wert | Protokoll | |------|-------------------------| | 0x00 | Steuerpaket / Fülldaten | | 0x10 | IPv4 | | 0x20 | IPv6 | | 0x30 | IPX | #### Flags Flags dienen zur Steuerung des Kontrollflusses. In normalen Datenpaketen sind keine Flags gesetzt. Dieses Feld ist eine Oder-Verknüpfung der folgenden Werte: | Wert | Information | |------------|--------------------------------------------| | 0x01 | Anmeldung am Zugangspunkt | | 0x02 | Abmeldung vom Zugangspunkt | | 0x04 | Datenabfrage an verbundene Station | | 0x08 | Leere Bestätigung von verbundener Station | | _sonstige_ | _reserviert_ | | 0x80 | Paket abgelehnt (Station nicht angemeldet) | ### Höhere Schichten Höhere Schichten enthalten meistens das Internet Protocol (IP). ## Verwendete Codierung ### Kanalcodierung Es kommt ein Faltungscode zum Einsatz. Parameter: _tbd._