2019-01-01 19:01:32 +01:00
|
|
|
# Protokoll
|
|
|
|
|
|
|
|
Hamnet70 implementiert die untersten beiden Schichten des ISO/OSI-Modells:
|
|
|
|
Bitübertragungsschicht und Sicherungsschicht.
|
|
|
|
|
|
|
|
## Schichtenmodell
|
|
|
|
|
|
|
|
### Bitübertrangunsschicht
|
|
|
|
|
|
|
|
TODO: Modulation (OFDM? QAM16?)
|
|
|
|
|
2019-05-09 00:04:16 +02:00
|
|
|
#### Header
|
|
|
|
|
|
|
|
Auf der Bitübertragungsschicht wird jedem Paket ein Header vorangestellt, der
|
|
|
|
die Synchronisierung und das Auslesen der Paketlänge ermöglicht.
|
|
|
|
|
|
|
|
Format: _tbd._
|
|
|
|
|
2019-01-01 19:01:32 +01:00
|
|
|
### 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 |
|
|
|
|
|
2019-05-09 00:04:16 +02:00
|
|
|
[1] codiert nach [HAM-64](https://rawgit.com/darconeous/ham-addr/master/n6drc-arnce.html)
|
2019-01-01 19:01:32 +01:00
|
|
|
|
|
|
|
#### 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 |
|
|
|
|
|
2019-01-02 16:18:13 +01:00
|
|
|
#### 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) |
|
|
|
|
|
2019-01-01 19:01:32 +01:00
|
|
|
### Höhere Schichten
|
|
|
|
|
|
|
|
Höhere Schichten enthalten meistens das Internet Protocol (IP).
|
|
|
|
|
|
|
|
## Verwendete Codierung
|
|
|
|
|
2019-05-09 00:04:16 +02:00
|
|
|
### Kanalcodierung
|
2019-01-01 19:01:32 +01:00
|
|
|
|
2019-05-09 00:04:16 +02:00
|
|
|
Es kommt ein Faltungscode zum Einsatz.
|
2019-01-01 19:01:32 +01:00
|
|
|
|
2019-05-09 00:04:16 +02:00
|
|
|
Parameter: _tbd._
|