From 25512363eb9f619299c336c60c4333c8c759d6d9 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Sun, 9 Oct 2016 11:34:18 +0200 Subject: Move dos and net manuals to doc/ --- net/netzhandbuch | 2045 ----------------------------------------------- net/netzhandbuch.anhang | 58 -- net/netzhandbuch.index | 259 ------ 3 files changed, 2362 deletions(-) delete mode 100644 net/netzhandbuch delete mode 100644 net/netzhandbuch.anhang delete mode 100644 net/netzhandbuch.index (limited to 'net') 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#, , , <#ib#quelle#ie#>, <(n-4) byte> - - ist #ib#Längenangabe#ie# ( 8 <= n <= 160) - , 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 - 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, , <#ib#quelle#ie#>, , - - 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 = , so ist - das #ib#Telegramm#ie# angekommen. Andernfalls muß die Station - den #ib#Nachbarn#ie# zum Erreichen des als - neues einsetzen und das Telegramm an diesen - Nachbarn weiterleiten. - - <#ib#endquelle#ie#> Eigentliche #ib#Absenderstation#ie#. 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 - - 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 = (( DIV anzahl pakete pro seite) + 2) - - #ib#Nutzinformation#ie#. Diese gehört zur #ib#Adresse#ie# a des Daten­ - raums. - - a = - N ( DIV anzahl pakete pro seite + 1) * 512 - + ( 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 ). - - - #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. - - 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 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 -Netz­Software 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. - - : [<#ib#Stromnummer#ie#> : ] - - -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#. - - (,) - - 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 (sqnr/) - - - #ib#Stromnummer#ie# - - #ib#Sequenznummer#ie# des gerade bearbeiteten #ib#Telegramm#ie#s - - 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# - - diff --git a/net/netzhandbuch.anhang b/net/netzhandbuch.anhang deleted file mode 100644 index 17d1ece..0000000 --- a/net/netzhandbuch.anhang +++ /dev/null @@ -1,58 +0,0 @@ -#pagenr ("%", 51)##setcount##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(0.0)##rpos(11.0)##fillchar(".")# -Anhang: Netz-Fehlermeldungen - -#table# -++++++ 50 -Absteigende Seitennummern 48 -blockin abbruch 48 -Blocknummer falsch 47 -buffers flushed 47 -Call gelöscht 49 -Call-Löschung vorgemerkt 49 -Collectortask fehlt 8, 18 -Daten ohne Eroeffnung 47 -Empfangseintrag freigegeben 48 -etwas rueckgespult 47 -Falsche Seitennummer 48 -Fremdzugriff 50 -Header inkorrekt eingelesen 48 -Irrläufer 48 -kein Zugriff auf Station 14 -Neustart 48 -Nicht zustellbar 49 -Quellrechner 49 -Sendung von Gegenstelle gelöscht 48 -Sequenzfehler 47 -Sequenzreset 47 -skipped 46 -Station x antwortet nicht 8, 11, 16 -Station x gibt es nicht 9, 11, 13 -Strom falsch in Quittung 48 -Task "..." gibt es nicht 8 -Verbindungsengpaß 50 -Verbotene Route 49 -Verbotene Route bei Quittung 49 -wdh data 47 -wdh open 47 -Weiterleitung nicht möglich 49 -#table end# - diff --git a/net/netzhandbuch.index b/net/netzhandbuch.index deleted file mode 100644 index 01d8a0f..0000000 --- a/net/netzhandbuch.index +++ /dev/null @@ -1,259 +0,0 @@ -#pagenr ("%", 52)##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(0.0)##rpos(11.0)##fillchar(".")# -Anhang: Index - -#table# -/ 8, 9, 24 -Absenderadresse 39 -Absenderstation 28, 32 -Adresse 29, 37, 39, 41, 42 -aktiviere netz 14, 15, 18 -basic net 41, 43 -Baud 6, 18, 25 -blockin 23, 36, 40, 42 -blockout 23, 36, 40 -Broad- oder Multicasts 38 -buffers flushed 47 -CASE 37 -CLOSE 27 -collected destination 22, 24 -Collector 22, 24, 32, 48 -Collectortask 8, 18, 22 -configurate 6 -continue 7, 21 -CRC-Code 26 -DATA 27, 29, 30 -data length 23, 36, 41, 45 -data length via node 23, 36, 41, 42, 45 -Datei 2, 5, 7, 12, 13, 14, 18, 20, 24, 31, 37, 41, 44, 46 -Datenbox 2, 6, 33 -Datenraum 13, 15, 21, 23, 24, 27, 28, 29, 31, 36, 40, 43 -Datenraumseite 23, 46, 47 -decode packet length 42, 43 -define collector 22, 24 -definere netz 15 -DEFINES 37 -define station 5, 22 -definiere netz 14 -Dreher 16 -Durchsatz 3 -Eingabeprozeduren 21 -Eingabepuffer 47 -Empfangspuffer 15 -Empfangsströme 13, 15 -endquelle 28 -endziel 28 -erase 13, 19 -erlaube 14 -Ethernet 33, 34, 36, 37, 42 -EUMEL0 21, 22, 24 -EUMEL-Datenboxen-Netz 33 -EUMEL-Netz-Software 35 -exists 11 -Fehler 8, 16, 17, 18 -Fehlerbehandlung 31, 36, 42 -Fehlerfälle 8 -Fehlerfall 11, 40 -Fehlermeldung 13, 15, 20, 26, 39, 45, 46, 50 -Fehlersituationen 12 -Fehlersuche 16 -Fenstertechnik 31 -fetch 10, 18 -flush buffers 36, 42 -Flußkontrolle 7, 15, 27, 39 -free global manager 10, 19, 31 -Füllzeichen 37, 39, 42, 43 -gesperrt 13, 14, 45, 50 -global manager 19, 31 -harte Fehler 50 -HDLC 31 -Header 43 -Höhere Ebenen 31 -inchar 21 -incharety 23 -Installation 2 -Installationsanleitung 2 -Intertaskkommunikation 48 -I/O Control 36 -I/O-Kanal 33 -Kanal 3, 6, 7, 12, 14, 15, 20, 21, 23, 24, 34, 37, 40, 41 -Kanalnummer 14 -Kanaltask 45 -Knoten 3, 4, 17, 20, 23, 36, 42 -Knotenkonzept 3, 34 -Knotenrechner 34, 36, 49 -Knotenstation 13, 14, 20, 49 -Kommunikation 17 -Kommunikationindirekte 23 -konfigurieren 6 -Länge 29, 41, 42 -Längenangabe 26 -list 10, 12, 17, 44 -listoption 12, 14, 15 -Löschversuche 13 -Manager 10, 19 -Masseschluß 16 -max mode 43 -mode text 41 -Nachbarn 4, 28 -Nachbarstation 24, 28 -name 11, 24, 49 -net 7, 12, 13 -net addess 41 -net hardware interface 34, 40 -net install 7 -net list 12, 15 -net manager 41 -net mode 41, 43 -net port 7, 8, 12, 13, 18, 45, 46 -net timer 14 -netz 7, 14, 15, 20, 37, 41, 49 -Netzbox 3, 6, 20, 33, 38 -Netzdefinition 14 -Netzebene 26 -Netzempfangstask 30 -Netzhardware 2, 17, 21, 24, 33, 34, 36, 41, 43 -Netz-Hardware-Interface 34 -Netzinstallation 17 -Netzkanal 13, 14, 42 -Netzknoten 3 -Netzkonfiguration 7, 20 -Netzmodus 34, 37, 39, 41, 43 -Netzprotokoll 42 -Netzsoftware 2, 3, 18, 20, 34, 36, 38, 42, 48 -Netzstrang 4, 17, 23 -Netztask 15, 16, 21, 24 -Netztelegramm 34 -Netztreiber 38 -Netzübertragungen 12 -Netzversion 2, 45 -next packet start 36, 42 -niltext 11, 36 -Nutzdaten 23 -Nutzdatenlänge 17, 23, 29, 36, 41, 42, 45 -Nutzinformation 29 -nutzlaenge 29 -OPEN 27, 28, 30, 47 -Paket 23, 34, 37, 38, 39, 42, 43 -Pakete, Aufbau der 34 -Partner 46 -Paßwort 19 -Pin-Belegung 6 -port intern 13, 15, 24 -Printerserver 20 -Protokoll 6, 13, 24, 39 -Protokollebenen 25 -Prüfsummen 18 -Quelle 23, 26, 28 -Quellrechnernummer 49 -Quellstationsnummer 20 -quelltask 21, 24, 28 -Querarchivierungen 10 -QUIT 27, 28, 30 -Quittung 30, 31, 47, 48, 49 -Rechnerkopplung 3 -Rendezvouskonzept 21, 31 -report 8, 12, 18, 39, 40, 41, 45, 46 -reserve 10 -RESET 17 -reset box 43 -Route 13, 15, 17, 20, 49 -routen 14 -Routenanweisungen 49 -routen aufbauen 13, 14, 15 -Routeninformationen 20, 49 -Routentabelle 9, 13 -Routentabellen 24, 49 -router 13 -RS422 25 -RTS/CTS 6, 25, 39 -Rückmeldeparameter 21 -run 13 -save 10, 19 -Schnittstelle 3, 15, 18, 20, 25, 33, 37, 38, 39 -SDLC 25, 26 -seite 28, 29, 40 -Seiten 27 -Seitengrenze 23 -Seitennummer 47, 48 -SELECT 34, 37, 43 -send 21, 22, 24, 27, 28, 30, 32 -Sendecode 24 -Sendecodes 50 -Sendeströme 13, 46 -Sendungskonzept 2 -sequenz 28, 29, 46 -Sequenzfehler 47 -Sequenznummer 46, 47 -Sequenzreset 47 -set net mode 41 -SHard 38, 43 -Sicherheitskonzept 19 -Sicherheitsprobleme 19 -skipped 46 -sperre 14 -Spoolmanager 5 -Sprungleiste 43 -Sprungleisten 34, 37 -start 5, 13, 16, 18, 41 -starte kanal 14, 15 -station 2, 5, 8, 10, 12, 13, 16, 19, 20, 22, 24, 26, 31, 32, 36, 41, 45, 48, 49 -Stationen, sicherheitsrelevante 20 -Stationsadresse 38 -Stationsnummer 5, 10, 16, 22, 24, 26, 32, 37, 41, 46 -Stationsnummer maximale 14 -Strang 3, 17, 20, 36, 41 -Stream I/O 23, 38 -strom 28, 30, 46 -Stromnummer 13, 28, 30, 45, 46, 47, 48 -STX 26, 36, 42 -Task-Id 5, 22, 24, 28, 30 -Telegramm 20, 23, 26, 27, 28, 31, 36, 37, 40, 42, 43, 46, 47, 48 -Telegrammanfang 42 -Telegrammformat 26 -Telegrammfreigabe 36 -Textdatei 31 -Timeout 31, 36, 48 -transmit header 36, 42, 43 -transmit trailer 36, 43 -Treiber 33 -Übertragung 26, 30, 46, 47 -Übertragungsfehler 42 -Übertragungsgeschwindigkeit 34, 38 -Übertragungsweg 23 -V24 3, 4, 15, 17, 18, 20, 25, 33, 34, 38 -Verbindung 3, 6, 16, 18, 27, 28, 34, 48, 49 -Vermaschung 4, 49 -Vermittlungsebene 24, 30 -Vorspann 36, 43 -wait 19, 21, 24, 27, 32 -Worker 5 -Zeichen 36, 38, 40, 42, 46 -Zeichenverluste 46, 47, 48 -Zeitüberwachung 26, 29 -ziel 28 -Zieladresse 38 -Zielstation 4, 8, 24, 28, 30, 36, 45 -Zieltask 21, 22, 24, 28, 32, 49 -Zustand 46 -Zwischenstation 45 -#table end# - -- cgit v1.2.3