| |
DL1RNQ > AX25 18.11.94 10:51l 305 Lines 14514 Bytes #-11639 (0) @ DL
BID : 17B404DB0BRB
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 4/5
Path: DB0KCP<DB0CZ<DB0GV<DB0FP<DB0ERF<DB0BBX<DB0JES<DB0BRB
Sent: 941117/2200z @DB0BRB.#BRB.DEU.EU [Brandenburg,TheBox1.9a:DL1RNQ]
de DL1RNQ @ DB0BRB.#BRB.DEU.EU
to AX25 @ DL
============================================================================
2.4.4.2 Empfang von I-Blocks
2.4.4.2.1 DXE empfangsbereit
Wenn eine DXE einen gueltigen I-Block empfaengt (mit richtiger FCS und
einer Sendefolgenummer, die dem Empfangsfolgezaehler entspricht) und
empfangsbereit ist, wird sie den I-Block akzeptieren, den
Empfangsfolgezaehler um Eins erhoehen und eine der folgenden Aktionen
ausfuehren:
1. Wenn die DXE selbst einen I-Block auszusenden hat, wird sie die
Empfangsfolgenummer N(R) dieses Blocks auf den Wert ihres
Empfangsfolgezaehlers V(R) setzen und den Block aussenden. Damit
bestaetigt sie den empfangenen I-Block. Alternativ dazu kann sie
zuerst einen RR-Block mit N(R) gleich V(R) aussenden und
anschliessend den I-Block.
2. Hat die DXE keine I-Blocks auszusenden, so bestaetigt sie den
Empfang mit einem RR-Block, dessen N(R) auf den Wert von V(R)
gesetzt ist. Die DXE kann eine kurze Zeit warten, um sicher zu sein,
dass keine zusaetzlichen I-Blocks zu uebertragen sind.
Der Empfang eines I-Blocks, dessen I-Feld die Laenge Null hat, soll dem
hoeheren Layer mitgeteilt werden ohne das I-Feld zu uebergeben.
2.4.4.2.2 DXE nicht empfangsbereit
Befindet sich die DXE im Zustand "nicht empfangsbereit", so kann sie
alle empfangenen I-Blocks ignorieren, ausser dass sie mit einem
RNR-Block erneut auf ihren Zustand hinweist.
Falls eine DXE von der Gegenstation die Meldung "nicht empfangsbereit"
empfaengt, soll sie periodisch bei dieser Gegenstation nachfragen, bis
die Gegenstation wieder empfangsbereit ist. Dieses kann mit RR- oder
RNR-Blocks geschehen, in denen das P-Bit auf Eins gesetzt ist.
2.4.4.3 Empfang von Blocks mit falscher Sendefolgenummer
Wenn ein I-Block empfangen wird, dessen FCS richtig ist, aber dessen
Sendefolgenummer N(S) nicht mit dem Inhalt des Empfangsfolgezaehlers
N(R) des Empfaengers uebereinstimmt, soll der Block verworfen werden.
Ein REJ-Block soll ausgesandt werden, mit einer Empfangsfolgenummer, die
um Eins hoeher ist, als die N(S) des letzten, richtig empfangenen
I-Blocks. Bevor der I-Block verworfen wird, soll die DXE die
Empfangsfolgenummer und das P-Bit ausgewerten.
2.4.4.4 Empfang von fehlerhaften Blocks
Alle Blocks mit falscher FCS, ungueltige Blocks oder Blocks mit falscher
Adresse werden ignoriert.
2.4.4.5 Empfangsbestaetigung
Immer, wenn ein I- oder S-Block richtig empfangen wurde, selbst wenn
die DXE nicht empfangsbereit ist, soll die N(R) des Blocks ausgewertet
werden, um zu sehen, ob sie ausgesandte, vorher unbestaetigte I-Blocks
bestaetigt. Ist dies der Fall, so soll der Zeitgeber T1 gestoppt werden.
Wurde T1 gestoppt, und sind noch weitere I-Blocks unbestaetigt, so soll
T1 erneut gestartet werden. Laeuft der Zeitgeber T1 ab, bevor eine
Bestaetigung empfangen wurde, soll die Station die I-Blocks erneut
aussenden (siehe 2.4.4.9).
2.4.4.6 Empfang einer Wiederholungsaufforderung
Wenn eine DXE einen REJ-Block empfaengt, so setzt sie ihren
Sendefolgezaehler auf den Wert der Empfangsfolgenummer des REJ-Blocks.
Die DXE wird dann alle unbestaetigten I-Blocks zum fruehest moeglichen
Zeitpunkt erneut aussenden:
1. Sendet die DXE z.Zt. nicht, und der Kanal ist frei, so kann sie
sofort mit der Wiederholung beginnen.
2. Arbeitet die DXE im Vollduplex-Betrieb, und sendet sie gerade einen
UI- oder S-Block aus, so kann sie, ohne diesen Block abzubrechen,
die zu wiederholenden Blocks anschliessen.
3. Arbeitet die DXE im Vollduplex-Betrieb und empfaengt den REJ-Block,
waehrend sie einen anderen I-Block an die Gegenstation aussendet,
so kann sie den I-Block abbrechen und sofort mit der Wiederholung
beginnen.
4. Anschliessend an die Wiederholung kann die DXE, falls weitere
I-Blocks zur Uebertragung anstehen, diese sofort aussenden, solange
die Anzahl insgesamt nicht die maximal moegliche Zahl unbestaetiger
Blocks uebersteigt (siehe 2.4.7.4).
Empfaengt die DXE einen REJ-Block mit gesetztem P-Bit, so soll sie,
bevor sie die I-Blocks wiederholt, einen RR- oder RNR-Block mit
gesetztem F-Bit aussenden.
2.4.4.7 Empfang der Meldung "nicht empfangsbereit"
Empfaengt eine DXE einen RNR-Block, so soll sie keine weiteren I-Blocks
an die Gegenstation aussenden, bis diese wieder empfangsbereit ist.
Falls der Zeitgeber T1 ablaeuft, nachdem ein RNR-Block empfangen wurde,
soll die DXE die in 2.4.4.9 beschriebene Warteprozedur beginnen. Die
Gegenstation soll periodisch nach ihrem Status abgefragt werden, bis
sie wieder Empfangsbereitschaft meldet (siehe 2.4.4.2.2).
2.4.4.8 Aussendung der Meldung "nicht empfangsbereit"
Wenn eine DXE voruebergehend nicht in der Lage ist, weitere I-Blocks
zu empfangen, teilt sie dieses der Gegenstation durch die Aussendung
eines RNR-Blocks mit. Eine nicht empfangsbereite DXE kann, falls
moeglich, S-Blocks empfangen und verarbeiten. Falls sie einen S-Block
mit gesetztem P-Bit empfaengt, soll sie als Antwort einen RNR-Block
mit gesetztem F-Bit aussenden.
Ist die DXE wieder empfangsbereit, so sendet sie der Gegenstation
einen RR- oder REJ-Block, je nachdem, ob im letzten empfangenen I-Block
die Sendefolgenummer richtig war oder falsch (siehe 2.4.4.2 und
2.4.4.3).
2.4.4.9 Warten auf die Bestaetigung
Wenn der Zeitgeber T1 ablaeuft, waehrend die DXE auf die Bestaetigung
eines I-Blocks durch die Gegenstation wartet, so startet sie T1 erneut
und sendet einen entsprechenden S-Block (RR oder RNR) mit gesetztem
P-Bit aus. Empfaengt die DXE einen S-Block mit gesetztem F-Bit, so
startet sie den Zeitgeber erneut und setzt ihren V(S) auf den Wert
der in diesem S-Block empfangenen N(R). Anschliessend faehrt sie fort
I-Blocks zu senden oder, falls noch I-Blocks unbestaetigt sind, diese
zu wiederholen. Empfaengt die DXE jedoch einen S-Block ohne gesetztes
F-Bit, einen S-Kommandoblock oder einen I-Block, so wird sie T1
weiterlaufen lassen, aber die empfangene N(R) als Bestaetigung fuer
I-Blocks bis zur Nummer N(R)-1 benutzen.
Falls T1 ablaeuft, ohne dass ein S-Block mit gesetztem F-Bit empfangen
wurde, so wird die DXE erneut einen S-Block mit gesetztem P-Bit
aussenden. Nachdem die DXE N2-mal versucht hat, einen S-Block mit
gesetztem F-Bit von der Gegenstation zu erhalten, wird sie die
Verbindung nach der in 2.4.6 beschriebenen Vorschrift ruecksetzen.
2.4.5 Zustaende nach Rueckweisung eines Blocks
Eine DXE soll die Prozedur der Blockrueckweisung beginnen, wenn sie
waehred der Phase der Datenuebermittlung einen Block mit richtiger FCS
empfaengt, der einer der Bedingungen aus 2.3.4.3.3 genuegt.
Die DXE fordert in diesem Fall die andere DXE auf, die Verbindung
rueckzusetzen, indem sie einen FRMR-Block aussendet (siehe 2.4.6.3).
Nach Aussendung des FRMR-Blocks geht die DXE in den Zustand der
Blockrueckweisung ueber. Dieser Zustand wird geloescht, wenn die DXE
ein SABM- oder DISC-Kommando oder eine DM-Meldung empfaengt. Alle
anderen Kommandos die die DXE waehrend des Zustandes der
Blockrueckweisung empfaengt, bewirken die Aussendung eines weiteren
FRMR-Blocks, mit dem gleichen I-Feld wie im ersten FRMR-Block.
Im Zustand der Blockrueckweisung sendet die DXE keine weiteren I-Blocks,
und empfangene I- und S-Blocks werden nicht weiter ausgewertet.
Die DXE, die den FRMR-Block aussendet, startet den Zeitgeber T1. Falls
sie keinen SABM-, DISC- oder DM-Block von der Gegenstation empfaengt,
bevor T1 ablaeuft, sendet sie den FRMR-Block erneut aus und startet T1
wieder. Nachdem der FRMR-Block N2-mal ohne Erfolg ausgesandt wurde,
fuehrt die DXE die in 2.4.6 beschriebene Ruecksetzung der Verbindung
aus.
2.4.6 Ruecksetzen der Verbindung
Das Ruecksetzen der Verbindung dient der Neuinitialisierung der
Datenuebertragung in beiden Richtungen, nachdem ein nicht behebbarer
Fehler aufgetreten ist. Diese Prozedur des Rucksetzens der Verbindung
wird nur waehrend der Phase der Datenuebermittlung bei einer AX.25
Verbindung durchgefuehrt.
Eine DXE soll ein Ruecksetzen der Verbindung einleiten, wenn sie einen
nicht angeforderten Meldungsblock mit gesetztem F-Bit oder einen
unerwarteten UA-Block empfaengt. Sie kann die Verbindung zuruecksetzen,
wenn sie einen FRMR-Block empfaengt. Alternativ dazu kann sie nach
Empfang eines FRMR-Blocks die Verbindung durch Aussenden eines
DISC-Blocks abbrechen.
Die DXE setzt die Verbindung zurueck, indem sie einen SABM-Block
aussendet und den Zeitgeber T1 startet. Die Gegenstation soll, nachdem
sie den SABM-Block empfangen hat, zum fruehest moeglichen Zeitpunkt mit
einem UA-Block antworten, ihre Folgezaehler V(S) und V(R) auf Null
setzen und ihren Zeitgeber T1 stoppen, sofern sie nicht selbst auch
einen SABM- oder DISC-Block ausgesandt hat. Wenn der UA-Block bei der
ersten DXE richtig empfangen wird, setzt sie ebenfalls ihre Folgezaehler
V(S) und V(R) auf Null, stoppt T1 und beendet den Zustand "Ruecksetzen".
Jeder Zustand "nicht empfangsbereit" wird ebenfalls geloescht.
Empfaengt die DXE einen DM-Block als Antwort, geht sie in den Zustand
"Frei" ueber und stoppt T1. Falls T1 ablaeuft, bevor sie einen UA- oder
DM-Block empfaengt, sendet sie erneut einen SABM-Block aus und startet
T1 wieder. Nachdem T1 N2-mal abgelaufen ist, geht die DXE in den
Zustand "Frei" ueber.
Andere Kommandos oder Meldungen werden von der DXE ignoriert, bis
die Verbindung zurueckgesetzt ist.
Eine DXE kann ein Ruecksetzen der Verbindung durch die Gegenstation
anfordern, indem sie eine DM-Meldung aussendet und anschliesssend in
den Zustand "Frei" uebergeht.
2.4.7 Liste der Systemparameter
2.4.7.1 Zeitgeber
Um die Integritaet einer AX.25 Level 2 Verbindung zu wahren, ist die
Verwendung dieser Zeitgeber zu empfehlen.
2.4.7.1.1 Primaer-Zeitueberwachung (Acknowledgement Timer) T1
Der Zeitgeber T1 stellt sicher, dass eine DXE nicht endlos auf die
Antwort auf Blocks wartet, die sie ausgesandt hat. Die Ablaufzeit
dieses Zeitgebers sollte mindestens zweimal so gross sein, wie die
Uebermittlungsdauer eines Blocks von maximaler Laenge und die
Rueckuebermittlung der Bestaetigung. Dadurch ergaebe sich auch genuegend
Zeit fuer die Auswertung des Blocks bei der Gegenstation.
Falls Level 2 Digipeater in der Verbindung benutzt werden, soll man T1
entsprechend der Anzahl der Digipeater vergroessern.
2.4.7.1.2 Zeigeber T2 (Response Delay Timer)
Der Zeitgeber T2 kann in einer DXE verwendet werden, um eine Wartezeit
anzugeben, zwischen dem Empfang eines I-Blocks und dem Aussenden der
Bestaetigung. Diese Verzoegerung kann die DXE warten, ob noch weitere
I-Blocks an sie gerichtet sind, um diese dann gemeinsam (maximal 7)
zu bestaetigen, anstatt jeden einzelnen I-Block. Die Effektivitaet des
Uebertragungskanals kan dadurch gesteigert werden. Im
Vollduplexbetrieb sollten die Bestaetigungen nicht um mehr als eine
Anzahl k/2 I-Blocks verzoegert werden, um einen maximalen Durchsatz zu
erhalten. Der Parameter k ist in 2.4.7.4 definiert.
2.4.7.1.3 Zeitgeber T3 (Inactive Link Timer)
Der dritte Zeitgeber T3 wird verwendet, um die Integritaet der
Verbindung aufrecht zu erhalten, wenn T1 nicht laeuft. Es ist zu
empfehlen, dass immer, wenn keine I-Blocks oder Blocks mit gesetztem
P-Bit unbestaetigt sind (waehrend der Phase der Datenuebermittlung),
der Zustand der Gegenstation alle T3 Zeiteinheiten mit einem RR- oder
RNR-Block mit gesetztem P-Bit abgefragt wird. T3 ist stark abhaengig
von der Qualitaet der Level-1-Verbindung. T3 sollte groesser sein als
T1 und kann sehr gross sein auf Kanaelen mit hoher Integritaet.
2.4.7.2 Maximale Anzahl der Wiederholungen (N2)
Die maximale Anzahl der Wiederholungen wird in Verbindung mit dem
Zeitgeber T1 verwendet. Falls die Uebertragungsqualitaet auf einem
Kanal zu schlecht ist, kann man mit Hilfe von N2 die Verbindung
abbrechen.
2.4.7.3 Maximale Anzahl der Bytes in einem I-Feld (N1)
Die maximale Anzahl der Bytes in einem I-Feld ist in AX.25 Version 2
auf 256 festgelegt. Version 1 hatte eine Begrenzung auf 128 Bytes, die
Original-Firmware des TAPR-TNC-1 erlaubte 200 Bytes. Im Betrieb auf
stark gestoerten Kanaelen (z.B. Kurzwelle) kann es noetig sein, N1
kleiner zu waehlen als vom Protokoll her definiert, um die
Wahrscheinlichkeit zu erhoehen, dass ein Block ungestoert uebertragen
wird. Auf jeden Fall ist nur eine ganze Zahl von Bytes (inklusive Null)
als Anzahl zulaessig.
2.4.7.4 Maximale Anzahl unbestaetigter I-Blocks (k)
Die maximale Anzahl unbestaetigter I-Blocks zu einem Zeitpunkt ist
sieben.
Literaturnachweis:
/1/ AX.25 Amateur Packet-Radio Link-Layer Protocol Version 2.0
October 1984, Veroeffentlichung Nr. 56 der Radio Amateur's Library,
veroeffentlicht durch die American Radio Relay League, 1984.
/2/ X.25 Schnittstelle zwischen Datenendeinrichtung (DEE) und Daten-
uebertragungseinrichtung (DUeE) fuer Endeinrichtungen, die im
Paket-Modus in oeffentlichen Netzen arbeiten, Genf 1976.
In /1/ angegebene Literatur:
American Telephone and Telegraph Company, "Operations Systems
Network Communications Protocol Specification BX.25 - Issue 2."
ANSI X3.66, "Advanced Data Communication Control Procedure,"
(ADCCP).
CCITT Recommendation X.25, "Interface between Data Terminal
Equipment (DTE) and Data-Circuit Terminating Equipment (DCE) for
for Terminals Operating in the Packet Mode on Public Data
Networks."
ISO 3309, "Data communication -- High-level data link control
procedures -- Frame structure."
ISO 7205, "Reference Model of Open Systems Architecture."
ISO 7776, "Information Processing Systems - Data Communications -
2nd DP 7776 REVISED - Description of the 1984 x.25 LAPB - Compatible
DTE Data Link Procedures."
============================================================================
>>>>>> Der fuenfte Teil enthaelt die drei Zustandstabellen.
Read previous mail | Read next mail
| |