-
Technisches
Gebiet
-
Die
vorliegende Erfindung betrifft Gateways zwischen Computernetzwerken
und insbesondere die Synthese eines Gateway-Systems, das es Benutzern
der zugeordneten Netzwerke gestattet, unter Verwendung von auf jedem
Netzwerk verfügbaren Diensten
Informationen durch das Gateway-System zu senden und zu empfangen.
-
Allgemeiner
Stand der Technik
-
Computernetzwerke
und andere Datenkommunikationsnetze, die Kommunikationsprotokolle verwenden,
wie zum Beispiel SNA (Systems Network Architecture), DECNET und
OSI (Open Systems Architecture), werden zur Zeit in der ganzen Welt
benutzt. Ein Netzwerkprotokoll ist eine wohldefinierte Menge von
Regeln, die für
die Syntax, Semantik und Zeitsteuerung der Datenübertragung auf dem Netzwerk
gelten. Mit der weitläufigen
Benutzung von Email- und Dateitransferdiensten ist es immer wichtiger
geworden, Verbindungen zwischen Netzwerken bereitzustellen. Drei
häufig
verwendete Arten von Netzwerkverbindungen sind Brücken, Router
und Gateways.
-
Herkömmliche
Netzwerkverbindungssysteme wurden in der Regel durch Verwendung
von ad hoc-Techniken aufgebaut. Zu Problemen bei der automatischen
Synthetisierung von Verbindungen gehört das Überwinden von Netzwerkarchitekturfehlanpassungen
und das Entwickeln der Protokollumsetzer zwischen den Netzwerken.
Bei Architekturfehlanpassungen kommt es zu Unterschieden bezüglich der
Netzwerkschichtfunktionalitäten,
Bitraten, Pufferung, Schnittstellen und Weiterreichungsprozeduren. Da
zur Überwindung
von Architekturfehlanpassungen viele Beurteilungen, Kompromisse,
Analysen und Entscheidungen erforderlich sind, ist die automatische
Erzeugung von Systemen zur Überwindung der
Architekturfehlanpassungen in der nahen Zukunft nicht vorherzusehen.
-
Protokollumsetzer übersetzen
Nachrichten aus einem Protokoll in ein anderes, um etwaige Fehlanpassungen
zwischen Netzwerkprotokollen zu berichtigen. In der letzten Zeit
wurden Techniken entwickelt, die aus formalen Spezifikationen der
entsprechenden Netzwerkprotokolle automatisch einen Protokollumsetzer
erzeugen. Bekannte automatische Erzeugungstechniken werden zum Beispiel
in S. Lam, "Protocol
Conversion", IEEE
Trans. Soft. Engr., Band 14, Nr. 3, Seiten 353–362, März 1988 (eine frühere Version
wurde auf der SIGCOMM '86
präsentiert);
und Y. W. Yao, W. S. Chen und M. T. Liu, "A Modular approach to constructing Protocol
Converters", Proc.
INFOCOM '90, S.
572–579,
Juni 1990, beschrieben.
-
Die
automatische Erzeugung von Protokollumsetzern auf der Basis formaler
Spezifikationen hat die folgenden Vorteile: (1) die Korrektheit
der Funktionsweise der Protokollumsetzung kann bewiesen werden;
(2) der Protokollumsetzer kann in einer relativ kurzen Zeit konstruiert
werden; und (3) der Protokollumsetzer kann schnell verändert werden, um
eine Anpassung an Änderungen
der Protokollspezifikation vorzunehmen. Die meisten derzeit existierenden
automatischen Synthesetechniken sind jedoch aufgrund des Mangels
effektiver Prozeduren, die große
realistische Protokolle behandeln können, sowie aufgrund der Schwierigkeit
bei der Erstellung der formalen Spezifikationen der Protokolle relativ komplex
und ineffizient.
-
Ein
Beispiel für
eine effiziente automatische Synthesetechnik wird jedoch in D. M.
Kristol, D. Lee, A. N. Netravali und K. Sabnani, "A Polynomial Algorithm
for Gateway Generation from Formal Specifications," IEEE/ACM Transactions
on Networking, S. 217–229,
April 1993, und in dem eigenen US Patent Nr. 5,327,544 beschrieben.
Auf diese beiden Literaturstellen wird hiermit ausdrücklich Bezug
genommen. Die in diesen Literaturstellen beschriebene automatische
Synthesetechnik erzeugt einen Protokollumsetzer, der die größte gemeinsame
Teilmenge von auf den zugeordneten Netzwerkprotokollen verfügbaren Diensten
bereitstellt. Diese gemeinsame Teilmenge von Diensten ist Benutzern
verfügbar,
die Informationen durch den Protokollumsetzer senden und empfangen.
Zu typischen Netzwerkdiensten gehören Datentransfer, Datenbankanfragen
und Dateitransfers.
-
Diese
Technik ist jedoch Benutzern auf einem der Netzwerke nicht transparent,
weil möglicherweise
nicht alle der Benutzern auf diesem Netzwerk verfügbaren Dienste
Teil der implementierten Teilmenge in dem Protokollumsetzer sind
und deshalb bei der Kommunikation durch den Protokollumsetzer nicht
benutzbar sind. Deshalb wird ein Verfahren zum automatischen Erzeugen
eines Gateway-Systems mit einem Protokollumsetzer benötigt, der
Benutzern, die Informationen durch das Gateway-System senden und
empfangen, eine Übermenge
von Diensten bereitstellt.
-
Eine
Prozedur zur Durchführung
einer Protokollumsetzung unter Verwendung des Algorithmus von Okumura,
gefolgt durch einen Expansionsschritt, wird in D. Saha und P. Dhan, "A fast Protocol conversion
Technique using Reduction of State Transition Graphs", beschrieben.
-
Kurze Darstellung
der Erfindung
-
Ein
Gateway-System zum Verbinden eines ersten und eines zweiten Kommunikationsnetzwerks gemäß einer
Ausführungsform
der Erfindung kann einen ersten und einen zweiten Netzwerkendknoten und
einen Protokollumsetzer enthalten. Ein solches Gateway-System verwendet
zugeordnete Komplement-Protokollschaltungen in Endknoten und in
dem Protokollumsetzer, um die Dienste eines Protokolls, die von
dem Protokoll des an diesen Endknoten angeschlossenen entsprechenden
Netzwerks nicht bereitgestellt werden, bereitzustellen. Folglich
stellt das Gateway-System Benutzern beider Netzwerke bei der Kommunikation
durch das Gateway-System
eine Übermenge
von Diensten beider Netzwerkprotokolle bereit.
-
Ein
Verfahren zur Erzeugung eines Gateway-Systems zwischen einem ersten
und einem zweiten Netz gemäß einer
Ausführungsform
der Erfindung bestimmt zuerst eine gemeinsame Teilmenge von Diensten,
die gleich einer Schnittmenge von durch die Protokolle bereitgestellten
Diensten ist. Dann werden Automaten ("FSM")
erzeugt, die ein erstes und ein zweites Komplement-Protokoll der durch
die Netzwerkprotokolle bereitgestellten Dienste erzeugen. Der erste
Komplement-Dienst-FSM enthält
die Dienste, die durch das zweite Netzwerkprotokoll und nicht durch
das erste Netzwerkprotokoll bereitgestellt werden. Ähnlich enthält das zweite
Komplement-Dienstprotokoll die Dienste, die durch das erste Netzwerkprotokoll
und nicht durch das zweite Netzwerkprotokoll bereitgestellt werden.
-
Dann
werden Mengen miteinander kommunizierender Automaten, die jedes
Netzwerkprotokoll darstellen, gestutzt, um erste und zweite Komplement-Netzwerkprotokollautomaten
bereitzustellen. Die Endknoten und der Protokollumsetzer werden dann
durch Verwendung von Schaltungen, die die Operationen der Mengen
von Protokollautomaten für die
Protokolle und der ersten und zweiten Komplement-Netzwerkprotokollautomaten
sowie eines Schnittstellenumsetzers durchführen, konstruiert. Das Verfahren
zur Erzeugung des Gateway-Systems ist einfach, effizient und kann
in einer Anzahl von Schritten auf Polynom-Basis erreicht werden.
-
Die
obigen- Merkmale sowie zusätzliche Merkmale
und Vorteile der vorliegenden Erfindung werden an Hand der folgenden
ausführlichen
Beschreibung und der beigefügten
Zeichnungen ohne weiteres ersichtlich.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
ein Schaltbild zweier Datenkommunikationsnetzwerke, die durch ein
Gateway-System gemäß der vorliegenden
Erfindung verbunden sind;
-
2 ist
ein ausführliches
Schaltbild eines Protokollumsetzers und zugeordneter Netzwerkendknoten
in dem Gateway-System von 1;
-
3 ist
ein Flußdiagramm
des Verfahrens zur Erzeugung des Gateway-Systems von 1 und 2;
-
4 ist
ein Flußdiagramm
eines Verfahrens zum Stutzen eines Protokolls, um ein Komplement-Protokoll
zur Verwendung in dem Verfahren von 3 zu erzeugen;
-
5 ist
ein Blockschaltbild einer Modellanordnung von Komponenten-Automaten
("Komponenten-FSMs") zur Charakterisierung
eines Kommunikationsprotokolls, das bei der Erzeugung des Gateway-Systems
von 1 verwendet werden kann;
-
6 ist
ein Sender-FSM zur Verwendung in einem Halbduplex-Bitalternierungsprotokoll
(HABP), das in einem der Netzwerke von 1 implementiert sein
kann;
-
7 ist
ein Empfänger-FSM
zur Verwendung in dem HABP;
-
8 ist
ein FSM für
einen ersten Kommunikationskanal in dem HABP;
-
9 ist
ein FSM für
einen Kanalkommunikationskanal in dem HABP;
-
10 ist
ein FSM für
einen dem Sender-FSM von 6 zugeordneten Timer;
-
11 ist
ein Dienst-FSM für
das HABP;
-
12 ist
eine Anordnung der FSMs für
das HABP von 6–11 gemäß der Organisation von 5;
-
13 ist
ein Blockschaltbild einer Anordnung von Komponenten-FSMs, die ein
Vollduplex-Bitalternierungsprotokoll
(FABP) charakterisieren, das in einem der Netzwerke von 1 implementiert
sein kann;
-
14 ist
ein Sender-FSM zur Verwendung in dem FABP;
-
15 ist
ein Datenneuübertragungs-Timer-FSM,
der dem FSM von 14 zugeordnet ist;
-
16 ist
ein Empfänger-FSM
zur Verwendung in dem FABP;
-
17 ist
ein Sequenznummer-Speicher-FSM, der dem Empfänger-FSM von 16 zugeordnet
ist;
-
18 ist
ein Sequenznummer-Speicher-FSM, der dem Sender-FSM von 14 zugeordnet
ist;
-
19 ist
ein FSM zur Erzeugung eines dem Empfänger-FSM von 16 zugeordneten
Bestätigungssignals;
-
20 ist
ein dem FSM von 19 zugeordneter Bestätigungs-Timer;
-
21 ist
ein Dienst-FSM für
das FABP;
-
22 ist
ein Komplement-Dienst, der auf der Basis der Dienst-FSMs von 11 und 12 gemäß dem Verfahren von 3 erzeugt
wird;
-
23 ist
ein gestutzter Sender-FSM, der auf der Basis des FSM von 14 gemäß dem Verfahren
von 4 erzeugt wird;
-
24 ist
ein gestutzter Datenneuübertragungs-Timer-FSM, der auf der
Basis des FSM von 15 gemäß dem Verfahren von 4 erzeugt wird;
-
25 ist
ein gestutzter Empfänger-FSM, der
auf der Basis des FSM von 16 gemäß dem Verfahren
von 4 erzeugt wird;
-
26 ist
ein gestutzter Sequenznummer-Speicher-FSM, der auf der Basis des
FSM von 17 gemäß dem Verfahren von 4 erzeugt wird;
-
27 ist
ein gestutzer Sequenznummer-Speicher-FSM, der auf der Basis des
FSM von 18 gemäß dem Verfahren von 4 erzeugt wird;
-
28 ist
ein gestutzter FSM zur Erzeugung eines Bestätigungssignals, der auf der
Basis des FSM von 19 gemäß dem Verfahren von 4 erzeugt
wird; und
-
29 ist
ein Blockschaltbild eines Gateway-Systems zwischen einem HABP-Netzwerk
und einem FABP-Netzwerk, das die FSMs von 14–28 gemäß der vorliegenden
Erfindung angeordnet verwendet.
-
Ausführliche
Beschreibung
-
Eine
Ausführungsform
einer Verbindung zweier Netzwerke durch ein Gateway-System 1 gemäß der vorliegenden
Erfindung ist in 1 gezeigt. In 1 sind
ein erstes und ein zweites Datenkommunikationsnetz 10 und 20 mit
einem zugeordneten ersten bzw. zweiten Netzwerkendknoten 30 und 40 verbunden.
Die Endknoten 30 und 40 sind durch einen ersten
und einen zweiten Kommunikationskanal 60 bzw. 70 mit
einem Protokollumsetzer 50 verbunden. Das Gatewaysystem 1 besteht
aus den Endknoten 30 und 40 und dem Protokollumsetzer 50.
-
Jedes
der Datenkommunikationsnetze 10 und 20 kann mit
jeweiligen Computern 80, Druckern 90, Dateiservern 100 und
anderen Datenspeichergeräten 110 verbunden
sein. Außerdem
können
zusätzliche
geeignete Datenkommunikationsgeräte
an die Netzwerke 10 und 20 angeschlossen sein.
In 1 verwendet das erste Datenkommunikationsnetz 10 ein
Protokoll A und das zweite Datenkommunikationsnetz 20 ein
Protokoll B.
-
Die
Operationen eines Netzwerkprotokolls können durch eine Menge miteinander
kommunizierender Automaten (FSMs) modelliert werden. Beispielhafte
Mengen von FSMs, die Halbduplex- und Vollduplexkommunikationsprotokolle
charakterisieren, sind in 6–11 bzw. 14–21 abgebildet,
die später
ausführlicher
beschrieben werden. In der folgenden Beschreibung wird die Eingangs-/Ausgangsoperationsnotation
zwischen Prozessen ähnlich
der in der Sprache CSP verwendeten zur Spezifikation der Kommunikation
zwischen Protokoll-FSMs verwendet. CSP steht für Communicating Sequential
Processes (Kommunizierende Sequenzielle Prozesse), siehe C. A. R.
Hoare, "Communicating
Sequential Processes",
Communications of the ACM, Band 21, Nr. 8, S. 666–677, August
1978 ("Communicating
Sequential Processes").
-
Gemäß dieser
Notation sendet ein FSM mittels einer "Ausgangsoperation", die durch das Symbol "!" bezeichnet wird, eine Nachricht zu
anderen FSMs. Wenn zum Beispiel zwei FSMs vorliegen (Maschine #1
und Maschine #2) wird eine Ausgangsoperation in Maschine #1, die
die Nachricht "msg" zu Maschine #2 sendet,
durch Automat2!msg bezeichnet. Außerdem kann ein FSM Nachrichten
empfangen. Für
jede von einem FSM gesendete Nachricht muß eine Empfangsbestätigung der
Nachricht durch mindestens einen anderen FSM vorliegen. Ein FSM empfängt eine
Nachricht von einem anderen FSM mittels einer durch das Symbol "?" bezeichneten "Eingangsoperation". In bezug auf die oben exemplifizierte
Ausgangsoperation wird die entsprechende Eingangsoperation in Maschine
#2 durch Automat1?msg bezeichnet, d. h. Empfangen der Nachricht "msg" von Maschine #1.
-
Die
Operationen Automat1?msg und Automat2!msg werden gleichzeitig ausgeführt, weil sie
verschiedene Perspektiven desselben Ereignisses repräsentieren.
Keine der beiden Operationen kann einzeln ausgeführt werden. Wenn also ein erster
FSM versucht, eine Ausgangsoperation durchzuführen, muß er warten, bis ein zweiter
FSM bereit ist, die entsprechende Eingangsoperation auszuführen. Der
synchronisierte Nachrichtenaustausch zwischen zwei FSMs wird als
ein Rendezvous bezeichnet.
-
Wenn
der FSM-Name nicht in einer Eingangs- oder Ausgangsoperation spezifiziert
ist, dann kann die Eingangs-/Ausgangsoperation mit einem beliebigen
anderen FSM stattfinden, der bereit ist, die entsprechende Operation
auszuführen.
Wenn ein FSM zum Beispiel eine Operation ?msg aufweist, dann löst der Empfang
von "msg" von einem beliebigen
anderen FSM die Operation des FSM aus. Mit diesen Arten von Eingangs-/Ausgangsoperationen werden
häufig
die Interaktionen eines Protokolls mit mehreren Benutzern auf mehreren
Kommunikationskanälen
modelliert.
-
Ein
typischer FSM zur Verwendung in einer Ausführungsform der vorliegenden
Erfindung ist ein Vier-Tupel F = (Σ, V, ρ, s0).
Dabei ist das Symbol Σ eine
Menge, die aus allen Eingangs-/Ausgangsoperationen des FSMs und
einer internen Operation besteht, das Symbol V ist eine endliche
Menge von Zuständen,
in denen sich der FSM befinden kann; das Symbol ρ ist eine endliche Menge von
Zustandsübergangsfunktionen,
wie zum Beispiel Automat!msg oder Automat?msg; und das Symbol so
ist der Anfangszustand des FSM F. Während der Durchführung eines
internen Übergangs
von einem Zustand zu einem anderen Zustand führt ein FSM einen Zustandsübergang
durch, ohne mit irgendeinem anderen FSM in Wechselwirkung zu treten.
Weitere Informationen über
FSMs findet man in Z. Kohavi, "Switching
Theory and Finite Automata Theory", McGraw-Hill, S. 275–315 (1978),
und in Communicating Sequential Processes.
-
Ein
FSM kann als ein gerichteter Graph (V, E) repräsentiert werden, wobei das
Symbol V die Menge von Zuständen
in dem FSM und das Symbol E die Menge von Kanten oder möglichen
Zustandsübergängen zwischen
Zuständen
ist. Jeder Zustand eines FSM wird in einem gerichteten Graph durch
einen Kreis, der die Bezeichnung des Zustands umkreist, wie zum
Beispiel Zustand 900 in dem Automaten Htrans von 6 repräsentiert.
Jede Kante wird durch eine zu der Menge Σ gehörende Eingangs-/Ausgangsoperation
bezeichnet, die entweder den Zustandsübergang auslöst oder
ein Ergebnis des Zustandsübergangs
ist. Zum Beispiel ist die Kante 910, die sich von dem Zustand 900 in 6 erstreckt,
mit ?timeout bezeichnet. Zusätzlich
kann eine Kante durch zwei oder mehr Eingangs-/Ausgangsoperationen
gekennzeichnet werden, die unabhängig
oder zusammen den Zustandsübergang auslösen oder
sein Ergebnis sind.
-
Für Notationszwecke
bedeutet eine mit a*b bezeichnete Kante eine Kante, die durch eine
Eingangs-/Ausgangsoperation
a gefolgt durch eine Eingangs-/Ausgangsoperation
b, ausgelöst
wird. Das Symbol "*" repräsentiert
den boolschen AND-Operator. Deshalb wird ein Zustandsübergang,
der durch eine Kante mit der Bezeichnung ?ack0*?cancel repräsentiert
wird, nur durch den Empfang der Nachrichten "ack0" und "cancel" ausgelöst. Ein
Zustandsübergang,
der durch eine mit ?ack0*!start bezeichnete Kante repräsentiert
wird, wird durch den Empfang der Nachricht ack0 und das Senden der
Nachricht start ausgelöst.
Eine Kante mit der Bezeichnung a + b bedeutet zwei Kanten, die dieselben
beiden Zustände
verbinden, wobei eine durch die Eingangs-/Ausgangsoperation a und
eine durch die Eingangs-/Ausgangsoperation b bezeichnet wird. Das Symbol "+" repräsentiert den boolschen OR-Operator.
Zum Beispiel wird ein Zustandsübergang,
der durch eine Kante mit der Bezeichnung ?ack1+?start repräsentiert
wird, durch den Empfang entweder der Nachricht "ack1" oder
der Nachricht "start" ausgelöst.
-
Ein
FSM beginnt immer in seinem Anfangszustand so. Der Anfangszustand
wird mit 0 bezeichnet und kann zusätzlich in dem den FSM repräsentierenden
gerichteten Graph durch das Vorhandensein eines die 0 umgebenden
konzentrischen Kreises bezeichnet werden. Wenn sich der FSM in einem
beliebigen gegebenen Zustand befindet, kann er beliebige der Operationen
ausführen,
die einen Übergang
von diesem Zustand bezeichnen.
-
Ein
Protokoll stellt dem Benutzer des Protokolls einen oder mehrere
Dienste bereit. Diese Dienste werden ebenfalls als ein FSM, der
Dienst-FSM genannt wird, repräsentiert.
Es besteht jedoch nicht unbedingt eine eindeutige Abbildung oder
Korrelation zwischen der Menge von durch ein Protokoll bereitgestellten
Diensten und der Menge von FSMs, die die Protokolloperationen repräsentieren
kann. Die Eingangs-/Ausgangsoperationen des durch den Dienst-FSM
repräsentierten
Protokolls werden als Dienstprimitiven des Protokolls bezeichnet.
Gemäß internationalen
Standards bedeutet eine Dienstprimitive einen abstrakten Nachrichtenaustausch
zwischen dem Protokoll und seinem Benutzer oder seiner oberen Schicht.
Ein Beispiel für
eine Dienstprimitive ist !send(data), wobei die Primitive send zum Senden
einer Nachricht data verwendet wird.
-
Wenn
eine Kante in einem FSM durch eine Eingangs-/Ausgangsoperation bezeichnet wird,
die keine entsprechende Operation in einem anderen FSM aufweist,
kann der Übergang
niemals stattfinden. Wenn zum Beispiel eine Kante in Maschine #1 mit
Automat2!msg bezeichnet ist und Maschine #2 keine Kante mit der
Bezeichnung Automat1?msg enthält,
kann der Übergang
in Automat1 niemals stattfinden. Diese Eigenschaft kommunizierender FSMs
wird in dem Verfahren zur Erzeugung eines Gateway-Systems gemäß der vorliegenden
Erfindung verwendet.
-
Für zwei beliebige
FSMs F1 und F2 kann
ein FSM mit der Bezeichnung F1 # F2 gebaut werden, der dem vereinigten Verhalten
von F1 und F2 entspricht. Der
FSM F1 # F2 wird
als erreichbarer FSM oder Zusammensetzung von F1 und
F2 bezeichnet. Der Prozeß des Konstruierens von F1 # F2 aus den Komponenten
F1 und F2 wird als
die Erreichbarkeitberechnung oder Zusammensetzung bezeichnet und
ist in der Technik wohlbekannt. Das Finden des erreichbaren FSM
erfolgt durch Berechnen der erreichbaren globalen Zustände. Ein
globaler Zustand für
F1 # F2 ist als
ein Zwei-Tuple (s1, s2)
definiert, wobei s1 der aktuelle Zustand
von F1 und s2 der
aktuelle Zustand von F2 ist. Die Berechnung
der erreichbaren globalen Zustände
wird in G. V. Bochmann und C. A. Sunshine, "A Survey of Formal Methods", Computer Networks
and Protocols, P. E. Green (Hrsg.), S. 561–578, Plenium Press, Mai 1983,
beschrieben.
-
2 zeigt
eine ausführlichere
Ansicht des Gateway-Systems
von 1. In 2 ist das Datenkommunikationsnetz 10 mit
einer Protokollschaltung A1 100 und
einer Komplement-Protokollschaltung PB–A.1 105 in
dem Netzwerkendknoten 30 verbunden. In dem Netzwerkendknoten 30 sind
die Schaltungen A1 100 und PB– A.1 105 mit einem ersten kombinierten Multiplexer/Demultiplexer
(MUX-DEMUX) 110 verbunden.
-
Die
Protokollschaltung A1 100 führt die
Operationen durch, die in einem Teil der Menge von Protokoll-FSMs
spezifiziert sind, die das Protokoll A charakterisieren, und wird
später
ausführlicher
beschrieben. Die Komplement-Protokollschaltung PB–A.1 105 führt Operationen
durch, die in einem Teil einer Menge von Komplement-Protokoll-FSMs
spezifiziert werden, die ein Komplement-Protokoll PB–A charakterisieren.
Das Komplement-Protokoll PB–A liefert die Dienste
des Protokolls B, das auf dem Netzwerk 20 implementiert
ist, die nicht durch das Protokoll A des Netzwerks 10 bereitgestellt
werden. Die Komplement-Protokollschaltung PB–A.1 105 und
das Komplement-Protokoll PB–A werden auch später ausführlicher besprochen.
-
Der
MUX-DEMUX 110 ist außerdem
mit dem ersten Kommunikationskanal 60 verbunden, der mit einem
in dem Protokollumsetzer 50 angeordneten zweiten MUX-DEMUX 120 verbunden
ist. In dem Protokollumsetzer 50 ist der MUX-DEMUX 120 mit einer
Schnittstellenprotokollschaltung A2 125 und
einer Schnittstellen-Komplement-Protokollschaltung PB–A.2 130 verbunden.
Die Schnittstellenprotokollschaltung A2 125 führt die
in dem Restteil charakterisierten Operationen durch, der Menge von
FSMs für das
Protokoll A, die nicht durch die Protokollschaltung A1 100 durchgeführt wird,
und wird später
ausführlicher
besprochen. Ähnlich
führt die
Schnittstellen-Komplement-Protokollschaltung PB–A.2 130 die
in dem Restteil der Menge von FSMs für das Komplement-Protokoll
PB–A charakterisierten
Operationen durch, die nicht durch die Komplement-Protokollschaltung
PB–A.1 105 durchgeführt werden.
Die Schnittstellen-Komplement-Protokollschaltung PB–A.2 130 wird
ebenfalls später
ausführlicher
besprochen. Die MUX-DEMUX 110 und 120 arbeiten
in Verbindung mit einander, um Signale auf dem Kommunikationskanal 60 zwischen
den Schaltungen A1 100 und A2 125 bzw. zwischen den Schaltungen
PB–A.1 105 und
PB–A.2 130 zu
multiplexen und zu demultiplexen.
-
Innerhalb
des Gateway-Protokollumsetzers 50 sind die Schaltungen
A2 125 und PB–A.2 130 mit
einem Schnittstellenumsetzer IC 135 verbunden. Der Schnittstellenumsetzer
IC 135 ist ferner mit der Schnittstellenprotokollschaltung
B1 140 und einer Schnittstellen-Komplement-Protokollschaltung
PA–B.1 145 verbunden,
die später
ausführlicher
beschrieben werden. Die Schaltungen B1 140 und
PA–B.1 145 sind mit
einem dritten MUX-DEMUX 150 verbunden, der mit dem zweiten
Kommunikationskanal 70 verbunden ist.
-
Der
Kommunikationskanal 70 ist ferner mit einem in dem Netzwerkendknoten 40 enthaltenen vierten
MUX-DEMUX 160 verbunden. In dem Netzwerkendknoten 40 ist
der MUX-DEMUX 160 mit
der Protokollschaltung B2 165 und
einer Komplement-Protokollschaltung PA–B.2 170 verbunden.
Die Schaltungen B2 und PA–B.2 sind
außerdem
mit dem zweiten Datenkommunikationsnetz 20 verbunden.
-
Die
Protokollschaltung A1 100 und die Schnittstellenprotokollschaltung
A2 125 führen die Kommunikationsfunktionen
des Protokolls A, so wie sie durch die entsprechende Menge von FSMs
modelliert werden, durch. Die Bestimmung, welcher FSM der Menge
von Protokoll-FSMs in welcher der Schaltungen A1 100 oder
A2 125 implementiert werden soll,
ist für
Fachleute ohne weiteres ersichtlich. Im allgemeinen werden die Funktionen,
die durch die FSMs der Menge spezifiziert werden, mit der mit den Benutzern
und der oberen Ebene des Netzwerks kommuniziert werden, in der Schaltung
A1 100 implementiert. Entsprechend
werden die Funktionen, die durch die FSMs der Menge charakterisiert
werden, die Kommunikation mit anderen Netzwerken ermöglichen,
in der Schaltung A2 125 implementiert.
Ein Beispiel für
die Anordnung der Funktionen der verschiedenen FSMs in den jeweiligen
Protokollschaltungen wird nachfolgend mit Bezug auf 29 beschrieben.
-
Die
Schnittstellenprotokollschaltung B1 140 und
die Protokollschaltung B2 165 arbeiten
gemäß dem Protokoll
B, so wie es in der entsprechenden Menge von FSMs spezifiziert ist,
auf analoge Weise wie die Schaltungen A2 125 bzw.
A1 100. Ähnlich werden die Funktionen
der Komplement-Protokolle PB–A und PA–B,
die durch die jeweiligen Mengen von FSMs charakterisiert werden,
zwischen den Schaltungen PB–A.1 105 und
PB–A.2 130 bzw.
zwischen PA_B. 145 und PA–B.2 170 aufgeteilt. Ähnlich wie
oben angegeben charakterisiert das Komplement-Protokoll PA–B die Operationen
der von dem Protokoll A bereitgestellten Dienste, die nicht in dem
Protokoll B anwesend sind.
-
Durch
ordnungsgemäßes Anordnen
der Protokoll- und Komplement-Protokoll-Funktionen in den Endknoten 30 und 40 und
in dem Protokollumsetzer 50 ermöglicht es das Gateway-System 1 von 2 an
das Netzwerk 10 angeschlossenen Benutzern, alle Dienste
oder eine Übermenge
der Dienste der Protokolle A und B bei der Kommunikation mit dem Netzwerk 20 zu
verwenden. Ähnlich
können
an das Netzwerk 20 angeschlossene Benutzer bei der Kommunikation
mit dem Netzwerk 10 alle Dienste der Protokolle A und B
verwenden.
-
Im
Betrieb wird durch eine Tandemkombination des Austauschs entsprechender
Dienstprimitiven zwischen den Schaltungen A2 125 und
B1 140 durch den Schnittstellenumsetzer
IC 135 in 2 ein von beiden Protokollen
A und B bereitgestellter Dienst durchgeführt. Auf ähnliche Weise wird durch eine
Tandemkombination des Austauschs entsprechender Dienstprimitiven
zwischen den Schaltungen A2 125 und
PA– B.1 145 durch den Schnittstellenumsetzer
IC 135 ein Dienst, der durch das Protokoll A, aber nicht
durch das Protokoll B bereitgestellt wird, durchgeführt. Durch
eine Tandemkombination des Austauschs von entsprechenden Dienstprimitiven
zwischen den Schaltungen B1 140 und
PB–A.2 130 durch den
Schnittstellenumsetzer IC 135 wird ein Dienst, der durch
das Protokoll B, aber nicht durch das Protokoll A bereitgestellt
wird, durchgeführt.
-
Folglich
identifiziert der Schnittstellenumsetzer IC 135 den Dienstprozeß, der versucht,
durch den Protokollumsetzer 50 zu kommunizieren. Der Schnittstellenumsetzer
IC 135 routet dann die jeweiligen Dienstprimitiven dieses
Dienstes zwischen den entsprechenden Schaltungen in dem Protokollumsetzer 50.
Eine geeignete Schaltung zur Durchführung der Operationen des Schnittstellenumsetzer
IC 135 ist ein Mikroprozessor oder eine Mikrosteuerung,
der bzw. die mit Speicher verbunden ist, der eine Abbildungstabelle
für entsprechende
Dienstprimitiven enthält.
Außerdem
kann ein ASIC oder PLA mit den erforderlichen Routing-Fähigkeiten als der Schnittstellenumsetzer
IC 135 verwendet werden.
-
Durch
Verwendung der MUX-DEMUX 110, 120, 150 und 160 können die
Operationen der Schaltungen A1 100 und
PB–A.1 105,
A2 125 und PB–A.2 130, B1 140 und PA–B.1 145 und
B2 165 und PA–B.2 170 parallel
durchgeführt
werden. Eine geeignete Technik, mit der sichergestellt werden kann,
daß Nachrichten nur
zwischen Protokollschaltungen, wie zum Beispiel den Schaltungen
A1 100 und A2 125,
und zwischen Komplement-Protokollschaltungen, wie zum Beispiel den
Schaltungen PB–A.1 105 und
PB–A.2 130,
ausgetauscht werden können,
besteht darin, Etiketten zu verwenden, wie zum Beispiel 1 oder 2,
um zu bezeichnen, ob die über
den Kommunikationskanal gesendete Nachricht von einer jeweiligen
Protokoll- oder Komplement-Protokollschaltung
stammt. Bei der alternativen Ausführungsform können die MUX-DEMUX 110, 120, 150 und 160 weggelassen werden,
wenn die entsprechenden Protokoll- und Komplement-Protokollschaltungen
direkt miteinander verbunden sind.
-
Die
Protokollschaltung A1 100 und die
Komplement-Protokollschaltung
PB–A.1 105 sowie
der MUX-DEMUX 110 in dem Endknoten 30 können als separate
oder kombinierte Schaltungen angeordnet werden. Außerdem können die
separaten oder kombinierten Schaltungen herkömmliche Mikroprozessoren, ASICs
oder PLAs sein. Die Schaltungen des Protokollumsetzers 50 und
des Endknotens 40 können
ebenfalls auf ähnliche
Weise als separate oder verschiedene Konfigurationen kombinierter
Schaltungen implementiert werden.
-
FSMs,
die die durch die Protokolle A und B Benutzern bereitgestellten
Dienstoperationen charakterisieren, werden durch die Symbole SA bzw. SB bezeichnet.
Die durch die FSMs SA und SB abgebildeten
Eingangs-Ausgangsoperationen
sind die Dienstprimitiven der Protokolle A bzw. B. Die Menge von Eingangs-/Ausgangsoperationen
der Schaltungen A1 100 und A2 125 mit ihrem jeweiligen lokalen
Benutzer oder ihren jeweiligen oberen Ebenen werden als IA1 bzw. IA2 bezeichnet.
Ein Beispiel für
diese Art von Eingangs-/Ausgangsoperation
enthält
!deliver (data), wobei eine Dienstprimitive delivery zum Abliefern
einer Nachricht data verwendet wird. Auf ähnliche Weise wird die Menge
von Eingangs-/Ausgangsoperationen der Schaltungen B1 140 und
B2 165 mit ihren jeweiligen lokalen
Benutzern oder oberen Ebenen als IB1 bzw.
IB2 bezeichnet.
-
Als
Beispiel nehme man an, daß die
von den Protokollen A und B bereitgestellten Dienste beide Datentransferprotokolle
sind. Im Betrieb kann der Schaltung A1 100 eine
Dienstprimitive zur Herstellung einer Verbindung gegeben werden.
Als Antwort würde
die Schaltung A1 100 eine entsprechende
Ausgangsoperation für
die Schaltung A2 125 erzeugen. Die
Schaltung A2 125 würde eine
Dienstprimitive erzeugen, die ihrem lokalen Benutzer, dem Schnittstellenumsetzer
IC 135 anzeigt, daß ein
Fernbenutzer der Schaltung A1 100 eine
Verbindung herstellen möchte.
Nach dem Empfang dieser Dienstprimitive würde der Schnittstellenumsetzer
IC 135 eine Eingangsdienstprimitive für das Protokoll B erzeugen, die
angibt, daß ein
lokaler Benutzer (die Schaltung A2 125)
eine Verbindung herstellen möchte.
-
Folglich
würde der
Schnittstellenumsetzer IC 135 bewirken, daß die Schaltung
B1 140 der lokale Benutzer der
Schaltung A2 125 ist, indem die
Ausgangsdienstprimitiven der Schaltung A2 125 zu
den Eingangsdienstprimitiven der Schaltung B1 140 geroutet
werden. Die Schaltung B1 140 würde dann
eine entsprechende Eingangsoperation für ihren lokalen Benutzer (die
Schaltung B2 165) erzeugen, die
die Kommunikation mit dem Netzwerk 20 bereitstellt. Somit
kann ein Benutzer auf dem Netzwerk 10 durch das Gateway-System 1 eine
Verbindung zu dem Netzwerk 20 herstellen.
-
In
der umgekehrten Richtung werden die Ausgangsdienstprimitiven aus
der Schaltung B1 140 durch den
Schnittstellenumsetzer IC 135 den Eingangsdienstprimitiven
der Schaltung A2 125 zugeführt. Da
die Netzwerkprotokolle 10 und 20 jedoch verschieden
sind, weisen die Eingangsdienstprimitiven für die Schaltung A2 125 möglicherweise
keine injektive Entsprechung mit den Ausgangsdienstprimitiven der
Schaltung B1 140 auf. Deshalb muß in dem Schnittstellenumsetzer
IC 135 eine Abbildung oder Übersetzung zwischen den Dienstprimitiven
oder Eingangs-/Ausgangsoperationen IA2 und
denen von IB1 implementiert werden.
-
In
den meisten Fällen
kann diese Übersetzung
eine direkte Abbildung zwischen zwei entsprechenden Operationselementen
der Protokolle sein. In anderen Fällen kann die Abbildung jedoch
komplexer sein. Wenn zum Beispiel zwei Ausgangsdienstprimitive x
und y aus der Schaltung A2 125 einer
einzigen Eingangsdienstprimitiven z für die Schaltung B1 140 äquivalent
sind, dann muß der
Schnittstellenumsetzer IC 135 nach dem Empfang entweder
einer Eingangsdienstprimitiven x oder y die Ausgangsdienstprimitive
z erzeugen. Bestimmte Dienstprimitiven eines Protokolls können Funktionen
durchführen,
die von keiner Kombination von Dienstprimitiven des entsprechenden
Protokolls durchgeführt
werden. Die durch diese nicht übereinstimmenden
Dienste bereitgestellten Dienstprimitiven werden durch die in den
Schaltungen PA–B.1 145 und
PA–B.2 170 bzw.
PB–A.1 105 und
PB–A.2 130 implementierten
Komplement-Protokolle PA–B und PB–A durchgeführt.
-
3 zeigt
ein geeignetes Verfahren 200 zur Erzeugung des Gateway-Systems 1 und
entsprechender Komplement-Protokolle
PA–B und
PB–A.
Nunmehr mit Bezug auf 3 wird im Schritt 210 ein FSM
W berechnet, der die größte gemeinsame
Teilmenge von Diensten der Protokolle A und B repräsentiert.
Ein Verfahren zur Berechnung des FSM W besteht darin, den Ausdruck
W = SA' #
IC # SB' zu
berechnen, wobei SA' und SB' Sammlungen von FSMs sind,
die gestutzte Versionen der FSMs SA bzw.
SB sind. Die gestutzten FSMs SA' und SB' werden durch Entfernen
der Kanten aus den FSMs SA und SB gebildet, für die keine entsprechenden
Dienstprimitiven durch den anderen Dienst-FSM SB bzw.
SA bereitgestellt werden. Der resultierende
FSM W kann unter Aufrechterhaltung seiner Operationsäquivalenz
reduziert werden, und zwar gemäß einem
Verfahren, das in P. C. Kanellakis und S. A. Smolka, "CCS Expressions,
Finite State Processes and Three Problems of Equivalence", Information and
Computation, Band 86, S. 43–68
(1990), beschrieben wird, worauf hiermit ausdrücklich Bezug genommen wird.
-
Im
Schritt 220 werden dann Komplement-Dienst-FSMs SB–A und
SA–B erzeugt,
die Dienstprimitivoperationen für
die Komplement-Protokolle PB–A und PA–B spezifizieren.
Ein Verfahren zur Erzeugung der Komplement-Dienst-FSMs SB–A und
SA–B besteht
darin, die Dienst-FSMs SB und SA in bezug auf
den FSM W der Teilmenge gemeinsamer Dienste zu stutzen. Gemäß diesem
Verfahren wird der Komplement-Dienst-FSM
SB–A erzeugt,
indem die Kanten des Dienst-FSM SB entfernt
werden, die vorhandenen Kanten in dem FSM W der gemeinsamen Teilmenge
entsprechen.
-
Nach
der Erzeugung der Komplement-Dienst-FSMs SB–A und
SA–B im
Schritt 220 schreitet das Verfahren 200 zum Schritt 230 voran. Im
Schritt 230 werden die Komplement-Protokoll-FSMs PB–A und
PA–B durch
Stutzen der Menge von Protokoll-FSMs, die die Protokolle B bzw.
A charakterisieren, um nur die Dienste der Komplement-Dienst-FSMs SB–A und
SA–B bereitzustellen,
erzeugt. Eine geeignete Technik zum Stutzen der die Protokolle A
und B repräsentierenden
FSMs wird später
ausführlicher
mit Bezug auf 4 beschrieben.
-
Dann
werden im Schritt 240 auf die in 2 gezeigte
Weise der Protokollumsetzer 50 und die Netzwerkendknoten 30 und 40 konstruiert.
Der Protokollumsetzer 50 und die Netzwerkendknoten 30 und 40 können jeweils
aus mindestens einem Prozessor, zum Beispiel einem Mikroprozessor,
ASIC oder PLA, bestehen, um die Operationen der entsprechenden Verbindung
von Protokoll- und Komplement-Protokoll-FSMs in den in 2 dargestellten Schaltungen
bereitzustellen. Verfahren zur Implementierung von FSMs in Prozessoren
sind in der Technik wohl bekannt.
-
4 zeigt
ein geeignetes Verfahren 300 zum Stutzen der Protokoll-FSMs,
um die Komplement-Protokoll-FSMs PB–A und
PA–B zu
erzeugen (Schritt 230 von 3). Die
Schritte des Verfahrens 300 von 4 können folgendermaßen gruppiert werden:
die Kanten, die mit anderen Dienstprimitiven bezeichnet sind, als
in dem entsprechenden Dienst-FSM S zu finden sind, werden in der
Schrittsequenz 320–340 gelöscht; die
Kanten der Protokoll-FSMs, die nach der ersten Schrittsequenz 320–340 keine übereinstimmende
Dienstprimitiven aufweisen, werden in den Schritten 350–400 gelöscht; und
in den Schritten 405–460 berechnet
und behält
das Verfahren 300 die stark zusammenhängenden FSM-Komponenten, die
mit dem Anfangszustand beginnen, und verwirft den Rest der Maschine.
-
In 4 werden
eine Datenstruktur MATCH, eine FSM-Liste L und Zählervariablen i, j, k, m im Schritt 305 auf
Null initialisiert. Dann werden im Schritt 310 die Operationen
eines Protokolls P, wie zum Beispiel des in dem Netzwerk 10 von 1 verwendeten
Protokolls A, durch eine Menge von FSMs Fi,
i = 1, ..., N, charakterisiert, wobei der Wert N die Gesamtzahl
von FSMs in der Menge ist. Im Schritt 320 wird der Zähler i dann
erhöht.
Im Schritt 330 werden die Zustandsübergänge in dem FSM Fi,
die nicht den durch den entsprechenden Protokoll-Dienst-FSM S verwendeten
Dienstprimitiven entsprechen, gelöscht. Wenn das Protokoll A
des Netzwerks 10 als das Protokoll P in dem Verfahren 300 verwendet
werden würde,
dann wird der Dienst-FSM SA als der Dienst-FSM
S in dem Verfahren 300 verwendet.
-
Der
Zähler
i wird dann im Schritt 340 mit der Gesamtzahl N von FSMs
verglichen. Wenn der Zähler
i nicht gleich der Gesamtzahl von Maschinen N ist, wiederholt das
Verfahren 300 die Schritte 320 und 330,
um Zustandsübergänge mit
nicht übereinstimmenden
Dienstprimitiven in dem nächsten
FSM Fi der Menge zu löschen oder zu stutzen. Wenn
der Zähler
i jedoch gleich der Gesamtzahl von Maschinen N ist, schreitet das
Verfahren 300 zum Schritt 350 voran, in dem der
Zähler
j erhöht
wird.
-
Nach
der Durchführung
des Schritts 350 wird im Schritt 360 der FSM Fj ausgewertet, um zu bestimmen, ob er Kanten
enthält,
die Dienstprimitiven entsprechen, für die es in keinem anderen
FSM der Menge von FSMs F übereinstimmende
Gegenstück-Dienstprimitiven
gibt. Für eine
Kante, die eine Dienstprimitive repräsentiert, kann es aufgrund
der Löschung
ihrer entsprechenden Kanten im Schritt 330 möglicherweise
keine Übereinstimmung
geben. Wenn zum Beispiel eine Kante des FSM Fj eine
Bezeichnung !startx zum Senden einer Dienstprimitive startx aufweist
und wenn die entsprechende Kante mit der Bezeichnung ?startx in
einem anderen FSM der Menge im Schritt 330 gelöscht wurde,
dann wird es für
die Kante des FSM Fj keine Übereinstimmung geben.
Wenn es für
mindestens eine Kante von FSM keine Übereinstimmung gibt, führt das
Verfahren 300 die Schritte 370–390 durch. Im Schritt 370 werden alle
identifizierten nicht übereinstimmenden
Kanten des FSM Fj gelöscht, und im Schritt 380 wird
der FSM Fj an die Liste L angehängt. Im
Schritt 390 wird der Zähler
m, der der Länge
der Liste L entspricht, erhöht.
Nach der Durchführung
von Schritt 390 schreitet das Verfahren 300 zum
Schritt 400 voran. Wenn im Schritt 360 jedoch
bestimmt wird, daß der
FSM Fj nur Kanten mit übereinstimmenden Dienstprimitiven enthält, schreitet
das Verfahren 300 direkt zum Schritt 400 voran.
-
Im
Schritt 400 wird der Zähler
j geprüft,
und wenn er nicht gleich der Gesamtzahl von FSMs N in der Menge
F ist, wiederholt das Verfahren 300 die Schritte 350 und
360, um zu identifizieren, ob der nächste FSM Fj Kanten
mit nicht übereinstimmenden Dienstprimitiven
enthält,
und korrigiert den FSM Fj und die Liste
L entsprechend den Schritten 370–390. Wenn das Verfahren 300 im
Schritt 400 dagegen bestimmt, daß der Zähler j gleich der Gesamtzahl
von FSMs N ist, dann wurden alle FSMs F der Menge bezüglich Kanten
mit nicht übereinstimmenden
Dienstprimitiven verarbeitet und das Verfahren 300 schreitet
zum Schritt 405 voran.
-
Im
Schritt 405 bestimmt das Verfahren 300, ob der
Wert des Zählers
m Null ist. Wenn der Zähler m
einen Wert von Null aufweist, wurden von keinem FSM in der Menge
von FSMs F im Schritt 370 Kanten gelöscht. Folglich schreitet das
Verfahren 300 direkt zum Schritt 470 voran, der
nachfolgend beschrieben wird. Wenn der Zähler m im Schritt 405 jedoch
nicht Null ist, schreitet das Verfahren 300 zum Schritt 410 voran.
Im Schritt 410 wird der Zähler k erhöht, und im Schritt 420 wird
ein FSM Fk dann zum weiteren Verarbeiten
durch die Schritte 430, 440 und 450 aus
der Liste L entfernt. Von allen in der entsprechenden Liste L enthaltenen
FSMs wurde im Schritt 370 mindestens eine Kante gelöscht. Die
Anzahl von FSMs in der Liste L wird durch den Zähler m repräsentiert.
-
Im
Schritt 430 wird eine stark zusammenhängende Komponente des FSM Fk, die den Anfangszustand enthält, bestimmt
und mit Ck bezeichnet. In einer stark zusammenhängenden
FSM-Komponente weist jeder Knoten einen gerichteten Weg zu jedem anderen
Knoten auf. Im Schritt 440 werden die Kanten des FSM Fk, die nicht in Ck enthalten
sind, gelöscht,
und im Schritt 450 wird die Datenstruktur MATCH aktualisiert,
um die im Schritt 440 gelöschten Kanten wiederzuspiegeln.
Die FSMs, die Protokolle charakterisieren, die keine unendlichen
Schleifen für Datentransfers
aufweisen, wie zum Beispiel Verbindungsverwaltungs- und Verbindungsaufbauprotokolle,
können
durch Hinzufügen
von Dummy-Übergängen stark
zusammenhängend
gemacht werden.
-
Im
Schritt 460 bestimmt das Verfahren 300 dann, ob
die Zähler
k und m gleich sind. Wenn sich die Zähler k und m als gleich erweisen,
schreitet das Verfahren 300 zum Schritt 470 voran.
Wenn sich die Zähler
k und m jedoch nicht als gleich erweisen, wiederholt das Verfahren 300 die
Schritte 410–450,
um den Zähler
k zu erhöhen
und die stark zusammenhängenden
Komponenten für
die übrigen
FSMs in der Liste L zu bestimmen.
-
Im
Schritt 470 gibt das Verfahren 300 die FSMs Fi, i = 1, ..., N, aus, die das gestutzte
Protokoll P charakterisieren. Die resultierenden FSMs Fi,
i = 1, ..., N, sind reduzierte Komponenten-FSMs der ursprünglichen
Menge von FSMs, die das Protokoll P charakterisieren und die Dienste
enthalten, die denen des Dienst-FSMs entsprechen. Folglich können die
Komplement-Protokoll-FSMs
PB–A und
PA–B durch zweimaliges
Durchführen
des Verfahrens 300 erzeugt werden, wobei beim ersten Mal
das Protokoll P das Protokoll B und der Dienst-FSM S der Dienst-FSM
SB–A ist,
und wobei beim zweiten Mal das Protokoll P das Protokoll A und der
Dienst-FSM S der Dienst-FSM SA–B ist.
-
Ein
Merkmal des Verfahrens 300 besteht darin, daß es die
gestutzten Automaten nicht mit einer exponentiellen, sondern mit
einer polynomischen Anzahl von Rechenschritten erzeugt. Ein Vorteil
dieses Merkmals besteht darin, daß es das Stutzen relativ großer und
komplexer Protokolle, wie zum Beispiel herkömmlicher Computernetzwerkprotokolle,
in relativ kurzer Rechenzeit ermöglicht.
Typische vorbekannte Stutztechniken erfordern eine exponentielle Anzahl
von Rechenschritten, was für
die Größe und Komplexität existierender
Netzwerkprotokolle sehr praxisfern ist.
-
Die
Datenstruktur MATCH verfolgt die übereinstimmenden Eingangs-/Ausgangsdienste.
Identische Dienste können
mit einem Zählerwert
assoziiert werden mit, der ihre Gesamtzahl aufzeichnet. Zählerwerte übereinstimmender
Eingangs-/Ausgangsdienste werden miteinander assoziiert. Wenn ein
Eingangs-/Ausgangsdienst gelöscht
wird, wird sein zugeordneter Zählerwert
um Eins erniedrigt. Wenn ein Zählerwert
Null wird, werden alle entsprechenden Zählerwerte folgendermaßen geprüft: wenn
ein Zählerwert μ keinen übereinstimmenden
Zählerwert
aufweist, d. h. alle Null geworden sind, dann wird der Zählerwert μ auf Null
geändert,
und alle seine zugeordneten Kanten in dem FSM, der diesen Eingangs-/Ausgangsdienst abbildet,
werden gelöscht. Die
entsprechenden Zählerwerte
des Zählerwerts μ werden ähnlich verarbeitet.
Dieses Zählerwertaktualisieren erfolgt
iterativ, bis keine Änderungen
an den beiteiligten Zählerwerten
vorgenommen werden müssen.
-
Die
Gesamtkosten der Anzahl von Berechnungen zur Initialisierung und
zur Aktualisierung der Datenstruktur MATCH betragen 0 (
m
i), wobei m
i die Anzahl
von Kanten von F
i und wobei k die Anzahl
von FSMs in der Menge ist. Ein k-Bit-Vektor kann verwendet werden,
um aufzuzeichnen, ob der FSM F
i in der Liste
L auftritt. Bei einem bestimmten Vektorformat ist, wenn der FSM
F
i in der Liste L auftritt, das i-te-Bit des
Vektors 1, andernfalls ist es 0. Um den Vektor zu aktualisieren
und zu prüfen,
ob der FSM F
i in der Liste L auftritt, braucht
eine konstante Zeit. Immer wenn ein Komponenten-FSM F
i an
die Liste L angehängt wird,
ist mindestens eine Kante entfernt worden. Wenn dann der Komponenten-FSM
F
i aus der Liste L entfernt wird, wird die
stark zusammenhängende Komponente
konstruiert, die den Anfangszustand enthält. Es dauert eine Zeit 0 (m
i), um die stark zusammenhängende Komponente
eines FSM F
i unter Verwendung einer Depth-First-Suche
zu berechnen. Da ein FSM F
i erst dann aus
der Liste L entfernt werden kann, nachdem er an die Liste L angefügt wurde, betragen
die Gesamtrechenkosten 0 (
d
im
i), wobei d
i die Anzahl von aus dem FSM F
i gelöschten Kanten ist.
-
Die
A-Synthese eines beispielhaften Gateway-Systems 1 unter
Verwendung des Verfahrens 200 von 3 wird mit
Bezug auf 5–29 beschrieben.
Die beiden Netzwerkprotokolle, die durch das Gateway-System 1 in
dem Beispiel verbunden werden sollen, sind ein Halbduplex-Bitalternationsprotokoll
("HABP") und ein Vollduplex-Bitalternationsprotokoll
("FABP"). Das HABP transportiert
Datennachrichten von einem Senderbenutzerprozeß über einen verlustbehafteten
Kommunikationskanal zu einem Empfängerprozeß. In der Gegenrichtung wird
für das
HABP keine Datennachricht transportiert. Umgekehrt wirkt das FABP
auf eine solche Weise, daß zwei
abgesetzte Prozesse Datennachrichten austauschen können.
-
5 zeigt
eine allgemeine Organisation 500 von Komponenten-FSMs,
die ein Protokoll charakterisieren. In 5 besteht
die Anordnung aus Endentitäten
D1 510 und D2 520,
die über
Kommunikationskanäle
CA12 530 und CA21 540 miteinander kommunizieren.
Jede Endentität
D1 510 und D2 520 wirkt
gemäß einer
jeweiligen Gruppe der FSMs in der entsprechenden FSM-Menge, die
das Protokoll charakterisiert. Die Funktionsweise des HABP kann
folgendermaßen
unter Verwendung von fünf
gemäß der Organisation 500 von 5 angeordneten
FSMs charakterisiert werden: ein in 6 gezeigter
Datensenderautomat Htrans, der der Endentität D1 510 von 5 entspricht
und der von einem lokalen Benutzer empfangene Daten weitersendet;
ein in 7 gezeigter Datenempfägerautomat Hrec, der der Endentität D2 520 entspricht und die von dem
FSM Htrans weitergesendeten Daten empfängt; ein in 8 gezeigter
Vorwärtskommunikationskanalautomat
CH12 zum Transportieren von Datennachrichten
aus den FSMs Htrans zu Hrec von 6 und 7;
ein in 9 gezeigter Rückwärtskommunikationskanalautomat
CH21 zum Transportieren von Bestätigungssignalen
ack0 oder ack1, die den Empfang der Datennachricht bestätigen; und
ein in 10 gezeigter Timer-Automat Timer,
der ein Satelliten-FSM des Datensenderautomaten Htrans ist und auch
in der Endentität
D1 510 von 5 enthalten
sein sollte. Nach dem Start wartet der Timer-Automat von 10 eine
vorbestimmte Zeit und erzeugt ein Zeitgrenzensignal timeout für den Senderautomaten Htrans
von 6, sofern er nicht während dieser Zeit eine Nachricht
cancel von dem Senderautomaten Htrans empfängt.
-
Ferner
ist in 11 ein Dienst-FSM SH für das HABP
gezeigt. In 11 besteht der Dienst-FSM SH aus zwei Zuständen 0 und 1. Der FSM SH zeigt die Datentransferoperation des HABP.
Eine Kante mit der Bezeichnung ?data1 bedeutet eine Eingangsoperation,
wodurch das HABP eine Datennachricht von dem Senderbenutzerprozeß empfängt. Eine zweite
Kante mit der Bezeichnung !data0 repräsentiert eine Ausgangsoperation,
wodurch das HABP eine Datennachricht zu dem Empfängerbenutzerprozeß sendet. 12 zeigt
die fünf
Komponenten-HABP-FSMs, gemäß der Organisation 500 von 5 angeordnet.
Der Klarheit halber sind ähnliche Komponenten
in 5 und 12 gleich beziffert, wie zum
Beispiel die Endentität 510.
-
Wie
durch die FSMs Htrans, Timer, CH12, CH21 und Hrec von 6–10 und
den Dienst-FSM SH von 11 repräsentiert,
beginnt das HABP im Betrieb damit, daß die durch den FSM Htrans
charakterisierte Senderfunktion eine Datennachricht von einem die
Eingangsoperation ?data1 benutzenden Benutzer empfängt. Der
Senderfunktions-FSM Htrans sendet die Datennachricht dann mit einer
Sequenznummer von entweder 0 oder 1 zu der durch den FSM Hrec charakterisierten
Empfängerfunktion über den
Kanal CH12. Der Senderfunktions-FSM Htrans
alterniert die Sequenznummern zwischen 0 und 1 für jede aufeinanderfolgende
Datennachricht, damit die durch den FSM Hrec charakterisierte Empfängerfunktion
identifizieren kann, ob eine Datennachricht verloren gegangen ist.
-
Wenn
der Senderfunktions-FSM Htrans die Datennachricht sendet, startet
er außerdem
die durch den FSM Timer charakterisierte lokale Timeroperation und
wartet auf das ordnungsgemäße Bestätigungssignal
ack0 oder ack1 über
den durch den FSM CH21 charakterisierten
Kanal. Nach dem Empfang des ordnungsgemäßen Bestätigungssignals löscht die
Senderfunktion den Timer durch Senden einer Nachricht cancel. Wenn
jedoch kein Bestätigungssignal
empfangen wird, bevor der Timer-FSM Timer ein Signal timeout erzeugt,
wird die Datennachricht zu dem Empfänger-FSM Hrec weitergesendet.
-
Nach
dem Empfang einer Datennachricht bestimmt der Empfängerfunktions-FSM
Hrec, ob sie die ordnungsgemäße Sequenznummer
enthält,
und sendet die Datennachricht unter Verwendung der Ausgangsoperation
!data0 des Dienst-FSM SH zu dem lokalen
Benutzer. Außerdem
sendet die Empfängerfunktion
das Bestätigungssignal
mit einer ordnungsgemäßen Sequenznummer über den
Kommunikationskanal CH21 zurück zu dem
Senderfunktions-FSM Htrans.
-
Die
Funktionsweise des FABP charakterisierende FSMs können ebenfalls
gemäß dem System 500 von 5 organisiert
werden, wie durch die Anordnung 700 in 13 gezeigt.
In 13 wird das FABP unter Verwendung zweier identischer
Protokollentitäten 710 modelliert,
die durch zwei Kommunikationskanäle
CF12 und CF21 miteinander
kommunizieren. Für
das FABP kann jede einzelne der Protokollentitäten aus sieben FSMs bestehen.
Die sieben FSMs sind: ein in 14 gezeigter
Senderfunktions-FSM Ftrans zum Weitersenden von von einem Benutzer
empfangenen abgehenden Datennachrichten; ein in 15 gezeigter
Weitersende-Timer-FSM Retimer,
der auf ähnliche
Weise wie der FSM Timer von 10 wirkt;
ein in 16 gezeigter Empfängerfunktions-FSM
Frec, der ankommende Datennachrichten und Bestätigungssignale empfängt; ein
in 17 gezeigter Sequenznummerspeicherungs-FSM NR
zum Speichern der nächsten
Sequenznummer von durch den Empfängerfunktions-FSM
Frec zu empfangen der erwarteter Nachricht; ein in 18 gezeigter
Sequenznummerspeicherungs-FSM NS zum Speichern der Sequenznummer
der nächsten
durch den Senderfunktions-FSM Ftrans
zu senden den erwarteten Nachricht; ein in 19 gezeigter
Explizit-Bestätigungs-FSM
Buf zum Senden von Bestätigungssignalen,
die den Empfang einer Datennachricht bestätigen; und ein in 20 gezeigter Bestätigungs-Timer-FSM
Atimer zum Durchführen
der Zeitsteuerungsoperationen für
den FSM Buf.
-
Ein
Dienst-FSM SF für das FABP ist in 21 gezeigt.
In 21 besteht der Dienst-FSM SF aus
vier Zuständen
0, 1, 2 und 3. Der FSM SF bildet die Datentransferoperation
des FABP ab. Während des
Betriebs empfängt
der Dienst-FSM SF eine Datennachricht von
einem Netzwerkbenutzerprozeß,
indem Kanten überschritten
werden, die eine Eingangsoperation ?dataF aktivieren, und liefert
sie zu dem anderen Benutzerprozeß, indem Kanten überquert
werden, die eine Ausgangsoperation !dataF aktivieren.
-
Jede
Endentität 710 des
FABP in 13 verwendet zwei Verfahren
zum Bestätigen
des Empfangs von Datennachrichten mit entsprechender Sequenznummer.
Bei einem ersten Verfahren verwendet der Empfänger Funktions-FSM Frec den
FSM Buf von 19 und den zugeordneten FSM
Atimer von 20 zur Erzeugung der Bestätigungssignale
ack0 und ack1. Zusätzlich
soll ein zweites Verfahren zum Bestätigen des Empfangs einer Datennachricht
Bestätigungssignale
im Huckepack an Rückkehrdatennachrichten
ansetzen.
-
Eine
Datennachricht hat eine Struktur von data[x][y], wobei es sich bei
data um die gesendeten Informationen handelt. Der Parameter x ist
die Sequenznummer der Nachricht und kann entweder eine 0 oder eine
1 sein. Der Parameter y ist die Huckepack-Bestätigung und kann einen Wert
von entweder 0 oder 1 aufweisen. Der Parameter y führt dieselbe Operation
wie die Übertragung
eines Bestätigungssignals
ack0 oder ack1 für
eine kürzlich
empfangene Datennachricht durch. Im Betrieb startet die durch den
FSM Frec charakterisierte Operation, wenn eine Datennachricht empfangen
wird, die durch den FSM Buf repräsentierte
Operation, die den Prozeß Atimer aktiviert.
Wenn die Endentität 710 von 13 keine Datennachricht
aussendet, bevor der Timer Atimer abläuft, dann wird das ordnungsgemäße Bestätigungssignal
ack0 oder ack1 gesendet. Die Komposition dieser sieben FABP-Protokoll-FSMs
in 14–20 repräsentiert
insgesamt 3.192 Zustände
und 14.026 Kanten.
-
Ein
gemäß dem Verfahren 200 von 3 erzeugtes
Gateway-System zum Verbinden eines HABP-Netzwerks und eines FABP-Netzwerks
würde durch
das Gateway zwischen Benutzern auf jedem Netzwerk Vollduplexkommunikation
bereitstellen. Der Einfachheit halber wird in der folgenden Beschreibung
das HABP als Alternative als das Protokoll A und das FABP als das
Protokoll B bezeichnet. Bei der Erzeugung eines solschen Gateway-Systems wird im Schritt 210 des
Verfahrens 200 von 3 ein FSM
W berechnet, der der größten gemeinsamen Teilmenge
der von dem Dienst-FSM SA oder in diesem
Beispiel dem FSM SH und dem Dienst-FSM SB oder in diesem Beispiel dem FSM SF bereitgestellten Dienste entspricht. Da
die Dienstoperationen des Dienst-FSM SH von 11 alle
in dem Dienst-FSM SF enthalten sind, ist
der resultierende FSM W gleich dem Dienst-FSM SH.
-
Gemäß Schritt 220 werden
dann die Komplement-Dienst-FSMs
SA–B und
SB–A berechnet.
Die Komplement-Dienst-FSMs SA–B und SB–A können berechnet
werden, indem die Dienste, die durch den FSM W bereitgestellt werden,
aus den Dienst-FSMs SA–B und SB–A entfernt
werden. Folglich ist der Komplement-Dienstprotokoll-FSM SA–B Null,
weil alle von dem FSM W bereitgestellten Dienste in dem Dienstprotokoll-FSM
SH bereitgestellt werden. Das resultierende
Komplement-Dienstprotokoll SB–A liefert jedoch die
Dienste des FSM SF, die Daten in der umgekehrten
Richtung, oder in der nicht durch das HABP bereitgestellten Richtung,
transferieren. Der resultierende Komplement-Dienst-FSM SB–A ist
in 22 gezeigt.
-
Das
Verfahren 200 schreitet dann zum Schritt 230 voran, in
dem die Protokolle A und B gestutzt werden, um die Komplement-Protokoll-FSMs PA–B und
PB–A zu
bilden. Da der Komplement-Dienstprotokoll-FSM SA–B Null
ist, ist auch der entsprechende Komplement-Protokoll-FSM PA–B Null.
Das Stutzen des Protokolls B, das durch die Ansammlung von FSMs
von 14–20 repräsentiert
wird, um die Dienste des Komplement-Dienstprotokolls SB–A bereitzustellen,
ergibt jedoch die in 23–28 dargestellten
FSMs. In 23–28 werden
die gestutzten FSMs gekennzeichnet, indem an den Namen der entsprechenden
FSMs von 14–20 ein
Apostroph angehängt
wird. Zum Beispiel entspricht der Sender-FSM Ftrans von 14 dem
gestutzten Sender-FSM Ftrans' von 23.
-
Während des
Stutztschritts wird der FSM Atimer von 20 aus
der Existenz herausgestutzt, während
der Sequenznummerspeicherungs-FSM NS von 18 und
der Weitersende-Timer-FSM Retimer von 15 bei
der Bildung der gestutzten Gegenstücke in 27 und 24 voll
intakt bleiben. Die gestutzten FSMs für das Komplement-Protokoll PB–A in 23–28 liefern
nur die Datentransferfunktionen in der umgekehrten Richtung. Der
letzte Schritt 240 des Verfahrens 200 ist die
Konstruktion des Protokollumsetzers 50 und der Netzwerkendknoten 30 und 40 gemäß den erzeugten
Komplement-Protokollen, wie in 2 gezeigt.
-
29 zeigt
ein ein HABP-Netzwerk 10 und ein FABP-Netzwerk 20 verbindendes Gateway-System 800,
das Schaltungen gemäß den FSMs
von 23–28 verwendet.
Die Schaltungen in 29, die denen von 2 entsprechen,
sind der Klarheit halber gleich beziffert, wie zum Beispiel die Komplement-Protokollschaltung 105.
Zusätzlich
sind der Einfachheit halber die Schaltungen in 29,
die die Operationen der in 14–28 dargestellten FSMs
durchführen,
gleich benannt. Zum Beispiel die Schaltung Htrans in 29 und
der entsprechende Senderfunktions-FSM Htrans in 14.
-
In 29 enthält ein Endknoten 30 des Netzwerks 10 die
Schaltungen A1 100 und PB–A.1 105. Die
Protokollschaltung A1 100 führt die
Datennachrichtenübertragungsoperation
des HABP des Netzwerks 10 durch. Die Schaltung A1 100 enthält die Schaltung Htrans und
die Halbduplexkommunikationskanäle
CH21 und CH12, die
gemäß den FSMs
von 8 bzw. 9 wirken. Die Komplement-Protokollschaltung
PB–A.1 105 besteht
aus Schaltungen Frec' und
NS' zum Empfangen
von Daten. Die Schaltungen A1 100 und
PB–A.1 105 senden
und empfangen Nachrichten aus einem Protokollumsetzer 50 durch die
MUX-DEMUX 110 und 120 über den Kommunikationskanal 60.
-
Der
Protokollumsetzer 50 von 29 enthält die Schaltung
A2 125 zur Durchführung der
Operationen des HABP-Empfänger-FSM
Hrec von 7. Der Protokollumsetzer 50 besteht
außerdem
aus der Schnittstellenkomplementprotokollschaltung PB–A.2 130,
dem Schnittstellenumsetzer-IC 135 und der Schnittstellenprotokollschaltung
B1 140, die der Protokollendentität 710 in 13 entspricht.
Die Schaltung B1 140 führt die
Operationen der sieben FABP-Protokoll-FSMs
von 14–20 durch.
Die Komplement-Protokollschaltungen
PB–A.1 105 und PB–A.2 130 in 29 arbeiten
auf die durch die in 23–28 gezeigten
Komplement-Protokoll-FSMs spezifizierte Weise. Die Komplement-Protokoll-Schaltungs-Operationen
Frec' und NS' zum Weitersenden
von Daten zu einem Zielbenutzer und sind deshalb in der Schaltung
PB–A.1 105 angeordnet. Folglich
wurden die Komplement-Protokoll-Schaltungs-Operationen Ftrans', Buf', NR' und
Retimer', die die
Daten von einem lokalen Benutzer empfangen, in der Schaltung PB–A.2 130 angeordnet.
-
Die
Schaltung B1 140 des Protokollumsetzers 50 ist
direkt mit einem zweiten Netzwerkendknoten 40 verbunden.
Der Netzwerkendknoten 40 besteht aus der Protokollschaltung
B2 165, die die identische Operation
wie die Schaltung B1 140 in dem Protokollumsetzer 50 durchführt. Vollduplexkommunikation
zwischen den Schaltungen 140 und 165 findet über Kommunikationskanäle CF12 und CF21 statt. Die
Schaltung B2 165 ist außerdem mit
dem Netzwerk 20 verbunden.
-
Die
Komplement-Protokollschaltungen PA–B.1 145 und
PA–B.2 170 und
die zugeordneten MUX-DEMUX 150 und 160 von 2 werden
in dem System 800 von 29 nicht
benutzt, weil keine solchen Schaltungen erforderlich sind. Da der
Komplement-Protokoll-FSM PA–B und der Komplement-Dienst-FSM SA–B Null
sind, sind die entsprechenden Komplement-Protokollschaltungen nicht
erforderlich. Diese Schaltungen sind in diesem Beispiel nicht notwendig,
weil von dem Protokoll HABP des Netzwerks 10 keine Operationen
durchgeführt
werden, die nicht durch das Protokoll FABP des Netzwerks 20 durchgeführt werden.
Diese Schaltungen B1 140 und B2 165 führen in 29 aufgrund
der spiegelartigen Prozesse eines Vollduplexprotokolls identische
Operationen durch. Die Schaltungen können jedoch abhängig von
den in den Netzwerken 10 und 20 implementierten
Protokollen in anderen Gateway-Systemen 1 verschiedene
Operationen durchführen.
-
Beim
Senden von Informationen von einem Benutzer des Netzwerks 10 zu
einem Benutzerprozeß in
dem Netzwerk 20 werden die Informationen durch die Schaltung
A1 100 in dem Netzwerkendknoten 30 zu
der Schaltung A2 125 in 29 gesendet. Die
Informationen aus der Schaltung A2 125 werden dann
durch den Schnittstellenumsetzer IC 135 zu der Schaltung
B1 140 gelenkt. Die Informationen
werden dann durch die Schaltung B1 140 zu
der Schaltung B2 165 in dem Endknoten 40 gesendet
und dort zu dem Benutzerprozeß in
dem Netzwerk 20 weitergesendet.
-
In
der Gegenrichtung können
Benutzer des Netzwerks 20 Daten zu Benutzern des Netzwerks 10 in 29 senden, obwohl
in dem Netzwerk 10 nur ein HABP implementiert ist. Bei
dem Senden von Informationen von einem Benutzerprozeß des Netzwerks 20 zu
einem Benutzerprozeß des
Netzwerks 10 werden die Informationen durch die Schaltung
B2 165 in dem Netzwerkendknoten 40 zu
der Schaltung B1 140 in dem Protokollumsetzer 50 gesendet.
Die Schaltung B1 140 liefert die
Informationen an den Schnittstellenumsetzer IC 135, der
dafür konfiguriert ist,
die Informationen zu der Schaltung PB–A.2 130 zu senden.
Dann werden die Informationen durch die Schaltung PB–A.2 130 zu
der Schaltung PB–A.1 105 in dem
Netzwerkendknoten 30 gesendet. Die Schaltung PB–A.1 105 hat
die Fähigkeit,
die Informationen zu dem Benutzerprozeß in dem Netzwerk 10 weiterzusenden.
-
Deshalb
stellt die vorliegende Erfindung eine relativ kurze und einfache
Technik zur Erzeugung eines Gateways zwischen verschiedenen Netzwerkprotokollen
bereit, die Komplement-Protokolle verwendet, wodurch Benutzer beider
Netzwerke unter Verwendung einer Übermenge von durch Protokolle beider
Netzwerke bereitgestellten Diensten Informationen untereinander
senden und empfangen können.
Ein Vorteil der Bereitstellung einer Übermenge von Diensten besteht
darin, daß das
Gateway-System zwischen
den Netzwerken einem Benutzer eines der Netzwerke transparent erscheinen
kann, da er in der Lage sein wird, alle ihm auf diesem Netzwerk
vertrauten Dienste zum Austausch von Daten mit dem anderen Netzwerk
zu verwenden.
-
Bei
einer alternativen Ausführungsform
des Gateway-Systems 1 von 2 können Komplement-Protokolle
und entsprechende Schaltungen unter Verwendung des Verfahrens 200 von 3 nur für eines
der Netzwerke erzeugt werden. Zum Beispiel würde nicht PA–B,
sondern das Komplement-Protokoll PB–A für ein solches
System erzeugt. Folglich würden
die Schaltungen PA–B.1 145 und
PA–B.2 170 aus dem
Protokollumsetzer 50 und dem Endknoten 40 beseitigt.
Genauso können
die MUX-DEMUX 150 und 160 entfernt werden, da
zwischen den Schaltungen B1 140 und
B2 165 keine Nachrichten auf dem Kommunikationskanal 70 gemultiplext
werden müssen.
Folglich können
Benutzer in dem Netzwerk 10 alle Dienste beider Protokolle
A und B beim Senden oder Empfangen von Informationen unter Verwendung
dieses alternativen Gateway-Systems benutzen. Benutzer in dem Netzwerk 20 wären jedoch
darauf beschränkt,
nur die den Protokollen A und B gemeinsamen Dienste bei der Kommunikation
durch dieses alternative Gateway-System zu benutzen.
-
Obwohl
eine Ausführungsform
eines Verfahrens zum Erzeugen eines Gateway-Systems, das eine Übermenge
von Protokolldiensten bereitstellt, oben ausführlich beschrieben wurde, ist
für Durchschnittsfachleute
ohne weiteres verständlich,
daß viele
Modifikationen an der beschriebenen Ausführungsform möglich sind,
ohne von der vorliegenden Erfindung abzuweichen. Alle solchen Modifikationen sollen
durch die beanspruchte Erfindung abgedeckt werden. Zum Beispiel
kann in den Netzwerkendknoten und in dem Protokollumsetzer ein einziger
Mikroprozessor verwendet werden, um die durch die darin enthaltenen
FSMs spezifizierten Operationen durchzuführen. Obwohl das oben beschriebene
beispielhafte Gateway-System Computernetzwerke betrifft, kann die
vorliegende Erfindung ferner für
die Erzeugung zur Bereitstellung von Gateway-Systemen für andere
Daten- und Telekommunikationsnetzwerke verwendet werden.