DAMA AX25 protokoll extension

----------------------------------------------------------------- D A M A - ein neues Verfahren fuer Packet-Radio ! ----------------------------------------------------------------- von DK4EG Detlef J. Schmidt, Stenbrechstr. 22, D-38106 Braunschweig NORD LINK e.V. c/o Peter Gülzow, DB2OS Allensteiner Str. 5 D-30880 LAATZEN Germany Immer wieder haben Packet-Radio-Amateure Probleme damit, dass sie vermeintlich nicht an 'ihren' Digipeater herankommen oder meinen, der Digipeater wuerde sie nicht verstehen. Und das, obwohl sie den Digi mit lautem gutem Signal aufnehmen koennen. Der Schluss, dass der Empfaenger des Digis wohl taub sein muesse, scheint sich auf- zudraengen. Den Fall gibt es natuerlich auch, er soll aber hier nicht betrach- tet werden. Wahrscheinlicher ist es, dass der Digipeater nicht 'nichts hoert', sondern dass er 'viel zu viel hoert'. Er hat ja typischerweise den 'besten' Standort aller beteiligten Stationen. Das fuehrt dann zu Kollisionen beim Digi mit mehreren Stationen, die sich untereinan- der nicht hoeren ('Hidden-Stations-Problem'). Nur wenn eines der gleichzeitig empfangenen Signale deutlich staerker beim Digi ankommt als alle anderen, hat es Chancen 'durchzukommen'. Fuer weiter ent- fernt liegende Stationen ist es dann oft unmoeglich, mit ihren Pack- ets zum Digi durchzudringen. Verschiedene Versuche sind schon unternommen worden, um dieses Pro- blem auf den Amateurbaendern zu loesen. Ein Loesungsansatz ist zum Beispiel der Einsatz von Duplex-Digis (BTMA). Aber auch dieses Sys- tem hat etliche Nachteile. Der Hardware-Aufwand eines Duplex-Digis ist um einiges hoeher als bei einem Simplex-Digi. Ausserdem belegt er z w e i Kanaele, bringt aber nur den Durchsatz e i n e s kol- lisionsfreien Kanals. Eine Durchsatzerhoehung tritt nur statistisch durch Kollisionsreduzierung auf. Eleganter waere es aber wohl, wenn man z.B. durch einfachen EPROM- Tausch oder noch besser nur durch eine andere Parametereinstellung das Problem loesen koennte. Dieses Problem der Packet-Radio-Amateure ist nun aber gar nicht so neu. Es gibt auch andere Funkdienste, die das gleiche Problem haben, z.B., wenn von Schiffen auf hoher See ein Kommunikations-Satellit angesprochen werden soll. Ein etabliertes Verfahren, das dieses Kollisionsproblem loest, ist z.B. das DAMA-Verfahren. Es ist die Abkuerzung von: Demand Assigned Multiple Acess, also etwa anforderungsbezogener Vielfachzugriff (auf den Uebertragungskanal). Vereinzelt taucht in der Literatur auch der treffendere Begriff CODAC dafuer auf (Carrier Oriented and Demand As- signed Controll). Der Begriff ist aber wohl wegen der phonetischen Verwechslungsmoeglichkeit mit einem Firmennamen aufgegeben worden. Der Ablauf dieses etablierten DAMAs ist etwa folgender: In einem Connection oriented protokoll wird zunaechst nach dem Slotted-Aloha- Verfahren versucht, den Satetelliten zu connecten. Kollisionen sind selten, werden aber in dieser Phase in Kauf genommen. Danach kennt der Satellit die Station und nimmt sie in seine Polling-Liste auf. Es werden also alle Stationen reihum vom Satelliten aus aufgerufen (gepollt), wobei der Aufruf gleichzeitig die Bestaetigung der empfan- genen Packets ist. Ist die Station einmal connected, sendet sie ihre Datenbloecke (I-Frames) nur noch nach Aufforderung durch einen Poll. Es koennen auch mehrere Frames en block gesendet werden. Antwortet der Endknoten (User) nicht unmittelbar innerhalb einer vorgegebenen Zeit, wird angenommen, dass der Poll nicht angekommen ist, und im naechsten Durchlauf wird sofort der Poll wiederholt. Desgleichen wird nach Empfang von Nutzdaten-Bloecken (I-Frames) in der naechsten Runde (also wenn alle anderen Stationen der Connect-Liste ab- gearbeitet sind) mit dem Poll die Bestaetigung geschickt. Kommt dagegen vom Endknoten nur eine leere Bestaetigung an (Receive Ready/Final), so wird er in der naechsten Runde uebergangen. Mit zunehmender Belegung des Uebertragungskanals kann eine momentan nicht aktive Station noch weiter in der Poll-Prioritaet heruntergesetzt werden, erlangt aber sofort wieder die hoechste Prioritaet, wenn sie mal mit ei- nem (oder mehreren) I-Frames antwortet. Liest man sich die vorige Protokollbeschreibung durch, glaubt man fast, das AX.25-Level-2-Protokoll darin zu erkennen. Und darin liegt wohl auch die Chance und die Moeglichkeit des DAMA-Verfahrens fuer Amateur-Packet- Radio. AX.25-L2 bietet unmittelbar alle Elemente, die fuer DAMA notwendig sind. Es muessen keine neuen Syntaxelemente eingefuehrt werden. Viele Funktionen lassen sich bereits durch Verstellen der Betriebsparameter er- reichen. Der Rest ist z.T. nur eine minimale Aenderung der Statetable in der Firmware. Wie koennte nun eine DAMA-Version fuer Amateur-Packet-Radio aussehen ? Da bereits alle Syntaxelemente vorhanden sind, muessen auch keine neuen eingefuehrt und erklaert werden. Wir bleiben daher fuer die Beschreibung in der bisherigen Terminologie von AX.25. Die verschiedenen Phasen des Protokolls sollen hier einzeln betrachtet werden. Verbindungsaufbau ----------------- Soll via Digi ein Endknoten connected werden, so wird die neue Station direkt in die Poll-Liste aufgenommen und mit SABM-Frames angepollt. Erfolgt innerhalb einer vorgegebenen Anzahl von SABMs kein UA des angesprochenen Endknotens, wird die Station wieder aus der Poll-Liste gestrichen. Geht die Initiative umgekehrt vom Endknoten aus, wird wie bisher im CSMA-Verfahren ein SABM an den Netzknoten gesendet. In dieser Phase sind Kollisionen moeglich, es ist also eventuell notwendig, nach einem vorgegebenen Timeout wie bisher weitere SABMs zu senden, bis der Netzknoten mit einem UA antwortet. Damit ist der Endknoten in die Pollingliste (Userlist bei TheNet) aufgenommen und wird ab diesem Zeitpunkt koordiniert. Der Endkno- ten antwortet mit einem RR count 0 als Signal an den Digi, dass sein UA aufgenommen wurde. Idle ---- Solange kein Informationstransfer zwischen Netz- und End-Knoten stattfindet (Ideln), sendet der Netz-Knoten seine Polls mit RR und dem zugehoerigen aktuellen Count. Kommt als Antwort des End-Knotens beim Digi ein RR mit dem zugehoerigen Count an, dann wird die Zeit bis zum naechsten Poll an denselben Endknoten verlaengert, um den Kanal nicht unnoetig mit Polls zu belasten. Wird das RR des End- Knotens nicht beim Digi empfangen (weil entweder der Poll oder die Antwort verlorenging), dann wird derselbe Endknoten beim naechsten Durchlauf (allso wenn alle anderen Uplink-Stationen einmal abge- arbeitet wurden) sofort wieder angepollt usw. Wenn nach einer vorgegebenen Anzahl von Polls keine Antwort empfan- gen wird, kann der End-Knoten aus der Poll-Liste geloescht werden. Dieses Verfahren stellt nur auf den ersten Blick mehr Transferauf- wand dar als in der bisherigen Version, da auch nun schon die Ge- genstation routinemaessig angepollt und irgendwann abgehaengt wird. Der Unterschied ist nur, dass in der neuen Version der End-Knoten frueher aus der Userliste gestrichen wird, wenn er nicht mehr ant- wortet, bei gleichbleibender Anzahl von Versuchen. Nutzdaten-Transfer Netzknoten-Endknoten ---------------------------------------- Dieser Fall unterscheidet sich in nichts vom 'normalen' CSMA-Ver- fahren. Da die Initiative ohnehin beim Digi liegt (Master), kann er auch zu jeder Zeit statt eines Polls ein oder mehrere I-Frames an den End-Knoten (Slave) senden. Der End-Knoten bestaetigt wie gehabt mit RR und dem zugehoerigen Count, er kann aber auch direkt mit I-Frames und den korrespondierenden Counts bestaetigen. Auch die Anwendung des Poll-/Final-Bits bleibt unveraendert. Nutzdaten-Transfer Endknoten-Netzknoten ---------------------------------------- Wie schon zuvor skizziert, sendet der Netzknoten reihum Polls an alle in der User-Liste verzeichnete Endknoten. Der Endknoten wartet also, bis er vom Digi mit einem RR angepollt wird oder ihm ein I- Frame gesendet wird und antwortet dann unmittelbar mit einem oder mehreren I-Frames zum Netzknoten. Dieses Warten auf den Poll macht den entscheidenden Aspekt der Kollisionsverhuetung aus im Gegensatz zum bisherigen Verfahren, bei dem mehrere Endknoten quasi gleich- zeitig senden koennen, weil sie sich untereinander nicht hoeren und nicht koordiniert sind. Zusaetzlich wird das Problem behoben, dass zwei Endknoten senden, die sich eigentlich hoeren koennten, aber in der jeweils eigenen Totzeit zwischen dem Abschalten des Empfaengers und dem Abstrahlen des modulierten Traegers die andere Station nicht 'hoeren'. Dieser Fall ist garnicht so selten, da verschiedene sendebereite Stationen ja von dem Traeger des Digis untereinander synchronisiert werden. Der Digi wird die gesendeten I-Frames nicht sofort bestaetigen, son- dern erst in der naechsten Runde, nachdem alle anderen Stationen der Liste bedient wurden. Dies ist dann auch gleichzeitig der naechste Poll. Stehen keine I-Frames zum Senden an, wird vom Endknoten wieder nur ein RR mit Count geschickt. Verbindungabbau --------------- Es kommen wieder dieselben Syntaxelemente zum Einsatz. Will der Netz- Knoten (Digi) den End-Knoten (User) abwerfen, so schickt er einfach wie bisher ein DISC-Frame. Der Endknoten antwortet darauf unmittel- bar mit einem UA (Final-Bit gesetzt). geht das UA verloren, antwortet der Endknoten beim naechsten eintreffenden DISC-Frame wie bisher mit einem DM-Frame. Will im umgekehrten Fall der Endknoten 'aussteigen', so wartet er den naechsten Poll ab und sendet daraufhin sein DISC- Frame an den Netzknoten. In diesem Falle ist es unerheblich, ob der Digi sofort oder erst in der naechsten Runde mit UA bestaetigt. UI-Frames --------- Eine gewisse Sonderstellung nehmen UI-Frames ein (Unnumbered Informa- tion), sowohl im normalen CSMA-Verfahren als auch im DAMA-CSMA-Ver- fahren. Sie sind urspruenglich einmal dafuer kreirt worden, einen Informationsaustausch ausserhalb des normalen Protokollablaufes zu realisieren. Werden UI-Frames vom Endknoten gesendet, so kann dies normalerweise nur ausserhalb des Betriebs mit dem Digi auftreten. Eigentlich sollte es diese Faelle ja nicht geben, da in diesem Falle der Direkt-QSOs nicht die Digi-Einstiegsfrequenz benutzt werden sollte. UI-Frames des Digis stellen ohnehin wieder kein Problem dar, da er ja von allen Stationen auf der Frequenz gehoert wird. Sonstige Protokollelemente -------------------------- Somit waere eine idealisierte Session vom Verbindungsaufbau bis zum -abbau komplett beschrieben. Es wurden nicht alle AX.25 moeglichen Protokollelemente dargestellt. Dies ist aber in diesem Kontext auch nicht zwingend notwendig, da saemtliche Elemente ihre logische Bedeutung behalten. DM, RNR, REJ werden in dem gleichen Sinne benutzt wie bisher. Der Unterscheid zur reinen CSMA-Version ist lediglich, dass der Endknoten sie wie die anderen Protokollelemente nur nach einem Poll des Digis sendet. Netzknotenseitig gibt es nur den Unterschied, dass diese entsprech- enden Frames nicht sofort oder zu beliebiger Zeit, sondern immer erst dann gesendet werden, wenn alle anderen registrierten Stationen (im gleichen Sinne) einmal abgearbeitet wurden. und genau der im Frame adressierte Endknoten angesprochen werden soll. Vertraeglichkeit der Protokollversionen --------------------------------------- Eine moegliche Einfuehrung des DAMA-CSMA-Verfahrens koennte sich kontinuierlich vollziehen. Natuerlich wird die Durchsatzsteigerung um so groesser, je mehr Stationen auf das neue Verfahren einsteigen. Aber selbst Stationen, die nicht auf die neue Kanal-Zugriffsmethode einsteigen, koennen teilweise zur Durchsatzsteigerung beitragen, indem sie ihre Parameter anders einstellen. Dazu muesste der Delay zwischen Empfang eines an sie gerichteten Frames und der zugehoerigen Bestaetigung (T2 oder DWAIT) auf einen Minimalwert gesetzt werden (weniger als 1 sec). Die Zeit bis zur Pollaussendung auf ein eigenes ausgesendetes I-Frame (um eine Bestaetigung 'anzumahnen') wird auf einen relativ hohen Wert gesetzt, der deutlich groesser ist als normalerweise der zeit- liche Abstand zwischen zwei Polls des Netzknotens. Um die vollen Moeglichkeiten des Verfahrens auszuschoepfen, muessen beide Seiten die neue Protokollversion fahren. Dazu muss der Endkno- tenseite irgendwie mitgeteilt werden, dass sie sich nun auf die neue Protokollvariante einzustellen hat. Mehrere Methoden bieten sich an: - Einfuehrung eines UPLINK-Kommandos zusaetzlich zum CONNECT-Kommando; - Einfuehrung eines kanalspezifischen Parameters im TNC, der die Pro- tokoll-Variante steuert; - automatische Erkennung der Protokollvariante mittels Protokoll-Identi- fier-Bytes vom Netzknoten; - eingeschraenkte Nutzung des Verfahrens durch Aenderung der TNC-Timer (wie zuvor skizziert); - Daneben ist natuerlich auch noch die Einfuehrung eines neuen Proto- kollelements moeglich, mit der die jeweilige Variante gesteuert wird. Das wuerde z.B. wie bei X.25 die Funktion eines SABM-Frames darstellen. Auch damit waere weiterhin Kompabilitaet zu dem bisherigen Protokoll gewaehrleistet, da die 'alten' Protokollversionen auf unbekannte Frames nicht oder mit FRMR reagieren sollen Zusammenfassung --------------- Das skizzierte Verfahren kann den Durchsatz auf einem AX.25-Kanal deut- lich erhoehen. Es hat die entscheidenden Vorteile, dass es kein Netz- zusammenbruch durch Ueberlastung dse Kanals gibt. Die Uebertragungkapa- zitaet des Kanals steigt kontinuierlich bis zum Maximum, es gibt keinen Umkipp-Punkt wie bei reinem CSMA, bei dem die Netto-Uebertragungsrate oberhalb einer gewissen Schwelle (ca. 65 bis 85 % bei CSMA pur) wieder abnimmt. Nur bei geringer Kanalbelastung werden bei DAMA mehr Uebertragungen notwendig sein (Overhead). Dies stoert aber nicht weiter, solange die Kanalkapazitaet nicht ausgeschoepft wird. Mit zunehmender Kanalaus- lastung geht der Overhaed-Anteil dann weiter zurueck bis auf den mini- malen Wert des idealen CSMA-Verfahrens ohne Kollisionen. Als entscheidende 'soziale' Komponente gibt DAMA auch entfernteren Sta- tionen die Moeglichkeit, stabil ueber den Digi zu arbeiten, ohne von den naeherliegenden Stationen 'niedergebruellt' zu werden. Es ist nicht notwendig, dass alle beteiligten Stationen gleichzeitig auf die neue Protokollvariante umsteigen. Alle Protokollelemente be- halten ihre urspruengliche Bedeutung, so dass die Endknoten die alte und die neue Variante nebeneinander benutzen koennen. Der Kanaldurch- satz wird dabei um so besser, je mehr Stationen anteilig die neue Variante benutzen. Literatur --------- div. : Normblatt X.25 CCITT. div. : Transaction on communication IEEE. Fox, T. : AX.25 level 2 protocol specification AMRAD. Kauffels, F.J.: Lokale Netze . R.-Mueller-Verlag. Schmidt, D.J. : Synchrone DFUe-Protokolle mit 6809-Micro-Computern in heterogenen Sternnetzen. TU-Script BS'81, Tanenbaum, A. : Computer Networks. Prentice Hall Verlag. Schmidt,D.J. : DAMA, ein neues Verfahren fr cq-DL, 4/89 Packed-Radio? Glossar ------- DM : Disconnect Mode DISC : Disconnect Frame FRMR : Frame Reject I : Information Frame REJ : Reject Frame RNR : Receive Not Ready RR : Receive Ready SABM : Set Asynchronous Balanced Mode SARM : Set Asynchronous Response Mode UA : Unnumbered Acknowledge UI : Unnumbered Information Frame BTMA : Busy Tone Multiple Access CSMA : Carrier Sense Multiple Access Connection oriented protocoll: alle Knoten der Strecke kennen alle Stationen, die die Strecke be- nutzen, zumindest kurzzeitig. Im Gegensatz dazu steht das Connec- tionless protocoll, bei dem alle Daten-Packets einfach nur weiter- gereicht werden (also z.B. einfaches Level-2-Digipeaten bei PR). Connection oriented Protokolle sind typischerweise aufwendiger in der Realisierung und benoetigen mehr Rechnerleistung in den Netz- Knoten, dafuer sind sie aber speziell auf Uebertragungskanaelen mit geringer Kapazitaet ueberlegen, da nicht in jedem Frame die gesamte Routing-Information mittransportiert werden muss, sondern nur einmal waehrend des Verbindungsaufbaus.

Pr4Win by  Bernd M. Stroj (OE8DJK), last updated on May 7, 1998.