DE19911951C2 - Datenkommunikationssystem und Datenkommunikationsverfahren, welches eine Nachrichtenkollision umgehen kann - Google Patents

Datenkommunikationssystem und Datenkommunikationsverfahren, welches eine Nachrichtenkollision umgehen kann

Info

Publication number
DE19911951C2
DE19911951C2 DE1999111951 DE19911951A DE19911951C2 DE 19911951 C2 DE19911951 C2 DE 19911951C2 DE 1999111951 DE1999111951 DE 1999111951 DE 19911951 A DE19911951 A DE 19911951A DE 19911951 C2 DE19911951 C2 DE 19911951C2
Authority
DE
Germany
Prior art keywords
information
data
amount
transmission
sent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE1999111951
Other languages
English (en)
Other versions
DE19911951A1 (de
Inventor
Ichiro Mizunuma
Satoshi Horiike
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE19911951A1 publication Critical patent/DE19911951A1/de
Application granted granted Critical
Publication of DE19911951C2 publication Critical patent/DE19911951C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3018Input queuing

Description

HINTERGRUND DER ERFINDUNG Gebiet der Erfindung
Die vorliegende Erfindung betrifft ein Datenkommunikations­ system und ein Datenkommunikationsverfahren zum Steuern von Datenkommunikationen zwischen Computern, die über ein Netz­ werk miteinander verbunden sind.
Beschreibung des Standes der Technik
Fig. 12 ist ein Blockschaltbild, welches ein herkömmliches Datenkommunikationssystem zeigt, bei dem das Bezugszeichen 1 ein Netzwerk bezeichnet, welches unter Verwendung von E­ thernet oder FastEthernet aufgebaut ist; 2 und 3 bezeichnen je eine Rechnerbedienerstation (OPS), die Informationsnach­ richten oder ähnliches mit einem Host-Computer 4 und mit Kontrollern 5 und 6 austauschen; 4 bezeichnet den Host- Computer, der Informationsnachrichten oder ähnliches mit den Rechnerbedienerstationen 2 und 3 oder den Kontrollern 5 und 6 austauscht; und 5 und 6 bezeichnen je einen Kontrol­ ler, die Informationsnachrichten oder ähnliches mit den Rechnerbedienerstationen 2 und 3 oder dem Host-Computer 4 austauschen.
Als nächstes wird die Betriebsweise des herkömmlichen Da­ tenkommunikationssystems beschrieben.
Obwohl der Host-Computer 4, die Rechnerbedienerstationen 2 und 3 und ähnliches, die über das Netzwerk 1 miteinander verbunden sind, Informationsnachrichten miteinander austau­ schen, ergeben sich dann, wenn eine Nachrichtenkollision auf dem Netzwerk 1 auftritt, Probleme dahingehend, daß die Nachrichten verzögert werden oder einen Verlust erleiden.
Um eine Kollision auf dem Netzwerk 1 zu vermeiden, verwen­ det das herkömmliche System ein Token-Verfahren, welches dem Host-Computer 4 und ähnlichem erlaubt, lediglich dann zu senden, wenn diese die Sendeberechtigung erlangen.
Aus der EP 0 310 173 A1 ist ein Datenkommunikationssystem bekannt, welches in einem Vermittlungsknoten einen internen Computer enthält, der mit einem Computer in einem Teilneh­ mer über ein Netzwerk verbunden ist. Der Vermittlungsknoten enthält einen Vorwärts-Rückwärts-Zähler, der mit jedem von der Teilnehmereinrichtung kommenden Block vorwärts und zu bestimmten Zeitpunkten rückwärts zählt. Der Zählerstand des Vorwärts-Rückwärts-Zählers wird mittels eines Vergleichers mit einem von der Teilnehmereinrichtung vorbestimmten Zäh­ lerstand (wodurch die maximale Bit-Rate festgelegt wird) verglichen, welcher in einem im Vermittlungsknoten angeord­ neten Speicher abgelegt ist. Auf diese Weise kann zwar die Einhaltung der von der Teilnehmereinrichtung vorgebbaren maximalen und mittleren Übertragungsgeschwindigkeit über­ prüft werden, ein Ausfall eines Teilnehmers führt aber wei­ terhin zum Verlust der Nachricht.
Neben dem zuvor erläuterten herkömmlichen System zeigt die offengelegte japanische Patentanmeldung Nr. 8-180006/1996 eine Technik, die Computern, die über ein Netzwerk miteinander verbunden sind, Sende-Zeitschlitze zuweist, die eine Informationsübermittlung ermöglichen, wodurch mehrere Computer daran gehindert werden, Nachrich­ ten zu dem Netzwerk in dem selben Zeitschlitz zu senden. Wenn jedoch der Computer, der die Übertragungs-Zeitschlitze managt, aufgrund eines Fehlers anhält, wird es für andere Computer unmöglich, Nachrichten zu senden.
Mit den zuvor erläuterten Konfigurationen treten bei den herkömmlichen Datenkommunikationssystemen Probleme dahinge­ hend auf, daß es dann für das Rechnerbedienersystem 2 oder dergleichen, welches an das Netzwerk 1 angeschlossen ist, unmöglich wird, mit einer nachfolgenden Nachrichtenübertra­ gung fortzufahren, wenn der Host-Computer 4, der die Sende­ berechtigung hat, abstürzt oder die Sendeberechtigung ver­ liert, obwohl diese Systeme eine Nachrichtenkollision auf dem Netzwerk 1 vermeiden können.
Nebenbei bemerkt, wird es möglich, die Übertragung der Nachrichten dadurch neu zu starten, indem man einen kompli­ zierten Mechanismus hinzufügt, der den Verlust der Sendebe­ rechtigung feststellt, um die Nachrichten erneut zu senden, in welchem Fall ein Problem weiterhin dahingehend entsteht, daß das Rechnerbedienersystem 2 oder ähnliches die Nach­ richten nicht aussenden kann, bis die neue Sendeberechti­ gung ausgegeben wird.
ZUSAMMENFASSUNG DER ERFINDUNG
Die vorliegende Erfindung wurde entwickelt, um die zuvor erläuterten Probleme zu lösen. Es ist daher eine Aufgabe der vorliegenden Erfindung, ein Datenkommunikationssystem und ein Datenkommunikationsverfahren zu schaffen, welches die Fähigkeit hat, die Verzögerung oder die Verlustrate von Nachrichten zu reduzieren, die bei Nachrichtenkollisionen auftritt, und welches andere Computer befähigt, zu senden, selbst wenn ein bestimmter Computer einen Ausfall erleidet.
Gemäß einem ersten Aspekt der vorliegenden Erfindung wird ein Datenkommunikationssystem geschaffen, welches einen in­ ternen Computer enthält, der mit einem oder mit mehreren externen Computern über ein Netzwerk verbunden ist, wobei das Datenkommunikationssystem folgendes aufweist: eine er­ ste Speichereinrichtung zum Speichern einer ersten Informa­ tionsmenge, die jeder der externen Computer in einem Kommu­ nikationszyklus empfangen kann; eine zweite Speicherein­ richtung zum Speichern einer zweiten Informationsmenge, die zu jedem der externen Computer in dem Kommunikationszyklus bereits gesendet worden ist; eine Addiereinrichtung, um dann, wenn die zu einem der externen Computer zu sendenden Daten in eine Sendewarteschlange gesetzt werden, eine In­ formationsmenge der zu sendenden Daten zu der zweiten In­ formationsmenge zu addieren, die in der zweiten Spei­ chereinrichtung gespeichert und dem einen der externen Com­ puter zugeordnet ist; und eine Sendeeinrichtung zum Senden der Sendedaten zu einem der externen Computer lediglich dann, wenn das Additionsergebnis der Additionseinrichtung die erste Informationsmenge nicht überschreitet, welche der eine der externen Computer empfangen kann. Dies bietet den Vorteil der Möglichkeit, die Verzögerung oder die Verlust­ rate einer Nachricht zu reduzieren und andere Computer zu befähigen, Nachrichten selbst dann auszusenden, wenn ein bestimmter Computer einen Ausfall erleidet.
Hierbei kann die erste Speichereinrichtung eine dritte In­ formationsmenge speichern, die der interne Computer in dem Kommunikationszyklus senden kann; die zweite Speicherein­ richtung kann eine vierte Informationsmenge speichern, die der interne Computer in dem Kommunikationszyklus gesendet hat; und die Additionseinrichtung kann dann, wenn die zu sendenden Daten in eine Warteschlange gesetzt werden, eine Informationsmenge der zu sendenden Daten zu der vierten In­ formationsmenge hinzu addieren, die in der zweiten Spei­ chereinrichtung gespeichert ist, wobei das Datenkommunika­ tionssystem ferner folgendes aufweist: eine Verhinderungseinrichtung zum Verhindern des Aussendens von Sendedaten zu den externen Computern, wenn das Additionsergebnis der Ad­ ditionseinrichtung die dritte Informationsmenge überschrei­ tet. Dies bietet den Vorteil, verhindern zu können, daß die Sendedaten, die die Sendekapazität des Betriebssystems des sendenden Endes überschreiten, angefordert werden, wodurch der Computer des sendenden Endes die Verarbeitungen, die keine Sendeverarbeitung sind, reibungslos ausführt.
Die erste Speichereinrichtung kann eine maximale empfang­ bare Informationsmenge speichern, die jeder der externen Computer dem internen Computer zuweist. Dies bietet den Vorteil, die Möglichkeit zu haben, den internen Computer daran zu hindern, Daten zu senden, welche die Empfangskapa­ zität des externen Computers überschreiten, und zwar selbst dann, wenn der externe Computer Daten von anderen externen Computern empfängt.
Die erste Informationsmenge und die zweite Informations­ menge können je durch eine Zahl von Daten wiedergegeben werden.
Die erste Informationsmenge, die zweite Informationsmenge, die dritte Informationsmenge und die vierte Informations­ menge können je durch eine Zahl von Daten wiedergegeben werden.
Die erste Informationsmenge und die zweite Informations­ menge können je durch eine Anzahl von Datenpaketen wieder­ gegeben werden.
Die erste Informationsmenge, die zweite Informationsmenge, die dritte Informationsmenge und die vierte Informations­ menge können je durch eine Anzahl von Datenpaketen wieder­ gegeben werden.
Die Sendeeinrichtung kann dann, wenn kein Bestätigungs­ signal während einer vorbestimmten Zeitdauer von einem der externen Computer zurückgesendet wird, zu welchem die Sen­ deeinrichtung Sendedaten sendet, die Sendedaten wieder zu einem der externen Computer aussenden.
Die Sendeeinrichtung kann ihre Wiederübertragung der Sende­ daten anhalten, wenn die Anzahl der Wiederübertragungen eine vorbestimmte obere Grenze erreicht.
Das Datenkommunikationssystem kann ferner eine Sicherungs­ einrichtung umfassen, um dann, wenn die Sendedaten in Datenpakete aufgeteilt werden und ein Nachrichtenkopf von jedem der Datenpakete auf einem Teil der Sendedaten über­ schrieben wird, den Teil der Sendedaten in einem Siche­ rungsbereich zu sichern, und um den Teil der Sendedaten in deren Ursprungsbereich oder Zustand wieder herzustellen, nachdem ein momentanes Datenpaket ausgesendet wurde, welches den Nachrichtenkopf enthält, der auf dem originalen Bereich überschrieben ist.
Gemäß einem zweiten Aspekt der vorliegenden Erfindung wird ein Datenkommunikationsverfahren eines Systems geschaffen, welches einen internen Computer enthält, der mit einem oder mit mehreren externen Computern über ein Netzwerk verbunden ist, wobei das Datenkommunikationsverfahren die folgenden Schritte umfaßt: Speichern einer ersten Informationsmenge, die jeder der externen Computer in einem Kommunikationszy­ klus empfangen kann; Speichern einer zweiten Informations­ menge, die zu jedem der externen Computer in einem Kommuni­ kationszyklus bereits gesendet worden ist; Durchführen ei­ ner Addition einer Informationsmenge der Sendedaten zu der zweiten Informationsmenge, die dem einen der externen Com­ puter zugeordnet ist, wenn die zu sendenden Daten zu einem der externen Computer in eine Sendewarteschlange gesetzt werden; und Senden der Sendedaten zu dem einen der externen Computer lediglich dann, wenn das Additionsergebnis die erste Informationsmenge, die der eine der externen Computer empfangen kann, nicht überschreitet.
Hierbei kann das Datenkommunikationsverfahren ferner die Schritte umfassen: Speichern einer dritten Informationsmen­ ge, die der interne Computer in dem Kommunikationszyklus aussenden kann; Speichern einer vierten Informationsmenge, die der interne Computer in dem Kommunikationszyklus gesen­ det hat; und Addieren einer Informationsmenge der zu sen­ denden Daten zu der vierten Informationsmenge, wenn die zu sendenden Daten bzw. die Sendedaten in eine Sendewarte­ schlange gesetzt sind; und Verhindern einer Übermittlung von Sendedaten zu den externen Computern, wenn das Additi­ onsergebnis die dritte Informationsmenge überschreitet.
Die erste Informationsmenge und die zweite Informations­ menge können je durch eine Zahl von Daten wiedergegeben werden.
Die erste Informationsmenge, die zweite Informationsmenge, die dritte Informationsmenge und die vierte Informations­ menge können je durch eine Zahl von Daten wiedergegeben werden.
Die erste Informationsmenge und die zweite Informations­ menge können je durch eine Anzahl von Datenpaketen wieder­ gegeben werden.
Die erste Informationsmenge, die zweite Informationsmenge, die dritte Informationsmenge und die vierte Informations­ menge können je durch eine Anzahl von Datenpaketen wieder­ gegeben werden.
KURZE BESCHREIBUNG DER ZEICHNUNGEN
Fig. 1 ist ein Blockschaltbild, welches eine Ausfüh­ rungsform 1 eines Datenkommunikationssystems ge­ mäß der vorliegenden Erfindung zeigt;
Fig. 2 ist eine Folgetabelle, die den Algorithmus eines Sendeprozesses veranschaulicht;
Fig. 3 ist eine Folgetabelle, die den Algorithmus eines Empfangsprozesses veranschaulicht;
Fig. 4 ist ein Diagramm, welches eine Sende-Empfangs- Fähigkeitstabelle zeigt;
Fig. 5 ist ein Diagramm, welches eine Host-Management­ tabelle wiedergibt;
Fig. 6 zeigt ein Diagramm, welches eine Kanal-Manage­ menttabelle zeigt;
Fig. 7 ist eine Liste, die Bibliotheksfunktionen wieder­ gibt;
Fig. 8 ist ein Blockschaltbild, welches eine Ausfüh­ rungsform 2 des Datenkommunikationssystems nach der vorliegenden Erfindung zeigt;
Fig. 9 ist eine Folgetabelle, die den Algorithmus eines Sendeprozesses veranschaulicht;
Fig. 10 ist eine Folgetabelle, die den Algorithmus eines Empfangsprozesses veranschaulicht;
Fig. 11 ist ein Diagramm, welches einen Datenpaketbil­ dungsmechanismus an einem Sendeende veranschau­ licht; und
Fig. 12 zeigt ein Blockschaltbild, welches ein herkömmli­ ches Datenkommunikationssystem wiedergibt.
DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
Die Erfindung wird nun unter Hinweis auf die beigefügten Zeichnungen beschrieben.
AUSFÜHRUNGSFORM 1
Fig. 1 ist ein Blockschaltbild, welches eine Ausführungs­ form 1 eines Datenkommunikationssystems nach der vorliegen­ den Erfindung wiedergibt. In Fig. 1 bezeichnet das Bezugs­ zeichen 11 einen Host(-Computer), der unter Verwendung von Ethernet oder FastEthernet konfiguriert ist und an ein Netzwerk angeschlossen ist; und 12 bezeichnet eine Anwen­ dungssoftware, die dann, wenn eine Nachricht zu einem ex­ ternen Host über das Netzwerk ausgesendet wird, die gesen­ dete Nachricht (Sendedaten) in eine Sendewarteschlange 15 in der Middleware 13 unter Verwendung von Bibliotheksfunk­ tionen 14 setzt und die dann, wenn eine Nachricht von einem externen Host empfangen wird, die empfangene Nachricht (empfangenen Daten) aus einer Empfangswarteschlange 16 in der Middleware 13 unter Verwendung der Bibliotheksfunktio­ nen 14 wiedergewinnt.
Das Bezugszeichen 13 bezeichnet die Middleware, die die ge­ sendeten Nachrichten über einen Kanal (einen Einwegkanal, der den Host in einer Eins-zu-Eins-Entsprechung verbindet) aussendet oder überträgt und die die Empfangsnachrichten über einen Kanal zur gleichen Zeit empfängt; 15 bezeichnet die Sendewarteschlange, in die die zu sendenden Nachrichten gesetzt werden; 16 bezeichnet die Empfangswarteschlange, in die empfangenen Nachrichten gesetzt werden; 17 bezeichnet eine Tabelle (Speichereinrichtung) zum Speichern der Anzahl von Bytes (Zahl der Daten) oder der Zahl der Datenpakete, die der vorhandene Host in einem Kommunikationszyklus sen­ den kann, und um die Zahl der Bytes (Zahl der Daten) oder die Zahl der Datenpakete zu speichern, die jeder externe Host in dem Kommunikationszyklus empfangen kann; 18 be­ zeichnet einen Speicher (Speichereinrichtung) zum Speichern der Zahl von Bytes (Zahl der Daten) oder der Zahl von Da­ tenpaketen der Daten, die der vorhandene Host tatsächlich in dem Kommunikationszyklus senden kann, und um die Zahl der Bytes (Zahl der Daten) oder die Zahl der Datenpakete der Daten zu speichern, die tatsächlich zu jedem externen Host h in dem Kommunikationszyklus gesendet werden; 19 be­ zeichnet einen Sendeprozeß (Additionseinrichtung, Sendeein­ richtung und Verhinderungseinrichtung) zum Senden der Sen­ denachrichten unter Inbetrachtziehung der Sendefähigkeit des vorhandenen Hosts oder der Empfangsfähigkeit der exter­ nen Hosts; und 20 bezeichnet einen Empfangsprozeß, um die Empfangsnachrichten zu empfangen.
Als nächstes wird die Betriebsweise der vorliegenden Aus­ führungsform 1 unter Hinweis auf die Folgetabellen, die in den Fig. 2 und 3 gezeigt sind, beschrieben, welche den Al­ gorithmus des Sendeprozesses bzw. des Empfangsprozesses veranschaulichen.
Wenn der Host 11 eine Nachricht zu einem externen Host sen­ det, sendet der Sendeprozeß 19 in der Middleware 13 ein UDP­ (User Datagram Protocol = Anwender-Datagram-Protokoll)- Datenpaket (gesendete Nachricht), welches die Sendefähig­ keit des vorhandenen Hosts 11 oder die Empfangsfähigkeit des externen (Bestimmungs-)Hosts in Betracht zieht oder be­ trifft. In diesem Fall erwirbt der Host 11 die erforderli­ chen Informationen von einer Sende-Empfangs-Fähigkeits­ tabelle 17a, einer Host-Managementtabelle 17b und einer Kanal-Managementtabelle 17c in der Tabelle 17, was nun kurz beschrieben werden soll, bevor mit der Beschreibung der Be­ triebsweise begonnen wird.
Sende-Empfangs-Fähigkeitstabelle 17a (siehe Fig. 4)
Die Sende-Empfangs-Fähigkeitstabelle 17a speichert Parame­ ter hinsichtlich des Kommunikationszyklusses des Sendepro­ zesses und Parameter hinsichtlich der Sende-Empfangs-Fähig­ keit der Hosts. Die Beschreibung der Parameter ist wie folgt:
  • 1. T_tick
    Dieser zeigt den Kommunikationszyklus des Sendeprozes­ ses an. Es wird beispielsweise ein Wert, wie 10 ms, gespeichert.
  • 2. L_recv
    Eine maximale Zahl von Bytes, die der vorhandene Host in dem Kommunikationszyklus empfangen kann.
  • 3. P_recv
    Eine maximale Zahl von Datenpaketen, die der vorhande­ ne Host in dem Kommunikationszyklus empfangen kann.
  • 4. L_send
    Eine maximale Zahl von Bytes, die der vorhandene Host in dem Kommunikationszyklus senden kann.
  • 5. P_send
    Eine maximale Zahl von Datenpaketen, die der vorhande­ ne Host in dem Kommunikationszyklus senden kann.
  • 6. L_(h)recv
    Eine maximale Zahl von Bytes, die jeder Host [h] an­ ders als der vorhandene Host, in dem Kommunikationszy­ klus empfangen kann, der durch den Host [h] dem vor­ handenen Host zugewiesen wird.
  • 7. P_[h]recv
    Eine maximale Zahl von Datenpaketen, die jeder Host [h], anders als der vorhandene Host, in dem Kommunikationszyklus empfangen kann, der durch den Host [h] dem vorhandenen Host zugewiesen wird.
Host-Managementtabelle 17b (siehe Fig. 5)
Die Host-Managementtabelle 17b speichert Identifizierer h, die durch den vorhandenen Host dazu verwendet werden, um die externen Hosts zu identifizieren und die IP(Internet Protokoll)-Adressen, die den Identifizierern h entsprechen.
Kanal-Managementtabelle 17c (siehe Fig. 6)
Der Kanal Chi, bei dem i (= 0, 1, 2, . . ., N - 1) ein Identifi­ zierer zum Identifizieren des Kanals ist, bildet einen Ein­ weg-Kommunikationspfad zum Erstellen von einer Eins-zu- Eins-Verbindung zwischen den Hosts, und die Kanal-Manage­ menttabelle 17c speichert Parameter oder ähnliches hin­ sichtlich der Kanäle. Die Beschreibung der Parameter lautet wie folgt.
  • 1. Zyklus T[i]
    Er zeigt einen Kommunikationszyklus oder einen minima­ len Übertragungs- oder Sendeintervall einer Nachricht an.
  • 2. Nachrichtenlänge M[i]
    Er zeigt eine maximale sendbare Nachrichtenlänge an.
  • 3. Richtung (Senden/Empfangen)
    Er zeigt die Kommunikationsrichtung eines Kanals, ge­ sehen von dem vorhanden Host aus, an.
  • 4. Bestimmungshost-Identifizierer
    Er zeigt einen Identifizierer des Bestimmungshosts an.
  • 5. Flag (Leerlauf/Senden/Bestätigung wiedersenden)
    Es handelt sich um einen Parameter zum Prüfen des Kom­ munikationszustandes des Kanals.
  • 6. Gesendete seq#
    Die Folge- oder Sequenznummer der letzten Nachricht in den Nachrichten, die bereits gesendet worden sind.
  • 7. Bestätigtes seq#
    Die Sequenzzahl der letzten Nachricht in den Nachrich­ ten, die hinsichtlich ihrer Ankunft bestätigt worden sind.
Als nächstes wird die Betriebsweise mehr in Einzelheiten nach einer Kurzbeschreibung der function_send( ) der Bi­ bliotheksfunktionen 14 beschrieben, welche die Anwendungs­ software 12 verwendet, wenn die Sendenachricht zu einem ex­ ternen Host gesendet wird.
Die Inhalte der function_send( ) sind in Fig. 7 gezeigt. Es handelt sich um eine Funktion, um die Sendenachricht in der Sendewarteschlange 15 (FIFO-Warteschlange), die für jeden Kanal vorbereitet wird, zu plazieren.
Hierbei wird der Kanalidentifizierer Chi des zu verwenden­ den Kanals in das Argument Chi_id substituiert und es wird eine der Literalkonstanten BLOCK und NONBLOCK in die Argu­ mentflags substituiert (in dem Fall, bei dem die Literal­ konstante BLOCK substituiert wird, wenn die Sendung nicht erreicht werden kann, da der Überlauf der Warteschlange oder ähnliches auftritt, wenn die Funktion aufgerufen ist, der Funktionsaufruf blockiert ist (nicht rückgeleitet wird) bis die Sendung ermöglicht wird, und nach Vervollständigung der Sendung zurückgeleitet wird. Andererseits wird in dem Fall, bei dem die Literalkonstante NONBLOCK substituiert wird, wenn die Sendung außer Bereitschaft gesetzt ist, wenn die Funktion aufgerufen wird, ein Fehler zurückgeleitet.
Ferner wird ein Zeiger auf eine sbuf_t-Struktur in ein Ar­ gument sbuf substituiert, es wird die Zahl der Bytes einer gesendeten Nachricht in die Zahl "size" ("Größe") substitu­ iert, und es wird ein Zeiger auf einen Bereich, der die Sendenachricht speichert, in das Glied (member) "data" ("Daten") substituiert.
Wenn die Sendenachricht in die Sendewarteschlange 12 in dieser Weise eingesetzt wird, sendet der Sendeprozeß 19 die in die Sendewarteschlange 15 plazierte Nachricht zu dem Be­ stimmungshost. Bei einer Aktivierung bei jedem T_tick-In­ tervall substituiert der Sendeprozeß 19 Nullen in die zeit­ weiligen Variablen l_send, p_send, 1-[h]recv und p_[h]recv, um diese zu initialisieren (Schritt ST1).
Um nun auf die Kanal-Managementtabelle 17c einzugehen, so überwacht der Sendeprozeß (task) 19 nach der Initialisie­ rung der zeitweiligen Variablen die Kanäle, bei denen die Kommunikationsrichtung gleich ist "senden", und zwar gese­ hen von dem vorhandenen Host aus, und prüft, ob die Sende­ kanäle eine Sendezeit erreichen. Wenn irgendeiner von die­ sen die Sendezeit erreicht, ändert der Sendeprozeß (task) 19 das Flag dieses Kanals von "idle" ("Leerlauf") in "transmit" ("senden") (Schritt ST2, ST4).
Die Sendezeit der Kanäle kann aus der Zeit erhalten werden, in der der Host aktiviert ist, aus T_tick und der Zahl von Malen der Aktivierungen bis zum gegenwärtigen Zeitpunkt.
Durch Ändern des Flags von "idle" ("Leerlauf") auf "trans­ mit" ("senden") entscheidet der Sendeprozeß 19, ob irgend­ ein nicht gesendetes Datenpaket (ein Datenpaket, das noch nicht unter den Datenpaketen gesendet wurde, welche die Sendenachricht bilden) in der Sendewarteschlange 15 des Ka­ nals Chi existiert, der dem Flag zugeordnet ist (Schritte ST10-ST13).
Wenn kein noch nicht gesendetes Datenpaket vorhanden ist, erreicht der Sendeprozeß 19 die Sendewarteschlange 15 für den nächsten Kanal, da es nicht erforderlich ist, die Sen­ deverarbeitung des momentanen Kanals auszuführen. Wenn ir­ gendein nicht gesendetes Datenpaket vorhanden ist, so er­ wirbt andererseits der Sendeprozeß 19 von dem gespeicherten Wert der zeitweiligen Variablen l_send die Gesamtsumme der Bytes, die durch den vorhandenen Host in dem momentanen Kommunikationszyklus gesendet werden.
Ferner erlangt der Sendeprozeß 19 von dem gespeicherten Wert der zeitweiligen Variablen l_[h]recv die Gesamtsumme der Bytes, die an jeden externen Host h in dem Kommunikati­ onszyklus gesendet werden und erwirbt von dem gespeicherten Wert der zeitweiligen Variablen p_[h]recv die Gesamtsumme der Datenpakete, die zu jedem externen Host h in dem Kommu­ nikationszyklus gesendet werden.
Unter Erlangung der gespeicherten Werte der zeitweiligen Variablen l_send und ähnlicher und Ableiten der gesamten Bytezahl, die der vorhandene Host in dem Kommunikationszy­ klus gesendet hat, addiert der Sendeprozeß 19 zu der gesam­ ten Bytezahl die Zahl der Bytes der nicht gesendeten Daten­ pakete und trifft eine Entscheidung, ob der vorhandene Host die Fähigkeit besitzt, das nicht gesendete Datenpaket aus­ zusenden, indem das Additionsergebnis mit L_send (der maxi­ malen Zahl der Bytes, die durch den vorhandenen Host in dem Kommunikationszyklus aussendbar sind) bei dem Schritt ST14 verglichen wird.
Wenn das Additionsergebnis L_send überschreitet, entschei­ det der Sendeprozeß 19, daß der vorhandene Host das nicht gesendete Datenpaket nicht aussenden kann, da das Additi­ onsergebnis die sendbare Bytezahl in dem Kommunikationszy­ klus überschreitet.
In gleicher Weise addiert der Sendeprozeß 19 die Zahl der Bytes des nicht gesendeten Datenpakets zu der Gesamtzahl der Bytes, die bereits zu dem Bestimmungshost h in dem Kom­ munikationszyklus gesendet worden ist und trifft eine Ent­ scheidung, ob der Bestimmungshost die Fähigkeit hat, das nicht gesendete Datenpaket zu empfangen, indem das Additi­ onsergebnis mit L_[h]recv (der maximalen Zahl an Bytes, die durch den Bestimmungshost h in dem Kommunikationszyklus empfangbar ist, der dem vorhandenen Host durch den Bestim­ mungshost zugewiesen wird) bei dem Schritt ST15 verglichen wird.
Wenn das Additionsergebnis L_[h]recv überschreitet, ent­ scheidet der Sendeprozeß 19, daß der Bestimmungshost h das nicht gesendete Datenpaket nicht empfangen kann, da das Ad­ ditionsergebnis die empfangbare Bytezahl des Bestimmungs­ hosts h in dem Kommunikationszyklus überschreitet.
Dann addiert der Sendeprozeß 19 eins zu der Gesamtzahl der Datenpakete, die zu dem Bestimmungshost h in dem Kommunika­ tionszyklus gesendet werden (wenn eine Vielzahl von Daten­ paketen gleichzeitig gesendet werden, wird die Zahl der Da­ tenpakete addiert anstelle von eins) und trifft eine Ent­ scheidung, ob der Bestimmungshost befähigt ist, das nicht gesendete Datenpaket zu empfangen, indem das Additionser­ gebnis P_[h]recv (die maximale Zahl an Datenpaketen, die der Bestimmungshost h in dem Kommunikationszyklus empfangen kann, die durch den Bestimmungshost h dem vorhandenen Host zugewiesen wird) bei dem Schritt ST16 verglichen wird.
Wenn das Additionsergebnis P_[h]recv überschreitet, ent­ scheidet der Sendeprozeß 19, daß der Bestimmungshost h das nicht gesendete Datenpaket nicht empfangen kann, da das Ad­ ditionsergebnis die empfangbare Byteanzahl des Bestimmungs­ hosts h in dem Kommunikationszyklus überschreitet.
Anschließend sendet der Sendeprozeß 19 das nicht gesendete Datenpaket zu dem Bestimmungshost h bei dem Schritt ST17 lediglich dann, wenn die Additionsergebnisse jeweils unter L_send, L_[h]recv und P_[h]recv liegen.
Nach dem Senden des nicht gesendeten Datenpakets zu dem Be­ stimmungshost h erneuert der Sendeprozeß 19 die zeitweili­ gen Variablen, indem zu l_send und l_[h]recv die Bytezahl des gesendeten Datenpakets addiert wird und indem eins zu p_send und p_[h]recv addiert wird (Schritt ST18).
Wenn das gesendete Datenpaket das letzte Datenpaket der ge­ sendeten Nachricht ist, wird die Sendung der Sendenachricht vervollständigt. Somit ändert der Sendeprozeß 19 das Flag des Kanals Chi von "senden" nach "Leerlauf" und entfernt die Sendenachricht aus der Sendewarteschlange bei dem Schritt ST19.
Wenn irgendwelche Anwendungsprogramme vorhanden sind, die für einen Aufruf der function_send( ), welches dem Kanal Chi zugeordnet ist, blockiert sind, so wird eines der An­ wendungsprogramme freigegeben, so daß dessen Sendenachricht in die Sendewarteschlange 15 gesetzt wird.
Nach der Vervollständigung der Sendung von all den Kanälen beendet der Sendeprozeß 19 die Sendeverarbeitung. Wenn an­ dererseits der vorhandene Host unfähig ist, ein Datenpaket einer minimalen Datenpaketlänge L_packet,min zu senden, vergleicht der Sendeprozeß 19 die zeitweilige Variable p_send mit P_send (der maximalen Datenpaketzahl, die der vorhandene Host in dem Kommunikationszyklus senden kann).
Wenn die zeitweilige Variable p_send P_send erreicht, trifft der Übertragungsprozeß 19 eine Entscheidung, daß der vorhandene Host unfähig ist zu senden und vervollständigt seine Verarbeitung bei dem Schritt ST20.
Alternativ kann der Sendeprozeß 19 seine Verarbeitung dann vervollständigen, wenn der Wert, der durch Subtrahieren der zeitweiligen Variablen l_send von L_send erhalten wird, kleiner ist als L_packet,min.
Als nächstes wird die Betriebsweise gemäß einem Empfang von UDP-Datenpaketen (Empfangsnachricht) beschrieben, die von einem externen Host ausgesendet werden.
Die von einem externen Host ausgesendete Nachricht wird durch den Empfangsprozeß 20 empfangen. Der Empfangsprozeß 20, der bei dem Schritt ST31 aktiviert wird, wenn ein Da­ tenpaket von dem Netzwerk ankommt, prüft die Übereinstim­ mung der Sequenzzahl der Nachricht und der Datenpaketzahl (die Reihenfolge der Datenpakete innerhalb der Nachricht).
Hierbei werden die Sequenzzahl der Nachricht und die Daten­ paketzahl zu jedem Datenpaket addiert und es wird die Da­ tenpaketzahl eins um eins erhöht, beginnend mit "0", die dem Anfangs-Datenpaket der Nachricht zugewiesen wird.
Spezifischer ausgedrückt, trifft der Empfangsprozeß 20 eine Entscheidung, daß das empfangene Datenpaket das Anfangs- Datenpaket der Nachricht ist, wenn ein zeitweiliger Puffer (nicht gezeigt) keinerlei Datenpaket gespeichert hält. Wenn somit das Datenpaket, welches in dieser Situation empfangen wird, eine Datenpaketzahl oder Nummer hat, die verschieden ist von "0", trifft der Empfangsprozeß 20 eine Entschei­ dung, daß ein Datenpaket in der Nachricht verloren gegangen ist, löscht das empfangene Datenpaket und wartet auf das nächste Datenpaket (Schritt ST32 und ST33).
Wenn andererseits die Datenpaketzahl des empfangenen Daten­ pakets gleich ist "0", speichert der Empfangsprozeß 20 das empfangene Datenpaket in dem zeitweiligen Puffer, und zwar bei dem Schritt ST34.
Es ist hierbei erforderlich, daß die Sequenzzahl in dem Empfangs-Datenpaket gleich ist der Sequenzzahl in den Da­ tenpaketen, die in dem zeitweiligen Puffer gespeichert sind, und daß die Datenpaketzahl des empfangenen Datenpa­ kets gleich ist eins plus der Datenpaketzahl des letzten Datenpakets, welches in dem zeitweiligen Puffer gespeichert wurde. Demzufolge löscht der Empfangsprozeß 20, wenn nicht diese Bedingungen befriedigt werden, unter Beachtung, daß ein Datenpaketverlust in der Nachricht stattgefunden hat, die Datenpakete in dem zeitweiligen Puffer und wartet auf die Ankunft des nächsten Datenpakets (Schritte ST35 und ST36).
Wenn im Gegensatz dazu diese Bedingungen erfüllt werden, speichert der Empfangsprozeß 20 das empfangene Datenpaket in dem zeitweiligen Puffer bei dem Schritt ST37.
Der Empfangsprozeß 20 wiederholt somit den zuvor erläuter­ ten Prozeß, bis das letzte Datenpaket der Nachricht empfan­ gen wird (Schritt ST38). Wenn das letzte Datenpaket in dem zeitweiligen Puffer gespeichert ist, stellt der Empfangs­ prozeß 20 die ursprüngliche Nachricht aus all den Datenpa­ keten zusammen, die in dem zeitweiligen Puffer gespeichert sind, und zwar bei dem Schritt ST39 und löscht die Datenpa­ kete in dem zeitweiligen Puffer bei dem Schritt ST40, nach­ dem die Nachricht in die Empfangswarteschlange 16 (FIFO- Warteschlange) eingefügt worden ist.
Wenn die Empfangswarteschlange 16 voll ist, wird die älte­ ste oder späteste Nachricht aus der Warteschlange in einer vorgeschriebenen Prozedur entfernt.
Wenn irgendwelche Anwendungsprogramme vorhanden sind, die für einen Aufruf der function_recv( ), welches dem momenta­ nen Kanal zugeordnet ist, blockiert sind, so wird eines der Anwendungsprogramme freigegeben, so daß es eine Empfangs­ nachricht von der Empfangswarteschlange 16 erwirbt.
Nach der Vervollständigung der zuvor erläuterten Verarbei­ tung wartet der Empfangsprozeß 20 auf die Ankunft des näch­ sten Datenpaketes bei dem Schritt ST41.
Wenn die Empfangsnachricht einmal in die Empfangswarte­ schlange 16 eingefügt worden ist, verwendet die Anwendungs­ software function_recv( ) in den Bibliotheksfunktionen 14. Es soll somit die function_recv( ) kurz beschrieben werden.
Die Inhalte der function_recv( ) sind in Fig. 7 gezeigt. Es handelt sich um eine Funktion zum Lesen der Empfangsnach­ richt aus der Empfangswarteschlange 16, die für jeden Kanal vorbereitet wird.
Hierbei wird der Kanalidentifizierer Chi des zu verwenden­ den Kanals in das Argument ch_id substituiert, es wird ein Zeiger zu einem Bereich zum Speichern der gelesenen Emp­ fangsnachricht in das Argument buf substituiert und es wird eine maximale Länge einer gelesenen Nachricht in das Argu­ ment limit_size substituiert. Wenn die Länge der Empfangs­ nachricht in der Empfangswarteschlange 16 länger ist als limit_size, werden Anfangs-limit_size-Bytes der Nachricht gespeichert.
Die Größe der gelesenen Empfangsnachricht wird in das Argu­ ment "size" ("Größe") substituiert. Wenn die Länge der Emp­ fangsnachricht größer ist als die limit_size, so wird der Wert der Länge gespeichert. Es wird eine der Literalkon­ stanten BLOCK und NONBLOCK in die Argumentflags substitu­ iert (in dem Fall, bei dem die Literalkonstante BLOCK sub­ stituiert wird, wenn keine Empfangsnachricht in der Emp­ fangswarteschlange 16 vorhanden ist, wird der Funktionsauf­ ruf blockiert, bis eine Nachricht an dem Kanal ankommt. An­ dererseits für den Fall, bei dem die Literalkonstante NONBLOCK substituiert wird, wenn keine Empfangsnachricht in der Empfangswarteschlange 16 vorhanden ist, wird ein Fehler rückgeleitet).
Obwohl die Aufteilung der Sendenachricht in der vorliegen­ den Ausführungsform 1 nicht beschrieben ist, kann der Sen­ deprozeß 19 die Sendenachricht in der erforderlichen Weise aufteilen und kann die Aufteilungen an das Netzwerk in Form von UDP-Datenpaketen ausgeben.
Jedes Datenpaket enthält die sbuf_t-Struktur, wie in Fig. 7 gezeigt ist, als dessen Anfangsblock und enthält nachfol­ gend dem Anfangsblock einen Teil der Inhalte (Datenab­ schnitt) der originalen Nachricht.
In der sbuf_t-Struktur bezeichnet das Glied ch_id_at_sender den Kanalidentifizierer an dem Sendeende; das Glied ch_id_at_receiver bezeichnet den Kanalidentifizierer an dem Empfangsende. Das Glied addr_sender bezeichnet die IP- Adresse an dem Sendeende; das Glied msg_seq_num bezeichnet die Sequenzzahl der Nachricht; das Glied packet_id bezeich­ net die Datenpaketzahl in der Nachricht; und das Glied "si­ ze" ("Größe") bezeichnet die Länge (Zahl der Bytes) des Da­ tenabschnitts in dem Datenpaket.
Es ist kein Byte dem Glied "data" ("Daten") zugeordnet und der Anfangsblock enthält nicht das Glied "data".
Wie oben beschrieben wurde, ist die vorliegende Ausfüh­ rungsform 1 in solcher Weise konfiguriert, daß dann, wenn eine Nachricht zu einem Bestimmungshost ausgesendet wird, der Sendeprozeß 19 in der Middleware 13 die Sendefähigkeit des vorhandenen Hosts in Betracht zieht und auch die Emp­ fangsfähigkeit des Bestimmungshosts, bevor die Nachricht ausgesendet wird. Dies bietet Vorteile gemäß der Fähigkeit, nicht nur die Verzögerung der Nachricht aufgrund einer Kol­ lision von Nachrichten zu reduzieren, sondern auch das Ver­ lustverhältnis der Nachricht zu reduzieren, wodurch der Host befähigt wird, eine Nachricht selbst dann zu senden, wenn irgendein anderer Host einen Ausfall erleidet.
Bei der vorliegenden Ausführungsform 1 werden Nachrichten asynchron zwischen den Hosts ohne Herstellung einer Syn­ chronisation zwischen denselben gesendet. Somit hat ein Ausfall eines bestimmten Hosts keinen Einfluß auf die ex­ ternen Hosts, wodurch diese befähigt werden, Nachrichten frei von einem Ausfall oder Fehler zu senden. Es ist bekannt, daß die Sicherstellung einer maximalen Bytezahl und einer maximalen Datenpaketzahl, die in einer festgelegten Zeit (beispielsweise 10 msec) von den Hosts gesendet wer­ den, eine Netzwerksbelastung weniger als ein vorbestimmter Betrag garantiert, was seinerseits die Verzögerung oder das Verlustverhältnis der Nachrichten aufgrund von Nachrichten­ kollisionen an der Ethernet (siehe Verweisstelle 1) redu­ ziert.
Verweisstelle 1: Steven L. Beuerman and Edward J. Coyle "The Delay Characteristics of CSMA/CD Networks", IEEE Transaction on Communications, Vol. 36, Nr. 5, Seiten 553-­ 563, Mai 1988.
AUSFÜHRUNGSFORM 2
Fig. 2 ist ein Blockschaltbild, welches eine Ausführungs­ form 2 des Datenkommunikationssystems nach der vorliegenden Erfindung zeigt, bei dem die Abschnitte entsprechend denje­ nigen von Fig. 1 mit den gleichen Bezugszeichen versehen sind und eine Beschreibung derselben hier weggelassen ist.
In Fig. 8 bezeichnet das Bezugszeichen 21 einen Empfangs­ prozeß, der nicht nur die gleichen Funktionen wie der Emp­ fangsprozeß 20 ausführt, sondern auch in eine Bestätigungs­ empfangswarteschlange 22 ein Bestätigungs-Datenpaket (Be­ stätigungssignal) einfügt, wenn dieses von einem externen Host empfangen wird; 22 bezeichnet die Bestätigungsemp­ fangswarteschlange zum Speichern des Bestätigungs-Daten­ pakets, 23 bezeichnet einen Bestätigungsprozeß, der das Be­ stätigungs-Datenpaket von der Bestätigungsempfangswarte­ schlange 22 erwirbt, aus dem Bestätigungs-Datenpaket einen Kanalidentifizierer i und eine Sequenzzahl liest und eine Bestätigungssequenzzahl dieses Kanals auf den neuesten Stand bringt; 24 bezeichnet einen Sendeprozeß 24 (Additi­ onseinrichtung, Sendeeinrichtung und Verhinderungseinrich­ tung), der nicht nur die gleichen Funktionen wie der Sendeprozeß 19 besitzt, sondern auch nach dem Aussenden einer Nachricht, eine gesendete Sequenzzahl in der Kanal-Manage­ menttabelle 17c mit der bestätigten Sequenznummer ver­ gleicht und der die Nachricht zurücksendet, wenn diese über eine vorbestimmte Zeit hinweg nicht übereinstimmen.
Die Betriebsweise der vorliegenden Ausführungsform 2 soll nun unter Hinweis auf die Sequenztabelle der Fig. 9 und 10 beschrieben werden. Fig. 9 ist eine Sequenztabelle, die ei­ nen Algorithmus eines Sendeprozesses veranschaulicht, und Fig. 10 ist eine Sequenztabelle, die einen Algorithmus ei­ nes Empfangsprozesses veranschaulicht.
In einem Anlagen-Überwachungssteuersystem ergibt sich bei­ spielsweise selbst dann, wenn gewisse Nachrichten der Über­ wachungsdaten verloren gehen, die periodisch von einem Kon­ troller zu einer Rechnerbedienerstation gesendet werden, eine geringe Wirkung auf das Gesamtsystem.
Wenn jedoch eine Befehlsnachricht zum Erneuern von Ein­ stellwerten verloren geht, die von einer Rechnerbediener­ station (Betreiberstation) zu dem Kontroller mit Befehlen eines Betreibers der Anlage gesendet wird, hat dies eine entscheidende Wirkung auf das Gesamtsystem.
Es ist somit ein Wiedersenden einer verlorenen Nachricht und das Senden einer Bestätigung einer Nachricht zurück zu der Sendeseite für ein solch ein System sehr wichtig.
Bei der vorhergehenden Ausführungsform 1 kann jedoch, ob­ wohl der Sendeprozeß 19 eine Nachricht aussendet, die An­ wendungssoftware 12 der Sendeseite nicht bestätigen, ob der Bestimmungshost die Nachricht empfängt oder nicht und kann daher die Nachricht nicht wieder oder nochmals senden.
Im Hinblick darauf fügt die vorliegende Ausführungsform 2 die Bestätigungsempfangswarteschlange 22 und den Bestäti­ gungsprozeß 23 hinzu.
Speziell beim Empfang einer Sendenachricht sendet der Be­ stimmungshost zu dem Ursprungshost ein Bestätigungs-Daten­ paket, welches anzeigt, daß er die Sendenachricht empfängt.
Das Bestätigungs-Datenpaket enthält den Kanalidentifizierer i und die Sequenzzahl der momentanen Nachricht.
Wenn das Bestätigungs-Datenpaket zu dem sendenden Host auf diese Weise zurückgesendet wird, empfängt der Empfangspro­ zeß 21 dieses und setzt es bei dem Schritt ST71 in die Be­ stätigungsempfangswarteschlange 22.
Das Einsetzen des Bestätigungs-Datenpakets in die Bestäti­ gungsempfangswarteschlange 22 aktiviert den Bestätigungs­ prozeß 23, der das Bestätigungs-Datenpaket von der Bestäti­ gungsempfangswarteschlange 22 erwirbt und der aus dem Be­ stätigungs-Datenpaket den Kanalidentifizierer i und die Se­ quenzzahl der Sendenachricht liest.
Unter Identifizierung des Kanals, welcher der Sendenach­ richt zugeordnet ist, aus dem Kanalidentifizierer i, erneu­ ert der Bestätigungsprozeß 23 die bestätigte Sequenzzahl dieses Kanals auf die Sequenzzahl der Sendenachricht.
Andererseits vergleicht der Sendeprozeß 24 nach dem Senden der Nachricht die gesendete Sequenzzahl in der Kanal-Mana­ gementtabelle 17c mit der bestätigten Sequenzzahl und, wenn die zwei Sequenzzahlen übereinstimmen (wenn der Bestäti­ gungsprozeß 23 die bestätigte Sequenzzahl auf die Sequenz­ zahl der Sendenachricht erneuert), trifft der Sendeprozeß 24 eine Entscheidung, daß die gesendete Nachricht an dem Empfangshost ohne Fehler ankommt. Wenn die zwei Sequenzzah­ len nicht über eine vorbestimmte Zeitperiode hinweg übereinstimmen, sendet der Sendeprozeß 24 die Sendenachricht erneut.
Wenn die Zahl von Malen der erneuten Sendungen eine vorbe­ stimmte Zahl (obere Grenze) erreicht, hält der Sendeprozeß 24 die Übertragungswiederholung der Sendenachricht an und unterrichtet die Anwendungssoftware 12 über diese Tatsache.
Wenn, spezieller gesagt, der Sendeprozeß 24 bei dem Schritt ST4 eine Entscheidung trifft, daß eine Sendezeit noch nicht erreicht worden ist, trifft er bei dem Schritt ST51 eine Entscheidung, ob eine Bestätigungswiedersendezeit erreicht worden ist oder nicht und, wenn die Zeit erreicht ist, än­ dert er das Flag des Kanals auf "Bestätigungsübertragungs­ wiederholung".
Die Bestätigungsübertragungswiederholungszeit einer gesen­ deten Nachricht des Kanals wird in der folgenden Weise in bezug auf die Sendezeit t_start bestimmt.
t_start + T_ack, T_start + 2T_ack, . . ., t_start + N_ack.T_ack,
worin N_ack die vorbestimmte Zahl von Malen der Bestäti­ gungsübertragungswiederholungen für den Kanal ist, T_ack ein maximales Vielfaches von T_tick ist, welches (T/N_ack) nicht überschreitet und worin T der Zyklus des Kanals ist. Wenn das positive T_ack, welches diese Bedingungen erfüllt, nicht vorhanden ist, wird eine Entscheidung getroffen, daß die Bestätigungsübertragungswiederholung des Kanals unmög­ lich ist.
Nachfolgend führt der Sendeprozeß 24 die nachfolgenden Ver­ arbeitungen des Kanals durch, dessen Richtung gleich ist "transmit" ("senden") und dessen Flag "Bestätigungsübertra­ gungswiederholung" anzeigt.
Wenn der Sendeprozeß 24 mit der Übertragungswiederholung einer Nachricht begonnen hat und bereits ein Paar Datenpa­ kete gesendet hat, führt er eine nachfolgende Datenpaket­ sendeverarbeitung durch (Schritte ST54 und ST58).
Wenn andererseits der Sendeprozeß 24 noch nicht mit der Übertragungswiederholung einer Nachricht begonnen hat, prüft er, ob eine nicht bestätigte Nachricht vorhanden ist oder nicht, indem die gesendete Sequenzzahl mit der bestä­ tigten Sequenzzahl des momentanen Kanals bei dem Schritt ST55 verglichen wird.
Wenn die zwei Sequenzzahlen übereinstimmen, vervollständigt der Sendeprozeß 24 die Verarbeitung des Kanals. Wenn im Ge­ gensatz dazu keine Übereinstimmung vorliegt, prüft der Sen­ deprozeß 24, ob die Zahl von Malen der Bestätigungsübertra­ gungswiederholungen der gesendeten Nachricht die vorbe­ stimmte Zahl N_ack der Bestätigungsübertragungswiederholun­ gen des Kanals erreicht hat und, wenn N_ack erreicht wird, trifft er eine Entscheidung, daß der Zeitablauf der Über­ tragung stattfindet und sendet zu der Anwendungssoftware 12 eine Ausnahmebenachrichtigung, und zwar bei dem Schritt ST56. Wenn N_ack nicht erreicht wird, bereitet sich der Sendeprozeß 24 für die Übertragungswiederholung der Nach­ richt vor, die unmittelbar zuvor oder kürzlich gesendet wurde (Schritt ST57).
Von dem Schritt ST58 aufwärts nimmt der Sendeprozeß 24 ein Datenpaket von der Übertragungswiederholungsnachricht auf und sendet dieses. Durch die Schritte ST59-ST65 hindurch trifft der Sendeprozeß 24 eine Entscheidung, ob die Über­ tragung oder Sendung des Datenpakets eine Überlastung hin­ sichtlich der Sendefähigkeit des vorhandenen Hosts verur­ sacht oder hinsichtlich der Empfangsfähigkeit des Empfangs­ endes verursacht und lediglich dann, wenn der Prozeß ent­ scheidet, daß die Übertragung oder Aussendung keine Überla­ stung verursacht, sendet er ein Datenpaket und bringt die zeitweiligen Variablen auf den neuesten Stand. Wenn das Da­ tenpaket gesendet wird, trifft der Sendeprozeß 24 eine Ent­ scheidung, ob ein anderes Datenpaket mit der minimalen Län­ ge aussendbar ist, und zwar innerhalb des momentanen Zy­ klusses, und, wenn dies unmöglich ist, vervollständigt der Prozeß seine Verarbeitung.
AUSFÜHRUNGSFORM 3
Bei den vorangegangenen Ausführungsformen 1 und 2 teilt das Sendeende eine Nachricht in mehrere Datenabschnitte auf und bildet Datenpakete, indem zu dem Anfang von jedem Datenab­ schnitt ein Anfangsblock mit der sbuf_t-Struktur hinzu ad­ diert wird, wie dies in Fig. 7 gezeigt ist. Da die origina­ len Daten in einem durchgehenden oder kontinuierlichen Be­ reich in dem Hauptspeicher abgespeichert sind, muß einer der folgenden Schritte durchgeführt werden, um das zweite und die nachfolgenden Datenpakete zu erzeugen.
  • 1. Überschreiben des Anfangsblocks des Datenabschnitts des vorhergehenden Datenpakets.
  • 2. Kopieren des Datenabschnitts auf einen anderen Bereich und Addieren des Anfangsblocks zu dem kopierten Daten­ abschnitt.
Die originalen Daten sind in einem Fall gemäß einer Über­ tragungswiederholung der Nachricht erforderlich, was dann notwendig wird, wenn ein unbestätigter Zustand nach der Übertragung einer Nachricht auftritt, wie bei der zuvor er­ läuterten Ausführungsform 2. Das Verfahren (1) kann jedoch nicht ohne Änderung verwendet werden, da die originalen Da­ ten durch das Überschreiben des Anfangsblocks verlustig ge­ hen. Andererseits erhöht das Verfahren (2) die CPU-Last des Hosts, da eine nicht vernachlässigbare Zeit benötigt wird, um die gesamten Datenabschnitte der Nachricht in den Haupt­ speicher zu kopieren.
Im Hinblick darauf werden bei der vorliegenden Ausführungs­ form 3 Schritte durchgeführt, wie dies in Fig. 11 veran­ schaulicht ist. Vor einem Überschreiben des Anfangsblocks von jedem der zweiten und nachfolgenden Datenpakete an dem Datenabschnitt des früheren Datenpakets, kopiert sie den Datenabschnitt, an welchem ein Überschreiben durchgeführt wird, in einen Sicherungspuffer und kopiert den Inhalt des Sicherungspuffers zurück in den Ursprungsbereich, und zwar nach der Übertragung des Datenpakets, wodurch die ursprüng­ liche Nachricht belassen wird und verhindert wird, daß die gesamte Nachricht in den Hauptspeicher kopiert wird.
Da die Länge des Anfangsblocks sehr viel kürzer ist als die Länge des Datenabschnitts, ist die CPU-Zeit, die zum Kopie­ ren des entsprechenden Abschnitts in den Sicherungspuffer und das Zurückkopieren auf den Ursprungsbereich erforder­ lich ist, sehr viel kürzer als die CPU-Zeit, die benötigt wird, um die gesamten Datenabschnitte zu kopieren.
Fig. 11 zeigt ein Diagramm, welches den Datenpaketierme­ chanismus an dem Sendeende veranschaulicht. Bei dem Schritt a) erzeugt die Anwendungssoftware 12, welches die Biblio­ theks-function_send( ) aufruft, eine Sendenachricht.
Da die Datenabschnitte der Nachricht in der Form des Glie­ des "data" ("Daten") mit der sbuf_t-Struktur vorgesehen werden, wird der Bereich mit der sbuf_t-Struktur zum Spei­ chern des Anfangsblocks des ersten Datenpakets im voraus durch die Anwendungssoftware 12 angelegt.
Bei dem Schritt b) wird das erste Datenpaket #1 erzeugt und gesendet. Nachfolgend wird der Bereich, auf welchem der An­ fangsblock des nächsten Datenpakets überschrieben wird, in den Sicherungspuffer kopiert.
Bei dem Schritt c) wird das zweite Datenpaket #2 erzeugt und gesendet, gefolgt durch einen Kopiervorgang in dem Si­ cherungspuffer in der gleichen Weise.
Bei dem Schritt d) wird das letzte Datenpaket #3 gesendet und bei dem Schritt e) werden die Inhalte des Sicherungs­ puffers zurück in den ursprünglichen Bereich kopiert.

