| |
DL1RNQ > AX25 18.11.94 10:54l 402 Lines 19183 Bytes #-11639 (0) @ DL
BID : 17B403DB0BRB
Read: DG8MGW DG4GO DK9OS DL3MEW DF8TS DG2GML DG5MJS DK1DH DG8GAD DL3MDI DG6MAY
Read: DL8MAQ DL8MAS DG2MJT DG2MJM DG2MNF DK1MBY DH1NFJ DJ2RT GUEST
Subj: AX25 Beschreibung 3/5
Path: DB0KCP<DB0CRL<DB0RBS<DB0AIS<DB0SIF<DB0SON<DB0ERF<DB0BBX<DB0JES<DB0BRB
Sent: 941117/2140z @DB0BRB.#BRB.DEU.EU [Brandenburg,TheBox1.9a:DL1RNQ]
de DL1RNQ @ DB0BRB.#BRB.DEU.EU
to AX25 @ DL
============================================================================
2.3.4.3.4 Meldung "Unnumerierte Bestaetigung" (UA, unnumbered
acknowledge)
Die UA-Meldung wird verwendet, um dem Empfang und die Annahme eines
SABM- oder DISC-Kommandos zu bestaetigen. Das empfangene Kommando wird
erst bearbeitet, nachdem die UA-Meldung ausgesandt ist. UA-Blocks
duerfen kein I-Feld enthalten.
2.3.4.3.5 Meldung "Verbindungsrueckweisung" (DM, disconnected mode)
Die DM-Meldung wird von einer DXE ausgesandt, falls sie Blocks von einer
Station empfaengt, mit der sie nicht verbunden ist, die keine SABM-
oder UI-Blocks sind. In diesem Fall soll im Kontrollfeld des DM-Blocks
das F-Bit auf Eins gesetzt sein.
Die DM-Meldung wird auch als Antwort auf einen SABM-Block ausgesandt,
um anzuzeigen, dass die DXE z.Zt. keine Verbindung annehmen kann.
(Dieses ist der Fall, wenn die DXE bereits die maximal moegliche Anzahl
von Verbindungen hergestellt hat, also besetzt ist, oder wenn die
DXE keine Verbindungen annehmen soll.)
DM-Blocks enthalten kein I-Feld.
2.3.4.3.6 Kommando oder Meldung "Unnumerierte Information" (UI,
unnumbered information)
UI-Blocks koennen sowohl als Kommando als auch als Meldung ausgesandt
werden.
UI-Blocks enthalten ein PID- und ein Informationsfeld und werden
verwendet, um Informationen entlang der Verbindung ohne Flusskontrolle
zu transportieren. Da diese Blocks nicht der Flusskontrolle unterliegen,
kann man den Verlust eines UI-Blocks nicht erkennen oder korrigieren.
Ein empfangener UI-Block mit gesetztem P-Bit sollte bestaetigt werden.
Die Antwort sollte ein DM-Block sein, wenn die DXE nicht mit der
anderen verbunden ist, sonst ein RR- oder RNR-Block.
2.3.5 Meldung von Fehlern und deren Berichtigung
Es gibt einige Fehler, die auf dem Link-Level entstehen koennen und die
man berichtigen kann, ohne die Verbindung abzubrechen. Dieses sind z.B.
Uebertragungsfehler oder Ablaufstoerungen innerhalb der DXE.
2.3.5.1 Nicht-Empfangsbereitschaft
Falls eine DXE zeitweilig nicht in der Lage ist, weitere Blocks zu
empfangen, weil z.B. die Empfangspuffer voll sind, so wird sie dieses
der Gegenstation durch Aussenden eines Blocks mit der Meldung RNR (nicht
empfangsbereit) mitteilen. Das Ende der Nicht-Empfangsbereitschft wird
der Gegenstation durch Aussenden eines RR-, REJ-, UA- oder SABM-Blocks
angezeigt.
2.3.5.2 Fehler in der Sendefolgenummer
Falls die Sendefolgenummer N(S) eines ohne CRC-Fehler empfangenen
I-Blocks nicht mit dem Empfangsfolgezaehler V(R) uebereinstimmt, dann
ist ein Fehler in der Sendefolgenummer aufgetreten, und das I-Feld
dieses Blocks wird verworfen. Der Empfaenger wird diesen Block, wie
auch folgende Blocks nicht bestaetigen, bis er einen Block empfaengt,
dessen Sendefolgenummer mit dem Empfangsfolgezaehler uebereinstimmt.
Das Kontrollfeld solcher I-Blocks wird jedoch ausgewertet und zur
Steuerung der Verbindung verwendet. Z.B. kann die Empfangsfolgenummer
die in der Gegenrichtung ausgestrahlten I-Blocks bestaetigen.
(Fehler in der Sendefolgenummer treten auf, wenn zwischenzeitlich ein
I-Block gestoert wurde und auf Grund eines CRC-Fehlers nicht ausgewertet
werden konnte.)
2.3.5.3 Wiederholung nach REJ
Eine DXE verwendet die Meldung REJ dazu, die Gegenstation zur
Wiederholung von I-Blocks aufzufordern, nachdem sie einen Fehler in der
Sendefolgenummer erkannt hat. Es ist in jeder Richtung nur eine
Wiederholungsaufforderung zur Zeit zulaessig.
Die Gegenstation berichtigt den Fehler, indem sie alle unbestaetigten
I-Blocks, beginnend mit dem im REJ-Block angeforderten, wiederholt
(maximal soviel, wie die erlaubte Zahl unbestaetigter I-Blocks).
2.3.5.4 Wiederherstellung nach Ablauf der Zeitueberwachung
2.3.5.4.1 Wiederherstellung nach Ablauf von Zeitgeber T1
Falls eine DXE wegen eines Uebertragungsfehlers einen einzelnen I-Block
oder den letzten I-Block einer Folge nicht empfaengt, so wird sie keinen
Fehler in der Sendefolgenummer feststellen und somit auch keinen
REJ-Block senden. Dei andere DXE, die die unbestaetigten I-Blocks
ausgesandt hat, soll nach Ablauf des Zeitgebers T1 geeignete Massnahmen
einleiten, um zu bestimmen, mit welchem I-Block eine Wiederholung
begonnen werden muss. Die Massnahmen sind in 2.4.4.9 beschrieben.
Dieser Zustand wird aufgehoben durch den Empfang einer Bestaetigung der
ausgesandten I-Blocks oder durch das Ruecksetzen der Verbindung (siehe
2.4.6).
2.3.5.4.2 Wiederherstellung nach Ablauf von Zeitgeber T3
Der Zeitgeber T3 soll sicherstellen, dass die Verbindung noch besteht,
auch wenn laengere Zeit keine Information uebertragen wurde. Immer wenn
T1 nicht laeuft (keine unbestaetigten I-Blocks), wird T3 benutzt, um
in regelmaessigen Abstaenden die andere DXE der Verbindung abzufragen.
Wenn T3 ablaeuft, wird ein RR- oder RNR-Block als Kommando mit
gesetztem P-Bit ausgesandt. Anschliessend wird wie in 2.4.4.9
beschrieben auf die Bestaetigung gewartet.
(Ausserdem koennte der RR-Block einer DXE, die nach einem Zustand "nicht
empfangsbereit" wieder empfangsbereit wird, verloren gehen. Mit Hilfe
des Zeitgebers T3 kann dann festgestellt werden, dass diese Station
empfangsbereit ist, da sie mit einem RR-Block antworten wird, nicht mit
einem RNR-Block.)
2.3.5.5 Fehler in der Blockpruefzeichenfolge
Ein Block mit einem Fehler in der Blockprufzeichenfolge wird verworfen,
ohne dass weitere Aktionen veranlasst werden.
2.3.5.6 Zustand der Blockrueckweisung
Der Zustand der Blockrueckweisung tritt ein, sobald ein sonst
fehlerfreier Block empfangen wurde, der mindestens eine der Bedingungen
aus 2.3.4.3.3 erfuellt.
Ist einmal der Zustand der Zurueckweisung eingetreten, so werden keine
weiteren I-Blocks akzeptiert (mit Ausnahme der Beachtung des P/F-Bits),
bis der Fehler beseitigt ist. Der Fehlerzustand wird der anderen DXE
durch Aussenden eines FRMR-Blocks angezeigt (siehe 2.4.5).
2.4 Beschreibung der Uebermittlungsvorschrift
In den folgenden Absaetzen werden die Vorschriften (engl. procedures)
zum Aufbau, Gebrauch und Abbau einer Verbindung zwischen zwei
gleichberechtigten DXE's beschrieben.
2.4.1 Vorschriften fuer die Adressierung
2.4.1.1 Adressinformation
Alle ausgesandten Blocks sollen ein Adressfeld enthalten, wie es in
2.2.13 beschrieben ist. Alle Blocks sollen sowohl die Adresse
(Rufzeichen) des Empfaengers als auch die Adresse des Absenders
enthalten, wobei die Empaengeradresse an erster Stelle steht. Dadurch
ist es moeglich, dass viele Verbindungen gleichzeitig auf demselben
HF-Kanal bestehen.
Die Empfaengeradresse kann auch der Name einer Gruppe, oder ein
Club-Rufzeichen sein, wenn eine Aussendung an mehrere Stationen erlaubt
ist (z.B. Rundsprueche oder Bakenmeldungen mit UI-Blocks). Das Arbeiten
mit Empfaengeradressen, die kein gueltiges Amateurfunk-Rufzeichen sind,
wir weiter untersucht.
2.4.1.2 Unterscheidung zwischen Kommando und Meldung
In der Version 2.0 des AX.25 Protokolls ist die Unterscheidung zwischen
Kommando und Meldung im Adressfeld enthalten. Um mit frueheren Versionen
kompatibel zu bleiben, wird diese Information in zwei Bits uebermittelt.
Sie ist im Bit 7 des SSID-Bytes der Empfaenger- und der Senderadresse
enthalten.
Eine abwaertskompatible AX.25 DXE kann anhand der Information in den
Kommando/Meldungs-Bits erkennen, ob sie mit einer Gegenstation verbunden
ist, die eine aeltere Version des Protokolls verwendet. Falls beide
C-Bits auf Null gesetzt sind, verwendet die Gegenstation das aeltere
Protokoll. In der neueren Version des Protokolls ist jeweils ein Bit auf
Null, das andere auf Eins gesetzt, abhaengig davon, ob es sich um ein
Kommando oder eine Meldung handelt.
Die Kommando/Meldungs-Bits sind kodiert wie in Abb. 8 gezeigt.
-----------------------------------------------------------
| Blocktyp | Empf. SSID C-Bit | Abs. SSID C-Bit |
|---------------------------------------------------------|
| fruehere Versionen | 0 | 0 |
| Kommando (V. 2.0) | 1 | 0 |
| Meldung (V. 2.0) | 0 | 1 |
| fruehere Versionen | 1 | 1 |
-----------------------------------------------------------
Abb. 8 -- Kommando/Antwort-Kodierung
Es werden alle Blocks entweder als Kommando oder als Meldung angesehen,
so dass in der Version 2.0 dieses Protokolls immer eines der C-Bits
auf Null, das andere auf Eins gesetzt sein soll.
Durch die Zusaetzliche Kommando/Meldung-Information koennen im AX.25
S-Blocks sowohl Kommando-, als auch Meldungsblocks sein. Dieses hilft
bei der Aufrechterhaltung der Kontrolle ueber die Verbindung waehrend
der Phase der Datenuebermittlung. (Im Original steht nichts darueber,
wie diese Hilfe aussehen soll: Wenn laengere Zeit keine I-Blocks
ausgestrahlt worden sind, soll nach Ablauf des Zeitgebers T3 nachgefragt
werden, ob die Verbindung noch besteht. Dieses geschieht mit einem RR-
oder RNR-Block mit gesetztem P-Bit, der als Kommando ausgesandt wird.
Die Antwort soll ein RR- oder RNR-Block mit gesetztem F-Bit sein, der
als Meldung uebertragen wird. Dieses kann nur dann richtig funktioieren,
wenn beide Stationen zwischen Kommando und Meldung bei RR- oder
RNR-Blocks unterscheiden koennen. Siehe dazu auch 2.3.5.4.2 und
2.4.4.9.)
2.4.2 Vorschriften fuer das P/F-Bit
Eine DXE soll auf einen SABM- oder DISC-Kommandoblock, in dem das P-Bit
auf Eins gesetzt ist, mit einem UA- oder DM-Meldungsblock antworten, in
dem das F-Bit auf Eins gesetzt ist. (Anmerkung: Das P- und das F-Bit
stehen im Kontrollfeld an der gleichen Stelle. In einem Kommandoblock
wird dieses Bit als P-Bit interpretiert, in einem Meldungsblock als
F-Bit.)
Eine DXE soll auf einen I- oder S-Kommandoblock, in dem das P-Bit auf
Eins gesetzt ist, mit einem RR-, RNR- oder REJ-Meldungsblock antworten,
in dem das F-Bit auf Eins gesetzt ist, wenn der I- oder S-Block von der
Gegenstation stammt, mit der die DXE verbunden ist.
Eine DXE soll auf einen I- oder S-Kommandoblock, in dem das P-Bit auf
Eins gesetzt ist, mit einem DM-Meldungsblock antworten, in dem das F-Bit
auf Eins gesetzt ist, wenn der I- oder S-Block von einer Station stammt,
mit der die DXE nicht verbunden ist.
Das P-Bit wird im Zusammenhang mit der Wiederherstellung nach Ablauf des
Zeitgebers T3 verwendet (siehe 2.3.5.4).
Wird das P/F-Bit nicht benoetigt, so soll es auf Null gesetzt sein.
2.4.3 Vorschriften fuer den Auf- und Abbau einer Verbindung
2.4.3.1 Aufbau einer LAPB-Verbindung
Wenn eine DXE eine Verbindung mit einer anderen DXE wuenscht, so sendet
sie einen SABM-Kommandoblock zu dieser Station und startet den Zeitgeber
T1. Falls die andere DXE diesen Block empfangen und eine Verbindung
aufnehmen kann, wird sie mit einem UA-Meldungsblock antworten und ihre
beiden Folgezaehler (V(S) und V(R)) auf Null setzen. Der Empfang des
UA-Blocks veranlasst die DXE, welche die Verbindung aufbauen wollte,
den Zeitgeber T1 zu stoppen und auch ihre Folgezaehler auf Null zu
setzen.
Falls die andere DXE nicht antwortet bevor der Zeitgeber T1 ablaeuft,
wird die anfordernde DXE den SABM-Block nochmal aussenden und T1 wieder
starten. Die DXE soll N2 Versuche machen, durch Aussenden des
SABM-Blocks die Verbindung herzustellen. N2 ist in 2.4.7.2 definiert.
Falls eine DXE nach Empfang eines SABM-Blocks entscheidet, dass sie
nicht bereit ist eine Verbindung aufzunehmen, soll sie einen DM-Block
aussenden (siehe auch 2.3.4.3.5).
Die DXE, die den SABM-Block ausgesandt hat, soll, nachdem sie einen
DM-Block empfaengt, den Zeitgeber T1 stoppen und nicht weiter versuchen,
die Verbindung aufzubauen.
Die die Verbindung anfordernde DXE wird alle Blocks ignorieren und
verwerfen, ausser SABM-, DISC-, UA- und DM-Blocks der gerufenen DXE.
(Im Original wird hier nicht darauf eingegangen, wie sich eine DXE
verhalten soll, die mehrere Verbindungen gleichzeitig aufnehmen kann.
Sinnvollerweise sollte das in diesem Absatz Gesagte dann nur fuer den
einen logischen Kanal gelten, ueber den die andere DXE gerufen wird.)
Andere als UA- oder DM-Blocks als Antwort auf einen SABM-Block werden
nur dann ausgesandt, wenn die Verbindung hergestellt ist und keine
unbestaetigten SABM-Blocks existieren. (Vollkommen unverstaendlich! Die
einzigen im AX.25 Protokoll als Antwort auf einen SABM-Block
vorgesehenen Blocks sind UA- oder DM-Blocks. Siehe auch 2.3.4.3.1.)
2.4.3.2 Phase der Datenuebermittlung
Nachdem die Verbindung hergestellt ist, wird die DXE den Zustand "Phase
der Datenuebermittlung" einnehmen. In diesem Zustand wird die DXE nach
der in 2.4.4 beschriebenen Vorschrift I- und S-Blocks annehmen und
aussenden.
Falls die DXE waehrend der Phase der Datenuebermittlung ein
SABM-Kommando von der Gegenstation empfaengt, so wird sie die Verbindung
nach der in 2.4.6 beschriebenen Vorschrift ruecksetzen.
2.4.3.3 Abbau der Verbindung
In der Phase der Datenuebermittlung kann jede der DXE's einen Abbruch
der Verbindung anfordern, indem sie einen DISC-Block aussendet und den
Zeitgeber T1 startet.
Eine DXE soll, nachdem sie ein gueltiges DISC-Kommando erhalten hat,
einen UA-Block aussenden und in den Zustand "Frei" uebergehen. Sobald
die andere DXE als Antwort auf ihr DISC-Kommando einen UA- oder DM-Block
empfaengt, soll sie den Zeitgeber T1 stoppen und ebenfalls in den
Zustand "Frei" uebergehen.
Falls kein UA- oder DM-Block empfangen wird, bevor der Zeitgeber T1
ablaeuft, soll der DISC-Block wiederholt und der Zeitgeber erneut
gestartet werden. Nachdem dieses N2-mal geschehen ist, soll die DXE in
den Zustand "Frei" uebergehen.
2.4.3.4 Der Zustand "Frei"
Im Zustand "Frei" soll eine DXE alle empfangenen Kommandos beobachten
und auf ein SABM-Kommando, wie in 2.4.3.1 beschrieben, reagieren. Als
Antwort auf ein DISC-Kommando soll sie einen DM-Block aussenden.
Im Zustand "Frei" kann die DXE den Aufbau einer Verbindung beginnen,
wie es in 2.4.3.1 beschrieben ist.
Auf Kommandoblocks mit gesetztem P-Bit ausser SAMB- oder UI-Blocks soll
eine DXE mit einem DM-Block antworten, in dem das F-Bit gesetzt ist.
Der empfangene Block soll nicht weiter beachtet werden.
Wenn eine DXE nach einem Fehlerzustand oder aufgrund eines internen
Fehlers in den Zustand "Frei" uebergeht, so soll sie dieses anzeigen,
indem sie einen DM-Meldungsblock aussendet anstatt einen DISC-Block
auszusenden und die Abbruchprozedur in 2.4.3.3 durchzufuehren. Danach
kann die DXE versuchen, die Verbindung, wie in 2.4.3.1 beschrieben, neu
aufzubauen.
2.4.3.5 Wiederherstellung nach Kollisionen
2.4.3.5.1 Kollisionen in einer Halbduplex-Umgebung
Kollisionen von Blocks in einer Halbduplex-Umgebung werden durch das
Verhalten des Zeitgebers T1 und des Wiederholungszaehlers aufgefangen.
Es sind keine weiteren Aktionen noetig.
2.4.3.5.2 Kollisionen von nicht numerierten Kommandos
Falls sich zwei SABM- oder DISC-Kommandos ueberschneiden, sollen beide
DXE's zum fruehest moeglichen Zeitpunkt einen UA-Block aussenden und
den angegebenen Zustand einnehmen.
Falls sich ein SABM- mit einem DISC-Kommando ueberschneidet, sollen
beide DXE's den Zustand "Frei" einnehmen und zum fruehest moeglichen
Zeitpunkt einen DM-Block aussenden.
2.4.3.5.3 Kollisionen eines DM-Blocks mit einem SABM- oder DISC-Block
Falls eine nicht angeforderte DM-Meldung ausgesandt wird, kann es zu
Ueberschneidungen dieses Blocks mit einem SABM- oder DISC-Kommando
kommen. Um zu vermeiden, dass der DM-Block fehlinterpretiert wird,
sollen alle nicht angeforderten DM-Blocks mit auf Null gesetztem F-Bit
ausgesandt werden und alle SABM- und DISC-Blocks mit auf Eins gesetztem
P-Bit. Die Antwort auf einen solchen SABM- oder DISC-Block kann dann
nur ein DM- (oder UA-)Block mit auf Eins gesetztem F-Bit sein, so dass
eine Verwechselung ausgeschlossen ist.
2.4.3.6 Betrieb ohne Flusskontrolle
Im Amateurfunk gibt es eine zusaetzliche Betriebsart, die mit
Level-2-Verbindungen nicht zu realisieren ist, die Gespraechsrunde,
bei der mehrere Funkamateure an einer Unterhaltung teilhaben koennen.
Die Implementation dieser Betriebsart liegt technisch ausserhalb der
AX.25 Verbindungen, benutzt aber trotzdem die Blockstruktur des AX.25.
Im AX.25 benutzt man einen speziellen Blocktyp fuer diese Betriebsart,
genannt unnumerierter Informationsblock (UI-Block). In dieser
Betriebsart sollte im Subfeld der Empfaengeradresse ein Kodewort
eingetragen werden, mit dessen Hilfe die an der Runde Beteiligten
die Blocks aussortieren koennen, damit sie nicht alle Blocks mitlesen
muessen, die ueber den gemeinsamen HF-Kanal uebertragen werden.
Z.B. sollte eine Gespraechsrunde ueber Packet-Radio als
Empfaengeradresse das Wort PACKET verwenden. Die meisten DXE's haben
eine Moeglichkeit, nur Blocks mitzuschreiben, die an eine bestimmte
Adresse gerichtet sind (Monitor-only-Kommando). Das Rufzeichen des
Absenders ist mit in dem Block enthalten, so dass man erkennen kann,
von wem einzelne Beitraege am Gespraech stammen.
Da diese Betriebsart ohne Flusskontrolle arbeitet (die UI-Blocks sind
nicht numeriert), gibt es keine Anforderungen zur Wiederholung von
verlorengegangenen oder fehlerhaften Blocks. Kollisionen koennen ebenso
auftreten, mit der Gefahr, dass die sich ueberschneidenden Blocks
verlorengehen.
2.4.4 Vorschriften fuer die Datenuebermittlung
Wenn eine Verbindung, wie oben beschrieben, aufgebaut ist, koennen beide
Stationen I-, S- und U-Blocks akzeptieren.
2.4.4.1 Senden von I-Blocks
Jedesmal, wenn eine DXE einen I-Block auszusenden hat, wird sie die
Sendefolgenummer N(S) des I-Blocks auf den Wert ihres Sendefolgezaehlers
V(S) setzen. Nachdem der I-Blocks ausgesandt ist, erhoeht sie den
Sendefolgezaehler um Eins. Falls der Zeitgeber T1 nicht laeuft, soll er
gestartet werden. Wenn er laeuft, soll er erneut gestartet werden.
Die DXE soll keine weiteren I-Blocks aussenden, wenn der Wert ihres
Sendefolgezaehlers gleich der letzten von der Gegenstation empfangenen
N(R) plus Sieben ist. Der naechste auszusendende Block haette die
gleiche Sendefolgenummer, wie der letzte bestaetigte Block und koennte
mit diesem verwechselt werden.
Falls eine DXE im Zustand "nicht empfangsbereit" ist, kann sie trotzdem
weiter I-Blocks aussenden, solange die Gegenstation empfangsbereit ist.
Im Zustand "Blockrueckweisung" sendet die DXE keine weiteren I-Blocks
aus.
============================================================================
>>>>>> Der vierte Teil beginnt mit:
2.4.4.2 Empfang von I-Blocks
Read previous mail | Read next mail
| |