diff options
| author | Lars-Dominik Braun <lars@6xq.net> | 2016-10-09 11:34:18 +0200 | 
|---|---|---|
| committer | Lars-Dominik Braun <lars@6xq.net> | 2016-10-09 11:34:18 +0200 | 
| commit | 25512363eb9f619299c336c60c4333c8c759d6d9 (patch) | |
| tree | 62a3dd3ca0ce3d871afcbe07e74755adc8d8ddf2 /net/netzhandbuch | |
| parent | afd4c3c448381f6eb706090911a15c162fdaf8af (diff) | |
| download | eumel-src-25512363eb9f619299c336c60c4333c8c759d6d9.tar.gz eumel-src-25512363eb9f619299c336c60c4333c8c759d6d9.tar.bz2 eumel-src-25512363eb9f619299c336c60c4333c8c759d6d9.zip | |
Move dos and net manuals to doc/
Diffstat (limited to 'net/netzhandbuch')
| -rw-r--r-- | net/netzhandbuch | 2045 | 
1 files changed, 0 insertions, 2045 deletions
| diff --git a/net/netzhandbuch b/net/netzhandbuch deleted file mode 100644 index 7083462..0000000 --- a/net/netzhandbuch +++ /dev/null @@ -1,2045 +0,0 @@ -____________________________________________________________________________  -  -  -#on("b")##on ("u")#  -#center#Betriebssystem E U M E L  -#off ("u")#  -  -  -#center#Netzsoftware  -  -  -  -  -#off("b")#  -#center#Lizenzfreie Software der  -#on ("b")#  -  -#center#Gesellschaft für Mathematik und Datenverarbeitung mbH,  -#center#5205 Sankt Augustin  -  -  -#off("b")#  -#center#Die Nutzung der Software ist nur im Schul- und Hochschulbereich für  -#center#nichtkommerzielle Zwecke gestattet.  -  -#center#Gewährleistung und Haftung werden ausgeschlossen  -  -  -____________________________________________________________________________  -#page#  -#pagenr ("%",1)##setcount(1)##block##pageblock##count per page#  -#headeven#  -#center#EUMEL Netzbeschreibung  -#center#____________________________________________________________  -  -#end#  -#headodd#  -#center#Inhalt  -#center#____________________________________________________________  -  -#end#  -#bottomeven#  -#center#____________________________________________________________  -Netz - % #right# GMD  -#end#  -#bottomodd#  -#center#____________________________________________________________  -GMD #right#Netz - %  -#end#  -  -#center#Inhalt  -  -#clear pos##lpos(1.0)##rpos(9.5)#  -#table#  -  -1. Einleitung  #topage("0")#  -  -Teil 1: Netz einrichten und benutzen  #topage("1")#  -  -  -1.1. Hardwarevoraussetzungen  #topage("1.1")#  -1.2. Einrichten des Netzes    #topage("1.2")#  -1.3. Benutzung des Netzes   #topage("1.3")#  -1.4. Informationsmöglichkeiten   #topage("1.4")#  -1.5. Eingriffsmöglichkeiten   #topage("1.5")#  -1.6. Fehlerbehebung im Netz   #topage("1.6")#  -1.7. Sicherheit im Netz       #topage("1.7")#  -  -  -  -Teil 2: Arbeitsweise der Netzsoftware   #topage("2")#  -  -  -2.1. Die Netztask    #topage("2.1")#  -2.2. Protokollebenen   #topage("2.2")#  -2.3. Stand der Netzsoftware  #topage("2.3")#  -  -  -  -Teil 3: Netz-Hardware-Interface   #topage("3")#  -  -  -3.1. Einführung   #topage("3.1")#  -3.2. Arbeitsweise des Netz-Hardware-Interfaces   #topage("3.2")#  -3.3. Netztreiber  #topage("3.3")#  -3.4. Prozedurschnittstelle des EUMEL-Netzes  #topage("3.4")#  -  -  -  -Anhang      #topage("A")#  -  -  -1. Fehlermeldungen  #topage("A.1")#  -2. Literaturhinweise    #topage("A.2")#  -3. Index  #topage("A.3")#  -  -#table end#  -#clear pos#  -  -#page#  -#pagenr ("%", 2)##setcount (1)##block##pageblock##count per page#  -#headeven#  -#center#EUMEL Netzbeschreibung  -#center#____________________________________________________________  -  -#end#  -#headodd#  -#center#Einleitung  -#center#____________________________________________________________  -  -#end#  -#bottomeven#  -#center#____________________________________________________________  -Netz - % #right#GMD  -#end#  -#bottomodd#  -#center#____________________________________________________________  -GMD #right#Netz - %  -#end#  - -1. Einleitung  -  -#goalpage("0")#  -Das EUMEL-Netz dient dazu, mehrere EUMEL-Rechner (sog. #ib#Station#ie#en) miteinan -der zu koppeln. Diese Kopplung wird vom Betriebssystem dazu benutzt, das Sen -dungskonzept [1] so auszudehnen, daß Tasks verschiedener Stationen einander -Datenräume zusenden können. Auf dem #ib#Sendungskonzept#ie# aufbauende Konzepte -nutzen daher automatisch das Netz aus: So ist es z.B. möglich  -  --  von einer Station aus auf einer anderen zu drucken,  -  --  in die Task PUBLIC einer anderen Station #ib#Datei#ie#en zu sichern (save), vorausge -   setzt, daß PUBLIC dort ein #on("b")#free global manager#off("b")# ist,  -  --  auf einer anderen Station zu archivieren (z.B. wenn das eigene Archivlaufwerk -   defekt ist oder ein anderes Format hat).  -  -Diese #ib#Netzversion#ie# kann ab EUMEL-Version 1.8.1 eingesetzt werden.  -  -Diese Netzbeschreibung besteht aus drei Teilen. In Teil 1 wird beschrieben, wie das -EUMEL-Netz benutzt und eingerichtet wird. Als Benutzer eines EUMEL- -Rechners, der vernetzt ist, ist nur dieser Teil der Netzbeschreibung für Sie wichtig. -Teil 2 erklärt die Funktionsweise der #ib#Netzsoftware#ie#, im dritten Teil wird die Schnitt -stelle für die Anpassung anderer #ib#Netzhardware#ie# definiert.  -  -Hinweis:  -  -Zur erstmaligen #ib#Installation#ie# des EUMEL-Netzes ist außer dieser Beschreibung noch -die Netzsoftware (auf Floppy) und die EUMEL-Netz-#ib#Installationsanleitung#ie#, die mit -der Software geliefert wird, notwendig.  -  -In der vorliegenden Netzbeschreibung wird das EUMEL-Netz möglichst "hardware -unabhängig" beschrieben. Wenn hardwareabhängige Beispiele gegeben werden, so -ist die dort beschriebene Hardware stets die #ib#Datenbox#ie#.  -#pagenr ("%", 3)##setcount (1)##block##pageblock##count per page#  -#headeven#  -#center#EUMEL Netzbeschreibung  -#cneter#____________________________________________________________  -  -#end#  -#headodd#  -#center#Teil 1 :  Netz einrichten und benutzen  -#center#____________________________________________________________  -  -#end#  -#bottomeven#  -#center#____________________________________________________________  -Netz - % #right#GMD  -#end#  -#bottomodd#  -#center#____________________________________________________________  -GMD #right#Netz - %  -#end#  -#page#  -  -Teil 1: Netz einrichten und benutzen  -#goalpage("1")#  -  -  -  -1.1. Hardwarevoraussetzungen  -#goalpage("1.1")#  -  -  -Zwei Stationen  -  -Sie können zwei #ib#Station#ie# miteinander vernetzen, wenn Sie dafür an jeder Station eine -#ib#V.24#ie#-#ib#Schnittstelle#ie# zur Verfügung stellen.  -  -Diese beiden Schnittstellen verbinden Sie mit einem Kabel zur #ib#Rechnerkopplung#ie# [2].  -  -  -Mehrere Stationen  -  -Wenn Sie mehr als zwei Stationen vernetzen wollen, stehen Ihnen zwei Konzepte zur -Verfügung: das Anlegen von #ib#Netzknoten#ie# bzw. das Verwenden eines #ib#Strang#ie#es. Die -Konzepte können gemischt eingesetzt werden.  -  -Ein Strang besteht aus einer Anzahl von #ib#Netzbox#ie#en (z.B. KHW-Box oder Ethernet -anschluß).  -  -Jede Box besitzt eine #ib#Schnittstelle#ie# (z.B. #ib#V.24#ie#) zum Anschluß an einen der Kanäle -1...15 der zugeordneten #ib#Station#ie# und eine weitere Schnittstelle zur #ib#Verbindung#ie# der -Boxen untereinander.  -  -Ein #ib#Knoten#ie# ist eine Station, bei der der Netzbetrieb über mehrere Kanäle läuft.  -  -Da die #ib#Netzsoftware#ie# pro #ib#Kanal#ie# eines Knotens eine Task generiert, ist das Knoten -konzept dem Strangkonzept hinsichtlich des #ib#Durchsatz#ie#es unterlegen. Preisgünstiger -ist jedoch das #ib#Knotenkonzept#ie#, weil dabei #ib#Netzbox#ie#en überflüssig werden.  -  -Beim Knotenkonzept wird eine #ib#Vermaschung#ie# nicht zur Optimierung benutzt (Ver -maschung heißt, daß eine #ib#Zielstation#ie# über verschiedene Knoten erreichbar ist). Daher -sollte man keine Vermaschung vorsehen.  -  -#ib#Nachbarn#ie# sind Stationen, die an denselben #ib#Netzstrang#ie# angeschlossen oder direkt -über ein #ib#V.24#ie#-Kabel verbunden sind.  -  -Bei der Entscheidung, welche Stationen man zu #ib#Knoten#ie# macht, sollte beachtet wer -den, daß (a) Stationen, zwischen denen hoher Verkehr besteht, Nachbarn werden und -daß (b) besonders leistungsfähige Rechner #ib#Knoten#ie#stationen sein sollten.  -#page#  -  -1.2. Einrichten des Netzes  -#goalpage("1.2")#  -  -  -Hinweis: Dieses Kapitel ist nur für Systembetreuer wichtig.  -  -a) Legen Sie für die am Netz beteiligten Rechner #ib#Stationsnummer#ie#n fest (von 1 an -   aufsteigend).  -  -   Die Boxen haben ebenfalls Stationsnummern. Die Stationsnummern der Box und -   des zugeordneten Rechners müssen übereinstimmen.  -  -  -b) Holen Sie an jeder #ib#Station#ie# die Task #on("bold")#configurator#off("bold")# an ein Terminal und geben Sie -   das Kommando #on("bold")##ib#define station#ie# (x)#off("bold")#, wobei #on("bold")#x#off("bold")# die gewählte Stationsnummer ist.  -  -   Hinweis:  Taskkommunikationen, die zu diesem Zeitpunkt laufen, führen zu feh -             lerhaftem Verhalten. Dies liegt daran, daß durch #on("bold")#define station#off("bold")# alle -             #ib#Task-Id#ie#'s geändert werden müssen, weil eine #ib#Task-Id#ie# u.a. die -             Stationsnummer der eigenen Station enthält (siehe 1.3). TASK- -             Variablen, die noch Task-Id's mit keiner oder falscher Stationsnum -             mer enthalten, können nicht mehr zum Ansprechen einer Task ver -             wendet werden.  -  -   Beispiel: Der #ib#Spoolmanager#ie# [3] richtet beim Kommando #on("bold")#start#off("bold")# einen #ib#Worker#ie# ein -             und merkt sich dessen #ib#Task-Id#ie# in einer TASK-Variablen, um sicher -             zustellen, daß nur der Worker #ib#Datei#ie#en 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 erhalten hat. Man muß daher vor #on("b")#define station#off("b")# den Worker -             löschen und ihn danach mit dem Kommando #on("bold")##ib#start#ie##off("bold")# im Spoolmanager -             wieder neu einrichten.  -  -  -   Sinnvollerweise gibt man #on("bold")#define station#off("bold")# sofort nachdem man ein frisches System -   vom Archiv geladen hat.  -  -   Zum Anschluß einer #ib#Datenbox#ie# #ib#konfigurieren#ie# Sie mit dem Kommando #on("bold")##ib#configurate#ie##off("bold")# -   den für das Netz vorgesehenen #ib#Kanal#ie# auf  -  -   -  transparent  -   -  9600 #ib#Baud#ie# (Standardeinstellung der Boxen)  -   -  #ib#RTS/CTS#ie#-#ib#Protokoll#ie#  -   -  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 #ib#RTS/CTS#ie#-Protokoll verzichtet werden, wenn der -             Eingabepuffer der #ib#Station#ie# groß genug ist. Die Anzahl simultan laufen -             der Netzkommunikationen ist dann auf  -  -                    puffergröße DIV 150  -  -             begrenzt (bei Z80, 8086: 3; bei M20: 10).  -  -   Hinweis:  Es können auch andere #ib#Baud#ie#raten (2400, 4800, 19200) an der Box -             eingestellt werden.  -  -  -c) Achten Sie bei der #ib#Verbindung#ie# von der Station zur #ib#Netzbox#ie# (bzw. zur Gegen -   station bei einem Zweistationennetz ohne Boxen) darauf, daß neben den Emp -   fangs- und Sendeleitungen auch die Leitungen RTS und CTS verdrahtet wer -   den, also ein 5-poliges Kabel verwendet wird [2]. Die #ib#Pin-Belegung#ie# der Boxen -   entspricht der eines Kabels zur Rechner-Rechner-Kopplung.  -  -   Beispiel:  -  -   Verbindung eines BICOS-Systems mit der Box:  -  -   Stecker                  Stecker  -   Pin                      Pin  -  -   2  <--------->           3  -   3  <--------->           2  -   4  <--------->           5  -   5  <--------->           4  -   7  <--------->           7  -  -  -d) Richten Sie eine Task #on("bold")##ib#net#ie##off("bold")# unter #on("bold")#SYSUR#off("bold")# ein und legen Sie eine #ib#Datei#ie# #on("b")##ib#netz#ie##off("b")# an, die -   Ihre #ib#Netzkonfiguration#ie# enthält, oder ändern Sie die mitgelieferte Datei ent -   sprechend ab (siehe auch 1.5.).#goalpage("sperre")#  -  -  -   Dem bisherigen Netz entspricht eine Datei #on("b")#netz#off("b")# mit folgendem Inhalt:  -  -     definiere netz;  -     routen (1,127,k);  -     starte kanal (k,1,x);  -     aktiviere netz.  -  -     k: ihr netzkanal.  -     x: IF yes ("#ib#Flußkontrolle#ie#") THEN 10 ELSE 3 FI.  -  -  -  -   Laden Sie die Datei #on("b")##ib#net install#ie##off("b")# vom Archiv #on("b")#net#off("b")# und übersetzen Sie diese. Je nach -   dem, welche EUMEL-Version auf der Maschine installiert ist, werden die notwen -   digen Programmdateien insertiert.  -  -   Es sind dies  -  -                          net report  -                          net hardware interface  -                          basic net  -                          net manager  -  -  -   Das Netz wird dabei gestartet.  -  -  -   Hinweis:  Obwohl die Task #on("b")#net#off("b")# sich noch mit #on("bold")##ib#continue#ie##off ("bold")# an ein Terminal holen -             läßt, sollte man dies nur kurzzeitig tun, da der Netzverkehr solange -             blockiert ist.  -  -             In der #ib#Datei#ie# #on("b")#netz#off("b")# sollte der #ib#Kanal#ie#, über den der meiste Verkehr erwar -             tet wird, zuerst gestartet werden. Für ihn wird die Task #on("b")##ib#net port#ie##off("b")# gene -             riert, für jeden weiteren Kanal wird eine Task #on("b")##ib#net port#ie# k#off("b")# (k=Kanal -             nummer) generiert.  -#page#  - -1.3. Benutzung des Netzes   -#goalpage("1.3")#  -  -  -Zur Benutzung des Netzes stehen folgende Operatoren und Prozeduren zur Verfü -gung:  -  -  -  -TASK OP #ib#/#ie# (INT CONST station, TEXT CONST taskname)  -  -liefert die Task #on("bold")#taskname#off("bold")# von der #ib#Station#ie# #on("bold")#station#off("bold")#.  -  -  -#ib#Fehlerfälle#ie#:  -  -  -  #ib(4)#Task "...." gibt es nicht#ie(4)#  -  -     Die angeforderte Task gibt es auf der #ib#Zielstation#ie# nicht.  -  -  -  #ib(4)##ib#Collectortask#ie# fehlt#ie(4)#  -  -     die Task #on("b")##ib#net port#ie##off("b")# existiert nicht (siehe 6).  -  -     Hinweis:  #on("b")#net port#off("b")# wird bei jedem Start des Netzes neu generiert und beim -               Auftreten eines nicht vorhergesehenen #ib#Fehler#ie#s beendet. Die Feh -               lermeldung steht im #on("b")##ib#report#ie##off("b")# (siehe 4).  -  -  -  #ib(4)#Station x antwortet nicht#ie(4)#  -  -     Eine nicht vorhandene oder abgeschaltete Station wurde angesprochen.  -  -     Hinweis: Dieser #ib#Fehler#ie# wird angenommen, wenn eine Überwachungszeit von -              ca. 30 Sekunden verstrichen ist, ohne daß Station x die Taskidenti -              fikation angeliefert hat.  -  -  -  #ib(4)#Station x gibt es nicht#ie(4)#  -  -     #ib#Station#ie# x steht nicht in den #ib#Routentabelle#ie#n.  -  -     Diese Meldung kann auch erscheinen, wenn Station x erst kürzlich an das Netz -     angeschlossen wurde. Sie steht dann noch nicht in den Routentabellen (siehe -     auch 5.3.).  -  -     Beispiel:  -  -        list (5/"PUBLIC")  -  -     Die Dateiliste von PUBLIC der Station 5 wird angefordert.  -  -  -  -TASK OP #ib#/#ie# (INT CONST station, TASK CONST task)  -  -liefert  -  -station / name (task)  -  -Beispiel:  -  -   list (4/public)  -  -  -Fehlerfall:  -  -   "......" #ib(4)#gibt es nicht#ie(4)#  -  -   Auf der eigenen Station gibt es die Task #on("b")#task#off("b")# nicht.  -   Der Taskname wird auf der eigenen Station bestimmt, wenn es dort die Task  -   nicht gibt, führt dies zur obigen Fehlermeldung.  -  -Abhilfe:  -  -   Statt list(4/public) das Kommando list (4/"PUBLIC") verwenden.  -  -  -  -INT PROC #ib#station#ie# (TASK CONST task)  -  -liefert die #ib#Stationsnummer#ie# der Task #on("bold")#task#off("bold")#.  -  -Beispiel:  -  -   put (station (myself))  -  -   gibt die eigene Stationsnummer aus.  -  -  -  -  -PROC #ib#reserve#ie# (TEXT CONST archivename, TASK CONST archivetask)  -  -dient dazu, das Archiv auf der #ib#Station#ie# #on("bold")#station#off("bold")# anzumelden.  -  -Beispiel:  -  -   reserve ("std", 4/"ARCHIVE"); #ib#list#ie# (4/"ARCHIVE")  -  -   gibt das Inhaltsverzeichnis der Archivfloppy im Laufwerk der Station 4 aus.  -  -   Hinweis: Vergessen Sie bei solchen #ib#Querarchivierungen#ie# nicht die Stationsangabe -            bei jedem einzelnen Archivkommando (z.B fetch ("xxx", #on("bold")#4/#off("bold")# -            "ARCHIVE")).  -  -   Hinweis: Querarchivieren ist langsam. Verwenden Sie es nur, wenn Sie Floppy -            formate umsetzen wollen.  -  -  -  -  -PROC #ib#free global manager#ie#  -  -dient dazu, die eigene Task über das Netz ansprechbar zu machen. Jede andere -Task im Netz kann dann die üblichen #ib#Manager#ie#aufrufe (#on("bold")##ib#save#ie##off ("bold")#, #on("bold")##ib#fetch#ie##off ("bold")#, usw.) an die -eigene Task machen, sofern diese nicht an ein Terminal gekoppelt ist.  -  -Die Task wird (wie bei #on("bold")#break#off ("bold")#) abgekoppelt und meldet sich in Zukunft mit #on("bold")#mainte -nance#off ("bold")# statt mit #on("bold")#gib kommando#off ("bold")#.  -  -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. #on("bold")#list (4/"hugo")#off ("bold")# usw. auf -   rufen.  -  -  -  -  -TEXT PROC #ib#name#ie# (TASK CONST t)  -  -Diese (schon immer vorhandene) Prozedur wurde dahingehend erweitert, daß der -Name einer auf einer anderen Station existierenden Task über Netz angefordert wird.  -  -Existiert die Task nicht, so wird #on("bold")##ib#niltext#ie##off ("bold")# geliefert.  -  -Hinweis: Die Prozedur #on("bold")##ib#exists#ie##off ("bold")# wurde nicht auf das Netz ausgedehnt, da sie in Situa -         tionen eingesetzt wird, wo es auf eine sehr schnelle Antwort ankommt. -         Daher liefert #on("bold")#exists#off ("bold")# für eine stationsfremde Task immer FALSE. Will man -         wissen, ob eine solche Task existiert, verwende man die Abfrage  -  -         #on("bold")#IF name (task) <> "" THEN ... #off ("bold")#.  -  -#ib#Fehlerfall#ie#:  -  -   - #ib(4)#Station x antwortet nicht#ie(4)#  -  -   - #ib(4)##ib#Station#ie# x gibt es nicht#ie(4)#  -  -#page#  -  -1.4. Informationsmöglichkeiten  -  -#goalpage("1.4")#  -  -In der Task #on("bold")#net#off("bold")# wird eine #ib#Datei#ie# #on("bold")##ib#report#ie##off("bold")# geführt, in der #ib#Fehlersituationen#ie# des Netzes -verzeichnet werden. Diese Datei kann in jeder anderen Task auf derselben Station mit -#on("bold")##ib#list#ie# (/"#ib#net#ie#")#off("bold")# angesehen werden. Eine Erklärung der wichtigsten Meldungen finden Sie -im Anhang.  -  -In jeder Task kann durch das Kommando #on("bold")##ib#list#ie# (/"#ib#net port#ie#")#off("bold")# eine Übersicht über die -momentan laufenden #ib#Netzübertragungen#ie# der eigenen #ib#Station#ie# erhalten werden (nur für -den #ib#Kanal#ie#, an dem #on("b")##ib#net port#ie##off("b")# hängt). Entsprechendes gilt für die weiteren Netports der -eigenen Station.  -  -Mit #on("bold")##ib#list#ie# (/"#ib#net list")#ie##off("bold")# erhält man die Informationen, die man mit #on("b")#list (/"net")#off("b")# und #on("b")##ib#list#ie##off("b")# auf -alle Netports bekommt, sofern #on("b")##ib#listoption#ie##off("b")# (siehe S. #topage("listop")#) beim Generieren des Netzes -aufgerufen wurde. Dieser Aufruf funktioniert auch bei fremden Stationen (z.B. #on("b")#list -(5/"net list")#off("b")#).  -  -#page#  -  -1.5. Eingriffsmöglichkeiten  -  -#goalpage("1.5")#  -  --  Jede Task kann #ib#Sende#ie(1,"ströme")#- und #ib#Empfangsströme#ie#, die bei #on("bold")#list (/"net port")#off("bold")# gemel -   det worden sind und die eigene Task betreffen, abbrechen. Hierzu ist das Kom -   mando #on("bold")##ib#erase#ie# ("x", /"#ib#net port#ie#")#off ("bold")# zu geben, wobei x die #ib#Stromnummer#ie# (aus dem #on("bold")#list#off ("bold")#) -   ist.  -   Unberechtigte #ib#Löschversuche#ie# werden abgewiesen.  -   Von privilegierten Tasks aus können jedoch mit #on("b")##ib#erase#ie##off("b")# beliebige Ströme abge -   brochen werden.  -  -  --  Durch das Kommando #on("bold")##ib#start#ie##off("bold")# kann von der Task #on("b")##ib#net#ie##off("b")# aus das Netz neu gestartet -   werden. Dies setzt eine gültige #ib#Datei#ie# #on("bold")#netz#off("bold")# voraus. Es wird ein #on("bold")##ib#run#ie##off("bold")# auf diese Datei -   gegeben. Das Kommando #on("b")##ib#start#ie##off("b")# ist nur noch aus Kompatibilitätsgründen zum alten -   Netz vorhanden.  -  -  --  Durch das Kommando #on("bold")##ib#routen aufbauen#ie##off("bold")# in der Task #on("b")##ib#net#ie##off("b")# werden die #ib#Routentabelle#ie#n -   neu aufgebaut. Dies kann notwendig werden, wenn eine neue #ib#Station#ie# ans Netz -   angeschlossen wurde (#ib#Fehlermeldung#ie# '#ib(4)#Station x gibt es nicht#ie(4)#'). #on("bold")#routen aufbauen#off ("bold")# -   muß zuvor auch an allen dazwischenliegenden #ib#Knotenstation#ie#en gegeben werden.  -  -   #on("bold")#routen aufbauen#off ("bold")# erzeugt eine Task #on("b")##ib#router#ie##off("b")#, die sich an das Terminal koppelt (die -   Task #on("b")#net#off("b")# koppelt sich ab) und ein #ib#Protokoll#ie# ausgibt. Sind die #ib#Route#ie#n aufgebaut, -   beendet sich die Task #on("b")#router#off("b")# mit der Meldung #on("b")#fertig#off("b")#. Es werden nur Stationen -   bearbeitet, die nicht #ib#gesperrt#ie# (siehe S. #topage("sperre")#), und für die keine festen Routen -   vereinbart sind. Der Vorgang dauert ca. 5 Sek. pro nicht gesperrter Station und -   #ib#Netzkanal#ie#. Die #ib#Route#ie#n werden in einem #ib#Datenraum#ie# #on("b")##ib#port intern#ie##off("b")# hinterlegt.  -  -  --  Der Aufruf #on("bold")##ib#definiere netz#ie##off("bold")# leitet eine #ib#Netzdefinition#ie# in der #ib#Datei#ie# #on("bold")##ib#netz#ie##off("bold")# ein. Dabei -   werden alle augenblicklichen Netzkommunikationen gelöscht. Die Tasks #on("b")##ib#net port#ie# -   (k)#off("b")#, wobei #on("b")#k#off("b")# die #ib#Kanalnummer#ie# ist, und #on("b")##ib#net timer#ie##off("b")# werden gelöscht.  -  -   Dieser Aufruf muß vor den Aufrufen von #on("bold")##ib#starte kanal#ie#, #ib#erlaube#ie#, #ib#sperre#ie#, #ib#routen#ie#, -   #ib#aktiviere netz#ie# und #ib#list option#ie##off("bold")# erfolgen.  -  -  --  PROC #ib#sperre#ie# (INT CONST a,z)  -   bewirkt, daß die Stationen #on("bold")#a#off("bold")# bis #on("bold")#z#off("bold")# keine Manageraufrufe an Tasks dieser Station -   geben dürfen (Genauer gesagt werden sendecodes > 6 nicht weitergeleitet, son -   dern ein errornak mit dem Text "#ib(4)#kein Zugriff auf Station#ie(4)#" zurückgeschickt).  -  -   Dieser Aufruf muß vor dem ersten #on("bold")##ib#starte kanal#ie##off("bold")# erfolgen.  -  -  --  PROC #ib#erlaube#ie# (INT CONST a,z)  -   bewirkt, daß die Stationen #on("bold")#a#off("bold")# bis #on("bold")#z#off("bold")# Manageraufrufe an Tasks dieser Station geben -   dürfen.  -  -   Dieser Aufruf muß vor dem ersten #on("bold")##ib#starte kanal#ie##off("bold")# erfolgen.  -  -   Beispiel: Alle Stationen außer 8 und 10 sollen #ib#gesperrt#ie# sein:  -  -             #ib#sperre#ie# (1,127); erlaube (8,8); erlaube (10,10)  -  -   Hinweis: 127 ist z.Zt. die maximale #ib#Stationsnummer#ie(1," maximale")#.  -  -  --  PROC #ib#routen#ie# (INT CONST a,z,k)  -   legt fest, daß die Stationen #on("bold")#a#off("bold")# bis #on("bold")#z#off("bold")# an #ib#Kanal#ie# #on("bold")#k#off("bold")# direkt angeschlossen sind. Sen -   dungen dieser Stationen werden nur bearbeitet, wenn sie über diesen Kanal her -   einkommen (siehe 1.7.). Fehlt für eine Station ein entsprechender Routenaufruf, so -   darf sie über einen beliebigen #ib#Netzkanal#ie# angeschlossen sein. Dies wird dann von -   #on("bold")##ib#routen aufbauen#ie##off("bold")# ermittelt.  -  -   PROC routen (INT CONST a,z,k,zw)  -   legt fest, daß die Stationen #on("bold")#a#off("bold")# bis #on("bold")#z#off("bold")# indirekt über die #ib#Knotenstation#ie# #on("bold")#zw#off("bold")# angeschlos -   sen sind, und #on("b")#zw#off("b")# am Kanal #on("bold")#k#off("bold")# hängt.  -  -  --  PROC #ib#starte kanal#ie# (INT CONST k,m,q)  -   startet eine #ib#Netztask#ie# am #ib#Kanal#ie# #on("bold")#k#off("bold")# im Modus #on("bold")#m#off("bold")# [4]. Dabei wird mit #on("bold")#q#off("bold")# die Anzahl -   paralleler #ib#Empfangsströme#ie# festgelegt. Dadurch kann erreicht werden, daß der -   #ib#Empfangspuffer#ie# nicht überläuft, indem nicht mehr als #on("b")#q#off("b")# Ströme quittiert werden. -   Bei #ib#V.24#ie#-#ib#Schnittstelle#ie#n gebe man 3 (ohne #ib#Flußkontrolle#ie#) bzw. 10 (mit Flußkon -   trolle) an.  -  -  --  PROC #ib#aktiviere netz#ie#  -   muß als Abschluß in der Datei #on("bold")##ib#netz#ie##off("bold")# aufgerufen werden. Dabei wird die Task vom -   Terminal abgekoppelt. Falls es bei #on("bold")##ib#definere netz#ie##off("bold")# den #ib#Datenraum#ie# #on("b")##ib#port intern#ie##off("b")#, der -   die #ib#Route#ie#n enthält, nicht gab, wird #on("bold")##ib#routen aufbauen#ie##off("bold")# aufgerufen.  -  -  --  PROC #ib#listoption#ie##goalpage("listop")#  -   erzeugt eine Task #on("b")##ib#net list#ie##off("b")#, die bei #on("bold")#list#off("bold")# den #ib#Fehlermeldung#ie#sreport und den Zustand -   aller Netports liefert. Diese Task ist auch über Netz ansprechbar. In der Regel -   sollte man #on("b")#listoption#off("b")# in der Datei #on("b")#netz#off("b")# aufrufen, es sei denn, das System ist sehr -   klein.  -  -#page#  -  -1.6. #ib#Fehlersuche#ie# im Netz  -  -#goalpage("1.6")#  -  -#ib#Fehler#ie# 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 '#ib(4)#Station#ie(4, " x antwortet nicht")# 4 antwortet nicht'.  -  -  -#ib#Fehler#ie#möglichkeiten:  -  -   -  #ib#Station#ie# 4 ist nicht eingeschaltet.  -      Abhilfe: Station 4 einschalten. Kommando erneut geben.  -  -  -   -  #ib#Netztask#ie# an Station 4 ist nicht arbeitsfähig.  -      Abhilfe: Kommando #on("bold")##ib#start#ie##off ("bold")# in der Task "net" auf Station 4.  -  -  -   -  Stationsnummern und Boxnummern stimmen nicht überein.  -      Abhilfe: Mit #on("bold")#define station#off ("bold")# #ib#Stationsnummer#ie#n korrigieren (siehe 3.2).  -  -  -   -  #ib#Verbindung#ie# Rechner/Box am eigenen Rechner oder an Station 4 fehlt.  -      Abhilfe: Verbindungen überprüfen. 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, #ib#Masseschluß#ie# und #ib#Dreher#ie# (keine 1:1 Verbin -               dung) überprüfen und beheben.  -  -      Hinweis: Liegt z.B. ein Masseschluß vor, so kann es durchaus sein, daß -               Boxen, die nicht in der Nähe des Masseschlusses stehen, noch -               miteinander 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 #on("bold")##ib#list#ie##off ("bold")#-Kommandos wird -               automatisch wieder aufgenommen.  -  -  -   -  PUBLIC auf Station 4 ist nicht im Managerzustand.  -      Abhilfe: PUBLIC in den Managerzustand versetzen.  -  -  -   -  #ib#Fehler#ie# in der #ib#Netzhardware#ie#.  -      Überprüfen Sie, ob  -  -      -  die Boxen eingeschaltet sind,  -      -  die Bereitlampe blinkt (wenn nicht: #ib#RESET#ie# an der Box),  -      -  die #ib#V.24#ie#-Kabel richtig stecken,  -      -  die Boxen untereinander verbunden sind (1 zu 1 Verbindungen der 5 poli -         gen Diodenbuchsen).  -  -  -   -  Fehler bei der #ib#Netzinstallation#ie#.  -      Überprüfen Sie, ob  -  -      -  alle Stationen an einem #ib#Strang#ie# gleiche oder kompatible Netzmodi einge -         stellt haben [4],  -      -  alle Stationen an einem #ib#Netzstrang#ie# auf die gleiche #ib#Nutzdatenlänge#ie# einge -         stellt sind,  -      -  bei der #ib#Kommunikation#ie# über #ib#Knoten#ie# alle Stationen die gleiche Nutzdaten -         länge bei indirekten Sendungen eingestellt haben,  -      -  die #ib#Route#ie#n auf allen beteiligten Stationen korrekt eingestellt sind.  -  -  -  -Beispiel:  -  -   Auf #on("bold")#list (4/public)#off("bold")# erfolgt die Meldung '#ib(4)##ib#Collectortask#ie# fehlt#ie(4)#'.  -  -   -  Das Kommando #on("b")##ib#start#ie##off("b")# (bzw #on("b")##ib#aktiviere netz#ie##off("b")# in der #ib#Datei#ie# #on("b")#netz#off("b")#) wurde nicht gege -      ben. Somit existiert #on("b")##ib#net port#ie##off("b")# nicht.  -      Abhilfe: Kommando #on("bold")#start#off ("bold")# in der Task #on("b")#net#off("b")# geben.  -  -  -   -  Die #ib#Netzsoftware#ie# ist auf einen nicht vorhergesehenen #ib#Fehler#ie# gelaufen. Dieser -      wird im #ib#Report#ie# vermerkt. #on("b")##ib#net port#ie##off("b")# wird dabei gelöscht.  -      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:  -  -   Nach #on("bold")##ib#fetch#ie# ("hugo",4/public)#off("bold")# sind Teile der Datei "hugo" verfälscht.  -  -   -  Die #ib#V.24#ie#-#ib#Verbindung#ie# zur Box ist nicht in Ordnung.  -      Abhilfe: Abstand zwischen Rechner und Box verkürzen; #ib#Baud#ie#rate ernie -               drigen; durch Wechseln der #ib#V.24#ie#-#ib#Schnittstelle#ie# feststellen, ob diese -               defekt ist.  -      Hinweis: Die Verbindung zwischen den Boxen ist durch #ib#Prüfsummen#ie# abge -               sichert (Hardware).  -  -#page#  -  -1.7. Sicherheit im Netz  -  -#goalpage("1.7")#  -  -Bei Benutzung eines Rechnernetzes tauchen neue #ib#Sicherheitsprobleme#ie# auf. Um sie -verstehen und eingrenzen zu können, muß man sich mit dem #ib#Sicherheitskonzept#ie# des -Betriebssystems EUMEL vertraut machen:  -  -Eine Task im EUMEL kann nur manipuliert werden, wenn man sie entweder an ein -Terminal koppelt oder ihr Sendungen zustellt.  -  -Das Ankoppeln kann über #ib#Paßwort#ie# abgesichert werden. Nach dem Ankoppeln kann -die Task außerdem selbst bestimmen, wie sie die dann möglichen Eingaben behan -delt. So kann z.B. noch ein komplizierter Paßalgorithmus zu durchlaufen sein, bis -man auf einer offenen Programmierumgebung landet.  -  -Sendungen können eine Task auch nur mit ihrem Einverständnis beeinflussen, da -eine Sendung nur zugestellt wird, wenn die Task in der Prozedur #on("b")##ib#wait#ie##off("b")# steht. Insbe -sondere kann die Task den Absender einer Sendung überprüfen und gewisse Opera -tionen nur bei gewissen Absendern zulassen. So lehnt ein #on("b")##ib#global manager#ie##off("b")# z.B. alle -Dateimanagerkommandos ab, die nicht von Nachkommen (z.B. Söhnen) der Task -kommt. #on("b")##ib#free global manager#ie##off("b")# hingegen läßt Operationen wie #on("b")##ib#save#ie##off("b")# oder #on("b")##ib#erase#ie##off("b")# von -beliebigen Tasks, auch von fremden #ib#Station#ie#en, zu. Will man nur bestimmte Fremd -stationen zulassen, kann man z.B. folgendes Schema verwenden:  -  -   PROC my #ib#manager#ie#  -      (DATASPACE VAR ds, INT CONST code, phase, TASK CONST source):  -  -     IF station (source) = station (myself) OR station (source) = 10  -     THEN  -       free manager (ds, code, phase, source)  -     ELSE  -       errorstop ("kein Zugriff")  -     FI  -  -  END PROC my manager;  -  -  global manager (PROC my manager)  -#page#  -Hier werden nur #on("b")#save#off("b")# usw. von Tasks der eigenen Station und der Station 10 zuge -lassen. Der Rest erhält die #ib#Fehlermeldung#ie# "kein Zugriff".  -  -Dieses Verfahren gewährt nur dann Sicherheit, wenn es nicht möglich ist, daß eine -beliebige Station sich als Station 10 ausgibt.  -  -Damit das Netz diese Sicherheit garantieren kann, müssen natürlich gewisse phy -sische Voraussetzungen erfüllt sein. Wenn z.B. die Station 10 über eine #ib#V.24#ie# ange -schlossen ist, aber jeder die Möglichkeit hat, an diese #ib#Schnittstelle#ie# seinen eigenen -Rechner anzuschliessen, dann kann das Netz natürlich nicht erkennen, ob es mit der -echten Station 10 verkehrt.  -  -Es muß also sichergestellt sein, daß an Kanälen für das Netz nicht manipuliert werden -kann. Bei einem #ib#Strang#ie# (Anschluß über #ib#Netzbox#ie#en) heißt das für die Boxen, daß sie -nur #ib#Telegramm#ie#e weitervermitteln, die die eingestellte #ib#Quellstationsnummer#ie# enthalten. -Sonst könnte jemand, der an denselben Strang wie #ib#Station#ie# 10 angeschlossen ist, -#ib#Telegramm#ie#e erzeugen, die so aussehen, als kämen sie von 10.  -  -Die #ib#Netzsoftware#ie# ihrerseits darf nur Telegramme auswerten, die über die richtige -#ib#Route#ie# (#ib#Kanal#ie# und #ib#Knotenstation#ie#) einlaufen.  -  -Leider hat dies die unangenehme Konsequenz, daß man automatisches Aufbauen und -Ändern von Routen verbieten muß, wodurch die Wartung der #ib#Netzkonfiguration#ie# -erschwert wird.  -  -Diese Version der #ib#Netzsoftware#ie# bietet den folgenden Kompromiß an: Nur für sicher -heitsrelevante #ib#Stationen#ie(1,", sicherheitsrelevante")# (im Beispiel Station 10) muß in der #ib#Datei#ie# #on("b")##ib#netz#ie##off("b")# die Route -angegeben werden. Dies muß in allen Stationen geschehen, für die die Station -sicherheitsrelevant ist, und in allen #ib#Knoten#ie# dazwischen.  -  -Für nicht sicherheitsrelevante Stationen werden #ib#Routeninformationen#ie# automatisch -aufgebaut und geändert.  -  -Hinweis:  -Man wird oft ohne sicherheitsrelevante Stationen auskommen, indem man auf Ebenen -oberhalb der Netzebene Paßwortkontrollen einführt. So ist es z.B. ja möglich, Dateien -durch Paßworte zu schützen. Ein weiteres Beispiel ist ein #ib#Printerserver#ie#, der nur -ausdruckt, wenn eine mitgegebene Abrechnungskennung stimmt. Dabei ist es sogar -wünschenswert, daß die #ib#Station#ie# irrelevant ist, die den Druckauftrag gibt.  -#pagenr ("%",21)##setcount (1)##block##pageblock##count per page#  -#headeven#  -#center#EUMEL Netzbeschreibung  -#center#____________________________________________________________  -  -#end#  -#headodd#  -#center#Teil 2 :  Arbeitsweise der Netzsoftware  -#center#____________________________________________________________  -  -#end#  -#bottomeven#  -#center#____________________________________________________________  -Netz - % #right#GMD  -#end#  -#bottomodd#  -#center#____________________________________________________________  -GMD #right#Netz - %  -#end#  -#page#  -  -Teil 2: Arbeitsweise der Netzsoftware  -#goalpage("2")#  -  -  -  -2.1. Die Netztask  -#goalpage("2.1")#  -  -  -In diesem Kapitel wird beschrieben, wie eine #ib#Netztask#ie# in das System eingebettet ist -und welche Aufgaben sie hat. Unter Einhaltung dieser Konzepte kann die ausgeliefer -te Netzsoftware so geändert werden, daß sie beliebige andere #ib#Netzhardware#ie# unter -stützt. Die Netzsoftware ist so gegliedert, daß i.allg. nur eine hardwareabhängige -Komponente ausgetauscht werden muß (siehe Teil 3).  -  -Die Kommunikation zwischen Tasks im EUMEL-Betriebssystem basiert auf einem -#ib#Rendezvouskonzept#ie#: Die #ib#Zieltask#ie# einer Sendung muß empfangsbereit sein, wenn die -#ib#Quelltask#ie# sendet.  -  -Die Kommunikationsprozeduren auf der niedrigsten Ebene sind #on("bold")##ib#send#ie##off ("bold")# (Senden) und -#on("bold")##ib#wait#ie##off ("bold")# (Warten auf Empfang). Bei der Kommunikation werden ein Integer #on("bold")#code#off ("bold")# und ein -#ib#Datenraum#ie# #on("bold")#dr#off ("bold")# übergeben. #on("bold")#code#off ("bold")# muß >= 0 sein, da negative Codes systemintern ver -wandt werden. Ist die empfangende Task an einen #ib#Kanal#ie# gekoppelt (#on("bold")##ib#continue#ie##off ("bold")#), so -führt eine Zeicheneingabe auf diesem Kanal dazu, daß eine Sendung mit dem Code --4 ankommt. Die Eingabedaten müssen mit den üblichen #ib#Eingabeprozeduren#ie# (#on("bold")##ib#inchar#ie##off ("bold")# -usw.) abgeholt werden. Der übermittelte #ib#Datenraum#ie# und die Absendertask sind dabei -ohne Bedeutung und dürfen nicht interpretiert werden.  -  -Die Prozedur #on("bold")#send#off ("bold")# hat einen #ib#Rückmeldeparameter#ie#, der besagt, ob die Sendung -übermittelt wurde. Gibt es die Zieltask nicht oder steht sie nicht im #on("bold")#wait#off ("bold")#, so kann die -Sendung nicht übermittelt werden.  -  -Ein Entwicklungskriterium für das EUMEL-Netz war es, möglichst wenig Unterstüt -zung von der virtuellen EUMEL-Maschine (#ib#EUMEL0#ie#) zu fordern, damit weitgehend in -ELAN programmiert werden kann. Dadurch ist es möglich, eine (privilegierte) Task mit -der Netzabwicklung zu betrauen.  -#page#  -Zunächst wird auf die #ib#EUMEL0#ie#-Unterstützung eingegangen:  -  -a)  Es gibt die Prozedur #on("bold")##ib#define collector#ie##off ("bold")#, mit der die für das Netz verantwortliche -    Task der EUMEL0-Maschine bekannt gemacht wird. Diese Task wird im fol -    genden #ib#Collector#ie# genannt.  -  -b)  Es gibt die Prozedur #on("bold")##ib#define station#ie##off ("bold")#, die für den Rechner eine #ib#Stationsnummer#ie# -    einstellt. Anhand dieser Nummer werden die Rechner eines Netzes unterschie -    den. Das Einstellen bewirkt, daß für alle Tasks die Stationsnummer in ihre -    #ib#Task-Id#ie# eingetragen wird (Task-Id's sind die Werte, die der Typ TASK anneh -    men kann).  -  -c)  Der Befehl #on("bold")##ib#station#ie# (task)#off ("bold")# liefert die Stationsnummer der #on("bold")#task#off ("bold")#. So liefert z.B. -    #on("bold")##ib#station#ie# (myself)#off ("bold")# die #ib#Stationsnummer#ie# des eigenen Rechners.  -  -d)  Eine Sendung, deren #ib#Zieltask#ie# auf einem anderen Rechner liegt (also station (ziel) -    <> station (myself)), wird auf die #ib#Collectortask#ie# geleitet.  -  -e)  Es gibt eine Prozedur #on("bold")##ib#collected destination#ie##off ("bold")#, die es dem Collector erlaubt, die -    eigentliche Zieltask einer auf ihn geleiteten Sendung zu erfahren.  -  -f)  Es gibt eine Variante der Prozedur #on("bold")##ib#send#ie##off ("bold")#, die es dem Collector gestattet, der -    #ib#Zieltask#ie# eine andere Task als Absender vorzutäuschen.  -  -g)  Es gibt eine spezielle #ib#Task-Id#ie# #on("bold")##ib#collector#ie##off ("bold")#, durch die der augenblicklich eingestell -    te #ib#Collector#ie# erreicht wird. Diese wird als Zieltask beim Aufruf der Vermittlungs -    dienste angegeben (siehe S. #topage("collector")#). Eine Sendung an #on("bold")#collector#off ("bold")# wird von EUMEL0 -    an den derzeitig eingestellten Collector geschickt.  -  -Ein Collector kann also auf drei Wegen von den übrigen Tasks desselben Rechners -Sendungen erhalten:  -  -  1. Über ein normales #on("b")#send#off("b")# (z.B. bei #on("bold")#list (/"net port")#off ("bold")#, wenn #on("b")#net port#off("b")# der derzeitige -     #ib#Collector#ie# ist),  -  -  2. über ein #on("b")#send#off("b")# an die Task #on("bold")#collector#off ("bold")# (s.u.) und  -  -  3. als umgeleitete Sendung (z.B. bei #on("bold")#list#off ("bold")# an eine Task auf einem anderen -     Rechner).  -  -Der Collector kann diese Fälle anhand von #on("bold")#collected destination#off ("bold")# unterscheiden.  -  -Die Punkte d) bis f) dienen dazu, den Collector für über Netz kommunizierende Tasks -unsichtbar zu machen: Der Collector taucht nicht als Ziel oder #ib#Quelle#ie# von Sendungen -auf. Das ist notwendig, damit normale Tasks sich nicht darum kümmern müssen, ob -eine Sendung übers Netz geht oder im eigenen Rechner bleibt.  -  -Wenn ein #ib#Datenraum#ie# an einen anderen Rechner geschickt wird, muß der gesamte -Inhalt (z. Zt. max. 1 MB) übertragen werden. Dies macht bei der üblichen Netzhard -ware eine Zerlegung in #ib#Paket#ie#e nötig [5]. Bei der Zerlegung eines Datenraumes in -Pakete (#ib#Telegramm#ie#e) gelten folgende Einschränkungen:  -  -  -  Ein Paket kann maximal eine #ib#Datenraumseite#ie# als #ib#Nutzdaten#ie# enthalten.  -  -  -  Die #ib#Nutzdatenlänge#ie# ist für einen #ib#Übertragungsweg#ie# konstant.  -  -  -  Alle Stationen eines #ib#Netzstrang#ie#s senden mit gleicher Nutzdatenlänge (#on("b")##ib#data -     length#ie##off("b")#).  -  -  -  Bei indirekter #ib#Kommunikation#ie(1,"indirekte")# (über #ib#Knoten#ie#) muß die Nutzdatenlänge für in -     direkte Verbindungen (#on("b")##ib#data length via node#ie##off("b")#) auf allen beteiligten Stationen -     gleich eingestellt sein.  -  -  -Für Netze stehen spezielle Blockbefehle zur Verfügung:  -  -  -g)  #ib#blockin#ie# / #ib#blockout#ie# (dr,seite,512+abstand,anzahl,rest)  -  -    Es werden maximal #on("bold")#anzahl#off ("bold")# Bytes transferiert. In #on("bold")#rest#off ("bold")# wird zurückgemeldet, wie -    viele Bytes nicht bearbeitet wurden (z.B. weil der #ib#Kanal#ie# nichts anliefert). Bear -    beitet werden die Bytes  -  -       #on("bold")#seite#off ("bold")# * 512 + #on("bold")#abstand#off ("bold")#  -  -    bis maximal  -  -       #on("bold")#seite#off ("bold")# * 512 + #on("bold")#abstand#off ("bold")# + #on("bold")#anzahl#off ("bold")# - 1  -  -    Der Kanal, an den die Task gekoppelt ist, wird dabei über #ib#Stream-IO#ie# (d.h. -    #on("bold")##ib#incharety#ie##off ("bold")#, bei #on("bold")#blockin#off ("bold")# bzw. #on("bold")#out#off ("bold")# bei #on("bold")#blockout#off ("bold")#) angesprochen.  -  -    Hinweis: Die Anforderung darf nicht über #ib#Seitengrenze#ie# gehen, d.h.  -  -    #on("bold")#abstand#off ("bold")# + #on("bold")#anzahl#off ("bold")# <= 512  -  -    muß erfüllt sein.  -  -  -Eine Netzsendung läuft wie folgt ab:  -  -Die Task q auf Rechner rq mache ein #on("bold")##ib#send#ie##off ("bold")# an die Task z auf Rechner rz.  -  -1. Die Prozedur #on("bold")#send#off ("bold")# ist ein #ib#EUMEL0#ie#-Befehl. Die EUMEL0-Ebene erkennt, daß die -   Sendung an die #ib#Station#ie# rz geht, da die #ib#Stationsnummer#ie# in der #ib#Task-Id#ie# enthalten -   ist. Daher wird die Sendung zum #ib#Collector#ie# umgeleitet, den EUMEL0 wegen der -   Einstellung durch #on("bold")##ib#define collector#ie##off ("bold")# kennt, umgeleitet.  -  -2. Die Task Collector empfängt über #on("bold")##ib#wait#ie##off ("bold")# den #ib#Datenraum#ie#, den #ib#Sendecode#ie# und die -   Absendertask q. Die #ib#Zieltask#ie# z erfährt sie durch #on("bold")##ib#collected destination#ie##off ("bold")#.  -  -3. Der Collector nimmt Kontakt mit dem Collector des Rechners #on("b")#rz#off("b")# auf, dessen Sta -   tionsnummer ja #on("bold")##ib#station#ie#(z)#off ("bold")# ist, und übermittelt diesem Sendecode, #ib#Quelltask#ie# (q), -   eigentliche Zieltask (z) und den #ib#Datenraum#ie#. Da die Collectoren in ELAN geschrie -   ben sind, können sie an beliebige #ib#Netzhardware#ie# und #ib#Protokoll#ie#e angepaßt werden.  -  -4. Der #ib#Collector#ie# auf Rechner #on("b")#rz#off("b")# verwendet das spezielle #on("bold")#send#off ("bold")#, um der Zieltask die -   Sendung zuzustellen. Dadurch erscheint nicht der Collector, sondern die Task #on("b")#q#off("b")# -   als Absender der Sendung.  -  -Zur Abwicklung der #ib#Vermittlungsebene#ie# (siehe S. #topage("vermittlung")#) muß der Collector noch spe -zielle Funktionen beherrschen. Diese sind  -  -   der #on("b")##ib#/#ie#-Operator#off("b")# (Taskname in #ib#Task-Id#ie# wandeln) und  -   die #on("b")##ib#name#ie##off("b")#-Prozedur (Task-Id in Namen wandeln).  -  -Der #on("b")#/#off("b")#-Operator macht eine Sendung an den #on("bold")##ib#collector#ie##off ("bold")#, wobei im #ib#Datenraum#ie# der Name -der Task steht und der #ib#Sendecode#ie# gleich der Stationsnummer ist (siehe [6] ). Der -#ib#Collector#ie# setzt sich mit dem Collector dieser Station in Verbindung, damit dieser die -Task-Id ermittelt und zurückschickt. Der eigene Collector schickt dann dem #on("b")#/#off("b")#-Oper -ator als Antwort einen Datenraum, der die #ib#Task-Id#ie# enthält.  -  -Umgekehrt läuft #on("bold")##ib#name#ie##off ("bold")# ab: Wenn die Task-Id von einer fremden Station ist, schickt -#on("bold")#name#off ("bold")# eine Sendung an den #on("bold")##ib#collector#ie##off ("bold")#, wobei im Datenraum die Task-Id steht und -Sendecode = 256 ist. Der Collector entnimmt die #ib#Stationsnummer#ie# der Task aus der -Task-Id und läßt sich vom entsprechenden Collector den Tasknamen geben. Dieser -wird der #on("bold")#name#off ("bold")#-Prozedur im Antwortdatenraum übergeben.  -  -Netztasks bauen sich #ib#Routentabellen#ie# auf (#ib#Datei#ie#name #on("b")##ib#port intern#ie##off("b")#). Aufgrund dieser -Tabellen weiß jede #ib#Netztask#ie#, über welchen #ib#Kanal#ie# und welche #ib#Nachbarstation#ie# eine -#ib#Zielstation#ie# erreichbar ist. Wenn der #ib#Collector#ie# einen Sendeauftrag erhält, prüft er, ob -die Zielstation über seinen Kanal erreichbar ist. Wenn nicht, leitet er Parameter und -#ib#Datenraum#ie# der Sendung an die geeignete Netztask weiter.  -#page#  -  -2.2. Ebenen  -  -#goalpage("2.2")#  -  -In diesem Kapitel werden die #ib#Protokollebenen#ie# für das Netz beschrieben, wie sie die -ausgelieferte Netzsoftware benutzt und erwartet. Bei anderer Netzhardware als Daten -boxen müssen die Ebenen a) bis c) ausgetauscht werden [4]. Unter Einhaltung der im -vorigen Kapitel beschriebenen Randbedingungen können auch die höheren Ebenen -geändert werden.  -  -  -a) Physikalische Ebene  -  -   -  #ib#Station#ie# <--> Box  -  -      #ib#V.24#ie#-#ib#Schnittstelle#ie# mit #ib#RTS/CTS#ie#-Handshake. Vollduplex.  -  -   -  Box <--> Box  -  -      #ib#RS422#ie# über 2 verdrillte Leitungspaare (Takt und Daten).  -  -  -b) Verbindungsebene  -  -   -  Station <--> Box  -  -      Asynchron  -      8 Bit  -      Even Parity  -      2400/4800/9600/19200 #ib#Baud#ie# einstellbar über Lötbrücken)  -  -   -  Box <--> Box  -  -      #ib#SDLC#ie#  -      400 KBaud  -#page#  -c) #ib#Netzebene#ie#  -#goalpage("quelle")#  -  -   -  Station <--> Box  -  -      #ib#Telegrammformat#ie#:  #ib#STX#ie#, <n>, <ziel>, <#ib#quelle#ie#>, <(n-4) byte>  -  -      <n> ist #ib#Längenangabe#ie# ( 8 <= n <= 160)  -      <ziel>, <quelle> sind #ib#Stationsnummer#ie#n. Diese müssen an den jeweiligen -      Boxen eingestellt sein.  -  -      Box --> Station:  -  -      Ein #ib#Telegramm#ie# kommt nur bei der #ib#Station#ie# an, bei deren Box die Nummer -      <ziel> eingestellt ist. Dadurch ist ein Mithören fremder #ib#Übertragung#ie# nicht -      möglich (Datenschutz).  -  -      Zwischen Telegrammen können #ib#Fehlermeldung#ie#en der Box (Klartext) übermittelt -      werden (z.B. 'skipped x', wenn ein #ib#STX#ie# von der Box erwartet wurde, aber 'x' -      von der Station ankommt).  -  -      Station --> Box:  -  -      Ein Telegramm wird nur abgeschickt, wenn <#ib#quelle#ie#> mit der eingestellten -      Nummer übereinstimmt (Datenschutz: Man kann nicht vorschwindeln, eine -      beliebige Station zu sein, es sei denn, man hat physischen Zugriff zur Box und -      stellt dort die Stationsnummer um).  -  -   -  Box <--> Box  -  -      #ib#Telegrammformat#ie#:  -          FRAME, <ziel>, <#ib#quelle#ie#>, <daten>, <CRC-Code>  -  -      Eine #ib#Längenangabe#ie# ist nicht nötig, da #ib#SDLC#ie# eine Rekonstruktion der Länge -      erlaubt.  -  -      Telegramme mit falschen #ib#CRC-Code#ie# werden vernichtet. Auf höheren Ebenen -      muß dies durch #ib#Zeitüberwachung#ie# erkannt und behandelt werden.  -  -#page#  -d) Transportebene  -  -   Diese Ebene wickelt das Rendezvous zwischen einer Task, die #on("bold")##ib#send#ie##off ("bold")# macht, und -   einer Task, die im #on("bold")##ib#wait#ie##off ("bold")# steht, ab [1].  -  -   Der im #on("bold")#send#off ("bold")# angegebene #ib#Datenraum#ie# wird als Folge von #ib#Seiten#ie# (im EUMEL- -   Sinne: Pagingeinheit und Allokiereinheit) übermittelt, wobei jede Seite ggf. noch in -   n Byte große Stücke zerlegt wird. Es werden nur echt allokierte Seiten übermit -   telt. Um nicht jedes #ib#Telegramm#ie# voll qualifizieren zu müssen, wird zunächst eine -   Art virtuelle #ib#Verbindung#ie# durch ein #ib#OPEN#ie#-Telegramm eröffnet. Danach folgen -   variabel viele #ib#DATA#ie#-Telegramme. Beide Sorten werden durch #ib#QUIT#ie#-Tele -   gramme quittiert, um folgende Funktionen zu ermöglichen:  -  -   #ib#Flußkontrolle#ie# (z.B. Zielrechner langsam),  -   Wiederaufsetzen (verlorene Telegramme),  -   Abbruch (z.B. weil Zieltask inzwischen beendet).  -  -   Ein #ib#CLOSE#ie#-Telegramm ist nicht nötig, da das letzte DATA-Telegramm als -   solches erkannt werden kann (siehe unten).  -#page#  -   -  #ib#OPEN#ie#-Telegramm  -  -#clear pos#  -    0      1      2      3      4      5      6      7      8      9. Byte  -+------+------+------+------+-------------+-------------+-------------------+  -I STX  I  24  I Ziel IQuelleI Endziel     I Endquelle   I Strom             I  -+------+------+------+------+-------------+-------------+-------------------+  -  -   10     11     12     13     14     15     16     17                 -+-------------+-------------+---------------------------+  -I Sequenz     I  Seite      I  Quelltask                I  -+-------------+-------------+---------------------------+  -  -   18     19     20     21     22     23                            -+---------------------------+-------------+  -I  Zieltask                 I  Code       I  -+---------------------------+-------------+  -  -  -  -          <#ib#ziel#ie#>, <#ib#quelle#ie#> siehe S. #topage("quelle")#  -  -          <#ib#endziel#ie#>    Eigentliche #ib#Zielstation#ie#. Ist <ziel> = <endziel>, so ist -                       das #ib#Telegramm#ie# angekommen. Andernfalls muß die Station -                       <ziel> den #ib#Nachbarn#ie# zum Erreichen des <endziel> als -                       neues <ziel> einsetzen und das Telegramm an diesen -                       Nachbarn weiterleiten.  -  -          <#ib#endquelle#ie#>  Eigentliche #ib#Absenderstation#ie#. <quelle> ist dagegen immer -                       die Nummer der sendenden #ib#Nachbarstation#ie#.  -  -          <#ib#strom#ie#>      Die #ib#Stromnummer#ie# identifiziert die virtuelle #ib#Verbindung#ie#. Sie -                       muß in den #ib#QUIT#ie#-Telegrammen angegeben werden.  -  -          <#ib#sequenz#ie#>    -1 (Kennzeichen für OPEN)  -  -          <#ib#seite#ie#>      Nummer der ersten echt allokierten #ib#Seite#ie# des #ib#Datenraum#ie#s -                       (=-1, falls Nilspace)  -  -          <#ib#quelltask#ie#>  #ib#Task-Id#ie# der sendenden Task  -  -          <#ib#zieltask#ie#>   Task-Id der empfangenden Task  -  -          <code>       Wert des im #on("bold")##ib#send#ie##off ("bold")# angegebenen Codes  -#page#  -   -  #ib#DATA#ie#-Telegramm  -  -  -  -  -  -    0      1      2      3      4      5      6      7      8      9. Byte     -+------+------+------+------+-------------+-------------+-------------------+  -I STX  I LängeI Ziel IQuelleI Endziel     I Endquelle   I Strom             I  -+------+------+------+------+-------------+-------------+-------------------+  -  -   10     11     12     13     14                                        -+-------------+-------------+-----------------------------------------------+  -I Sequenz     I Seite       I n Byte Daten  (Länge = 14 + n)                I  -+-------------+-------------+-----------------------------------------------+  - -  -          <#ib#laenge#ie#>     Gesamtlänge des Telegramms.  -                       #on("b")#laenge#off("b")# = #on("b")##ib#nutzlaenge#ie##off("b")# + 14.  -                       Für #on("b")#nutzlaenge#off("b")# sind nur die Werte 64,128,256 und 512 -                       zugelassen (siehe 1). #on("b")#laenge#off("b")# wird codiert dargestellt (siehe -                       Teil 3).  -  -  -          <#ib#sequenz#ie#>    wird von Telegramm zu Telegramm hochgezählt. Sie dient -                       der Überwachung bzgl. verlorengegangener Telegramme -                       bzw. durch #ib#Zeitüberwachung#ie# verdoppelter Telegramme.  -  -          <#ib#seite#ie#>      Nummer der x-ten echt allokierten Seite des #ib#Datenraum#ie#s -                       (x = ((<sequenz> DIV anzahl pakete pro seite) + 2)  -  -          <n byte>     #ib#Nutzinformation#ie#. Diese gehört zur #ib#Adresse#ie# a des Daten -                       raums.  -  -                       a =  -                       N (<sequenz> DIV anzahl pakete pro seite + 1) * 512  -                           + (<sequenz> MOD anzahl pakete pro seite) * n  -  -                       wobei N (x) die Nummer der x-ten Seite und  -                       n die #ib#Nutzdatenlänge#ie# ist.  -  -                       Aus den Formeln ergibt sich, daß diese Nummer schon in -                       einem vorhergehenden DATA/OPEN-Telegramm über -                       mittelt wurde (im Feld <seite>).  -  -   -  #ib#QUIT#ie#-Telegramm  -  -  -    0      1      2      3      4      5      6      7      8      9. Byte     -+------+------+------+------+-------------+-------------+-------------------+  -I STX  I  12  I Ziel IQuelleI Endziel     I Endquelle   I Strom             I  -+------+------+------+------+-------------+-------------+-------------------+  -  -   10     11                                                     -+-------------+  -I Quit        I  -+-------------+  -  -  -  -          <#ib#strom#ie#>      muß die #ib#Stromnummer#ie# sein, die in dem #ib#OPEN#ie#/#ib#DATA#ie# -                       Telegramm stand, das quittiert wird.  -  -          <quit>       0 :  ok. Nächstes Telegramm schicken.  -  -                       -1:  #ib#Übertragung#ie# neu starten (mit #ib#OPEN#ie#), weil die Emp -                            fangsstation das OPEN nicht erhalten hat.  -  -                       -2:  Übertragung ca. 20 Telegramme zurücksetzen.  -  -                       -3:  Übertragung abbrechen.  -  -                       -4:  #ib#Quittung#ie# für letztes Telegramm einer Sendung.  -  -  -e) #ib#Vermittlungsebene#ie##goalpage("vermittlung")# #goalpage("collector")#  -  -   Diese Ebene ist dafür zuständig, Namen von Tasks auf anderen Stationen in -   #ib#Task-Id#ie#'s (Werte des Typs TASK) zu wandeln und umgekehrt. Hierzu wird im -   entsprechenden #ib#OPEN#ie#-Telegramm der Code -6 (bzw. -7) als <code> ein -   getragen. Die #ib#Netzempfangstask#ie# erkennt diese #ib#Codes#ie# und wickelt die Aufgaben -   selbst ab, so daß es dabei nicht nötig ist, irgendeine Task-Id der #ib#Zielstation#ie# zu -   kennen.  -  -   Dieses Verfahren ist möglich, weil im #on("bold")##ib#send#ie##off ("bold")# nur positive Codes erlaubt sind.  -#page#  -f) #ib#Höhere Ebenen#ie#  -  -   Höhere Ebenen sind nicht mehr netzspezifisch. Sie basieren alle auf dem Send/ -   Wait-Konzept des EUMEL. So gibt es z.B. den #on("bold")##ib#global manager#ie##off ("bold")#, der Aufbewah -   rung und Zugriff von #ib#Datei#ie#en in einer Task regelt. Dabei darf diese Task (bei der -   Variante #on("bold")##ib#free global manager#ie##off ("bold")#) auf einer beliebigen #ib#Station#ie# im Netz liegen. Wegen -   des #ib#Rendezvous-Konzept#ie#s können beliebige Sicherheitsstrategien benutzt werden -   (z.B.: keine Dateien an Station 11 ausliefern). Von großem Wert ist z.B., daß -   man ohne weiteres das Archiv (Floppylaufwerk) einer anderen Station anmelden -   und benutzen kann, wodurch eine einfache Konvertierung von Floppyformaten -   möglich ist. Dies ist möglich, weil auch die Archiv-Task der Stationen sich an -   das Globalmanagerprotokoll halten.  -  -  -  -  -  -Bemerkungen  -  -#ib#Fehlerbehandlung#ie# besteht bis Ebene c) darin, fehlerhafte #ib#Telegramm#ie#e einfach zu -entfernen. Die Ebene d) überwacht den Netzverkehr sowieso über #ib#Timeout#ie#s, die eine -Wiederholung eines Telegrammes bewirken, wenn die #ib#Quittung#ie# ausbleibt.  -  -Da bei der sendenden #ib#Station#ie# der ganze #ib#Datenraum#ie# zur Verfügung steht, ist eine -#ib#Fenstertechnik#ie# (wie bei #ib#HDLC#ie#) nicht nötig. Es kann zu jedem Zeitpunkt um beliebig -viele Telegramme zurückgesetzt werden.  -  -Da im EUMEL eine #ib#Textdatei#ie# ein #ib#Datenraum#ie# mit sehr komplexer Struktur ist (wegen -der Insert/Delete-Möglichkeiten, ohne den Rest der #ib#Datei#ie# zu verschieben), ist es ein -hoher Aufwand, von einem fremden Betriebssytem aus eine Textdatei in das -EUMEL-Netz zu senden. Für solche Zwecke muß noch eine einfachere Dateistruktur -definiert und entsprechende Dateikonverter erstellt werden.  -#page#  -  -2.3. Stand der Netzsoftware  -  -#goalpage("2.3")#  -  -Das EUMEL-System wickelt die Prozedur #on("bold")##ib#send#ie##off("bold")# über das Netz ab, wenn die Sta -tionsnummer der #ib#Zieltask#ie# ungleich der eigenen #ib#Stationsnummer#ie# ist. Umgekehrt kann -man der von der Prozedur #on("bold")##ib#wait#ie##off("bold")# gelieferten Absendertask die #ib#Absenderstation#ie# entneh -men (siehe Prozedur #on("bold")##ib#station#ie##off("bold")# in Teil 1).  -  -Anders als bei einem #on("bold")##ib#send#ie##off("bold")# innerhalb einer Station meldet ein #on("bold")#send#off("bold")# an eine Task einer -fremden Station immer 0 zurück (Task gibt es und Task war im wait), obwohl dies -nicht der Fall sein muß. Ist die Sendung vollständig zur Zielstation übertragen, so -versucht der dortige #ib#Collector#ie# diese hundertmal im Sekundenabstand zuzustellen. -Bleibt das erfolglos, wird die Sendung vernichtet.  -#pagenr ("%", 33)##setcount (1)##block##pageblock##count per page#  -#headeven#  -#center#EUMEL Netzbeschreibung  -#center#____________________________________________________________  -  -#end#  -#headodd#  -#center#Teil 3 :  Netz Hardware Interface  -#center#____________________________________________________________  -  -#end#  -#bottomeven#  -#center#____________________________________________________________  -Netz - % #right#GMD  -#end#  -#bottomodd#  -#center#____________________________________________________________  -GMD #right#Netz - %  -#end#  -#page#  -  -Teil 3: Netz-Hardware-Interface       -  -  -#goalpage("3")#  -  -  -3.1. Einführung  -  - #goalpage("3.1")#  -  -In diesem Teil der Netzbeschreibung wird die #ib#Schnittstelle#ie# beschrieben, über die -#ib#Netzhardware#ie# (also #ib#Datenbox#ie#en, #ib#Netzbox#ie#en oder Netzkarten) an die EUMEL-Netz -Software angepaßt werden kann. Dieser Teil der Beschreibung ist also nur für Netz -implementatoren wichtig.  -  -Das EUMEL-Netz wurde dazu konzipiert, zwei oder mehr EUMEL-Rechner über -#ib#V.24#ie#-Leitungen oder Datenboxen miteinander zu vernetzen. Dem heutigen Stand der -Technik entsprechend, werden auf dem Markt eine Reihe von Möglichkeiten ange -boten, um PC's zu vernetzen. Diese Netze unterscheiden sich auch dadurch, daß -unterschiedliche Medien zur Datenübertragung benutzt werden. Das #ib#EUMEL- -Datenboxen-Netz#ie# benutzt Telefonkabel, #ib#Ethernet#ie# beispielsweise Koax-Kabel. Auch -Lichtleiter werden zur Datenübertragung benutzt. Entsprechend gibt es eine ganze -Menge Hardware (#ib#Treiber#ie#, Netzzugangsgeräte, Datenboxen, Anschlußkarten), die die -Kopplung zwischen einem #ib#I/O-Kanal#ie# eines Rechners und dem Übertragungsmedium -(Kabel) übernimmt. Das Netz-Hardware-Interface soll als #ib#Schnittstelle#ie# zwischen der -NetzSoftware und dem Treiber dienen. Damit wird es möglich, mehrere EUMEL- -Rechner über verschiedene (Teil-) Netze (in dieser Beschreibung Stränge genannt) -und unterschiedliche #ib#Netzhardware#ie# (Treiber) miteinander zu verbinden. Für den -EUMEL-Benutzer soll dabei kein Unterschied in der Benutzung des EUMEL-Netzes -feststellbar sein.  -#page#  -Neben unterschliedlichen Übertragungsmedien und Treibern gibt es weitere Unter -schiede zwischen Netzen:  -  -     -  in der Netztopologie (Bus-, Ring- oder Sternnetze),  -  -     -  in den Netzzugangsverfahren (Token passing, time slice token, slotting oder -        CSMA/CD),  -  -     -  in der #ib#Übertragungsgeschwindigkeit#ie#,  -  -     -  im Aufbau der einzelnen #ib#Pakete#ie(1,", Aufbau der")# (#ib#Netztelegramm#ie#e).  -  -Alles, was mit den ersten drei Punkten zusammenhängt, wird von den Netzzugangs -geräten behandelt.  -  -Der Paketaufbau aber muß zumeist im Rechner geschehen und kann in den seltens -ten Fällen ganz vom Treiber übernommen werden. Ebenso kann der Treiber aus den -empfangenen Paketen nicht immer die Teile herausfiltern, die von der EUMEL- -#ib#Netzsoftware#ie# gebraucht werden. Diese Aufgaben übernimmt das #ib#Netz-Hardware- -Interface#ie#. Das Netz-Hardware-Interface stellt die #ib#Verbindung#ie# zwischen EUMEL- -#ib#Netzsoftware#ie# und den verschiedenen Netzhardwarearten dar. Ähnlich wie bei den -Drucker- und Terminal-Anpassungen wurde ein hardwareabhängiger Teil aus der -Netzsoftware abgetrennt und in einem eigenen #ib#Paket#ie# zusammengefaßt. Beim Start -des Netzes wird durch Angabe des entsprechenden #ib#Netzmodus#ie# für den jeweiligen -#ib#Kanal#ie# die entsprechende Anpassung für den benutzten Treiber ausgewählt. Wenn -andere, neue Treiber angepaßt werden sollen, so müssen lediglich in dem Paket #on("b")##ib#net -hardware interface#ie##off("b")# die entsprechenden Prozeduren hinzugefügt und die #ib#Sprungleisten#ie# -(#ib#SELECT#ie#-Statements) erweitert werden.  -  -Durch das #ib#Knotenkonzept#ie# in der #ib#Netzsoftware#ie# ist es möglich, über einen #ib#Knoten -rechner#ie# Teilnetze (Stränge), die mit unterschiedlicher #ib#Netzhardware#ie# arbeiten, mitein -ander zu verbinden. Es sind dann beispielsweise Verbindungen zwischen Rechnern, -die über #ib#Ethernet#ie# vernetzt sind, und Rechnern auf dem EUMEL-Datenboxen-Netz -möglich. Es ist auch möglich, mit einem Rechner Zugang zu einem Netz zu erhalten, -für das spezielle #ib#Netzhardware#ie# erforderlich ist (Datenboxen, Ethernet-Anschluß). Man -kann den Rechner über eine Rechner-Rechner-Kopplung (#ib#V.24#ie#) mit einem Rechner -verbinden, der bereits ans Netz angeschlossen ist, und so (allerdings auf Kosten der -Leistung des #ib#Knotenrechner#ie#s) Netzhardware einsparen.  -#page#  -  -3.2.  Arbeitsweise des  -      Netz-Hardware-Interfaces -       -  -  -  -  -    #goalpage("3.2")#  -  -Grob vereinfacht kann man sich die Arbeitsweise der #ib#EUMEL-Netz-Software#ie# so vor -stellen:  -  -       reset box;  -       REP  -          IF zeichen da THEN lies telegramm ein  -             ELIF telegramm auszugeben THEN gib telegramm aus  -          FI  -       PER .  -  -(Es ist nur der Teil der Software beschrieben, der die Kanalbehandlung betrifft).  -  -  -Das Zusammenspiel zwischen EUMEL-Netz und Netz-Hardware-Interface ge -schieht auf folgende Weise:  -  -  -     #on("b")#reset box;#off("b")#  -     REP  -        IF zeichen da THEN  #on("b")#next packet start#off("b")#;  -                            lies telegramm ein  -           ELIF telegramm auszugeben THEN gib telegramm aus  -        FI  -     PER.  -  -     gib telegramm aus:  -         #on("b")#transmit header#off("b")#;  -         gib eumelnetztelegramm aus;  -         #on("b")#transmit trailer #off("b")#.  -  -Die fett gedruckten Programmteile werden im Netz-Hardware-Interface realisiert, die -anderen Teile stecken in den darüberliegenden Teilen der EUMEL-Netz-Software.  -#page#  -Beim Senden eines #ib#Telegramm#ie#s wird von der #ib#Netzsoftware#ie# zuerst der #ib#Vorspann#ie# in -einem #ib#Datenraum#ie# an das Hardware-Interface übergeben (#on("b")##ib#transmit header#ie##off("b")#). Im Hard -ware-Interface können aus dem Vorspann die entsprechenden Informationen (Tele -grammlänge, #ib#Zielstation#ie# usw.) entnommen werden. Dann wird von der Netzsoftware -das Telegramm (inklusive Vorspann) per #on("b")##ib#blockout#ie##off("b")# übergeben. Danach wird #on("b")##ib#transmit -trailer#ie##off("b")# aufgerufen, um dem Hardware-Interface das Ende des Telegramms zu mel -den. Beim Empfang ruft die Netzsoftware zuerst die #ib#I/O Control#ie# #ib#Telegrammfreigabe#ie# -auf [7]. Danach wird das erste #ib#Zeichen#ie# des Telegramms angefordert (#on("b")##ib#next packet -start#ie##off("b")#). Falls ein #ib#STX#ie# geliefert wurde, wird das Telegramm per #on("b")##ib#blockin#ie##off("b")# eingelesen. Falls -#ib#Niltext#ie# zurückgeliefert wird, wird von der Netzsoftware #ib#Timeout#ie# angenommen. Alle -anderen Zeichen werden so interpretiert, als ob Störungen aufgetreten wären. Die -Netzsoftware übernimmt die #ib#Fehlerbehandlung#ie#. Dazu wird u. U. ein Leerlesen des -Puffers vom Hardware-Interface verlangt (#on("b")##ib#flush buffers#ie##off("b")#).  -  -Bei der Einstellung der #ib#Nutzdatenlänge#ie# (#on("b")##ib#data length#ie##off("b")#) ist zu beachten, daß  -  -a)  alle #ib#Station#ie#en, die an einem #ib#Strang#ie# hängen, auf die gleiche Nutzdatenlänge -    eingestellt sein müssen.  -  -b)  Wenn mehrere Stränge über #ib#Knoten#ie# miteinander verbunden sind, muß die Nutz -    länge für Sendungen über Knoten (#on("b")##ib#data length via node#ie##off("b")#) auf allen Stationen des -    gesamten Netzes gleich eingestellt sein. Die Zusammenfassung oder Aufteilung -    von #ib#Telegramm#ie#en in Knoten ist nicht möglich.  -  -c)  Als mögliche Nutzdatenlänge sind folgende Werte erlaubt:  -  -    64, 128, 256 und 512 Byte.  -  -    Größere Nutzdatenlängen sind zur Zeit nicht möglich.  -  -d)  Je größer die #ib#Nutzdatenlänge#ie# ist, desto geringer ist der Overhead an #ib#Zeichen#ie#, -    die auf den Rechnern verarbeitet werden müssen. Allerdings muß der Rechner -    leistungsfähig genug sein, die ankommenden Blöcke schnell genung zu verarbei -    ten, und die Netztreiber müssen entsprechend große Puffer haben.  -  -  -Alle implementierten Netzanpassungen sollen in einem Netz-Hardware-Interface -zusammengefaßt werden. Dies ist notwendig, um über #ib#Knotenrechner#ie# Netzstränge -verbinden zu können, die mit unterschiedlicher #ib#Netzhardware#ie# arbeiten. So können -zum Beispiel ein #ib#Strang#ie#, der mit Datenboxen aufgebaut ist, und ein #ib#Ethernet#ie#-#ib#Strang#ie# -über einen Knotenrechner miteinander verkoppelt werden.  -#page#  -Aus diesem Grund wurden #on("b")#Netzmodi#off("b")# eingeführt. Man kann dadurch, daß die Netz -modi, genau wie die #ib#Kanal#ie#angaben, in der #ib#Datei#ie# #on("b")##ib#netz#ie##off("b")# niedergelegt sind, ohne Aus -tausch einer Softwarekomponente die Netzhardware wechseln. Es gibt auch die -Möglichkeit, durch verschiedene Netzmodi unterschiedliche Treiber an ein und das -selbe Netz anzuschließen. Beispielsweise gibt es für einige Rechnertypen Steckkarten, -mit denen der Rechner an das Ethernet angeschlossen werden kann. Man kann, -wenn diese Karten angepaßt sind, den #ib#Ethernet#ie#-Zugang über verschiedene Netz -anschlußkarten realisieren.  -  -Das Netz-Hardware-Interface muß folgende Aufgaben übernehmen:  -  -    Bei der Ausgabe an den Treiber:  -  -        -  Generieren und Ausgeben des #ib#Paket#ie#headers,  -        -  Umsetzen von logischen Stationsadressen (#ib#Stationsnummer#ie#n) in phy -           sische #ib#Adresse#ie#n,  -        -  Ausgeben der Daten (EUMEL-Netz-#ib#Telegramm#ie#e),  -        -  Generieren und Ausgeben des Trailers und evtl. Auffüllen des Pakets mit -           #ib#Füllzeichen#ie#, falls auf dem Netz eine Mindestlänge für Pakete gefordert -           wird.  -  -    Bei der Eingabe vom Treiber:  -  -        -  Weglesen von #ib#Füllzeichen#ie#,  -        -  Prüfen der #ib#Adresse#ie#n,  -        -  Weglesen von #ib#Paket#ie#teilen, die in der EUMEL-Netz-Software nicht -           gebraucht werden.  -  -    Weiterhin können Funktionen wie  -  -        -  Reset des Treibers,  -        -  Prüfung, ob Stationsadresse und #ib#Adresse#ie# im Treiber übereinstimmen,  -        -  Statistik und Service  -  -    durch das Netz-Hardware-Interface übernommen werden.  -  -Dazu wird ein Satz von Prozeduren über die #ib#DEFINES#ie#-#ib#Schnittstelle#ie# des Netz- -Hardware-Interfaces zur Verfügung gestellt. Wenn neue Treiber oder Netzarten -implementiert werden sollen, so muß an diesem Interface nichts geändert werden. Die -herausgereichten Prozeduren realisieren #ib#Sprungleisten#ie# (#ib#SELECT#ie#-Statements), über -die durch Erweiterung (#ib#CASE#ie#) die Prozeduren erreicht werden können, die den ent -sprechenden #ib#Netzmodus#ie# realisieren. Außerdem werden Informationsprozeduren für die -darüberliegenden Programmteile zur Verfügung gestellt.  -#page#  -  -3.3. Netztreiber  -  - #goalpage("3.3")#  -Unter #ib#Netztreiber#ie#n versteht man die Einheiten, die den Anschluß des Rechners an ein -Netz realisieren. Das können #ib#Netzbox#ie#en sein, die mit dem Rechner über eine #ib#V.24#ie#- -Leitung verbunden sind, aber auch Anschlußkarten, die direkt auf den Datenbus des -Rechners gehen. Falls die #ib#Schnittstelle#ie# der Treiber-Hardware eine andere als die -serielle #ib#V.24#ie# ist, muß in der Regel eine Anpassung für die Hardware im #ib#SHard#ie# vorge -nommen werden.  -  -Falls der Treiber über eine serielle #ib#V.24#ie#-#ib#Schnittstelle#ie# mit dem Rechner verbunden -ist, wie das auch bei der direkten Kopplung oder dem Datenboxennetz der Fall ist, -wird die hohe #ib#Übertragungsgeschwindigkeit#ie# auf dem eigentlichen Netz durch die -relativ geringe Übertragungsgeschwindigkeit auf der #ib#V.24#ie#-#ib#Schnittstelle#ie# zwischen -Rechner und Treiber (Box) gebremst. Über andere Schnittstellen im Rechner, wenn -sie mit #ib#Stream I/O#ie# [7] betrieben werden, kann man dies vermeiden. Diese Schnitt -stellen müssen vom SHard bedient werden.  -  -Wenn in den Rechner integrierte Netztreiber (Netzanschlußkarten) benutzt werden -sollen, so muß in der Regel die Behandlung dieser Netzanschlußkarte im SHard -durchgeführt werden.  -  -Um effizient implementieren zu können, sollte darauf geachtet werden, daß möglichst -wenig zusätzliche #ib#Zeichen#ie# von der #ib#Netzsoftware#ie# bzw. dem Netz-Hardware-Inter -face bearbeitet werden müssen. Das Auffüllen von Paketen auf eine Mindestlänge -sollte möglichst vom Treiber gemacht werden, ebenso wie das Weglesen dieser -Zeichen.  -  -Um einen sicheren und effektiven Netzbetrieb zu garantieren, sollten die Treiber -folgende Eigenschaften haben:  -  -     -  Die #ib#Stationsadresse#ie# ist im Treiber festgelegt, sie soll nicht ohne weiteres -        verändert werden können (Datenschutz).  -     -  Der Treiber reicht nur #ib#Paket#ie#e mit richtiger #ib#Zieladresse#ie#, keine #ib#Broad- oder -        Multicasts#ie# an die Netzsoftware weiter.  -     -  Der Treiber sendet nur #ib#Paket#ie#e mit richtiger #ib#Absenderadresse#ie# bzw. setzt die -        Absenderadresse selbst ein.  -     -  Die am Treiber eingestellte #ib#Adresse#ie# kann abgefragt werden, oder es wird, -        wenn ein Paket mit falscher #ib#Absenderadresse#ie# vom Rechner kommt, eine -        #ib#Fehlermeldung#ie# an den Rechner gegeben. Die Fehlermeldung muß durch das -        Netz-Hardware-Interface in den #on("b")##ib#report#ie##off("b")# eingetragen werden.  -     -  Falls Pakete mit #ib#Füllzeichen#ie# aufgefüllt werden müssen, sollten die Füll -        zeichen durch den Treiber generiert und beim Empfang wieder entfernt -        werden.  -     -  Falls mehrere Betriebsmodi möglich sind, so sollten sie softwaremäßig -        einstellbar sein.  -     -  Falls die Treiber über eine serielle #ib#Schnittstelle#ie# an den Rechner angeschlos -        sen werden, so sollte der Treiber konfigurierbar sein. In jedem Fall sollte die -        serielle Schnittstelle mit #ib#Flußkontrolle#ie# (#ib#RTS/CTS#ie#) implementiert werden.  -  -Zusätzlich ist ein Transparent-Modus als #ib#Netzmodus#ie# von Vorteil:  -  -     -  Der Modus (transparent) kann zu Testzwecken benutzt werden. Beispiels -        weise um auch mit Rechnern kommunizieren zu können, die über Netz -        erreichbar sind, aber kein EUMEL-Netz-#ib#Protokoll#ie# benutzen.  -  -        Modus n:  transparent.  -  -                  Ausgabeseitig: Das #ib#Paket#ie# wird unverändert ausgegeben. -                                 #ib#Adresse#ie#n usw. müssen schon im Paket vor -                                 handen sein. Es wird nicht mit #ib#Füllzeichen#ie# -                                 aufgefüllt.  -                  Eingabeseitig: Das Paket wird unverändert an die Netzsoft -                                 ware weitergegeben.  -  -#page#  -  -3.4.  Prozedurschnittstelle  -      des EUMEL-Netzes  -       -  -  -  -  -     #goalpage("3.4")#  -Im PACKET #on("b")##ib#net hardware interface#ie##off("b")# sind folgende Prozeduren untergebracht:  -  -  -  -      BOOL PROC #ib#blockin#ie#  -          (DATASPACE VAR ds, INT CONST seite, abstand, länge):  -  -           Versucht, #on("b")#länge#off("b")# Zeichen vom #ib#Kanal#ie# einzulesen. Liefert TRUE, wenn alle -           Zeichen eingelesen wurden, FALSE, wenn innerhalb einer bestimmten -           Zeit nicht alle #on("b")#länge#off("b")# Zeichen eingelesen werden konnten (z.B. weil der -           Kanal nicht mehr Zeichen anliefert). Die eingelesenen Zeichen werden im -           #ib#Datenraum#ie# #on("b")#ds#off("b")# in #ib#Seite#ie# #on("b")#seite#off("b")# ab #on("b")#abstand#off("b")# bis #on("b")#abstand#off("b")# + #on("b")#länge#off("b")# - 1 abge -           legt.  -  -               #ib#Fehlerfall#ie#:  -  -                     #on("b")#blockin Abbruch#off("b")#  -  -           Es werden weniger #ib#Zeichen#ie# innerhalb einer festgelegten Zeitspanne über -           den Kanal angeliefert, als mit #on("b")#länge#off("b")# gefordert.  -  -           Passiert z.B., wenn die Kabel während einer Netzübertragung unter -           brochen werden, oder wenn die Gegenstelle abgeschaltet wird. Das -           #ib#Telegramm#ie# wird vernichtet, die Prozedur liefert FALSE, es wird eine -           entsprechende Meldung im #on("b")##ib#report#ie##off("b")# erzeugt.  -  -      PROC #ib#blockout#ie#  -          (DATASPACE CONST ds, INT CONST seite, abstand, länge):  -  -          Der Inhalt von Seite #on("b")#seite#off("b")# des #ib#Datenraum#ie#s #on("b")#ds#off("b")# wird von #on("b")#abstand#off("b")# bis -          #on("b")#abstand#off("b")# + #on("b")#länge#off("b")# - 1 ausgegeben.  -#page#  -      PROC #ib#set net mode#ie# (INT CONST mode):  -  -          Es wird der #ib#Netzmodus#ie# #on("b")#mode#off("b")# eingestellt. Im Netz-Hardware-Interface -          müssen alle Initialisierungen und Einstellungen vorgenommen werden, -          damit die mit #on("b")#mode#off("b")# geforderte #ib#Netzhardware#ie# unterstützt wird. Diese -          Prozedur wird bei jedem #on("b")##ib#start#ie##off("b")#-Kommando in der Netztask aufgerufen. -          Kann als Initialisierungsprozedur für dieses PACKET verwendet werden. -          Übergibt den in der #ib#Datei#ie# #on("b")##ib#netz#ie##off("b")# für diesen #ib#Kanal#ie# verlangten Netzmodus an -          das Netz-Hardware-Interface. Nach Aufruf dieser Prozedur müssen die -          wertliefernden Prozeduren #on("b")##ib#net mode#ie#, #ib#mode text#ie#, #ib#data length#ie##off("b")# und #on("b")##ib#data -          length via node#ie##off("b")# korrekt initialisiert sein. Der Aufruf von #on("b")##ib#net addess#ie##off("b")# muß -          die korrekten (physikalischen) #ib#Adresse#ie# der #ib#Station#ie#en liefern.  -  -      TEXT PROC net address (INT CONST stationsnummer):  -  -          Liefert die (Hardware-) Netz-#ib#Adresse#ie#, über die der EUMEL-Rechner -          mit der Stationsnummer #on("b")##ib#stationsnummer#ie##off("b")# beim aktuell für diesen Kanal -          eingestellten #ib#Netzmodus#ie# erreichbar ist. Auf diese #ib#Adresse#ie# muß der Treiber -          des entsprechenden Rechners eingestellt sein. Auch die eigene Netz- -          Adresse muß mit der im Treiber eingestellten #ib#Adresse#ie# übereinstimmen. -          Insbesondere müssen alle Stationen, die auf dem Netz arbeiten, dieselbe -          Netz-Adresse für eine #ib#Stationsnummer#ie# errechnen.  -  -      TEXT PROC #ib#mode text#ie#:  -  -          Liefert den Text (Namen) des eingestellten #ib#Netzmodus#ie#. Wird in #on("b")##ib#net -          manager#ie##off("b")# benutzt, um den Netzmodus im #on("b")##ib#report#ie##off("b")# anzugeben.  -  -      TEXT PROC mode text (INT CONST mode):  -  -          Liefert den Text (Namen) zu dem #ib#Netzmodus#ie# #on("b")#mode#off("b")#.  -  -      INT PROC #ib#data length#ie# (INT CONST mode):  -  -          Liefert die #ib#Nutzdatenlänge#ie# (#ib#Länge#ie# der Nettodaten des Eumel- -          Telegramms) im Netz. Wird von #on("b")##ib#basic net#ie##off("b")# beim Neustart aufgerufen. Muß -          in einem Netz auf allen Stationen eines #ib#Strang#ie#s denselben Wert liefern.  -  -          Erlaubte Werte:  64, 128, 256 und 512.  -#page#  -      INT CONST #ib#data length via node#ie#:  -  -          Liefert die #ib#Nutzdatenlänge#ie# für Sendungen, die über #ib#Knoten#ie# gehen.  -          Muß auf allen Stationen des Netzes gleich sein.  -  -          Erlaubte Werte:  64, 128, 256 und 512.  -  -      PROC #ib#decode packet length#ie# (INT VAR value):  -  -          Die #ib#Länge#ie# eines Netztelegramms ist im #ib#Telegramm#ie# codiert enthalten. Mit -          dieser Prozedur wird aus dem Telegrammkopf die Telegrammlänge ermit -          telt:  -  -          Falls beim Aufruf dieser Prozedur in #on("b")#value#off("b")# der Wert des Feldes #on("b")#head#off("b")# aus -          der Struktur #on("b")#vorspann#off("b")#, die in #on("b")#ds#off("b")# per #on("b")##ib#transmit header#ie##off("b")# übergeben wurde, -          enthalten ist, so wird in #on("b")#value#off("b")# die Länge des EUMEL-Netztelegramms -          zurückgeliefert.  -  -      PROC #ib#flush buffers#ie#:  -  -          Liest den Eingabepuffer des #ib#Netzkanal#ie#s leer. Die eingelesenen Zeichen -          werden vernichtet. Wird nach Erkennen von #ib#Übertragungsfehler#ie#n aufge -          rufen.  -  -      TEXT PROC #ib#next packet start#ie#:  -  -          Liefert genau ein #ib#Zeichen#ie# (in der Regel das erste Zeichen des EUMEL- -          Netztelegramms). Wird von der Netzsoftware immer dann aufgerufen, -          wenn ein neues #ib#Paket#ie# erwartet wird.  -  -          Bedeutung des gelieferten Zeichens für die #ib#Netzsoftware#ie#:  -  -          #ib#STX#ie#:      korrekter #ib#Telegrammanfang#ie# (ist das erste Zeichen des -                    EUMEL-Netztelegramms). Der Rest des EUMEL-Netztele -                    gramms steht im Eingabepuffer, ist also über #ib#blockin#ie# lesbar. -                    Vorher wurden nur Zeichen eingelesen, die zum verwendeten -                    #ib#Netzprotokoll#ie# gehören (z.B. #ib#Ethernet#ie#-#ib#Adresse#ie#n, #ib#Füllzeichen#ie# -                    usw.).  -          niltext:  kein neues Telegramm da  -  -          jedes andere Zeichen:  -                    Fehler. Entweder wurden Störzeichen eingelesen oder es -                    gingen Zeichen verloren. #ib#Fehlerbehandlung#ie# erfolgt durch die -                    Netzsoftware.  -#page#  -      PROC #ib#transmit header#ie# (DATASPACE CONST ds):  -  -          Wird vor Ausgabe eines jeden #ib#Telegramm#ie#s aufgerufen. In dem #ib#Datenraum#ie# -          #on("b")#ds#off("b")# wird von der EUMEL-Netz-Software der #on("b")##ib#Vorspann#ie##off("b")# übergeben. Über -          den jeweiligs eingestellten #ib#Netzmodus#ie# kann für jede implementierte Netz -          art über eine #ib#Sprungleiste#ie# (#ib#SELECT#ie#) die Prozedur angesprungen werden, -          die den #ib#Header#ie# für den eingestellten Netzmodus erstellt und ausgibt. -          Struktur des von der EUMEL-Netz-Software benutzten Headers:  -  -              BOUND STRUCT  -              (INT  head,  -                    zwischenziel,  -                    zielrechner,  -                    quellrechner,  -                    strom,  -                    sequenz,  -                    seitennummer ) VAR vorspann.  -  -          Aus dem Inhalt des Feldes #on("b")#head#off("b")# kann mittels #on("b")##ib#decode packet length#ie##off("b")# die -          Gesamtlänge des EUMEL-Netztelegramms errechnet werden.  -  -      PROC #ib#transmit trailer#ie#:  -  -          Wird nach Ausgabe eines jeden Telegramms aufgerufen. Evtl. notwendige -          Nachspänne können ausgegeben werden. Die notwenigen Informationen -          wurden  in #on("b")##ib#transmit header#ie##off("b")# übergeben und müssen aufbewahrt werden, -          falls sie im Trailer mitgeliefert werden müssen. Kann auch dazu benutzt -          werden, den unter diesem Packet liegenden Schichten (#ib#SHard#ie# oder Hard -          ware) das Ende des Telegramms mitzuteilen. Notwendige #ib#Füllzeichen#ie# -          können in dieser Prozedur in das #ib#Paket#ie# eingebaut werden.  -  -      PROC #ib#reset box#ie# (INT CONST net mode):  -  -          Kann zur Initialisierung der #ib#Netzhardware#ie# benutzt werden. Wird von #on("b")##ib#basic -          net#ie##off("b")# beim jedem Neustart aufgerufen.  -  -     INT PROC #ib#max mode#ie#:  -  -          Liefert den Wert des größten erlaubten (implementierten) #ib#Netzmodus#ie#.  -  -     INT PROC #ib#net mode#ie#:  -  -          Liefert den eingestellten Netzmodus.  -#page#  -#pagenr ("%", 45)##setcount (1)##block##pageblock##count per page#  -#headeven#  -#center#EUMEL Netzbeschreibung  -#center#____________________________________________________________  -  -#end#  -#headodd#  -#center#Anhang  -#center#____________________________________________________________  -  -#end#  -#bottomeven#  -#center#____________________________________________________________  -Netz - % #right#GMD  -#end#  -#bottomodd#  -#center#____________________________________________________________  -GMD #right#Netz - %  -#end#  -#clear pos##lpos(1.0)##rpos(9.5)##goalpage("A")#  - -Anhang: Netz-Meldungen#goalpage("A.1")#  -  -Mit dem Kommando #on("b")##ib#list#ie# (/"net list")#off("b")# (siehe Teil 1) erhalten Sie eine temporäre #ib#Datei#ie# -auf den Bildschirm. Diese Datei könnte ungefähr so aussehen:  -  -____________________________________________________________________________  -    -   N e u e r   S t a r t 12:44      Stationsnummer : 38  -  01.06.87 12:55 net port 8:20:Nicht zustellbar. . Empfänger: "net dok". Quelle 34 Taskindex: 255  -  02.06.87 06:30 net port 8:1:wdh data. sqnr 7. Absender: "net dok". Ziel 34 Taskindex: 255  -  02.06.87 07:03 net port:20:Sequenzfehler: soll 13 ist 14. Empfänger: "POST". Quelle 33 Taskindex:  -  02.06.87 07:03 net port:blockin abbruch  -  02.06.87 07:03 net port:20:Sequenzreset von 13 auf 10. Empfänger: "POST". Quelle 33 Taskindex: 29  -  02.06.87 07:36 net port:Call gelöscht."net dok". Strom 1  -  02.06.87 07:43 net port 8:verbotene Route: 34  -  02.06.87 07:50 net port:Header inkorret eingelesen: %0 %2  -  02.06.87 07:50 net port:buffers flushed  -  02.06.87 07:52 net port:Weiterleitung nicht möglich für 34  -  02.06.87 07:53 net port 8:skipped0 6 G O 1 0 . 0 %13 %10 2 8 0 6   0 6 G O 1 0 . 0 %13 %10 2 8 0  -  02.06.87 08:14 net port 8:skipped%13 %10 S p e c .   R e c e i v e   E r r o r   C 2  -  02.06.87 08:21 net port:20:Reopen. Empfänger: "WÜFE". Quelle 40 Taskindex: 22  -  02.06.87 09:25 net port:1:etwas rueckgespult. Absender: "-". Ziel 33 Taskindex: 51  -  02.06.87 09:25 net port:1:wdh data. sqnr 20. Absender: "-". Ziel 33 Taskindex: 51  -  02.06.87 09:54 net port:20:Blocknummer falsch, neu: 192, alt : -1. Empfänger: "WÜFE". Quelle 44  -  02.06.87 10:12 net port:Daten ohne Eroeffnung von 40  Sequenznr 7  -  02.06.87 10:23 net port:Header inkorret eingelesen: O X 0 3 8 B O X 0 4 4 E U %2  -  02.06.87 10:23 net port:buffers flushed  -  02.06.87 10:49 net port:1:wdh open. Absender: "-". Ziel 33 Taskindex: 255  -  02.06.87 10:49 net port:2:wdh open. Absender: "net dok". Ziel 33 Taskindex: 255  -  02.06.87 10:53 net port:1:Sequenzfehler: soll 2 ist 3. Empfänger: "net dok". Quelle 33 Taskindex:  -  02.06.87 10:54 net port:1:Sequenzreset von 8 auf 5. Empfänger: "net dok". Quelle 33 Taskindex: 11  -  02.06.87 10:56 net port:2:etwas rueckgespult. Absender: "-". Ziel 33 Taskindex: 51  -  bekannte Stationen:  -  1(8,1) 2(8,2) 3(8,3) 4(8,4) 5(8,5) 6(8,6) 7(8,7) 8(8,8) 9(8,9) 10(8,10)  -  11(8,11) 12(8,12) 13(8,13) 14(8,14) 15(8,15) 16(8,16) 17(8,17) 18(8,18)  -  19(8,19) 20(8,20) 21(8,21) 22(8,22) 23(8,23) 24(8,24) 25(8,25) 26(8,26)  -  27(8,27) 28(8,28) 29(8,29) 30(8,30) 31(8,31) 32(8,32) 33(9,33) 34(8,34)  -  35(9,35) 36(9,36) 37(9,37) 39(9,39) 40(9,40) 41(9,41) 42(9,42) 43(9,43)  -  44(9,44) 45(9,45) 46(9,46) 47(9,47) 48(9,48)  -  --------  -  Eingestellte Netzmodi:  -  net port 8 haengt an Kanal 8, Modus: (1)  EUMEL-Netz            64 Byte  -  net port haengt an Kanal 9, MODUS: (11) ETHERNET via V.24     512 Byte  -  -  Nutzdatenlänge 512 Byte  -  Nutzdatenlänge bei indirekter Verbindung: 64 Byte  -  ********  -  Netz-Software vom  23.05.87  -  Rechner 38  um 11:11  -  net port 8  -  -  Strom 1 (sqnr7/8) sendet an 34 . Absender ist "net dok".  -  net port  -  -  Strom 1 (sqnr45/45) empfaengt von 40 . Empfaenger ist "PUBLIC".  -  -____________________________________________________________________________  -#page#  -Die Datei enthält den aktuellen #on("b")##ib#report#ie##off("b")#, in dem #ib#Fehlermeldung#ie#en der einzelnen Tasks -gesammelt werden. Außerdem wird der Zustand aller Verbindungen (Ströme) von allen -#on("b")##ib#net port#ie##off("b")#'s angezeigt. Im #on("b")#report#off("b")#-Teil kann man drei Informationsblöcke unterscheiden:  -  -a) den Block mit den Fehlermeldungen. Es werden jeweils Datum, Uhrzeit, der Name -   des betroffenen #on("b")#net port#off("b")# und, wenn notwendig, die #ib#Stromnummer#ie# angegeben. -   Darauf folgt der Meldungstext, der auch Informationen über Absender und Emp -   fänger enthalten kann.  -  -   <Datum> <Zeit> <Name der #ib#Kanaltask#ie#> : [<#ib#Stromnummer#ie#> : ] <Meldung>  -  -  -b) den Block mit der Liste der bekannten #ib#Station#ie#en. Ein Eintrag in dieser Liste ent -   hält jeweils die Stationsnummer der bekannten Station und in Klammern dahin -   ter die Nummer des Kanals auf diesem Rechner, über den die Station erreichbar -   ist und die Nummer der nächsten #ib#Zwischenstation#ie#.  -  -   <Zielstation> (<Kanalnr>,<Zwischenstation>)  -  -   Bei direkt erreichbaren Stationen ist Zwischenstation gleich #ib#Zielstation#ie#.  -  -   Hinweis: Auch #ib#gesperrt#ie#e Stationen erscheinen in dieser Liste.  -  -  -c) den Block, der Auskunft über die Netzinstallation gibt. Es werden für jeden Netz -   kanal die eingestellten Netzmodi angegeben. Des weiteren werden die beiden -   Größen #on("b")##ib#data length#ie##off("b")# (#ib#Nutzdatenlänge#ie#) und #on("b")##ib#data length via node#ie##off("b")# (Nutzdatenlänge bei -   indirekter Verbindung) angegeben. Zusätzlich erscheinen noch die #ib#Netzversion#ie# und -   die genaue Uhrzeit, zu der dieser #on("b")#report#off("b")# erstellt wurde.  -  -#page#  -Für jeden #on("b")##ib#net port#ie##off("b")# wird pro aktivem #ib#Strom#ie# folgende Meldung generiert:  -  -Strom <Stromnr> (sqnr<akt Seqnr>/<max Seqnr>) <Zustand> <Partner>  -  -  -<Stromnr>        #ib#Stromnummer#ie#  -  -<akt Seqnr>      #ib#Sequenznummer#ie# des gerade bearbeiteten #ib#Telegramm#ie#s  -  -<max Seqnr>      Bei #ib#Sendeströme#ie#n die Nummer der letzten zu übertragenden -                 #ib#Sequenz#ie#, bei Empfangsströmen in der Regel die Nummer der -                 letzten Sequenz der gerade übertragenen #ib#Datenraumseite#ie#.  -  -<#ib#Zustand#ie#>        Hier wird die Aktion (senden, empfangen usw.) und die Partner -                 station angegeben.  -  -<#ib#Partner#ie#>        Der Name der Task mit der kommuniziert wird.  -  -  -Die Meldungen, die in der #ib#Datei#ie# #on("b")##ib#report#ie##off("b")# protokolliert werden, kann man in verschiedene -Gruppen einordnen. Die eine Gruppe beschreibt Störungen durch #ib#Zeichenverluste#ie# -oder verfälschungen, eine andere Gruppe protokolliert besondere Situationen, bei -spielsweise den Abbruch von #ib#Übertragung#ie#en, und die letzte Gruppe befasst sich mit -#ib#Fehlermeldung#ie#en, die ein Eingreifen von aussen notwendig machen. Je nachdem, ob -die Station, auf der die Meldung protokolliert wird, Empfänger oder Absender ist, wird -bei den Meldungen #ib#Stationsnummer#ie# und Taskname des Kommunikationspartners mit -angegeben.  -  -Zur ersten Gruppe gehören:  -  -#ib(4)##ib#skipped#ie##ie(4)#  -               'skipped' oder skipped mit einem Zusatztext erscheint, wenn Zei -               chen eingelesen wurden, die zu keinem gültigen #ib#Telegramm#ie# ge -               hören. Dies kann passieren, wenn auf der Leitung zwischen -               Rechner und Box #ib#Zeichen#ie# verlorengegangen sind. Auch nach dem -               Einschalten oder nach einem Reset auf Box oder Rechner kann -               diese Meldung kommen. Mindestens ein Teil der eingelesenen -               Daten wird mit ausgegeben, wobei Steuerzeichen durch % und den -               Code des Steuerzeichens dargestellt werden. Die einzelnen Zeichen -               werden durch ein Blank voneinander getrennt.  -#page#  -#ib(4)##ib#Sequenzfehler#ie##ie(4)#  -               Die #ib#Sequenznummer#ie# ist zu groß, es fehlen also Telegramme. Die -               Gegenstation wird aufgefordert, ab einem früheren Telegramm zu -               wiederholen.  -  -#ib(4)#wdh data#ie(4)#  -               Das letzte Telegramm wird erneut geschickt. Passiert, wenn die -               #ib#Quittung#ie# für dieses Telegramm nach einer bestimmten Zeit nicht -               angekommen ist.  -  -#ib(4)##ib#Sequenzreset#ie##ie(4)#  -               Die #ib#Sequenznummer#ie# des empfangenen Telegramms ist kleiner als -               die Sequenznummer des vorher empfangenen Telegramms. Die -               Verbindung wird bei der zuletzt empfangenen Sequenznummer -               fortgesetzt.  -  -#ib(4)#Blocknummer falsch#ie(4)#  -               Die #ib#Seitennummer#ie# in dem #ib#Telegramm#ie# ist falsch.  -  -#ib(4)#etwas rueckgespult#ie(4)#  -               Auf Anforderung der Gegenseite werden die letzten drei #ib#Datenraum -               seite#ie#n erneut übertragen.  -  -#ib(4)#Daten ohne Eroeffnung#ie(4)#  -               Es werden Telegramme mit einer #ib#Stromnummer#ie# empfangen, zu der -               vorher kein OPEN-Telegramm empfangen wurde. In diesem Fall -               wird die Gegenstation aufgefordert, die #ib#Übertragung#ie# von vorn zu -               beginnen. Diese Meldung kann auch kommen, wenn das Netz neu -               gestartet wurde.  -  -#ib(4)#wdh open#ie(4)#  -               Die Übertragung wird mit dem #ib#OPEN#ie#-Telegramm von vorn begon -               nen. Passiert auf Aufforderung durch die Gegenstation oder wenn -               das erste OPEN-Telegramm nicht quittiert wurde.  -  -#ib(4)##ib#buffers flushed#ie##ie(4)#  -               Alle bereits eingelesenen, aber noch nicht bearbeiteten Zeichen -               wurden gelöscht (der #ib#Eingabepuffer#ie# wurde komplett gelöscht). Verur -               sacht durch schwere Störungen (#ib#Zeichenverluste#ie# oder -verfäl -               schungen).  -#page#  -#ib(4)#blockin abbruch#ie(4)#  -               Es wurden nicht alle Zeichen eines Telegramms innerhalb eines -               bestimmten Zeitraums angeliefert.  -  -#ib(4)#Header inkorrekt eingelesen#ie(4)#  -               Es wurde ein Fehler in dem Teil des Netztelegramms gefunden, der -               nicht zum EUMEL-Netz gehört.  -  -#ib(4)#Strom falsch in Quittung#ie(4)#:  -               In der #ib#Quittung#ie# wurde eine nicht zulässige #ib#Stromnummer#ie# festge -               stellt. Zulässig sind Stromnummern zwischen 1 und 20.  -  -#ib(4)#Neustart#ie(4)#  -               Die Gegenstation hat die #ib#Verbindung#ie# von vorne begonnen.  -  -#ib(4)#Falsche Seitennummer#ie(4)#  -               Die #ib#Seitennummer#ie# in dem empfangenen Telegramm ist falsch. -               Einige Telegramme werden wiederholt.  -  -#ib(4)#Absteigende Seitennummern#ie(4)#  -               Die Seitennummer in dem empfangenen Telegramm ist kleiner als -               die Seitennummer im vorigen #ib#Telegramm#ie#. Es müssen einige Tele -               gramme wiederholt werden.  -  -  -Die folgenden Meldungen beschreiben Situationen, die nicht durch #ib#Zeichenverluste#ie# -entstehen, mit denen die #ib#Netzsoftware#ie# selbst fertig wird:  -  -  -#ib(4)#Sendung von Gegenstelle gelöscht#ie(4)#  -               Die Verbindung wurde von der Gegenstelle abgebrochen.  -  -#ib(4)#Empfangseintrag freigegeben#ie(4)#  -               Die Verbindung wurde von der empfangenden #ib#Station#ie# gelöscht, weil -               seit dem Eintreffen des letzten Telegramms zuviel Zeit vergangen ist -               (#ib#Timeout#ie#).  -  -#ib(4)#Irrläufer#ie(4)#  -               Eine #ib#Intertaskkommunikation#ie# innerhalb der eigenen Station wurde -               fälschlicherweise über den #on("b")##ib#Collector#ie##off("b")# abgewickelt. Dieser Vorgang -               wird abgebrochen.  -#page#  -#ib(4)#Call-Löschung vorgemerkt#ie(4)#  -               Sobald der Call abgewickelt ist, wird diese Verbindung gelöscht. -               Beispielsweise führt ein vom Benutzer abgebrochenes #on("b")##ib#name#ie##off("b")# zu -               dieser Meldung.  -  -#ib(4)#Call gelöscht#ie(4)#  -               Die #ib#Verbindung#ie# wurde auf Anforderung durch den Auftraggeber -               gelöscht.  -  -#ib(4)#Quellrechner#ie(4)#  -               Als #ib#Quellrechnernummer#ie# wurde ein unzulässiger Wert festgestellt. -               Zulässig sind Zahlen zwischen 1 und 127.  -  -#ib(4)#Nicht zustellbar#ie(4)#  -               Innerhalb eines bestimmten Zeitraums war die #ib#Zieltask#ie# nicht emp -               fangsbereit. Die Verbindung wird abgebrochen.  -  -Bei diesen Meldungen sollten die #ib#Routenanweisungen#ie# überprüft werden:  -  -#ib(4)#Verbotene Route bei Quittung#ie(4)#  -               Die #ib#Quittung#ie# kommt auf einer nicht erlaubten #ib#Route#ie# an. Dies kann -               bei #ib#Vermaschung#ie# passieren, oder aber, wenn eine Station versucht, -               sich für eine andere Station auszugeben.  -  -#ib(4)#Verbotene Route#ie(4)#  -               Die danach bezeichnete Station versucht, auf einer anderen Route -               mit diesem Rechner zu kommunizieren, als auf der Route, die für -               diesen Rechner in der Datei #on("b")##ib#netz#ie##off("b")# festgelegt wurde.  -  -               Abhilfe:  -               #ib#Routentabellen#ie# der beiden (oder, falls die Meldung auf einer -               #ib#Knotenstation#ie# erscheint, auf allen beteiligten) Stationen abgleichen.  -  -#ib(4)#Weiterleitung nicht möglich#ie(4)#  -               Die #ib#Routeninformationen#ie# auf dem #ib#Knotenrechner#ie#, wo diese Meldung -               erscheint, und der sendenden #ib#Station#ie# stimmen nicht überein. Die -               angegebene Station ist von dieser Station aus nicht erreichbar.  -  -               Abhilfe:  -               #ib#Routentabellen#ie# der Stationen überprüfen.  -  -#ib(4)#Fremdzugriff#ie(4)#  -               Eine #ib#gesperrt#ie#e Station hat versucht, auf diesen Rechner mit #ib#Sende -               codes#ie# > 6 zuzugreifen.  -  -  -Folgende Meldungen betreffen '#ib#harte Fehler#ie#'. Diese Fehler werden von der Netzsoft -ware nicht abgefangen. In jedem Fall muß das Netz nach einer solchen #ib#Fehler -meldung#ie# neu gestartet werden.  -  -#ib(4)#++++++#ie(4)#  -               Meldungen dieser Form sind 'harte' Fehler. Der aufgetretene Fehler  -               wird mit angegeben. Das Netz muß neu gestartet werden, da die -               Task, in welcher der Fehler aufgetreten ist, gelöscht wird.  -  -#ib(4)#Verbindungsengpaß#ie(4)#  -               Es sind mehr Verbindungen festgestellt worden, als zulässig sind. -               Nach dieser Meldung wurde der entsprechende Netport gelöscht.  -  -  -Literaturverzeichnis  -  -  -#goalpage("A.2")#  -  -#clear pos#  -#lpos(1.0)##lpos(2.5)#  -#table#  -[1]   EUMEL-Systemhandbuch, Teil 5, Intertaskkommunikation  -      GMD St. Augustin, 1986  -[2]   EUMEL-Systemhandbuch, Teil 2, Hardware und ihre Steuerung  -[3]   EUMEL-Systemhandbuch, Teil 8, Spooler  -[4]   EUMEL-Netz Installationsanweisung  -      GMD St. Augustin, 1987  -[5]   EUMEL-Systemhandbuch, Teil 4, Blockorientierte Ein/Ausgabe  -[6]   EUMEL-Quellcode, Packet #on("b")#tasks#off("b")#  -      GMD St. Augustin, 1986  -[7]   EUMEL-Portierungshandbuch 8086, Version 8  -      GMD St. Augustin, 1987  -  -#table end# - - | 