Claims (16)

1. Datenkommunikationssystem, welches einen internen Com­ puter (11) enthält, der mit einem oder mit mehreren externen Computern über ein Netzwerk verbunden ist, wobei das Datenkommunikationssystem folgendes auf­ weist:
eine erste Speichereinrichtung (17) zum Speichern ei­ ner ersten Informationsmenge, die jeder der externen Computer in einem Kommunikationszyklus empfangen kann;
eine zweite Speichereinrichtung (18) zum Speichern ei­ ner zweiten Informationsmenge, die zu jedem der exter­ nen Computer in dem Kommunikationszyklus bereits ge­ sendet worden ist;
eine Additionseinrichtung (19), um dann, wenn die zu einem der externen Computer zu sendenden Daten in eine Sendewarteschlange gesetzt werden, eine Informa­ tionsmenge der zu sendenden Daten zu der zweiten In­ formationsmenge zu addieren, die in der zweiten Speichereinrichtung (18) gespeichert ist und die dem einen der externen Computer zugeordnet ist; und
eine Übertragungs- bzw. Sendeeinrichtung (19) zum Ü­ bertragen bzw. Senden der Sendedaten zu dem einen der externen Computer lediglich dann, wenn das Additions­ ergebnis der Additionseinrichtung die erste Informati­ onsmenge, die der eine der externen Computer empfangen kann, nicht überschreitet.
2. Datenkommunikationssystem nach Anspruch 1, wobei die erste Speichereinrichtung (17) eine dritte Informati­ onsmenge speichert, die der interne Computer in dem Kommunikationszyklus senden kann;
die zweite Speichereinrichtung (18) eine vierte Infor­ mationsmenge speichert, die der interne Computer in dem Kommunikationszyklus gesendet hat; und wobei
die Additionseinrichtung (19) dann, wenn die zu sen­ denden Daten in eine Sendewarteschlange eingefügt sind, eine Informationsmenge der zu sendenden Daten zu der vierten Informationsmenge addiert, die in der zweiten Speichereinrichtung (18) gespeichert ist, und wobei das Datenkommunikationssystem ferner folgendes aufweist:
eine Sperreinrichtung (19) zum Sperren der Aussendung der Sendedaten zu den externen Computern, wenn das Additionsergebnis der Additionseinrichtung (19) die dritte Informationsmenge überschreitet.
3. Datenkommunikationssystem nach Anspruch 1, bei dem die erste Speichereinrichtung (17) eine maxi­ mal empfangbare Informationsmenge speichert, die jeder der externen Computer dem internen Computer zuweist.
4. Datenkommunikationssystem nach Anspruch 1, bei dem die erste Informationsmenge und die zweite Informationsmenge je durch eine Zahl von Daten wiedergegeben sind.
5. Datenkommunikationssystem nach Anspruch 2, bei dem die erste Informationsmenge, die zweite Infor­ mationsmenge, die dritte Informationsmenge und die vierte Informationsmenge je durch eine Zahl von Daten wiedergegeben sind.
6. Datenkommunikationssystem nach Anspruch 1, bei dem die erste Informationsmenge und die zweite Informationsmenge je durch eine Anzahl von Datenpake­ ten wiedergegeben sind.
7. Datenkommunikationssystem nach Anspruch 2, bei dem die erste Informationsmenge, die zweite Infor­ mationsmenge, die dritte Informationsmenge und die vierte Informationsmenge je durch eine Zahl von Daten­ paketen wiedergegeben sind.
8. Datenkommunikationssystem nach Anspruch 1, bei dem die Sendeeinrichtung (19; 24) dann die Sende­ daten zu einem der externen Computer erneut sendet, wenn ein Bestätigungssignal nicht über eine vorbe­ stimmte Zeitdauer hinweg von einem der externen Compu­ ter, an den die Sendeeinrichtung die Sendedaten aus­ sendet, zurückgesendet wird.
9. Datenkommunikationssystem nach Anspruch 8, bei dem die Sendeeinrichtung ihre Übertragungswieder­ holung der Sendedaten dann anhält, wenn die Anzahl der Übertragungswiederholungen eine vorbestimmte obere Grenze erreicht.
10. Datenkommunikationssystem nach Anspruch 8, ferner mit einer Sicherungseinrichtung (24), um dann, wenn die Sendedaten in Datenpakete aufgeteilt werden und ein Anfangsblock von jedem der Datenpakte in einem Teil der Sendedaten überschrieben wird, den Teil der Sendedaten in einen Sicherungsbereich zu sichern und um den Teil der Sendedaten in deren ursprünglichen Be­ reich wieder herzustellen, nachdem ein momentanes Da­ tenpaket ausgesendet wurde, welches den Anfangsblock enthält, der in dem ursprünglichen Bereich überschrie­ ben wurde.
11. Datenkommunikationsverfahren eines Systems, welches einen internen Computer (11) enthält, der mit einem oder mit mehreren externen Computer über ein Netzwerk verbunden ist, wobei das Datenkommunikationsverfahren die folgenden Schritte umfaßt:
Speichern einer ersten Informationsmenge, die jeder der externen Computer in einem Kommunikationszyklus empfangen kann;
Speichern einer zweiten Informationsmenge, die zu je­ dem der externen Computer in dem Kommunikationszyklus bereits gesendet worden ist;
Durchführen einer Addition einer Informationsmenge der Sendedaten zu der zweiten Informationsmenge, die dem einen der externen Computer zugeordnet ist, wenn die zu einem der externen Computer zu sendenden Daten in eine Sendewarteschlange gesetzt werden; und
Aussenden oder Übermitteln der Sendedaten zu dem einen der externen Computer lediglich dann, wenn das Additi­ onsergebnis die erste Informationsmenge nicht über­ schreitet, die der eine der externen Computer empfan­ gen kann.
12. Datenkommunikationsverfahren nach Anspruch 11, umfas­ send folgende weitere Schritte:
Speichern einer dritten Informationsmenge, die der in­ terne Computer in dem Kommunikationszyklus senden oder übermitteln kann;
Speichern einer vierten Informationsmenge, die der in­ terne Computer in dem Kommunikationszyklus gesendet hat; und
Durchführen einer Addition einer Informationsmenge der zu sendenden Daten zu der vierten Informationsmenge, wenn die zu sendenden Daten in eine Sendewarteschlange eingefügt sind; und
Sperren des Sendevorgangs der Sendedaten zu den exter­ nen Computern, wenn das Additionsergebnis die dritte Informationsmenge überschreitet.
13. Datenkommunikationsverfahren nach Anspruch 11, bei dem die erste Informationsmenge und die zweite In­ formationsmenge je durch eine Zahl von Daten wiederge­ geben sind.
14. Datenkommunikationsverfahren nach Anspruch 12, bei dem die erste Informationsmenge, die zweite Infor­ mationsmenge, die dritte Informationsmenge und die vierte Informationsmenge je durch eine Zahl von Daten wiedergegeben sind.
15. Datenkommunikationsverfahren nach Anspruch 11, bei dem die erste Informationsmenge und die zweite In­ formationsmenge je durch eine Anzahl von Datenpaketen wiedergegeben sind.
16. Datenkommunikationsverfahren nach Anspruch 12, bei dem die erste Informationsmenge, die zweite Infor­ mationsmenge, die dritte Informationsmenge und die vierte Informationsmenge je durch eine Anzahl von Da­ tenpaketen wiedergegeben sind.
DE1999111951 1998-05-01 1999-03-17 Datenkommunikationssystem und Datenkommunikationsverfahren, welches eine Nachrichtenkollision umgehen kann Expired - Fee Related DE19911951C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12257698A JP3415027B2 (ja) 1998-05-01 1998-05-01 データ通信装置及びデータ通信方法

