From 04e68443040c7abad84d66477e98f93bed701760 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Mon, 4 Feb 2019 13:09:03 +0100 Subject: Initial import --- system/net/1.7.5/doc/EUMEL Netz | 832 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 832 insertions(+) create mode 100644 system/net/1.7.5/doc/EUMEL Netz (limited to 'system/net/1.7.5/doc/EUMEL Netz') diff --git a/system/net/1.7.5/doc/EUMEL Netz b/system/net/1.7.5/doc/EUMEL Netz new file mode 100644 index 0000000..ad39db3 --- /dev/null +++ b/system/net/1.7.5/doc/EUMEL Netz @@ -0,0 +1,832 @@ +#type ("trium8")##limit (11.0)# +#start(2.5,1.5)##pagelength (17.4)# +#block# +#headeven# + +% EUMEL-Netzbeschreibung + + +#end# +#headodd# + +#center#Inhalt#right#% + + +#end# + +#type ("triumb12")# +1. Einleitung + + +Teil 1: Netz einrichten und benutzen +#type ("trium8")# + +1. Benutzung des Netzes + +2. Hardwarevoraussetzungen + +3. Einrichten des Netzes + +4. Informationsm”glichkeiten + +5. Eingriffsm”glichkeiten + +6. Fehlerbehebung im Netz + +#type ("triumb12")# + +Teil 2: Arbeitsweise der Netzsoftware +#type ("trium8")# + +1. Die Netztask + +2. Protokollebenen + +3. Stand der Netzsoftware + +#page# +#headodd# + +#center#Einleitung#right#% + + +#end# + +#type("triumb12")# +1. Einleitung #type("trium8")# + + +Das EUMEL-Netz dient dazu mehrere EUMEL-Rechner (sog. Stationen) mit- +einander zu koppeln. Diese Kopplung wird von Betriebsystem dazu benutzt, das +Sendungskonzept (siehe Systemhandbuch 1.7, Intertaskkommunikation) so auszu- +dehnen, daá Tasks verschiedener Stationen einander Datenr„ume zusenden +k”nnen. Auf dem Sendungskonzept aufbauende Konzepte nutzen daher automa- +tisch das Netz aus: So ist es z.B. m”glich + +- von einer Station aus auf einer anderen zu Drucken, + +- in PUBLIC einer anderen Station Dateien zu sichern (save), vorausgesetzt, daá + PUBLIC dort ein free global manager ist, + +- auf einer anderen Station zu archivieren (z.B. wenn das eigene Archivlaufwerk + defekt ist oder ein anderes Format hat). + +Das Netz kann ab EUMEL-Version 1.7.3 eingesetzt werden. + + +#type("triumb12")# +Teil 1: Netz einrichten und benutzen + +1. Benutzung des Netzes #type("trium8")# +#headodd# + +#center#Teil 1: Netz einrichten und benutzen#right#% + + +#end# + + Zur Benutzung des Netzes stehen folgende Operatoren und Prozeduren zur + Verfgung: + + +1.1 + + TASK OP / (INT CONST station, TEXT CONST taskname) + + liefert die Task #on("bold")#taskname#off("bold")# von der Station #on("bold")#station#off("bold")#. + + Wenn die Station #on("bold")#station#off("bold")# nicht am Netz ist oder nicht eingeschaltet ist, wird + solange gewartet, bis das der Fall ist. + + Fehlerf„lle: + + - task "..." gibt es nicht + + Die angeforderte Task gibt es in der Zielstation nicht. + + - Collectortask fehlt + + Das Kommando #on("bold")#define collector#off("bold")# wurde nicht gegeben (siehe 4.2). + + - Station x antwortet nicht + + Eine nicht vorhandene oder abgeschaltete Station wurde angesprochen. + Hinweis: Dieser Fehler wird angenommen, wenn eine šberwachungszeit + von ca. 30 Sekunden verschrichen ist, ohne daá Station x die + Taskidentifikation angeliefert hat. + + Beispiel: + + list (5/"PUBLIC") + + Dateiliste von PUBLIC auf Station 5 wird angefordert. + +1.2 + + TASK OP / (INT CONST station, TASK CONST task) + + liefert + + station / name (task) . + + + Beispiel: + + list (4/archive) + + +1.3 + + INT PROC station (TASK CONST task) + + liefert die Stationsnummer der Task #on("bold")#task#off("bold")#. + + Beispiel: + + put (station (myself)) + + gibt die eigene Stationsnummer aus. + + +1.4 + + PROC archive (TEXT CONST archivename, INT CONST station) + + dient dazu das Archiv auf der Station #on("bold")#station#off("bold")# anzumelden. + + Beispiel: + + archive ("std", 4); list (4/archive) + + gibt das Inhaltsverzeichnis der Archivfloppy im Laufwerk der Station 4 aus. + Hinweis: Vergessen Sie bei solchen Querarchivierungen nicht die Stations- + angabe bei jedem einzelnen Archivkommando (z.B fetch ("xxx", #on("bold")#4/#off("bold")# + archive). + Hinweis: Querarchivieren ist langsam. Verwenden Sie es nur, wenn Sie Flop- + pyformate umsetzen wollen. + + +1.5 + + PROC free global manager + + dient dazu, die eigene Task ber das Netz ansprechbar zu machen. Jede + andere Task im Netz kann dann die blichen Manageraufrufe ('save', 'fetch', + u.s.w.) an die eigene Task machen, sofern diese nicht an ein Terminal gekop- + pelt ist. + + Die Task wird (wie bei 'break') abgekoppelt und meldet sich in Zukunft mit + 'maintenance' statt mit 'gib kommando'. + + Beispiel: + + An Station 4 ruft man in der Task 'hugo' das Kommando #on("bold")#free global manager#off("bold")# + auf. Anschlieáend kann man von jeder Station aus z.B. 'list (4/"hugo")' u.s.w. + machen. + + +1.6 + + TEXT PROC name (TASK CONST t) + + Diese (schon immer vorhandene) Prozedur wurde dahingehend erweitert, daá der + Name einer Task einer anderen Station ber Netz angefordert wird. + + Fehlerfall: + + Station x antwortet nicht + + + + +#type("triumb12")#2. Hardwarevoraussetzungen#type("trium8")# + +2.1 Zwei Stationen + + Sie k”nnen zwei Stationen miteinander Vernetzen, wenn Sie dafr an jeder + Station eine V24-Schnittstelle zur Verfgung stellen. + + Diese beiden Schnittstellen verbinden Sie mit einem Kabel zur Rechner- + kopplung (siehe Systemhandbuch 1.7 Teil 2). + +2.2 Mehrere Stationen + + Wenn Sie mehr als zwei Stationen vernetzen wollen, brauchen neben je + einer V24 an jeder Station noch je eine Netzanschluábox. + + Jede Box besitzt eine V24-Schnittstelle zum Anschluá an die V24- + Schnittstelle der zugeorneten Station und eine weitere Schnittstelle zur + Verbindung der Boxen untereinander. + + +#type("triumb12")#3. Einrichten des Netzes #type("trium8")# + +Hinweis: Dieses Kapitel ist nur fr Systembetreuer wichtig. + +3.1 Legen Sie Stationsnummern fr die am Netz beteiligten Rechner fest (von 1 an + aufsteigend). + + Die Boxen haben ebenfalls Stationsnummern. Die Stationsnummern der Box + und des zugeordneten Rechners mssen bereinstimmen. + + +3.2 Holen Sie an jeder Station die Task #on("bold")#configurator#off("bold")# an ein Terminal und geben Sie + das Kommando #on("bold")#define collector ("net port")#off("bold")#. Geben Sie auáerdem das + Kommando #on("bold")#define station (x)#off("bold")#, wobei #on("bold")#x#off("bold")# die gew„hlte Stationsnummer ist. + + Hinweis: Taskkommunikationen, die zu dem Zeitpunkt laufen, fhren zu feh- + lerhaften Verhalten. Dies liegt daran, daá durch #on("bold")#define station#off("bold")# alle + Task-Id's ge„ndert werden mssen, weil eine Task-Id u.a. die + Stationsnummer der eigenen Station enth„lt (siehe 2.3). TASK- + Variable, die noch Task-Id's mit keiner oder falscher Stationsnum- + mer enthalten, k”nnen nicht mehr zum Ansprechen einer Task + verwendet werden. + + Beispiel: Der Spoolmanager (siehe Benutzerhandbuch 1.7 Teil 12) richtet + beim Kommando #on("bold")#start#off("bold")# einen Worker ein und merkt sich dessen + Task-Id in einer TASK-Variablen, um sicherzustellen, daá nur der + Worker Dateien zum Drucken abholt. Wird jetzt das Kommando #on("bold")# + define station#off("bold")# gegeben, kann der Spoolmanager seinen Worker + nicht mehr identifizieren, weil der Worker eine neue Task-Id er- + halten hat. Man muá daher den Worker l”schen und mit dem + Kommando #on("bold")#start#off("bold")# im Spoolmanager wieder neu einrichten. + + + Sinnvollerweise gibt man #on("bold")#define station#off("bold")# sofort nach den Laden eines + frischen Systems von Archiv. + + Konfigurieren Sie mit dem Kommando #on("bold")#configurate#off("bold")# den fr das Netz vorgese- + henen Kanal auf + + - transparent + - 9600 Baud (Standardeinstellung der Boxen) + - RTS/CTS-Protokoll + - groáen Puffer + - 8 bit + - even parity + - 1 stopbit. + + Falls diese Einstellungen nicht alle angeboten werden, kl„ren Sie mit Ihrem + Rechnerlieferanten, ob und wie diese Einstellungen erreicht werden k”nnen. + Hinweis: Notfalls kann auf das RTS/CTS-Protokoll verzichtet werden, wenn + der Eingabepuffer der Station groá genug ist. Die Anzahl simultan + laufender Netzkommunikationen ist dann auf + + puffergr”áe DIV 150 + + begrenzt (bei Z80, 8086: 3; bei M20: 10). + Hinweis: Es k”nnen auch andere Baudraten (2400, 4800, 19200) an der Box + eingestellt werden. + +3.3 Achten Sie bei der Verbindung von der Station zur Netzbox (bzw. zur Gegen- + station bei einem Zweistationennetz ohne Boxen) darauf, daá neben den + Empfangs- und Sendeleitungen auch die Leitungen RTS und CTS verdrahtet + werden, also ein 5 poliges Kabel verwendet wird (siehe Systemhandbuch 1.7 + Teil 2). Die Pin-Belegung der Boxen entspricht den dortigen Angaben. + + Beispiel: + + Verbindung eines CSK-Systems mit der Box: + + Stecker Stecker + Pin Pin + + 2 <---------> 3 + 3 <---------> 2 + 4 <---------> 5 + 5 <---------> 4 + 7 <---------> 7 + + +3.4 Richten Sie eine Task #on("bold")#net#off("bold")# unter #on("bold")#SYSUR#off("bold")# ein und insertieren Sie dort die Datei- +en + + net report/M + basic net + net manager/M. + + Beantworten Sie die Frage nach dem Kanal fr das Netz und nach der Fluá- + kontrolle (RTS/CTS). + + +#type("triumb12")#4. Informationsm”glichkeiten #type("trium8")# + + In der Task #on("bold")#net#off("bold")# wird eine Datei #on("bold")#report#off("bold")# gefhrt in der Fehlersituationen des + Netzes verzeichnet werden. Diese Datei kann in jeder anderen Task mit #on("bold")#list + (/"net")#off("bold")# angezeigt werden. + + In jeder Task kann durch das Kommando #on("bold")#list (/"net port")#off("bold")# eine šbersicht ber + die momentan laufenden Netzbertragungen der eigenen Station erhalten + werden. + + +#type("triumb12")#5. Eingriffsm”glichkeiten #type("trium8")# +#headodd# + +#center#Eingriffsm”glichkeiten#right#% + + +#end# + +5.1 Jede Task kann Sende- und Empfangsstr”me, die bei #on("bold")#list (/"net port")#off("bold")# gemel- + det worden sind und die eigene Task betreffen, abbrechen. Hierzu ist das + Kommando #on("bold")#erase ("x",/"net port")#off ("bold")# zu geben, wobei x die Stromnummer (aus + dem 'list') ist. + + Unberechtigte L”schversuche werden abgewiesen. + + Von der Task 'net' aus k”nnen jedoch damit beliebige Str”me abgebrochen + werden. + +5.2 Durch das Kommando #on("bold")#start#off("bold")# kann von der Task 'net' aus das Netz neu gestartet + werden. Dabei werden alle augenblicklichen Netzkommunikationen gel”scht. + Die Tasks 'net port' und 'net timer' werden dabei gel”scht und neu eingerich- + tet. + + #on("bold")#start (kanal, quit)#off("bold")# wirkt wie #on("bold")#start#off("bold")#. Zustzlich wird als Netzkanal 'kanal' eingestellt + und maximal 'quit' Empfangsstr”me zugelassen. 'quit' ist auf 3 zu setzen, + wenn der Kanal ohne RTS/CTS angeschlossen ist (siehe 3.2). + + +#type("triumb12")#6. Fehlersuche im Netz #type("trium8")# + + Fehler im Netz k”nnen sich verschiedenartig auswirken. Im Folgenden wird auf + einige Beispiele eingegangen: + + Beispiel: + + Auf #on("bold")#list (4/public)#off("bold")# erfolgt die Meldung 'Station 4 antwortet nicht'. + + Fehlerm”glichkeiten: + + - Station 4 gibt es nicht am Netz. + Abhilfe: Richtige Station angeben. + + - Station 4 ist nicht eingeschaltet. + Abhilfe: Station 4 einschalten. Kommando erneut geben. + + - Netztask an Station 4 ist nicht arbeitsf„hig. + Abhilfe: Kommando 'start' in der Task 'net'. + + - Stationsnummern und Boxnummern stimmen nicht berein. + Abhilfe: Mit 'define station' Stationsnummern korrigieren (siehe 3.2). + + - Verbindung Rechner/Box am eigenen Rechner oder an Station 4 fehlt. + Abhilfe: Verbindungen berprfen. Durch Ansprechen einer dritten Station + kann oft schnell gekl„rt werden, welche Rechner/Box-Verbindung + defekt sein muá. + + - Verbindung der Boxen untereinander defekt. + Abhilfe: Fehlende Verbindung, Masseschluá und Dreher (keine 1:1 Ver- + bindung) berprfen und beheben. + Hinweis: Liegt z.B. ein Masseschluá vor, so kann es durchaus sein, daá + Boxen, die nicht in der N„he des Masseschluá stehen noch mitei- + nander arbeiten k”nnen. Man kann aus der Tatsache, daá zwei + Boxen miteinander arbeiten k”nnen, also nicht schlieáen, daá man + nicht nach diesem Fehler suchen muá. + + + Beispiel: + + Auf #on("bold")#list (4/public)#off("bold")# erfolgt keine Reaktion. + + + - Station 4 ist w„hrend dieser Sendung zusammengebrochen. + Abhilfe: Station 4 wieder starten. Die Bearbeitung des 'list'-Kommandos + wird automatisch wieder aufgenommen. + + - PUBLIC auf Station 4 ist nicht im Managerzustand. + Abhilfe: PUBLIC in den Managerzustand versetzen. + + + Hinweis: Das Netz hat nocht nicht die volle Sendungslogik des EUMEL. So + wird nur ca. 10 Minuten lang versucht, eine Sendung zuzustellen. + Danach wird die Sendung gel”scht. Ist dies eingetreten, so muá + das list-Kommando erneut gegeben werden. + + - Fehler in der Netzhardware. + šberprfen Sie, ob + + - die Boxen eingeschaltet sind, + - die Bereitlampe blinkt (wenn nicht: RESET an der Box) + - die V24-Kabel richtig stecken, + - die Boxen untereinander verbunden sind (1 zu 1 Verbindungen der 5 + poligen Diodenbuchsen). + + + - Die Netzsoftware ist auf einen nicht vorhergesehenen Fehler gelaufen. + Dieser wird im Report vermerkt. + Abhilfe: Geben Sie in der Task #on("bold")#net#off("bold")# das Kommando #on("bold")#start#off("bold")#. Dadurch wird die + Netzsoftware neu gestartet. Alle Netzkommunikationen dieser + Station gehen verloren. + + + Beispiel: + + Auf #on("bold")#list (4/public)#off("bold")# erfolgt die Meldung 'Collectortask fehlt'. + + - In der Task 'configurator' wurde das Kommando 'define collector' (siehe 3.2) + nicht gegeben. + + - Die Task 'net port' existiert nicht mehr. + Abhilfe: Kommando 'start' in der Task 'net'. + + + Beispiel: + + Nach #on("bold")#fetch ("hugo",4/public)#off("bold")# sind Teile von der Datei "hugo" verf„lscht. + + - Die V24-Verbindung zur Box ist nicht in Ordnung. + Abhilfe: Abstand zwischen Rechner und Box verkrzen; Baudrate ernie- + drigen; Durch Wechseln der V24-Schnittstelle feststellen, ob + diese defekt ist. + Hinweis: Die Verbindung zwischen den Boxen ist durch Prfsummen abge- + sichert (Hardware). + +#headodd# + +#center#Teil 2: Arbeitsweise der Netzsoftware#right#% + + +#end# +#page# +#type("triumb12")# + +Teil 2: Arbeitsweise der Netzsoftware + + +1. Die Netztask #type ("trium8")# + +In diesem Kapitel wird beschrieben, wie eine Netztask in das System +eingebettet ist und welche Aufgaben sie hat. Unter Einhaltung dieser +Konzepte kann die ausgelieferte Netztask so ge„ndert werden, daá sie +beliebige andere Netzhardware untersttzt. Z.Zt. ist die Netzsoftware noch +nicht so gegliedert, daá nur eine hardwareabh„ngige Komponente ausgetauscht +werden muá. + +Die Kommunikation zwischen Tasks im EUMEL-Betriebssystem basiert auf einem +Rendevouskonzept: Die Zieltask einer Sendung muá empfangsbereit sein, wenn die +Quelltask sendet. + +Die Kommunikationsprozeduren auf der niedrigsten Ebene sind 'send' (Senden) +und 'wait' (Warten auf Empfang). Bei der Kommunikation werden eine Integer +'code' und ein Datenraum 'dr' bergeben. 'code' muá >= 0 sein, da negative +Codes systemintern verwandt werden. Ist die empfangende Task an einen Kanal +gekoppelt ('continue'), so fhrt eine Zeicheneingabe auf diesem Kanal dazu, +daá eine +Sendung mit dem Code -4 ankommt. Die Eingabedaten mssen mit den blichen +Eingabeprozeduren ('inchar' u.s.w.) abgeholt werden. Der bermittelte Datenraum +und die Absendertask sind dabei ohne Bedeutung und drfen nicht interpretiert +werden. + +Die Prozedur 'send' hat einen Rckmeldeparameter, der besagt, ob die Sendung +bermittelt wurde. Gibt es die Zieltask nicht oder steht sie nicht im 'wait', so kann +die Sendung nicht bermittelt werden. + + +Ein Entwicklungskriterium fr das EUMEL-Netz war es, m”glichst wenig Unter- +sttzung von der virtuellen EUMEL-Maschine (EUMEL0) zu fordern, damit weit- +gehend in ELAN programmiert werden kann. Dadurch ist es m”glich eine (privili- +gierte) Task mit der Netzabwicklung zu betrauen. + +Zun„chst wird auf die EUMEL0-Untersttzung eingegangen: + +1.1. Es gibt die Prozedur 'define collector', mit der die fr das Netz verantwort- + liche Task der EUMEL0-Maschine bekannt gemacht wird. Diese Task wird im + folgenden Collector genannt. + +1.2. Es gibt die Prozedur 'define station', die fr den Rechner eine Stationsnum- + mer einstellt. Anhand dieser Nummer werden die Rechner eines Netzes un- + terschieden. Das Einstellen bewirkt, daá fr alle Tasks die Stationsnummer in + ihre Task-Id eingetragen wird (Task-Id's sind die Werte, die der Typ TASK + annehmen kann). + +1.3. Der Befehl 'station (task)' liefert die Stationsnummer der 'task'. So liefert z.B. + 'station (myself)' die Stationsnummer des eigenen Rechners. + +1.4. Eine Sendung, deren Zieltask in einem anderen Rechner liegt (also station + (ziel) <> station (myself)), wird auf die Collectortask geleitet. + +1.5. Es gibt eine Prozedur 'collected destination', die es dem Collector erlaubt, die + eigentliche Zieltask einer auf ihn geleiteten Sendung zu erfahren. + +1.6. Es gibt eine Variante der Prozedur 'send', die es dem Collector gestattet, der + Zieltask eine beliebige andere Task als Absender vorzumachen. + +1.7. Es gibt eine spezielle Task-Id 'collector', durch die der augenblicklich ein- + gestellte Collector erreicht wird. Diese wird als Zieltask beim Aufruf der Ver- + mittlungsdienste angegeben (siehe 2.5). Eine Sendung an 'collector' wird von + EUMEL0 an den derzeitigen Collector geschickt. + +Ein Collector kann also auf drei Wegen von den brigen Tasks desselben Rechners +Sendungen erhalten: + + 1. šber ein normales Send (z.B. bei 'list (/"net port")', wenn "net port" der der- + zeitige Collector ist), + + 2. ber ein Send an die Task 'collector' (s.u.) und + + 3. als umgeleitete Sendung (z.B. bei 'list' an eine Task auf einem anderen + Rechner). + +Der Collector kann diese F„lle anhand von 'collected destination' unterscheiden. + +Die Punkte 1.4...1.6 dienen dazu, den Collector fr ber Netz kommunizierende +Task unsichtbar zu machen: Der Collector taucht nicht als Ziel oder Quelle von +Sendungen auf. Das ist notwendig, damit normale Tasks sich nicht darum kmmern +mssen, ob eine Sendung bers Netz geht oder im eigenen Rechner bleibt. + +Wenn ein Datenraum an einen anderen Rechner geschickt wird, muá der gesamte +Inhalt (z. Zt. max. 1 MB) bertragen werden. Dies macht bei der blichen Netz- +hardware eine Zerlegung in Packete n”tig (siehe Systemhandbuch 173, Teil 4, +Punkt 5). Fr Netze ber V24-Kan„le stehen spezielle Blockbefehle zur verf- +gung: + +1.8. blockin / blockout (dr,seite,512+abstand,anzahl,rest) + + Es werden maximal 'anzahl' Bytes transferiert. In 'rest' wird zurckgemeldet, + wieviel Bytes nicht bearbeitet wurden (z.B. weil der Kanal nichts anliefert). + Bearbeitet werden die Bytes + + 'seite' * 512 + 'abstand' + + bis maximal + + 'seite' * 512 + 'abstand' + 'anzahl' - 1 + + Der Kanal, an den die Task gekoppelt ist, wird dabei ber Stream-IO (d.h. + 'incharety' bei 'blockin' bzw. 'out' bei 'blockout') angesprochen. + + Hinweis: Die Anforderung darf nicht ber Seitengrenze gehen, d.h. + + 'abstand' + 'anzahl' <= 512 + + muá erfllt sein. + + +Eine Netzsendung l„uft wie folgt ab: + +Die Task q auf Rechner rq mache ein 'send' an die Task z auf Rechner rz. + +1. Die Prozedur send ist ein EUMEL0-Befehl. Die EUMEL0-Ebene erkennt, daá + die Sendung an die Station rz geht, da die Stationsnummer in der Task-Id + enthalten ist. Daher wird die Sendung zum Collector, den EUMEL0 wegen 'de- + fine collector' kennt, umgeleitet. + +2. Die Task Collector empf„ngt ber 'wait' den Datenraum, den Sendecode und + die Absendertask q. Die Zieltask z erf„hrt sie durch 'collected destination'. + +3. Der Collector nimmt Kontakt mit dem Collector des Rechner rz, dessen Sta- + tionsnummer ja 'station(z)' ist, auf und šbermittelt diesem Sendecode, Quelltask + (q), eigentliche Zieltask (z) und den Datenraum. Da die Collectoren in ELAN + geschrieben sind, k”nnen sie an beliebige Netzhardware und Protokolle ange- + paát werden. + +4. Der Collector auf Rechner rz verwendet das spezielle 'send', um der Zieltask die + Sendung zuzustellen. Dadurch erscheint nicht der Collector sondern die Task q + als Absender der Sendung. + +Zur Abwicklung der Vermittlungsebene (Teil 1: 2.4) muá der Collector noch +spezielle Funktionen beherrschen. Diese sind + + der /-Operator (Taskname in Task-Id wandeln) und + die name-Prozedur (Task-Id in Namen wandeln). + +Der /-Operator macht eine Sendung an den 'collector', wobei im Datenraum der +Name der Task steht und der Sendecode gleich der Stationsnummer ist (siehe +Quellcode 173, Packet tasks). Der Collector setzt sich mit dem Collector dieser Sta- +tion in Verbindung, damit dieser die Task-Id ermittelt und zurckschickt. Der +eigene Collector schickt dann dem /-Operator als Antwort einen Datenraum, der +die Task-Id enth„lt. + +Umgekehrt l„uft 'name' ab: Wenn die Task-Id von einer fremden Station ist, +schickt 'name' eine Sendung an den 'collector', wobei im Datenraum die Task-Id +steht und Sendecode = 256 ist. Der Collector entnimmt die Stationnummer der +Task aus der Task-Id und l„át sich vom entsprechenden Collector den Tasknamen +geben. Dieser wird der 'name'-Prozedur im Antwortdatenraum bergeben. + +#type ("triumb12")#2. Ebenen #type("trium8")# + +In diesem Kapitel werden die Protokollebenen fr das Netz beschrieben, wie +sie die ausgelieferte Netzsoftware benutzt und erwartet. Bei anderer +Netzhardware mssen die Ebenen 1 bis 3 ausgetauscht werden. Unter Einhaltung +der im vorigen Kapitel beschriebenen Randbedingungen k”nnen auch die h”heren +Ebenen ge„ndert werden. + + +2.1 Physikalische Ebene + + 2.1.1 Station <--> Box + + V24-Schnittstelle mit RTS/CTS-Handshake. Vollduplex. + + 2.1.2 Box <--> Box + + RS422 ber 2 verdrillte Leitungspaare (Takt und Daten). + +2.2 Verbindungsebene + + 2.2.1 Station <--> Box + + Asynchron + 8 Bit + Even Parity + 2400/4800/9600/19200 Baud (einstellbar ber L”tbrcken) + + 2.2.2 Box <--> Box + + SDLC + 400 KBaud + +2.3 Netzebene + + 2.3.1 Station <--> Box + + Telegrammformat: STX, , , , <(n-4) byte> + + ist L„ngenangabe ( 8 <= n <= 160) + , sind Stationsnummern. Diese mssen an den je- + weiligen Boxen ber L”tbrcken eingestellt sein. + + Box --> Station: + + Ein Telegramm kommt nur bei der Station an, bei deren Box die + Nummer eingestellt ist. Dadurch ist ein Mith”ren fremder + šbertragungen nicht m”glich (Datenschutz). + + Zwischen Telegrammen k”nnen Fehlermeldungen der Box (Klartext) + bermittelt werden (z.B. 'skipped x', wenn ein STX von der Box er- + wartet wurde, aber 'x' von der Station ankommt). + + Station --> Box: + + Ein Telegramm wird nur abgeschickt, wenn mit der einge- + stellten Nummer bereinstimmt (Datenschutz: Man kann nicht eine + beliebige Station zu sein vorschwindeln, es sei denn man hat physi- + schen Zugriff zur Box und stellt dort die Stationsnummer um). + + 2.3.2 Box <--> Box + + Telegrammformat: FRAME, , , , + + + Eine L„ngenangabe ist nicht n”tig, da SDLC eine Rekonstruktion der + L„nge erlaubt. + + Telegramme mit falschen CRC-Code werden vernichtet. Auf h”heren + Ebenen muá dies durch Zeitberwachung erkannt und behandelt + werden. + + +2.4 Transportebene + + Diese Ebene wickelt das Rendevous zwischen einer Task, die 'send' macht, + und einer Task, die im 'wait' steht, ab (siehe: EUMEL-Systemhandbuch). + + Der im 'send' angegebene Datenraum wird als Folge von Seiten (im + EUMEL-Sinne: Pagingeinheit und Allokiereinheit) bermittelt, wobei jede Seite + noch in 64 Byte groáe Stcke zerlegt wird. Es werden nur echt allokierte Seiten + bermittelt. Um nicht jedes Telegramm voll qualifizieren zu mssen, wird + zun„chst eine Art virtuelle Verbindung durch ein OPEN-Telegramm er”ffnet. + Danach folgen variable viele DATA-Telegramme. Beide Sorten werden durch + QUIT-Telegramme quittiert, um folgende Funktionen zu erm”glichen: + + Fluákontrolle (z.B. Zielrechner langsam) + Wiederaufsetzen (verlorene Telegramme) + Abbruch (z.B. weil Zieltask inzwischen beendet). + + Ein CLOSE-Telegramm ist nicht n”tig, da das letzte DATA-Telegramm als + solches erkannt werden kann (siehe unten). + + 2.4.1 OPEN-Telegramm + + STX, 20, , , , , , + , , + + , siehe 2.3.1 + + Die Stromnummer identifiziert die virtuelle Verbindung. + Sie muá in den QUIT-Telegrammen angegeben wer- + den. + + -1 (Kennzeichen fr OPEN) + + Nummer der ersten echt allokierten Seite des Datenra- + ums (=-1, falls Nilspace) + + Taskid der sendenden Task + + Taskid der empfangenden Task + + Wert des im 'send' angegebenen Codes. + + 2.4.2 DATA-Telegramm + + STX, 74, , , , , <64 byte> + + wird von Telegramm zu Telegramm hochgez„hlt. Dient + der šberwachung gegen verlorengegangene Telegramme + bzw. durch Zeitberwachung verdoppelter Telegramme. + + Nummer der x.ten echt allokierten Seite des Datenra- + ums. (x = (+16) DIV 8). + + <64 byte> Nutzinformation. Diese geh”rt zur Adresse a des Daten- + raums. + + a = N ( DIV 8 + 1) * 512 + + ( MOD 8) * 64 + + wobei N (x) die Nummer der x.ten Seite ist. + + Aus den Formeln ergibt sich, daá diese Nummer schon in + einem vorhergehenden DATA/OPEN-Telegramm ber- + mittelt wurde (im Feld ). + + 2.4.3 QUIT-Telegramm + + STX, 8, , , , + + muá die Stromnummer sein, die in dem OPEN/DATA- + Telegramm stand, das quittiert wird. + + 0 : ok. N„chstes Telegramm schicken. + + -1: šbertragung neu starten (mit OPEN), weil die + Empfangsstation das OPEN nicht erhalten hat. + + -2: šbertragung ca. 20 Telegramme zurcksetzen. + + -3: šbertragung abbrechen. + + +2.5 Vermittlungsebene + + Diese Ebene ist dafr zust„ndig, Tasknamen von Task auf anderen Stationen + in Taskids (Werte des Typs TASK) zu wandeln und umgekehrt. Hierzu wird im + entsprechenden OPEN-Telegramm der Code -6 (bzw. -7) als + eingetragen. Die Netzempfangstask erkennt diese Codes und wickelt die + Aufgaben selbst ab, sodaá es dabei nicht n”tig ist, irgendeine Taskid der + Zielstation zu kennen. + + Dieses Verfahren ist m”glich, weil im 'send' nur positive Codes erlaubt sind. + +2.6 H”here Ebenen + + H”here Ebenen sind nicht mehr netzspezifisch. Sie basieren alle auf dem + Send/Wait-Konzept des EUMEL. So gibt es z.B. den 'global manager', der + Aufbewahrung und Zugriff von Dateien in einer Task regelt. Dabei darf diese + Task (bei der Variante 'free global manager') auf einer beliebigen Station im + Netz liegen. Wegen des Rendevous-Konzepts k”nnen beliebige Sicherheit- + strategien benutzt werden (z.B.: Keine Dateien an Station 11 ausliefern). Von + groáen Wert ist z.B., daá man ohne weiteres das Archiv (Floppylaufwerk) einen + anderen Station anmelden und benuzten kann, wodurch eine einfache Kon- + vertierung von Floppyformaten m”glich ist. Dies ist m”glich, weil auch die Ar- + chiv-Task der Stationen sich an das Globalmanagerprotokoll halten. + + +#type("triumb12")# +Bemerkungen#type("trium8")# + +Fehlerbehandlung besteht bis Ebene 3 darin, fehlerhafte Telegramme einfach zu +entfernen. Die Ebene 4 berwacht den Netzverkehr sowieso ber Timeouts, die +eine Wiederhohlung eines Telegrammes bewirken, wenn die Quittung ausbleibt. + +Da bei der sendenden Station der ganze Datenraum zur Verfgung steht, ist eine +Fenstertechnik (wie bei HDLC) nicht n”tig. Es kann zu jedem Zeitpunkt um beliebig +viele Telegramme zurckgesetzt werden. + +Da im EUMEL eine Textdatei ein Datenraum mit sehr komplexer Struktur ist (wegen +der Insert/Delete-M”glichkeiten, ohne den Rest der Datei zu schieben), ist es ein +hoher Aufwand, von einem fremden Betriebssytem her Textdateien ins EUMEL- +Netz zu senden. Fr solche Zwecke muá noch eine einfachere Dateistruktur defi- +niert werden und entsprechende Dateikonverter erstellt werden. + + + +#type("triumb12")#3. Stand der Netzsoftware #type("trium8")# + +Das EUMEL-System wickelt die Prozedur #on("bold")#send#off("bold")# ber das Netz ab, wenn die +Stationsnummer der Zieltask ungleich der eigenen Stationsnummer ist. Umge- +kehrt kann man der von der Prozedur #on("bold")#wait#off("bold")# gelieferten Absendertask die Absen- +derstation entnehmen (siehe Prozedur #on("bold")#station#off("bold")# in Abschnitt 3). + +Nicht untersttzt wird z.Zt. die Logik der Prozeduren #on("bold")#call#off("bold")# und #on("bold")#pingpong#off("bold")#. Diese +funktionieren nur in der gewohnten Weise, wenn die Zieltask in #on("bold")#wait#off("bold")# steht. Ist +die Zieltask l„nger als ca. 10 Minuten #on("bold")#busy#off("bold")# oder nicht mehr vorhanden, geht die +Sendung einfach verloren (Gefordert ist: bei #on("bold")#call#off("bold")#: immer wieder versuchen; bei #on("bold")# +pingpong#off("bold")#: Rckmeldung -2). + +Wegen dieser Einschr„nkung kann man z.B. ein sicheres Drucken von Station a +auf einen Drucker der Station b nur durch einen eigenen Spoolmanager auf +Station a verwirklichen. Die Einrichtung eines solchen Managers ist allerdings +sowieso sinnvoll, damit man + +- das normale 'print'-Kommando verwenden kann (statt z.B. save ("xxx", +4/printer);) und +- nicht zu warten braucht, bis die Datei bers Netz gesendet ist. + + + + + -- cgit v1.2.3