| |
DL1RNQ > AX25 17.11.94 23:47l 404 Lines 19175 Bytes #-11639 (0) @ DL
BID : 16B402DB0BRB
Read: DG8MGW DG4GO DK9OS DF8TS DG2GML DL1MAZ DG5MJS DK1DH DG8GAD DL3MDI DG6MAY
Read: DL8MAQ DL8MAS DG2MJT DG2MJM DL1MFG DJ8IB DG2MNF DK1MBY DH1NFJ GUEST
Read: DJ2RT DK2ZO
Subj: AX25 Beschreibung 1/5
Path: DB0KCP<DB0AAB<DB0FSG<DB0LNA<DB0RGB<DB0LAN<DB0ABH<DB0BOX<DB0MRW<OK0PKL<
DB0JES<DB0BRB
Sent: 941116/1248z @DB0BRB.#BRB.DEU.EU [Brandenburg,TheBox1.9a:DL1RNQ]
de DL1RNQ @ DB0BRB.#BRB.DEU.EU
to AX25 @ DL
AX.25 Link-Layer Protokoll Spezifikation
A X X 222 55555 L 222 V V 222
A A X X 2 2 5 L 2 2 V V 2 2
A A X X 2 5 L 2 V V 2
AAAAA X 2 555 L 2 V V 2
A A X X 2 5 L 2 V V 2
A A X X 2 5 5 L 2 V V 2
A A X X O 22222 555 LLLLL 22222 V 22222
AX.25 AMATEUR PACKET-RADIO LINK-LAYER PROTOKOLL VERSION 2.0
Uebersetzt und bearbeitet von DK8HI als Beilage zum PRIMUS-
Handbuch. (c) fuer die Uebersetzung HPRG 1986.
AX.25 Link-Layer Protokoll Spezifikation
========================================
Vorwort
Diese Beschreibung bezieht sich auf das AX.25 Level 2 Version 2
Protokoll des Amateurfunkdienstes /1/. Ein Protokoll ist ein Satz von
Regeln, die den zuverlaessigen Transport von Daten zwischen zwei
Punkten sicherstellen sollen.
Die Bezeichnung AX.25 fuer dieses Protokoll bedeutet Amateur-X.25,
d.h. es basiert auf dem CCITT X.25 Protokoll /2/ und wurde fuer die
spezielle Umgebung des Amateurfunkdienstes angepasst und erweitert.
Level 2 (Ebene 2) kennzeichnet die Schicht des ISO 7-Schichten Modells,
die das Verfahren zum Austausch von Nachrichten zwischen zwei Stationen
beschreibt (Link-Layer). Der Vollstaendigkeit halber wurde hier auch
die Beschreibung der Ebene 1 (physical Layer) mit aufgenommen. Die
Beschreibung der Ebene 1 legt die physikalischen, elektrischen und
verfahrensmaessigen Eigenschaften fest, um die physikalische Verbindung
zwischen zwei Stationen herzustellen, zu erhalten und wiederaufzuheben.
Dazu gehoeren im Fall des Amateurfunks die Sendefrequenzen,
Modulationsarten und AFSK-Toene.
Die Version 2 dieses Protokolls enthaelt gegenueber der aelteren
Version eine genauere Definition der Kommando-/Antwortstruktur und
die Moeglichkeit, die Rufzeichen von bis zu 8 Digipeatern (von Digital-
Repeater) im Adressfeld anzugeben. (Die Originalfirmware des TAPR-TNC-1
verwendet die Version 1, kann aber trotzdem schon 8 Digipeaterrufzeichen
verarbeiten.)
1. Bedingungen fuer die Verbindung der Ebene 1
Als Modulationsverfahren wird, unabhaengig von der Modulationsart, NRZI
verwendet (zumindest bei Uebertragungsgeschwindigkeiten bis 1200 Bd).
Dabei wird ein zu uebertagenes 0-Bit als ein Wechsel zwischen den Ton-
oder Sendefrequenzen, ein 1-Bit als kein Wechsel uebertragen. Demnach
ist es nicht sinnvoll von Mark- oder Spacetoenen zu sprechen. Die
Aussendung kann ebensogut mit dem hoeheren, als auch mit dem niedrigeren
Ton beginnen.
1.1 Frequenzen oberhalb von 144 MHz
In diesem Frequenzbereich werden z.Zt. fast ausschliesslich
FM-Funkgeraete mit einem Kanalabstand von 25 kHz verwendet. In der
Modulationsart F2B werden die Daten mit 1200 Baud uebertragen. Die
AFSK-Toene entsprechen denen der Bell-202-Norm mit 1200 und 2200 Hz.
Auf Frequenzen oberhalb des 2-Meter-Bandes ist es geplant, die Daten
auch mit hoeheren Geschwindigkeiten (9600 Bd, 56 oder 64 kBd) in der
Modulationsart F1B zu uebertragen.
1.2 Frequenzen unterhalb von 30 MHz
Fuer Verbindungen auf Kurzwelle wird die Modulationsart F1B mit einem
Frequenzhub von 200 Hz und einer Geschwindigkeit von 300 Bd verwendet.
Um den Einfluss von Stoerungen klein zu halten, wird zudem oft die
Laenge des Informationsfeldes auf 64 Bytes oder weniger begrenzt.
2. AX.25 Link-Layer Protokoll Spezifikation
2.1 Rahmen und Anwendungbereich
Das AX.25 Link-Layer Protokoll wurde entworfen, um einen zuverlaessigen
Transport von Daten zwischen zwei sendenden Endpunkten zu erreichen,
unabhaengig von anderen Protokollebenen, die evtl. implementiert sein
koennten, insbesondere unabhaengig von den verschiedenen Typen von
Kommunikationsverbindungen der Ebene 1. So wie es definiert ist, kann
dieses Protokoll ebenso gut in Halb- wie Vollduplexverbindungen des
Amateurfunks arbeiten und ebenso gut zwischen zwei einzelnen Amateur
Packet-Radio Stationen oder einer einzelnen Station und einem
Multiport-Controller.
Dieses Protokoll entspricht den ISO Empfehlungen 3309, 4335
(einschliesslich DAD 1 und 2) und 6256 High-level Data Link Control
(HDLC) und benutzt einiges aus der in diesen Dokumenten benutzten
Terminologie. Es entspricht ebenso ANSI X3.66, welches ADCCP, balanced
mode, beschreibt.
Dieses Protokoll haelt sich an die CCITT X.25 Empfehlung, mit der
Ausnahme eines erweiterten Adressfeldes und des zusaetzlich
aufgenommenen unnumerierten Informations- (UI) Blocks. Es folgt ebenso
den Prinzipien der CCITT Empfehlung Q.921 (LAPD) im Gebrauch von
mehreren Verbindungen, die sich, unterschieden durch das Adressfeld,
einen einzigen, mehrfach verwendeten Uebertragungskanal teilen.
Dieses Protokoll ermoeglicht mehr als eine Link-Layer Verbindung pro
Geraet, falls das Geraet dafuer ausgelegt ist.
Dieses Protokoll verhindert keine Selbst-Verbindungen. Eine
Selbst-Verbindung erhaelt man, wenn ein Geraet eine Verbindung
aufbaut, mit der eigenen Adresse sowohl fuer den Absender, als auch
fuer den Empfaenger des Datenuebertragungsblocks.
Die meisten Link-Layer Protokolle nehmen an, dass ein primaeres (oder
Meister-) Geraet (normalerweise DUeE oder Datenuebertragungseinrichtung
genannt, im Englischen DCE, data circuit-terminating equipment) mit
einem oder mehreren sekundaeren Geraeten (DEE, Datenendeinrichtungen,
DTE data terminating equipment) verbunden ist. Diese Art des Betriebes
mit nicht gleichberechtigten Stationen ist im Amateurfunk unvorteilhaft.
Demgegenueber wird im AX.25-Protokoll angenommen, dass beide Enden der
Verbindung gleichberechtigt sind. Dadurch entfallen die zwei
verschiedenen Klassen der Geraete. In dieser Protokollbeschreibung
wird der Ausdruck DXE (Datenschalteinrichtung, data switching equipment)
gebraucht, um die gleichberechtigten Arten von Geraeten zu beschreiben,
die man im Amateur-Packet-Radio findet.
2.2 Aufbau des Datenuebertragungsblocks
Link-Layer Packet-Radio Uebertragungen werden in
Datenuebertragungsblocks (DUe-Blocks, englisch frames) ausgesendet.
Jeder Block besteht aus mehreren kleineren Gruppen, Felder genannt.
Abb. 1 zeigt den Aufbau der drei grundlegenden Typen von Blocks. Man
beachte, dass hier das zuerst uebertragene Bit links steht.
zuerst uebertragenes Bit
|
------------------------------------------------------------
| Flag | Adresse | Control | FCS | Flag |
|----------------------------------------------------------|
| 01111110 | 112...560 Bits | 8 Bits | 16 Bits | 01111110 |
------------------------------------------------------------
Abb. 1A - Aufbau von U und S Blocks
zuerst uebertragenes Bit
|
-------------------------------------------------------------------------------
| Flag | Adresse | Control| PID | Info. | FCS | Flag |
|-----------------------------------------------------------------------------|
| 01111110 | 112...560 Bits | 8 Bits | 8 Bits | N*8 Bits | 16 Bits | 01111110 |
-------------------------------------------------------------------------------
Abb. 1B - Aufbau von Informationsblocks
Sowohl in /1/ als auch in /2/ werden die Gruppen von 8 Bits als Oktett
(engl.: octet) bezeichnet, um anzudeuten, dass HDLC als bitorientiertes
Uebertragungsverfahren unabhaengig von einer Bytestruktur ist. In dieser
Uebersetzung wurde trotzdem das Wort "Byte" verwendet, weil im AX.25
zunaechst nur die Uebertragung von Datenbytes vorgesehen ist. Im Prinzip
ist jedoch auch im AX.25 die Uebertragung von Daten moeglich, die nicht
als 8-bit-Bytes vorliegen. In diesem Fall werden die Bits ohne
Beachtung der Bytegrenzen in die I-Felder eingetragen und auf eine
durch 8 teilbare Anzahl aufgefuellt (siehe die Forderung im naechsten
Absatz).
Jedes Feld besteht aus einer ganzen Zahl von Bytes und erfuellt die im
Folgenden beschriebenen Funtionen.
2.2.1 Blockbegrenzung (Flag)
Das Blockbegrenzungszeichen (Flag) ist ein Byte lang und erscheint am
Anfang und am Ende eines Blocks. Ein einzelnes Flag kann gleichzeitig
das Ende des vorhergehenden und den Anfang des folgenden Blocks
markieren. Ein Flag besteht aus einer Null, gefolgt von sechs Einsen,
gefolgt von einer weiteren Null (01111110 = 7E hex). Um zu verhindern,
dass diese Folge irgendwo innerhalb eines Blocks auftritt, verwendet
man das sogenannte Bit-Stuffing (siehe 2.2.6).
2.2.2 Adress-Feld
Das Adress-Feld wird verwendet, um sowohl den Absender als auch den
Empfaenger des Blocks zu kennzeichnen. Zusaetzlich enthaelt das
Adress-Feld die Kommando/Antwort-Informationen sowie die Angaben fuer
den Betrieb ueber Level-2-Digipeater.
Die Kodierung des Adressfeldes wird in 2.2.13 genauer beschrieben.
2.2.3 Kontrollfeld
Das Kontrollfeld (Steuerfeld) wird benutzt, um den Typ des gerade
uebertragenen Blocks anzuzeigen und um den Status der Level-2-Verbindung
zu kontrollieren. Es ist ein Byte lang, und seine Kodierung wird in
2.3.2.1 besprochen.
2.2.4 PID-Feld
Das Protokoll-Identifier-(PID-)Feld soll nur in Informationsblocks (I
und UI) erscheinen. Es bestimmt, welche Art von Layer-3-Protokoll, wenn
ueberhaupt, benutzt wird.
Das PID-Feld zaehlt bei der Laenge des Informations-Feldes nicht mit.
Es ist wie folgt kodiert:
M L (Das LSB ist das zuerst uebertragene Bit)
S S
B B
yy01yyyy AX.25 Layer 3 implementiert.
yy10yyyy AX.25 Layer 3 implementiert.
11001100 Internet Protokoll Datagramm Layer 3 implementiert.
11001101 Adress Resolution Protokoll Layer 3 implementiert.
11001111 NET/ROM Protokoll Layer 3/4 implementiert.
11110000 Kein Layer 3 implementiert.
11111111 Fluchtsymbol, das naechste Byte enthaelt weitere Layer 3
Protokoll Informationen.
Wobei y entweder 0 oder 1 sein kann.
Anmerkung:
Alle nicht oben aufgelisteten Formen yy00yyyy und yy11yyyy sind fuer
zukuenftige Layer 3 Protokolle reserviert. Die Zuordnug dieser Kodes
ist Sache einer Uebereinkunft der Funkamateure. Es wird empfohlen,
dass die Entwickler von Layer-3-Protokollen sich mit dem ARRL Ad Hoc
Committee on Digital Communications wegen vorgeschlagener Kodierungen
in Verbindung setzen.
2.2.5 Informations-Feld
Das Informations-(I-)Feld wird benutzt, um Benutzerdaten von einem
Ende der Verbindung zum anderen zu uebertragen. I-Felder sind nur in
drei Typen von Frames zulaessig: dem I-Frame, dem UI-Frame und dem
FRMR-Frame. Das I-Feld darf maximal 256 Bytes lang sein und muss immer
eine ganze Zahl von Bytes enthalten. Diese Einschraenkungen treffen zu,
bevor die in 2.2.6 beschriebenen Null-Bits eingefuegt werden. Die
I-Felder sollen ohne jede Veraenderung entlang der Uebertragunsstrecke
transportiert werden, mit der Ausnahme, dass die in 2.2.6 beschriebenen
Null-Bits eingefuegt werden, die noetig sind, damit keine Flag-Bytes
innerhalb des Frames auftreten.
Das Informationsfeld der I- oder der UI-Blocks enthaelt die zu
uebertragenden Pakete. Ohne eine hoehere Protokollschicht sind dieses
die Textpakete, die von einer Station zur anderen gesendet werden
sollen. Anderenfalls sind es die verschiedenen Typen von Paketen der
hoeheren Protokollschichten.
2.2.6 Bit-Stuffing
Um sicherzustellen, dass die Bitfolge eines Flag-Bytes nirgends
innerhalb eines Blocks auftritt, soll die sendende Station innerhalb
eines Blocks nach jeweils 5 aufeinanderfolgenden Eins-Bits ein Null-Bit
einfuegen. Die empfangende Station soll jedes Null-Bit, dass nach einer
Folge von genau 5 aufeinanderfolgenden Eins-Bits auftritt, wieder aus
dem Datenstrom entfernen.
2.2.7 Blockpruefzeichenfolge
Die Blockpruefzeichenfolge (Frame-Check Sequence, FCS) ist eine
sechzehn bit lange Zahl, die vom Sender und Empfaenger des Blocks
berechnet wird. Sie soll sicherstellen, dass der Block auf dem Weg vom
Sender zum Empfaenger nicht durch das Uebertragungsmedium verfaelscht
wurde. Sie soll in Uebereinstimmung mit der ISO Empfehlung 3309 (HDLC)
berechnet werden.
2.2.8 Uebertragunsreihenfolge der Bits
Mit Ausnahme des FCS-Feldes sollen alle Felder eines AX.25-Blocks mit
dem niedrigwertigsten Bit der Bytes zuerst ausgestrahlt werden. Die FCS
soll mit dem hoechstwertigsten Bit zuerst ausgestrahlt werden.
2.2.9 Ungueltige Blocks
Jeder aus weniger als 136 Bits (exklusive der Flags am Anfang und am
Ende) bestehende, oder nicht aus einer ganzen Anzahl von Bytes
bestehende Block soll von dem Link-Layer als ungueltiger Block
angesehen werden. Siehe dazu auch 2.4.4.4.
2.2.10 Block-Abbruch
Wenn die Aussendung eines Blocks vorzeitig abgebrochen werden muss,
sollen mindestens 15 aufeinanderfolgende Eins-Bits, ohne Bit-Stuffing,
gesendet werden.
2.2.11 Fuellzeichen zwischen Blocks
Wann immer es fuer eine DXE noetig ist, den Sender eingeschaltet zu
lassen, ohne einen Block auszusenden, soll die Zeit zwischen den Blocks
mit aufeinanderfolgenden Flags gefuellt werden. (Auch in der Zeit nach
dem Hochtasten des Senders bis zur Aussendung des ersten Blocks sollen
aufeinanderfolgende Flags gesendet werden.)
2.2.12 Zustaende am Uebermittlungsabschnitt
Im Amateur Packet-Radio findet man vor allem Halbduplexverbindungen mit
mehrfacher Ausnutzung des Uebertragungskanals. Die Zustaende am
Uebermittlungsabschnitt lassen sich deshalb nicht so klar definieren
wie im X.25 Protokoll. Im Originaltext der AX.25-Definition steht an
dieser Stelle deshalb nur ein kurzes "nicht anwendbar".
2.2.13 Kodierung des Adressfeldes
Im Adressfeld eines Blocks sollen sowohl das Rufzeichen des Empfaengers
als auch das des Absenders dieses Blocks enthalten sein. Mit Ausnahme
des Zweitstations-ID (Secondary Station Identifier, SSID), soll das
Adressfeld nur aus Grossbuchstaben und Ziffern des ASCII-Codes bestehen.
Falls Level-2-Digipeater benutzt werden, sollen auch ihre Rufzeichen mit
im Adressfeld enthalten sein.
AX.25 verwendet das erweiterte Adressfeld nach DIN 66221. Dabei kann
das HDLC Adressfeld eine beliebige Anzahl Bytes lang sein. Das
niedrig-wertigste Bit eines Adress-Bytes wird als Erweiterungsbit
verwendet. Ist dieses Bit Null, so folgt ein weiteres Adressbyte, ist
es Eins, so kennzeichnet es das letzte Byte im Adressfeld. Um fuer
dieses Erweiterungsbit Platz zu schaffen, wird das Rufzeichen um ein
Bit nach links verschoben. (Im AX.25 ist die Anzahl der Bytes im
Adressfeld immer durch 7 teilbar. Das kuerzeste Adressfeld besteht aus
14 Bytes (Sender- und Empfaengerrufzeichen), das laengste aus 70 Bytes
(Sender-, Empfaenger- und 8 Digipeaterrufzeichen).)
2.2.13.1 Kodierung des Adressfeldes ohne Digipeater
Falls man keine Level-2-Digipeater verwendet, wird das Adressfeld wie
in Abb. 2 gezeigt kodiert. Die Empfaenger-Adresse enthaelt das
Rufzeichen der Station, an die das Frame gesendet wird, die
Absender-Adresse das Rufzeichen der Station, die das Frame ausgesandt
hat. Diese beiden Rufzeichen definieren nur die beiden Endpunkte einer
Level-2-Verbindung.
Erstes ausgestrahltes Byte
|
--------------------------------------------------
| Adressfeld eines Blocks |
|------------------------------------------------|
| Empfaenger-Adresse | Absender-Adresse |
|------------------------------------------------|
|A1 A2 A3 A4 A5 A6 A7 | A8 A9 A10 A11 A12 A13 A14|
--------------------------------------------------
Abb. 2 -- Kodierung des Adressfeldes ohne Digipeater
A1 bis A14 sind die vierzehn Bytes, aus denen die beiden Adressubfelder
des Adressfeldes bestehen. Die Empfaenger-Subadresse ist 7 Bytes lang
und wird zuerst ausgestrahlt. Diese Adressfolge gibt dem Empfaenger die
Moeglichkeit, das Empfaenger-Adresssubfeld zu pruefen, waehrend er den
Rest des Frames empfaengt. Das Absender-Adresssubfeld wird dann
anschliessend in den Bytes A8 bis A14 uebertragen. Diese Reihenfolge
entspricht auch der im Funkdienst ueblichen Praxis, zuerst das
Rufzeichen des Empfaengers, dann das des Absenders zu nennen. Beide
Subfelder sind in der gleichen Weise kodiert, mit der Ausnahme, das im
letzten Byte der Absender-Adresse das HDLC-Erweiterungsbit gesetzt ist.
2.2.13.1.1 Kodierung des Empfaenger-Subfeldes
Abb. 3 zeigt den Aufbau des Emfaenger-Subfeldes, das in den Bytes A1
bis A7 des Adressfeldes uebertragen wird. In der binaeren Darstellung
befindet sich das zuerst uebertragene Bit in der rechten oberen Ecke.
----------------------------------
| Byte | ASCII | Binaer | Hex. |
|--------------------------------|
| A1 | D | 10001000 | 88 |
| A2 | L | 10011000 | 98 |
| A3 | 3 | 01100110 | 66 |
| A4 | H | 10010000 | 90 |
| A5 | C | 10000110 | 86 |
| A6 | M | 10011010 | 9A |
| A7 | SSID | CRRSSID0 | |
----------------------------------
Bit Position --> 76543210
Abb. 3 -- Kodierung des Empfaenger-Subfeldes
Als weitere Erklaerung dazu:
1. Das erste Byte (A1) ist das zuerst ausgestrahlte.
2. Das Bit 0 jedes Bytes ist das Adresserweiterungsbit des HDLC. Es ist
Null fuer alle Bytes, bis auf das letzte Adressbyte. Im letzten
Adressbyte wird es auf Eins gesetzt.
3. Das Rufzeichen soll nur aus den Grossbuchstaben und Ziffern des
ASCII-Codes bestehen, jedoch um ein Bit zum hoeherwertigen
verschoben werden, um das niedrigwertigste Bit fuer das
Erweiterungsbit freizuhalten. Ist das Rufzeichen weniger als 6
Zeichen lang, so soll es mit Leerzeichen auf 6 Zeichen aufgefuellt
werden.
4. Byte A7 enthaelt den SSID (Secondary Station IDentifier). Der
SSID ermoeglicht es, mehrere Packet-Radio Stationen unter dem
gleichen Rufzeichen zu betreiben, sie aber unabhaengig voneinander
zu adressieren. Der SSID 0000 ist der Standard-SSID, der von einer
"normalen" Packet-Radio Station benutzt werden soll.
5. Die mit "R" markierten Bits sind fuer zukuenftige Erweiterungen
reserviert. Man kann sie in individuellen Netzen auf Grund einer
Uebereinkunft benutzen. Falls sie nicht verwendet werden, sollen
sie auf Eins gesetzt sein.
6. Das mit "C" markierte Bit wird, wie in 2.4.1.2 beschrieben, als
Kommando-/Antwortbit eines AX.25-Blocks verwendet.
========================================================================
>>>>>> Der zweite Teil beginnt mit:
2.2.13.1.2 Kodierung des Absender-Subfeldes
Read previous mail | Read next mail
| |