Publications (2)

Publication Number Publication Date
DE19911951A1 DE19911951A1 (de) 1999-11-18
DE19911951C2 true DE19911951C2 (de) 2003-08-14

Family

ID=14839336

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1999111951 Expired - Fee Related DE19911951C2 (de) 1998-05-01 1999-03-17 Datenkommunikationssystem und Datenkommunikationsverfahren, welches eine Nachrichtenkollision umgehen kann

Country Status (3)

Country Link
US (1) US6453372B1 (de)
JP (1) JP3415027B2 (de)
DE (1) DE19911951C2 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6744765B1 (en) * 2000-08-24 2004-06-01 Sun Microsystems, Inc. Mechanism for completing messages in memory
JP2003087348A (ja) * 2001-09-14 2003-03-20 Matsushita Graphic Communication Systems Inc 通信制御方法及び通信制御装置並びにadsl通信装置
ES2410590T3 (es) * 2005-07-07 2013-07-02 Telefonaktiebolaget Lm Ericsson (Publ) Método y disposición para la codificación y la planificación en sistemas de comunicación de datos en paquetes
US7464121B2 (en) * 2006-01-06 2008-12-09 International Business Machines Corporation Apparatus for sending a sequence of asynchronous messages to the same member of a clustered consumer
JP4919015B2 (ja) * 2006-07-27 2012-04-18 横河電機株式会社 通信制御装置および通信制御方法
US8192287B2 (en) 2006-11-17 2012-06-05 Nintendo Co., Ltd. Game apparatus and storage medium storing a game program for conducting data communications with a network
JP6029643B2 (ja) * 2014-12-08 2016-11-24 任天堂株式会社 ゲーム装置、ゲームシステムおよび制御方法
CN105591969A (zh) * 2015-11-23 2016-05-18 江苏瑞中数据股份有限公司 一种国网环境下消息总线的使用方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0310173A1 (de) * 1987-09-30 1989-04-05 Philips Patentverwaltung GmbH Schaltungsanordnung zur Vermeidung von Überlast in einem Breitband-Vermittlungssystem
JPH08180006A (ja) * 1994-12-22 1996-07-12 Hitachi Ltd ネットワークインタフェースおよび計算機ネットワークシステム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60160745A (ja) 1984-02-01 1985-08-22 Fuji Xerox Co Ltd 通信制御方式
US5291486A (en) * 1991-08-19 1994-03-01 Sony Corporation Data multiplexing apparatus and multiplexed data demultiplexing apparatus
JPH05227194A (ja) * 1992-02-17 1993-09-03 Oki Electric Ind Co Ltd バッファ読出し方式
US5615213A (en) * 1995-04-13 1997-03-25 International Business Machines Corporation Message transmission using out-of-band signaling channel
JP3457792B2 (ja) 1996-03-08 2003-10-20 東芝エレベータ株式会社 スター型データ伝送装置
US5920732A (en) * 1996-07-01 1999-07-06 Apple Computer, Inc. System for preallocating additional larger buffer sizes in accordance with packet sizes of discarded packets that can't be stored in existing preallocated buffer sizes
US5920703A (en) * 1997-02-19 1999-07-06 International Business Machines Corp. Systems and methods for managing the processing of relatively large data objects in a communications stack

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0310173A1 (de) * 1987-09-30 1989-04-05 Philips Patentverwaltung GmbH Schaltungsanordnung zur Vermeidung von Überlast in einem Breitband-Vermittlungssystem
JPH08180006A (ja) * 1994-12-22 1996-07-12 Hitachi Ltd ネットワークインタフェースおよび計算機ネットワークシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BEUERMAN, S. et al: The Delay Characteristics of CSMA/CD Networks. In: IEEE Transaction on Communi-cation, May 1988, Vol. 36, No. 5, S. 553-563 *

Also Published As

Publication number Publication date
DE19911951A1 (de) 1999-11-18
US6453372B1 (en) 2002-09-17
JPH11317772A (ja) 1999-11-16
JP3415027B2 (ja) 2003-06-09

Similar Documents

Publication Publication Date Title
DE60307032T2 (de) Steuerungs-Verfahren und -Vorrichtung zur Datenübertragung
DE10066507B3 (de) Verfahren und Vorrichtung zur Kommunikation mit verzögerter Bestätigung und Alarmverwaltung
DE60029221T2 (de) Begrenztes automatisches wiederholungsaufforderungsprotokoll für rahmenbasierte kommunikationskanäle
DE69931215T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen
DE69938094T2 (de) Paketwiederübertragungskontrolle mit Prioritätsinformationen
DE60102809T2 (de) Datenpaketnummerierung bei der paketvermittelten datenübertragung
DE60030094T2 (de) Datenablösungsmechanismus für selektive wiederholungsprotokolle
DE60223799T2 (de) Verfahren und sender für einen effizienten paketdatentransfer in einem übertragungsprotokoll mit wiederholungsanforderungen
DE60203285T2 (de) Verfahren und empfänger zur verbesserten datenpaketübertragung in ein übertragungsprotokoll
DE60313178T2 (de) Verfahren und einrichtung zur verminderung von übertragungsfehlern in einem zellularen system der dritte generation
DE60036218T2 (de) Verbindungsschichtquittierung und wiederübertragung für ein zellulares telekommunikationssystem
DE69825610T2 (de) Verfahren und gerät zur übertragung von datenpaketen in einem datenpaketübertragungssystem
DE69133586T2 (de) Protokoll mit Prioritätsnachrichten für ein Kommunikationsnetzwerk mit Mehrfachzugriff und Trägererfassung
DE60118799T2 (de) Netzwerksvorrichtung zum selektiven datenzeitschlitz verwerfen
DE60109959T2 (de) Verfahren um die effizienz eines datenstromes in einem kommunikationssystem zu erhöhen
DE60201553T2 (de) System und Verfahren zur Fehlerbeseitigung mit negativer Rückquittierung (NACK)
DE69829428T2 (de) Zuweisung und dynamische Anpassung von zweiten, nicht eindeutigen Kennzeichnungen für isochrone Kommunikationen an eine Vielzahl von Stationen mittels asynchronischer Kommunikation
DE3331233C2 (de) Datensteuereinrichtung in lokalen Verbindungsnetzen
DE60132974T2 (de) Empfängerseitig gesteuerte isochrone übertragung
DE19911951C2 (de) Datenkommunikationssystem und Datenkommunikationsverfahren, welches eine Nachrichtenkollision umgehen kann
EP0701346A2 (de) Verfahren zur konsistenten Nachrichtenübertragung
DE112011105003B4 (de) Sendevorrichtung, Empfangsvorrichtung, Kommunikationsvorrichtung, Kommunikationssystem und Sendeverfahren
DE60016347T2 (de) Gateway und Datenübertragungsverfahren zur Verzögerungsjitterreduktion
WO2016110326A1 (de) Verfahren und vorrichtung zum übertragen von daten in einem datennetz mit zumindest zweierlei übertragungsmodi mit fragmentierung
JPH06326713A (ja) データ伝送制御方法

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8304 Grant after examination procedure
8364 No opposition during term of opposition
R084 Declaration of willingness to licence
R084 Declaration of willingness to licence
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20121002