[go: up one dir, main page]

DE3687355T2 - Universalprotokoll-datenempfaenger. - Google Patents

Universalprotokoll-datenempfaenger.

Info

Publication number
DE3687355T2
DE3687355T2 DE8686301807T DE3687355T DE3687355T2 DE 3687355 T2 DE3687355 T2 DE 3687355T2 DE 8686301807 T DE8686301807 T DE 8686301807T DE 3687355 T DE3687355 T DE 3687355T DE 3687355 T2 DE3687355 T2 DE 3687355T2
Authority
DE
Germany
Prior art keywords
data
receiver
stage
code
block
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
DE8686301807T
Other languages
English (en)
Other versions
DE3687355D1 (de
Inventor
Alexander Gibson Fraser
William Todd Marshall
Guy Gregory Riddle
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.)
AT&T Corp
Original Assignee
American Telephone and Telegraph Co Inc
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 American Telephone and Telegraph Co Inc filed Critical American Telephone and Telegraph Co Inc
Application granted granted Critical
Publication of DE3687355D1 publication Critical patent/DE3687355D1/de
Publication of DE3687355T2 publication Critical patent/DE3687355T2/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
    • H04L27/00Modulated-carrier systems
    • H04L27/02Amplitude-modulated carrier systems, e.g. using on-off keying; Single sideband or vestigial sideband modulation
    • H04L27/06Demodulator circuits; Receiver circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0091Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location arrangements specific to receivers, e.g. format detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0083Formatting with frames or packets; Protocol or part of protocol for error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • H04L49/9052Buffering arrangements including multiple buffers, e.g. buffer pools with buffers of different sizes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Description

  • Die Erfindung betrifft Datenempfänger.
  • Auf dem Gebiet der Datenübertragung hat die große Vielzahl von Datenterminals, die stark abweichenden Verkehrseigenschaften und die Anforderungen des Übertragungsnetzwerkes zu der großen Komplexität und in großem Umfang der Nichtkompatibilität unterschiedlicher Datenübertragungssysteme beigetragen. Gleichzeitig haben die zunehmende Abhängigkeit von der Datenübertragung und die Notwendigkeit für eine Verbindung verschiedener Terminals und Rechnerausrüstungen eine flexible Lösung für die Datenübertragung notwendig gemacht.
  • Das Protokoll für eine Datenübertragung kann in eine Hierarchie mit wenigstens den folgenden drei niedrigsten Ebenen eingeteilt werden:
  • Ebene A - Dies ist die physikalische Ebene und betrifft die elektrischen Spannungs- und Strompegel sowie die Bit-Synchronisation.
  • Ebene B - Dies ist die Datenverbindungsebene und betrifft die
  • Fehlerfeststellung, die Multiplexierung und die Hüllen-(Byte)-Synchronisation.
  • Ebene C - Dies ist die Datenpaketebene und betrifft die
  • Fehlersteuerung, die Flußsteuerung und die Paketsynchronisation.
  • Die Protokolle der Ebene A und B sind verhältnismäßig einfach zu verwirklichen und, falls nötig, zwischen verschiedenen Standards umzuwandeln. Die Protokolle der Ebene C sind jedoch auf der anderen Seite kompliziert, schwierig zu verwirklichen und noch schwieriger, wenn überhaupt möglich, untereinander umzuwandeln. Darüber hinaus ist die Protokolldefinition ein schwieriges Gebiet und Protokoll-Standards sind umfangreich, vieldeutig und schwierig zu verifizieren. Schließlich sind bereits Ausrüstungen in großem Umfang in Betrieb, die nach einem der vorhandenen und weitgehend Inkompatiblen Protokollen arbeiten. Zu diesen bestehenden Protokollen gehören Bisync, SDLC, HDLC, X.25 (Stufe 3), Start/Stop sowie Byte-Ströme.
  • Das Problem lautet daher, wie man ein Datenübertragungsnetzwerk auslegen kann, das mit Terminal-Ausrüstungen in Verbindung treten kann, die für einen Betrieb entsprechend einer großen Vielfalt unterschiedlicher Protokolle der Ebene C ausgelegt sind.
  • Die GB-A-2 072 999 beschreibt ein Beispiel eines Datenempfängers, der Daten empfangen kann, die entsprechend einer Anzahl von Protokollen übertragen worden sind, beispielsweise nach X20 und X70.
  • Erfindungsgemäß wird ein Datenempfänger nach Anspruch 1 zur Verfügung gestellt.
  • Bei einem Ausführungsbeispiel wird ein Standard-Tatenempfänger statt eines Standard-Protokolls verwirklicht, der ausreichend flexibel ist, um Daten nach einer großen Anzahl unterschiedlicher Protokolle aufzunehmen und die Hauptmerkmale jedes Protokolls zu unterstützen.
  • Im einzelnen kann der Standardempfänger im Block (Mehrfachbyte)-Mode oder Zeichen (Einzelbyte)-Mode arbeiten. Er enthält einen Datenpuffer und spricht auf einen Vorrat von Datenfluß-Steuerbefehlen an, die alle Hauptmerkmale von Bisync, SDLC, HDLC, TCP, X.25 Stufe 3, Start/Stop und Byte-Ströme verwirklichen.
  • Im einzelnen ist der Standardempfänger in zwei Stufen unterteilt, die durch ein Pufferregister getrennt sind. Die erste Stufe verarbeitet Paketaufnahmeprozesse und die zweite Stufe Datenfluß-Steuerbefehle. Die zweite Stufe bildet eine Schnittstelle mit dem lokalen Benutzer und sieht eine Bestätigungsbefehl-Verarbeitung vor.
  • Der Pufferspeicher zwischen den Empfängerstufen ist ein FIFO-Speicher (als Erste eingegebene Daten werden als Erste wieder ausgegeben) mit einer beweglichen Grenze, die den Puffer in zwei Teile unterteilt, von denen nur eine für die zweite Stufe des Empfängers zugänglich ist. Die Stufe 1 bewegt die Grenze nach einer Verifizierung der Pufferdaten, so daß der Umfang des erforderlichen Pufferspeichers minimiert wird.
  • Der Standardempfänger kann als VLSI-Chip oder als Standardprogramm verwirklicht werden.
  • Die Erfindung soll jetzt unter Bezugnahme auf die zugehörige Zeichnung beschrieben werden. Die einzige Figur enthält ein genaueres Blockschaltbild eines Datenempfängers nach der Erfindung.
  • Ein Beispiel für ein Übertragungssystem, bei dem die Erfindung nützlich ist, ist eines, bei dem der Hauptdatenstrom aus einer Folge von Bytes mit neun Bits besteht (Protokoll der Ebene B). Das neunte Bit gibt an, ob die restlichen Bits Daten oder Steuercodierungen sind. Die Steuercodierungen werden für die Durchsetzung von Protokollen auf allen Ebenen benutzt. Die Erfindung soll zwar in Verbindung mit einem solchen Übertragungssystem beschrieben werden, aber es können auch Übertragungssysteme anderer Typen die vorliegende Erfindung auf eine für den Fachmann bekannte Art mit Vorteil benutzt werden.
  • Damit ein einziger Empfänger Daten mit allen möglichen Protokollen der Ebene C verarbeiten kann, müssen Standard-Steuercodierungen verwendet werden, die die gleiche oder eine ähnliche Bedeutung für alle Protokolle besitzen. Darüber hinaus ist ein Standard-Blockformat erforderlich, um eine Blockfehler-Verarbeitung zu ermöglichen. Ein Datenblock umfaßt eine Vielzahl von Datenbytes, begleitet durch zentrale Informationen. Beispielsweise ist an alle Datenblöcke ein Anhang mit vier Bytes angefügt. Das erste Byte ist ein Anhang-Beginn (BOT-Steuercode). Das zweite und dritte Byte (L1, L2) geben die Anzahl von Datenbytes im Block an, und das letzte Byte ist ein Steuercode, dar eine Folgenummer (SEQ+i) umfaßt. Die Folgenummern aufeinander folgender Blöcke werden modulo-acht um eins erhöht. Das heißt, die Folgenummer nimmt nur die Werte Null bis Sieben in aufeinander folgenden Blöcken an und wird für eine Fehlersteuerung verwendet. Es können natürlich auch andere Moduli benutzt werden.
  • Man beachte, daß die Blöcke keine Köpfe besitzen und alle Steuerinformationen sich im Anhang befinden. Da Kopfinformationen gespeichert werden müssen, bis ein vollständiger Block empfangen und geprüft ist, hat es keinen Zweck, Steuerinformationen in einen Kopf einzugeben.
  • Alle Steuerinformationen werden in einen Anhang hinter dem Block variabler Länge von Datenbytes eingegeben.
  • Man beachte, daß das oben beschriebene Anhang-Format von der Byte- Fehlerfeststellung abhängt sowie dem Weglassen auf einer niedrigeren Protokollebene, typischerweise der Ebene B. Unter dieser Annahme reicht die Byte-Länge im Anhang zur Feststellung von Blockfehlern aus.
  • Die fünf möglichen Typen von Datenströmen, die Protokolle der Ebene C erfordern, sind in Tabelle 1 zusammengefaßt, in der die Zeilen die verschiedenen Typen der Fehlersteuerung darstellen: Keine Fehlersteuerung, Fehlerfeststellung ohne Korrektur und Fehlerkorrektur durch Neuübertragung. Die Spalten in Tabelle 1 stellen die Abwesenheit oder das Vorhandensein einer Flußsteuerung dar, d. h. die Fähigkeit des Empfängers, den durch den Sender übertragenen Datenstrom zu unterbrechen. Tabelle 1 Protokoll-Tabelle fehlersteuerung Flußsteuerung Datenformat nein ja keine Typ Zeichen Feststellen Block Korrektur
  • Man erkennt, daß fünf unterschiedliche Typen von Datenströmen möglich sind. Die unterste Zeile besitzt nur eine Eintragung (Typ 5), da eine Korrektur durch Neuübertragung ohne Flußsteuerung nicht möglich ist.
  • Ein Datenstrom vom Typ 1 enthält keine Steuercodierungen der Ebene C und bietet keine Fehlersteuerung oder Flußsteuerung. Ein solcher Datenstrom ist zweckmäßig für sehr kurze Vorgänge und für Realzeitdaten. Beispiele hierfür umfassen Alarmsystemdaten, Sprachcodierungen und Eingaben von langsamen Terminals.
  • Ein Datenstrom vom Typ 2 erfordert eine Flußsteuerung zur Vermeidung von Datenverlusten aufgrund einer fehlerhaften Geschwindigkeitsanpassung zwischen dem Sender und dem Empfänger. Es können aber Datenbytes fallengelassen werden, wenn Übertragungsfehler auftreten. Die Ausgangssignale von einem Host-Rechner an ein Terminal fallen unter diese Kategorie, ebenso eine langsame Übertragung über Fernsprechleitungen.
  • Datenströme vom Typ 3 und 4 werden mit jeweils einem Block richtig empfangen oder vollständig ignoriert. Dieser Datenstromtyp wird in synchronen Systemen benutzt, beispielsweise dem ETHERNET (Warenzeichen der Xerox Corporation). Datenströme vom Typ 3 können nicht unterbrochen werden, und der Endbenutzer muß ein Fenster-Schema zur Verfügung stellen, um einen überlauf zu vermeiden. Datenströme vom Typ 4 stellen eine Flußsteuerung zur Berücksichtigung von fehlerhaften Sender-Empfänger-Fehlanpassungen bereit.
  • Ein Datenstrom vom Typ 5 bietet eine fehlerfreie Übertragung durch eine Neuübertragung verlorener oder verstümmelter Blöcke. Dies ist das Standard-übertragungsverfahren zwischen Host-Rechnern.
  • Ein beispielhafter Satz von Steuercodierungen, der für die Steuerung eines universellen Datenempfängers brauchbar ist, ist in Tabelle 2 gezeigt. Tabelle 2 Steuercodierungen
  • Octal
  • Name Code Beschreibung
  • SEQ 010 Steuercodierungen für Anhang, numeriert von 0 bis 7.
  • 017
  • ECHO 020 Echo-Codierungen für eine Signalgabe, das richtige Daten zum Host übertragen worden sind, Numerierung 0 bis 7.
  • 027
  • REJ 030 Zurückweisungscodierungen, die einem entfernten Sender Übertragungsfehler angeben, Numerierung 0 bis 7.
  • 037
  • ACK 040 Bestätigungscodierungen, die einem entfernten Sender einen erfolgreichen Empfang angeben, Numerierung 0 bis 7.
  • 047
  • BOT 050 Beginn des Anhangs für reguläre Datenblöcke.
  • BOTM 051 Beginn eines Blockanhangs vom Typ M.
  • BOTS 052 Beginn eines Blockanhangs vom Typ S.
  • BOU 053 Start eines unnumerierten Blocks.
  • EOU 054 Ende eines unnumerierten Blocks.
  • ENQ 055 Senderanforderung nach einem Fluß- oder Fehlerzustand.
  • CHECK 056 Senderanforderung nach einem Fehlerzustand.
  • INITRQ 057 Anforderung einer Initialisierung vom Sender.
  • INITO 060 Zeichen-Mode-Initialisierung.
  • INIT1 061 Block-Mode-Initialisierung.
  • AINIT 062 Bestätigung von INITO oder INIT1.
  • Bauteilmäßige Verwirklichungen von Sendern für die verschiedenen Datenströme der Typen 1 bis 5 sollen nicht im einzelnen erläutert werden. Eine Programmverwirklichung eines Ausführungsbeispiels für jeden dieser Sender soll für ein logisches Verständnis offenbart werden.
  • In der Figur ist ein genaueres Blockschaltbild einer Verwirklichung für einen universellen Datenempfänger 100 dargestellt. Er umfaßt eine erste Stufe 10 und eine zweite Stufe 11, die durch ein mehrstufiges FIFO- Pufferregister 12 getrennt sind. Das Pufferregister 12 ist durch eine bewegliche Grenze 13 in zwei Teile unterteilt, die unter Steuerung von Steuerschaltungen in der ersten Stufe an jede Speicherposition des Pufferregisters 12 verschoben werden kann. Das Pufferregister 12 ist ein Standard-FIFO-Register, und die verschiebbare Grenze läßt sich leicht durch Bereichsregister in den Zugriffsschaltungen verwirklichen. Eine solche Verwirklichung ist in der US-Patentanmeldung 407877 offenbart.
  • Der FIFO-Speicher 12 zwischen den Stufen 10 und 11 enthält eine Grenze 13, die den Puffer 12 in zwei Teile unterteilt. Nur der auf der rechten Seite (in Richtung zum Kopf H) der Grenze 13 liegende Teil steht für die Stufe 11 zur Verfügung. Diese sieht tatsächlich die Grenze 13 als das Ende des Puffers, und wenn sich die Grenze am Kopf A des Puffers 12 befindet, sieht die Stufe 11 den Puffer 12 als leer an. Die Stufe 10 kann die Grenze 13 im Puffer 12 bewegen und kann sie insbesondere zum Ende T des Puffers 12 verschieben, so daß der gesamte Puffer 12 für die Stufe 11 zur Verfügung steht. Die Stufe 10 kann außerdem das Ende T zur Grenze 13 verschieben, wodurch Daten, die auf der linken Seite der Grenze 13 gespeichert sind, fallengelassen werden. Beim Betrieb im Block-Mode wird die Grenze 13 benutzt, um Blöcke bis zur Anhang-Verifizierung für die Stufe 11 nicht verfügbar zu machen. Danach wird die Grenze zur linken Seite des bestätigten Blocks verschoben, wenn der Block gültig ist, oder es wird das Ende zur Grenze verschoben, wenn der Block nicht gültig ist.
  • Die am Ende jedes gültigen Blocks erzeugten ECHO-Codierungen werden zum entfernten Sender erst nachdem die entsprechenden Datenbytes aus dem Puffer 12 gelesen und zum Host-Rechner gegeben sind, zurückübertragen. Die am Ende jedes ungültigen Blocks erzeugten Zurückweisungscodierungen werden anstelle des ungültigen Blocks in den Puffer 12 eingegeben und zurück zum Sender übertragen, wenn sie die Stufe 11 erreichen. ECHO- Codierungen werden ebenfalls zurückgegeben, wenn ein SEQ-Code im Zeichen- Mode empfangen wird.
  • Man erkennt also, daß die Stufe 10 und die Stufe 11 asynchron auf den Puffer 12 zugreifen, daß die Stufe 10 den Puffer 12 lädt, wenn Daten empfangen werden, und die Stufe 11 den Puffer 12 so schnell entleert, wie der Host-Rechner Daten aufnehmen kann.
  • Bei allen Typen von Datenströmen mit einer Fehlersteuerung werden ungültige Datenblöcke einfach entfernt. In Systemen vom Typ 5 hält der Sender den Block nach der Aussendung fest, bis entweder eine ECHO- Bestätigung oder ein REJ-Code empfangen wird. Bei Empfang eines ECHO-Code wird der Block mit der nächsten Folgenummer ausgesendet. Bei Empfang eines Rej-Code wird der Block mit der gleichen Folgenummer erneut ausgesendet.
  • Der Datenempfänger in der Zeichnung kann Daten mit allen Protokollen der Typen 1 bis 5 empfangen. Eine einzige Standard-Protokolldefinition wird dadurch vermieden, daß ein Standardempfänger ausreichender Flexibilität geschaffen wird, der virtuell alle Funktionen zur Verfügung stellen kann, die die vielen unterschiedlichen Datenprotokolle erfordern. Ein solcher Standardempfänger vereinfacht den Aufbau großer und komplizierter Datennetzwerke stark, die Datenverbindungen unter Verwendung vieler unterschiedlicher Datenprotokolle enthalten.
  • Zur Erzielung einer solcher universellen Flexibilität muß der Standarddatenempfänger in der Lage sein, in zwei Betriebsarten zu arbeiten, einem Block-Mode oder einem Zeichen-Mode. Zu diesem Zweck kann die erste Stufe des dargestellten Empfängers Initialisierungsbefehle von einem entfernten Sender erkennen. Es werden dann Initialisierungsbefehle zur Einstellung des dargestellten Empfängers 100 in die geeignete Betriebsart benutzt, den Block- oder den Zeichen-Mode. Im Zeichen-Mode leitet die Stufe 10 Datenzeichen und Flußsteuerzeichen zum Pufferregister 12 so weiter, wie sie empfangen werden. Die zweite Stufe 11 des Empfängers gibt die Datenzeichen zu den Datenbenutzungsschaltungen weiter, die an die Ausgangsleitung 14 angeschlossen sind, und setzt den lokalen Sender 15 davon in Kenntnis, wenn ein Flußsteuerzeichen (ein ECHO- oder ein REJ-Code) aus dem Pufferregister 12 entfernt wird. Dies wird anschließend benutzt, um dem entfernten Sender den richtigen (oder fehlerhaften) Empfang der übertragenen Daten anzuzeigen. Der dargestellte Empfänger spricht außerdem auf Anforderungen vom entfernten Sender (angeschaltet an die Sendeleitung 16) hinsichtlich des letzten aus dem Pufferregister 12 entnommenen Flußsteuerzeichens an. Diese Information wird benutzt, um den entfernten Sender richtig wieder neu zu starten, wenn ein Bestätigungscode verloren gegangen ist.
  • Man beachte, daß Daten oder Bytes im vorliegenden Zusammenhang alles außer den Steuercodierungen gemäß Tabelle 2 bedeuten kann. Dies schließt Steuercodierungen ein, die zur Verwirklichung von Protokollen auf anderen Ebenen benutzt werden.
  • Im Block-Mode enthält das Pufferregister 12 vollständige, für gültig erklärte Datenblöcke statt einzelner Datenzeichen. Ein vollständiger, gültiger Datenblock besteht aus einer Vielzahl von Datenhüllen (die Null sein können), gefolgt von einem Anhang. Wie im Zeichen-Mode wird der Sender 15 informiert, wenn Flußsteuercodierungen aus dem Puffer 12 entfernt werden. Der Empfänger 100 spricht außerdem auf den entfernten Sender an, um die Identität des letzten, in den Puffer 12 eingegebenen Blocks oder des letzten, aus dem Puffer 12 entfernten Blocks bereitzustellen. Außerdem informiert der Empfänger 100 den entfernten Sender, wenn ein unvollständiger oder außerhalb der Folge liegender Block empfangen wird.
  • Im Block-Mode werden Daten in Pakete von Datenhüllen gruppiert, gefolgt von einem Anhang mit vier Hüllen. Die erste Hülle des Anhangs ist ein Steuerzeichen, das den Anfang des Anhangs (BOT) markiert. Die zweite und dritte Hülle des Anhangs enthalten eine Darstellung mit zwei Bytes (L1 und L2) für die Länge L des Pakets (d. h. die Anzahl von Datenhüllen, die von Block zu Block schwanken kann), während die letzte Hülle den Folgesteuercode (SEQ) des Pakets zusammen mit einer Folgenummer zwischen 0 und 7 enthält. Demgemäß können acht unterscheidbare Folgecodierungen empfangen werden, und zwar je ein Code für jede der acht unterschiedlichen Folgenummern. Diese Art einer Fehlersteuerung dient der Prüfung, daß kein Teil eines Paketes verlorengegangen ist (Länge) und daß kein vollständiges Paket verloren wurde (Folgenummer).
  • Im allgemeinen überträgt der Empfänger 100 Datenströme vom Typ 1 und Typ 2 direkt durch den Empfänger, da keine Fehlersteuerung benutzt wird. Bei den Datenströmen vom Typ 3, 4 und 5, bei denen eine Fehlersteuerung verwendet wird, werden die Daten im Puffer 12 zwischengespeichert, bis sie unter Verwendung der Anhang-Informationen bestätigt sind. Bei den Datenströmen vom Typ 3 und 4 wird der fehlerhafte Datenblock einfach fallengelassen, während beim Typ 5 fehlerhafte Datenblöcke ebenfalls fallengelassen, aber durch den entfernten Sender erneut übertragen werden.
  • Eine Flußsteuerung (Typen 2, 4 und 5) wird mittels der Folgenummer- Codierungen verwirklicht. Diese Folgecodierungen (zusammen mit den zugeordneten ECHO- und REJ-Codierungen) ermöglichen dem Sender, jederzeit zu wissen, wie viele Informationen im Empfänger in Verarbeitung sind. Bei Datenströmen vom Typ 2 werden die Folgenummercodierungen in Intervallen in den Datenstrom eingefügt und zusammen mit den ECHO-Codierungen überwacht, um ein Überlaufen des Puffers 12 zu vermeiden. Bei Datenströmen der Typen 4 und 5 bildet der Folgenummerncode Teil des Anhangs und dient der gleichen Funktion.
  • Man beachte, daß die Wahl eines Anhangformats, das mit einem Steuercode beginnt und mit einem weiteren Steuercode endet, den Einfluß von Fehlern minimiert, die im Anhang selbst auftreten. Außerdem wird dadurch, daß die Länge der Folgenummer vorausgeht, ebenfalls der Einfluß von Fehlern kleingehalten, da drei unabhängige Fehler nötig sind, damit eine fehlerhafte Folge als gültiger Datenblock angenommen wird. Wenn beim Sender zu jedem gegebenen Zeltpunkt nur sieben Blöcke ausstehen können, dann kann keine Kombination von Fehlern zur Annahme eines fehlerhaften Blocks führen. Die Folgenummern sind zyklisch, und zwar modulo-acht in dem Ausführungsbeispiel des Fehlersteuersystems.
  • Mit dem Obigen als Hintergrund soll die Beschreibung der Figur fortgesetzt werden. Dort sind das R0-Register 20, das R1-Register 22 und das R2-Register 24 Steuercoderegister. Das R0-Register 20 speichert Steuercodierungen, die Antworten vom entfernten Empfänger zur Steuerung des Senders darstellen. Das R1-Register 22 enthält die Steuercodierungen, die vom Empfänger der Figur zum entfernten Sender auszusenden sind, mit Ausnahme der Block-Gültigkeits/Zurückwelsungscodierungen. Das R2-Register 24 enthält den Block-Gültigkeits/Zurückweisungscode für jeden Typ der Datenströme mit Ausnahme des Typs 1 (bei dem keine Gültigkeitserklärung verwendet wird). Getrennte Register für jeden der verschiedenen Codierungen könnten, falls gewünscht, ebenfalls benutzt werden.
  • Jedes der Register 20, 22 und 24 besitzt ein besonderes "S"- (Zustands)-Bit, das gesetzt wird, wenn ein Steuercode in das entsprechende Register eingegeben wird (durch die Stufe 10 oder die Stufe 11), und das durch den Sender 15 zurückgesetzt wird, wenn der Code aus dem jeweiligen Register gelesen wird. Die Coderegister 20, 22 und 24 verwirklichen alle oben beschriebenen Protokolle. Im allgemeinen speichert das Antwortregister 20 Antwortcodierungen vom entfernten Empfänger, ähnlich dem Empfänger 100, der über das Netzwerk mit dem Sender 15 verbunden ist. Die Antwortcodierungen umfassen die Codierungen ACK, ECHO, REJ, AINIT und INITREQ vom entfernten Empfänger und sollen später in Verbindung mit Antworten des Empfängers 100 beschrieben werden.
  • Es werden drei lokale und variable Register 25, 26 und 28 verwendet, um kurzzeitig Bedingungen im Empfänger 100 zu speichern. Im einzelnen zählt der Folgenummernzähler 25 aufeinander folgende, vom Empfänger 100 empfangene gültige Datenblöcke, wenn sie zum Host-Rechner weitergeleitet werden. Diese Folgenummer wird benutzt, um die Gültigkeit empfangener Folgenummern in den Anhangblöcken zu prüfen, und wird benutzt, um die Codierungen ECHO, ACK und REJ zur Signalisierung des entfernten Senders zu bilden.
  • Das Anhangregister 26 speichert empfangene Anhang-Codierungen, bis die Länge und Folgenummern auf ihre Gültigkeit geprüft sind. Das Mode- Register 27 ist ein Ein-Bit-Register, das im Block-Mode gesetzt (durch einen INIT1-Code) und im Zeichen-Mode zurückgesetzt wird (durch einen INIT0-Code). Der Anfangs- oder Standard-Mode ist der Zeichenmode. Der Byte- Zähler 28 zählt empfangene Datenbytes für einen Vergleich mit dem Längenzählwert im Anhangregister 26.
  • Im Zeichenmode arbeitet der Empfänger 100 gemäß Zeichnung wie folgt: Der erste empfangene Steuercode ist ein INIT0-Code, der, wenn er in der Stufe 10 empfangen wird, das Mode-Register 27 auf den Zeichenmode zurückstellt (wenn es nicht bereits in diesem Zustand ist). Gleichzeitig wird die Anhang-Verarbeitung abgeschaltet (wenn sie vorher betätigt war), und das R1-Register 22 wird mit dem AINIT-Code geladen. Der Sender 15 gibt den AINIT-Code vom R1-Register 22 in den abgehenden Digitalstrom im nächstverfügbaren Byte-Fenster. Dieser Rückgabecode kann, wie alle anderen Rückgabe-Codierungen irgendwo in den Datenstrom eingefügt werden und wird auf geeignete Weise im entfernten Empfänger beantwortet. Diese Rückgabe- Codierungen werden im entfernten Empfänger beseitigt, bevor die Blöcke neu gebildet werden. Die bewegbare Grenze 13 wird zum Kopf H des Pufferregisters 12 verschoben, um den Puffer 12 vollständig zu leeren und das gesamte Pufferregister für die Stufe 11 nicht verfügbar zu machen.
  • Alle folgenden Datenbytes werden am Ende T in das Pufferregister 12 geladen, und die Grenze B wird zum Ende jedes neu hinzugefügten Byte verschoben. Die Stufe 11 beginnt sofort, diese Datenbytes zu entfernen und sie über die Leitung 14 zum Host-Rechner weiterzuleiten.
  • Wenn im Zeichen-Mode der Datenstrom vom Typ 2 ist, werden Folge-Codierungen in Intervallen in den Datenstrom eingefügt. Wenn eine dieser Folge-Codierungen in der Stufe 10 empfangen wird, wird sie in (ECHO+i) umgesetzt, wobei "i" die gleiche Folgenummer in den empfangenen SEQ Codierungen ist, und zum Pufferregister 12 weitergeleitet. Bei Empfang in der Stufe 11 wird der Code (ECHO+i) in das R2-Register 24 eingegeben. Der Sender 15 fügt den Code (ECHO+i) in seinen abgehenden Datenstrom im nächstverfügbaren Byte-Fenster ein. Es können dann die ECHO- Rückgabecodierungen vom entfernten Sender verwendet werden, um die Unterbrechung und Wiederaufnahme der Datenübertragung für eine Geschwindigkeitsangleichung zu steuern. Der Sender verwendet Folgenummern zyklisch, und zwar modulo-acht, und sperrt die Übertragung, wenn die nächste auszusendende Folgenummer mit der zuletzt empfangenen ECHO- Folgenummer übereinstimmt. Es müssen demgemäß höchstens sieben Datenblöcke im Register 12 des Empfängers 100 gepuffert werden, um Datengeschwindigkeitsabweichungen auszugleichen. Der Wert 1 wird im Folgezähler 25 gespeichert.
  • Der entfernte Sender wird gegen einen Verlust von ECHO- oder ACK- Codierungen durch eine Zeitablaufschaltung geschützt. Wenn ein Zeitablauf eintritt, bevor der erwartete ECHO-Code empfangen wird, so gibt der Sender einen ENQ-Code ab. Bei Empfang des ENQ-Code durch die Stufe 10 setzt dieser das Ein-Bit-F-Register 21 und veranlaßt, daß der letzte (ECHO+i)-Code vom R2-Register 24, gefolgt von einem (ACK+j)-Code zurückübertragen wird, wobei j die zuletzt durch die Stufe 10 empfangene Folgenummer ist, die im Folgezähler 25 gespeichert wird. Die Antwort auf einen CHECK-Code ist ein einfacher (ACK+j)-Code, wobei j die zuletzt empfangene Folgenummer ist.
  • Im Blockmode wird die Übertragung durch einen in der Stufe 10 empfangenen INIT1-Code gestartet. Unter Ansprechen auf diesen Code wird der Pufferspeicher 12 gelöscht, das Mode-Register 27 in den Block-Mode eingestellt, das Anhang-Register 26 zusammen mit der Anhangverarbeitung betätigt, der Folgenummernzähler 25 und der Byte-Zähler 28 werden auf Null zurückgestellt, und das R1-Register 22 wird mit dem AINIT-Code geladen, der im nächstverfügbaren Byte-Fenster übertragen werden soll. Die bewegliche Grenze 13 wird zum Kopf H des Puffers 12 verschoben, um die dort gespeicherten Daten für die Stufe 11 nicht verfügbar zu machen, bis die Anhangverarbeitung (Datenblockbestätigung) beendet ist.
  • Die durch die Stufe 10 empfangenen Datenbytes werden in das Pufferregister 12 geladen, und zwar beginnend an der Grenze 13. Bei Weiterleitung jedes Datenbyte an das Pufferregister 12 wird der Byte-Zähler 28 um Eins weitergeschaltet. Am Ende des Datenblocks wird ein Anhang empfangen, der aus einem BOT-(Anfang des Anhangs)-Code, zwei Bytes, die die Länge des Blocks (bis zu 2¹&sup6; -1 Datenbytes mit den niedrigststelligen Bits zuerst) enthalten, und am Ende aus einem SEQ-Code mit der jeweiligen zyklischen Folgenummer besteht. Die drei dem BOT-Code folgenden Bytes werden in das Anhangregister 26 eingegeben, in welchem die Länge mit dem Zählwert im Bytezähler 28 und die Folgenummer mit dem Zählwert +1 (moduloacht) im Folgezähler 25 verglichen werden. Wenn beide Vergleiche eine Übereinstimmung zeigen, so wird ein (ECHO+i)-Code in den Puffer 12 eingegeben und die Grenze 13 dicht hinter den ECHO-Code verschoben. Dieser Datenblock steht jetzt für die Stufe 11 zur Verfügung, die daher damit beginnt, die Datenbytes zur Leitung 14 weiterzuleiten. Der Bytezähler 28 wird zurückgestellt und der Folgezähler 25 um Eins (modulo-acht) zur Vorbereitung für den Empfang des nächsten Datenblocks weitergeschaltet.
  • Wenn eine der Prüfungen (Länge und Folgenummer) fehlerhaft ausgeht, so werden die Daten hinter der Grenze 13 als fehlerhaft beseitigt, und zwar Indem das Ende T zur Grenze B verschoben wird. Es wird dann ein (REJ+j)- Code (wobei j der Wert im Folgezähler 25 ist) in den Puffer 12 an der neuen Position des Endes T geladen, und die Grenze 13 wird um eine Stelle verschoben, um den REJ-Code für die Stufe 11 verfügbar zu machen. Wenn der ECHO-Code oder der REJ-Code den Kopf H des Pufferregisters 12 erreicht, wird er durch die Stufe 11 in das R2-Register 24 gegeben, um zurück zum entfernten Empfänger übertragen zu werden.
  • Wenn ein ECHO- oder REJ-Code bei der Übertragung zum entfernten Empfänger verloren geht, tritt ein Zeitablauf ein, der wie beim Zeichenmode bewirkt, daß der ENQ-Code übertragen wird. Der CHECK-Code wird in einigen Sendern ebenso wie der ENQ-Code verwendet, aber lediglich für eine Fehlersteuerung, und kann einen kürzeren Zeitablauf haben. In einem System vom Typ 5 muß der Datenblock beim Sender gespeichert bleiben, bis eine Bestätigung empfangen wird (um eine Neuübertragung zu ermöglichen, wenn ein REJ-Code empfangen wird). Die Antwort auf einen CHECK-Code ist ein einfacher (ACK+j)-Code, wobei j die zuletzt empfangene Folgenummer ist, und dieser Code wird im Folgezähler 25 gespeichert, um im Sender zur Prüfung der gespeicherten Blockfolgenummer benutzt zu werden.
  • Man erkennt, daß der Empfänger 100 Datenströme mit den Formaten der Typen 1, 2, 3, 4 und 5 empfangen und alle Protokolle liefern kann, die zur Unterstützung bei der Übertragung aller dieser verschiedenen Datenströme notwendig sind. Bei Datenströmen vom Typ 1 kann der Austausch INIT0/AINIT weggelassen werden, wenn der Empfänger bei der anfänglichen Betätigung den Zeichen-Mode als Standardeinstellung besitzt. Alternativ kann für jede Betriebsart die Dienstanforderung den Mode des Senders enthalten, und die Antwort könnte den Mode des Empfängers umfassen. Wenn sie übereinstimmen, wäre kein anfänglicher Handshake erforderlich. Wenn der Empfänger an einem Ende einer Übertragungsstrecke die Modeneinstellung des Senders kennenlernen will, kann er einen INITREQ-Code aussenden, für den, abhängig vom Sendemode, die Antwort INIT0 oder INIT1 lautet. Die Antwort AINIT bestätigt den Empfang von INIT0 oder INIT1.
  • Der Pufferspeicher 12 kann auch im inneren Speicher des Host-Rechners verwirklicht werden. Dies bringt keine Schwierigkeiten mit sich, so lange die Beschränkungen der beweglichen Grenze verwirklicht sind und der Sender 15 Zugriff zu den in den Pufferspeicher geladenen Steuercodierungen hat.
  • Es besteht auch die Möglichkeit, den Empfänger 100 in einem Multiplex-Mode zu betreiben, bei dem mehrere Typen von Datenströmen miteinander multiplexiert sind. In diesem Fall würde jeder unterschiedliche Datenstrom einen besonders zugeordneten, zeitabhängigen Kanal belegen. Es Ist dann natürlich erforderlich, die Signale zu demultiplexieren und zu trennen. Jeder Datenstrom hätte sein eigenes Pufferregister, die Anhang- Verarbeitung und die Byte-Verarbeitungsschaltungen könnten jedoch zeitlich anteilig von allen Kanälen benutzt werden. Eine Pufferregisteranordnung, die für einen Multiplexbetrieb geeignet ist, findet sich im US-Patent 4 499 576.
  • Man beachte, daß drei unterschiedliche Arten von BOT-Codierungen in der Tabelle 2 vorhanden sind (BOT, BOTM und BOTS). Alle drei Codierungen sind für die Einleitung eines Anhangs geeignet, aber die beiden letztgenannten werden für eine etwas unterschiedliche Anhang-Verarbeitung verwendet. Ein BOTS-Anfang eines Anhang-Code wird für einen sogenannten S- Typ verwendet. Der S-Typ-Block wird bei Datenströmen des Typs 3 und 4 verwendet, die eine Fehlerfeststellung, aber keine Fehlerkorrektur benutzen. Wenn ein Block aufgrund eines Fehlers weggelassen worden ist, so sind die Folgenummern aller nachfolgenden Blöcke in Systemen vom Typ 3 fehlerhaft. Der BOTS-Code kann in einem S-Typ-Block bei einem solchen System benutzt werden, um eine Weiterschaltung des Folgezählers 25 sowohl für fehlerfreie als auch für fehlerhafte Blöcke zu bewirken. Ein BOTM-Code wird in einigen Systemen verwendet, um ein Rahmenbildungsschema höherer Ebene zu unterstützen, bei dem ein Rahmen aus mehreren BOTM-Blöcken, gefolgt von einem normalen (BOT) Block besteht.
  • Die nicht in eine Folge eingeordneten Blockcodierungen BOU und EOU können zur Aussendung kleiner Datenmengen verwendet werden, die den Flußsteuermechanismus umgehen, um eilige Daten mit Protokollen höherer Ebene zu übertragen.
  • Das Ansprechen des Empfängers 11 in der Zeichnung auf alle Steuercodierungen soll jetzt der Vollständigkeit halber beschreiben werden. Wenn die Stufe 10 ein Steuerzeichen ENQ empfängt, wird das F-Register 21 auf "1" eingestellt und das R1-Register 22 mit (ACK+j) geladen, wobei j die Folgenummer im Folgezähler 25 ist. Der ENQ-Code löscht außerdem das Anhang- Pufferregister 26 und beseitigt alle Daten hinter der Grenze 13.
  • Wenn ein Steuercode CHECK empfangen wird, verhält er sich identisch wie ein ENQ-Code mit der Ausnahme, daß das F-Register 21 nicht gesetzt wird, um anzuzeigen, daß kein Steuerzeichen ENQ empfangen wurde.
  • Wenn ein Steuercode INIT1 empfangen wird, wird der Pufferspeicher 12 gelöscht und die Anhang-Verarbeitung durch Einstellen des Mode-Registers 27 betätigt. Der Folgezähler 25 und der Byte-Zähler 28 werden auf Null gesetzt und das R1-Register 22 mit einem AINIT-Code geladen. Wenn ein INIT0-Code empfangen wird, wird das Mode-Register 27 zurückgestellt, um die Anhang- Verarbeitung abzuschalten, und das R1-Register 22 wird mit dem Code AINIT geladen.
  • Wenn ein Steuercode BOT (oder BOTS oder BOTM) empfangen wird, so werden der BOT-Code und die folgenden beiden Bytes in das Anhang-Register 26 geladen. Wenn ein Datenzeichen (statt eines SEQ-Code) unmittelbar diesen drei Bytes folgt, wird das Anhang-Register 26 gelöscht, wodurch gestörte Anhänge nicht beachtet werden.
  • Bei einer nicht in eine Folge eingeordneten Nachricht, d. h. bei Nachrichten, denen ein SOU-Code vorangeht, die durch einen EOU-Code beendet werden und genau zwei Datenbytes dazwischen enthalten, empfangen wird, so wird sie unmittelbar zum Host-Rechner ohne Verarbeitung in der Schaltung nach Fig. 1 weitergeleitet.
  • Wenn im Zeichen-Mode (Mode-Register 27 zurückgestellt) ein (SEQ+i)- Code empfangen wird, so wird er in einen (ECHO+i)-Code umgesetzt und direkt zum Pufferregister 12 übertragen. Die Grenze 13 wird dicht hinter den ECHO- Code verschoben, damit die Stufe 11 auf den ECHO-Code zugreifen kann.
  • Wenn ein (SEQ+i)-Code empfangen wird, während die Anhang-Verarbeitung betätigt ist (Mode-Register 27 eingestellt), so wird i mit der Folgenummer +1 (molulo-acht) im Folgezähler 25 verglichen und die Länge im Anhang- Register 26 mit dem Byte-Zählwert im Zähler 28 verglichen. Wenn beide Prüfungen fehlerhaft ausgehen, so werden die Daten hinter der Grenze 13 durch Einstellen des Endes T des Registers 12 auf die Position der Grenze 13 weggelassen. Wenn der Anfang eines Anhang-Code bei fehlerhaften Ausgang einer Prüfung ein BOTS-Code ist, so wird der Folgezähler 25 auf i eingestellt und der Code (ECHO+i) in den Puffer 12 gegeben. Im anderen Fall wird ein REJ-Code, gefolgt von der Folgenummer im Zähler 25, in den Puffer 12 geladen. Die Grenze 13 wird so verschoben, daß dieser Code für die Stufe 11 verfügbar ist.
  • Wenn bei Empfang eines Code (SEQ+i) die Prüfungen positiv ausgehen, wird der Zähler 25 auf i gesetzt und ein Code (ECHO+i) in den Puffer 12 geladen. Die Grenze 13 wird dann an das Ende T geschoben, um den vollständigen Datenblock für die Stufe 11 verfügbar zu machen.
  • Die Stufe 11 des Empfängers bearbeitet die Schnittstellenbildung mit den Host-Rechnern. Demgemäß stimmen die Protokolle der Ebene A mit denen des Host-Rechners überein. Die Bytes werden jeweils einzeln vom Puffer 12 mit diesem Protokoll der Ebene A zur Ausgangsleitung 14 gegeben. Wenn ein Code (ECHO+j) oder (REJ+j) aus dem Puffer 12 wiedergewonnen wird, so wird er zum R2-Register 24 statt zur Leitung 14 übertragen. Nach dem Laden wird das Zustandsbit im Register 24 eingestellt, um den Sender 15 zu veranlassen, den gespeicherten Code zu übertragen.
  • Die verschiedenen Sender, die zufriedenstellend mit dem Empfänger 100 der Zeichnung zusammenarbeiten, lassen sich leicht vom Fachmann entwickeln. Um jedoch die geeignete Senderlogik zu erläutern, sind Programmverwirklichungen der verschiedenen Senderarten in den Tabellen 3 bis 7 dargestellt. Diese Sender-Verwirklichungen sind zur Erleichterung beim Lesen in einem Pseudo-Code hoher Ebene geschrieben. Tabelle 3 Sender vom Typ 1 Kommentar: input ist eine unbegrenzte Datenquelle, die in Datenbytes mit acht Bit unterteilt ist array input i=0 main procedur for sind input i=i+1 end Tabelle 4 Sender vom Typ 2 Kommentar: R ist der Wert der zuletzt empfangenen ECHO-Nummer. S ist der Wert der nächsten (SEQ)-auszusendenden Nummer. rec ist eine vom Empfänger empfangene Hülle. TIMEOUT ist eine feste Zeit zwischen dem Empfang des letzten Echos und der Aussendung einer Anfrage nach einem Empfänger-Zustand. array input R=0; S=1; i=0 N=blocksize main procedur send INITO wait for AINIT while send input if send if rec=ECHO+j R=j if time=TIMEOUT send end. Tabelle 5 Sender vom Typ 3 Kommentar: block ist eine unbegrenzte Anordnung von Blöcken, die acht Datenbytes mit je acht Bits enthalten, wobei N = BLOCKSIZE (Blockgröße), L1 die niedrigstelligen Bits von N, L2 die Bits mit hohem Stellenwert von N sind. main procedur send INIT1 wait for AINIT for send block send BOTS, L1, L2, end Tabelle 6 Sender vom Typ 4 array block R=0; S=1; i=0 main procedure send INIT1 wait for AINIT while send block send BOTS, L1, L2, i=i+1 if rec=ECHO+j R=j if time=TIMEOUT send EnQ end Tabelle 7 Sender vom Typ 5 Kommentar: FIRSTREJ ist eine logische Variable, die wahr oder falsch ist. array blocks S=1; R=0; i=0, FIRSTREJ=True main procedure send INIT1 wait for AINIT while send block send BOTS, L1, L2, SEQ+S i=i+1 if rec=ECHO+j FIRSTREJ=True R=j if rec=REJ+j if i=i-(S-j-1) R=j FIRSTREJ=False if rec=ACK+j i=I-(S-j-1) if time=TIMEOUT send ENQ end
  • Um schließlich die Offenbarung zu vervollständigen, ist eine Verwirklichung in Pseudo-Code für den Empfänger 100 der Zeichnung in den Tabellen 8 und 9 gezeigt, die die Stufen 1 bzw. 2 darstellen. Tabelle 8 Empfänger mit universellem Protokoll Stufe 1 Kommentar: H ist der Ort für den Kopf eines FIFO-Registers PD. T ist der Ort für das Ende des FIFO-Registers PD. B ist der augenblickliche Ort einer beweglichen Grenze im FIFO-Register PD. SEQNO ist der Wert der augenblicklichen Folgenummer. MODE ist eine Varible mit zwei Werten gleich CHAR für den Zeichen-Mode und BLOCK für den Block-Mode. LGTH ist der Zählwert des empfangenen Datenblocks in Bytes. Hauptverfahren MODE=CHAR T=B=H=O LGTH=SEQNO=O While if input=data PD(T)=input T=T+1 LGTH=LGTH+1 if MODE=CHAR B=T if MODE=CHAR and input=SEQ+i PD(T)=ECHO+1 T=T+1 B=T if MODE=BLOCK and input=BoT/BOTM/BOTS,L1,L2,SEQ+i if i(SEQNO+1) PD(T)=ECHO+i T=T+1 SEQNO=i LGTH=0 B=T else T=B if (BOTS) SEQNO=i PD(T)=ECHO+i else PD(T)=REJ+SEQNO T=T+1 B=T LGTH=0 if input=ENQ T=B LGTH=0 send LASTECHO send ACK+SEQNO if input=CHECK T=B LGTH=0 send ACK+SEQNO if input=INITO T=0 B=0 H=0 LGTH=0 SEQNO=0 MODE=CHAR send AINIT if input=INIT1 T=0 B=0 H=0 LGTH=0 SEQNO=0 MODE=BLOCK Send AINIT if input=ECHO+i give (ECHO+i) to local transmitter if input=REJ+i give (REJ+i) to local transmitter if input=ACK+i give (ACK+i) to local transmitter if input=AINIT give AINIT to local transmitter end Tabelle 9 Empfänger Stufe 2 Hauptverfahren while if PD(H)=data send data to host if PD(H)=ECHO+j send ECHO+j LASTECHO=ECHO+j if PD(H)=REJ+j send REJ+j LASTECHO=REJ+j H+H+1 end

Claims (4)

1. Datenempfänger (100) zur Verarbeitung von Daten entsprechend einer Vielzahl unterschiedlicher Nachrichtenprotokolle
mit einem Pufferspeicher (12), der zuerst eingegebene Daten zuerst wieder ausgibt (FIFO-Speicher),
einer ersten Stufe (10), die unter Ansprechen auf einen ankommenden Datenstrom Befehlscodierungen dahingehend empfängt, welches Protokoll der Vielzahl unterschiedlicher Nachrichtenprotokolle in den Datenstrom eingefügt ist, in den Befehlscodierungen enthaltene Empfängerbetriebs- Steuerinformationen speichert, den Empfänger in die dadurch angegebene Betriebsweise einstellt, weitere Befehlscodierungen, die charakteristisch für das eine Protokoll sind, decodiert und den ankommenden Datenstrom in einen ersten Teil des Pufferspeichers einspeichert,
einer Einrichtung zur Lieferung von Flußsteuerinformationen, die zur Quelle des ankommenden Datenstroms zu übertragen sind, und
einer zweiten, mit dem Pufferspeicher verbundenen Stufe für einen Zugriff auf Informationen aus einem zweiten Teil des Pufferspeichers,
wobei der Pufferspeicher eine verschiebliche Grenze (13) zur Unterteilung des Pufferspeichers in dem ersten und dem zweiten Teil aufweist, die Grenze den Zugriff durch die zweite Stufe auf den zweiten Teil des Pufferspeichers
begrenzt und durch die erste Stufe nach Verarbeitung der empfangenen Daten im ersten Teil verschiebbar ist, derart daß ein Zugriff durch die zweite Stufe auf empfangene, noch nicht verarbeitete Daten nicht verfügbar ist.
2. Datenempfänger nach Anspruch 1, bei dem die zweite Stufe zur Übertragung zu einem entfernten Sender und unter Ansprechen auf eine Anforderung vom entfernten Sender eine Anzeige für das letzte, aus dem FIFO-Pufferspeicher entfernte Flußsteuerzeichen liefert.
3. Datenempfänger nach Anspruch 1 oder 2, bei dem die zweite Stufe dann, wenn der Empfänger unter Ansprechen auf die Informationen auf einen Betrieb in einer Blockbetriebsweise eingestellt ist, die zweite Stufe zur Übertragung zu einem entfernten Sender und unter Ansprechen auf eine Anforderung vom entfernten Sender die Identität des letzten, in den FIFO-Pufferspeicher eingegebenen Datenblocks liefert.
4. Datenempfänger nach Anspruch 1, 2 oder 3, bei dem die zweite Stufe dann, wenn der Empfänger unter Ansprechen auf die Informationen auf einen Betrieb in einer Blockbetriebsweise eingestellt ist, zur Übertragung zu einem entfernten Sender und unter Ansprechen auf eine Anforderung vom entfernten Sender die Identität des letzten, aus dem FIFO-Speicher entfernten Datenblocks liefert.
DE8686301807T 1985-03-22 1986-03-13 Universalprotokoll-datenempfaenger. Expired - Fee Related DE3687355T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/714,834 US4852127A (en) 1985-03-22 1985-03-22 Universal protocol data receiver

Publications (2)

Publication Number Publication Date
DE3687355D1 DE3687355D1 (de) 1993-02-11
DE3687355T2 true DE3687355T2 (de) 1993-07-01

Family

ID=24871643

Family Applications (1)

Application Number Title Priority Date Filing Date
DE8686301807T Expired - Fee Related DE3687355T2 (de) 1985-03-22 1986-03-13 Universalprotokoll-datenempfaenger.

Country Status (7)

Country Link
US (1) US4852127A (de)
EP (1) EP0195598B1 (de)
JP (2) JPS61220542A (de)
KR (1) KR940002195B1 (de)
AU (3) AU576952B2 (de)
CA (2) CA1252898A (de)
DE (1) DE3687355T2 (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
HU199501B (en) * 1985-03-16 1990-02-28 Wellcome Found Process for producing 3'-azido-3'-deoxytimidine-5' ester derivatives and pharmaceutical compositions comprising the same
US4852127A (en) * 1985-03-22 1989-07-25 American Telephone And Telegraph Company, At&T Bell Laboratories Universal protocol data receiver
GB2203616B (en) * 1987-04-01 1991-10-02 Digital Equipment Int Improvements in or relating to data communication systems
CA1306810C (en) * 1987-09-30 1992-08-25 Gregory D. Dolkas Data communication method and apparatus
US5485370A (en) * 1988-05-05 1996-01-16 Transaction Technology, Inc. Home services delivery system with intelligent terminal emulator
US5572572A (en) * 1988-05-05 1996-11-05 Transaction Technology, Inc. Computer and telephone apparatus with user friendly interface and enhanced integrity features
US5150465A (en) * 1988-11-30 1992-09-22 Compaq Computer Corporation Mode-selectable integrated disk drive for computer
EP0465532B1 (de) * 1989-03-31 1999-05-12 CHIAPPA, J Noel Sehr schnelle datenpaketschaltung und verfahren
US5159684A (en) * 1989-05-24 1992-10-27 Pitney Bowes Inc. Data communication interface integrated circuit with data-echoing and non-echoing communication modes
GB2236930B (en) * 1989-10-11 1994-03-23 Plessey Co Plc Method and apparatus for identifying valid cells in a redundant path combining unit of an asynchronous transfer mode switch
DE4107742A1 (de) * 1991-03-11 1992-09-17 Standard Elektrik Lorenz Ag Protokollanpassung
JPH05274273A (ja) * 1991-06-28 1993-10-22 Digital Equip Corp <Dec> コンピュータ・システムに於ける素子のインターロック・スキーム
US5524116A (en) * 1992-02-14 1996-06-04 At&T Corp. Packet framer
US6098188A (en) * 1992-02-14 2000-08-01 Lucent Technologies Inc. Packet framer
CA2081505C (en) * 1992-02-14 1998-09-01 Charles Robert Kalmanek, Jr. Packet framer
US5631935A (en) * 1993-05-06 1997-05-20 Run-Rad Unlimited Networking, Ltd. Method and apparatus for governing information transfer using an efficient transport protocol
EP0676096A4 (de) * 1993-10-28 1999-08-25 Motorola Inc Demodulator-logik-einheit anpasbar an mehrere daten-protokolle.
GB2298109B (en) * 1995-02-14 1999-09-01 Nokia Mobile Phones Ltd Data interface
GB2301751B (en) * 1995-06-02 2000-02-09 Dsc Communications Control message transmission in telecommunications systems
US5796832A (en) * 1995-11-13 1998-08-18 Transaction Technology, Inc. Wireless transaction and information system
CA2204828C (en) * 1996-05-10 2004-11-23 Ray Nuber Error detection and recovery for high rate isochronous data in mpeg-2 data streams
EP1225770B1 (de) * 1996-05-10 2005-03-30 General Instrument Corporation Fehlererkennung und -beseitigung für hohenrate isochronen Daten in einen MPEG-2 Datenstrom
US6477143B1 (en) 1998-01-25 2002-11-05 Dror Ginossar Method and apparatus for packet network congestion avoidance and control
US6389359B1 (en) * 2000-07-12 2002-05-14 Links Point, Inc. Methods for automatically detecting GPS hardware
US6643718B1 (en) * 2000-07-21 2003-11-04 Silicon Integrated Systems Corporation Method and apparatus for controlling order dependency of items in a multiple FIFO queue structure
US7124218B2 (en) * 2001-09-27 2006-10-17 International Business Machines Corporation System and method for providing character interactive input/output
US7194508B2 (en) * 2001-09-27 2007-03-20 International Business Machines Corporation System and method for providing character interactive input/output
EP1416393B1 (de) * 2002-11-01 2008-08-13 STMicroelectronics Limited Prozessorschnittstelle mit Stromregister und FIFO
KR100802619B1 (ko) 2002-11-07 2008-02-13 엘지전자 주식회사 무선 링크 제어 프로토콜에 따르는 수신기에서의 알엘씨데이터 수신 윈도우 처리 방법

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US31319A (en) * 1861-02-05 Improvement in hoop-locks
US3453592A (en) * 1962-11-13 1969-07-01 Nippon Electric Co Delay time control system for signal check or correction
USRE31319E (en) 1971-08-27 1983-07-19 Bell Telephone Laboratories, Incorporated Digital data communication system
US3753227A (en) * 1971-12-07 1973-08-14 Ncr Parity check logic for a code reading system
US3909526A (en) * 1972-04-20 1975-09-30 Mi 2 74245 76919720420013 781 Square wave oscillator for a data terminal
US3805234A (en) * 1972-07-31 1974-04-16 Westinghouse Electric Corp Digital data transmission system
US3910322A (en) * 1972-08-24 1975-10-07 Westinghouse Electric Corp Test set controlled by a remotely positioned digital computer
GB1441816A (en) * 1973-07-18 1976-07-07 Int Computers Ltd Electronic digital data processing systems
US3950616A (en) * 1975-04-08 1976-04-13 Bell Telephone Laboratories, Incorporated Alignment of bytes in a digital data bit stream
US4112258A (en) * 1977-10-12 1978-09-05 Bell Telephone Laboratories, Incorporated Communication system using intelligent network processor
FR2386211A1 (fr) * 1977-03-31 1978-10-27 Europ Teletransmission Systeme de communication numerique
US4161778A (en) * 1977-07-19 1979-07-17 Honeywell Information Systems, Inc. Synchronization control system for firmware access of high data rate transfer bus
US4159532A (en) * 1977-08-04 1979-06-26 Honeywell Information Systems Inc. FIFO look-ahead system
JPS54150907A (en) * 1978-05-19 1979-11-27 Fujitsu Ltd Loop test control system
US4251885A (en) * 1979-03-09 1981-02-17 International Business Machines Corporation Checking programmed controller operation
JPS55121536A (en) * 1979-03-13 1980-09-18 Omron Tateisi Electronics Co Communication controller
JPS5833972B2 (ja) * 1979-11-12 1983-07-23 富士通株式会社 計算機システム間通信方式
US4280217A (en) * 1979-12-26 1981-07-21 Bell Telephone Laboratories, Incorporated Time division switching system control arrangement
US4322576A (en) * 1979-12-28 1982-03-30 Racal-Milgo, Inc. Message format for secure communication over data links
DE3012133A1 (de) * 1980-03-28 1981-10-08 Siemens AG, 1000 Berlin und 8000 München Verfahren und schaltungsanordnung zur aufnahme und abgabe von informationsdaten und signalisierungsdaten bei einer programmgesteuerten datenvermittlungsanlage
US4371929A (en) * 1980-05-05 1983-02-01 Ibm Corporation Multiprocessor system with high density memory set architecture including partitionable cache store interface to shared disk drive memory
EP0042447B1 (de) * 1980-06-19 1984-06-13 International Business Machines Corporation Durchflusskontrollvorrichtung für Knotenstellen zum Schalten von Blöcken
CA1187198A (en) * 1981-06-15 1985-05-14 Takashi Chiba System for controlling access to channel buffers
US4445193A (en) * 1981-06-16 1984-04-24 International Business Machines Corporation Bisynchronous host/terminal communication system with non-clock-generating modem & PLL generated clock signal
JPS5848551A (ja) * 1981-09-18 1983-03-22 Nippon Telegr & Teleph Corp <Ntt> デ−タ通信制御装置
JPS5876938A (ja) * 1981-10-15 1983-05-10 コンバ−ジエント・テクノロジ−ズ・インコ−ポレ−テツド 異なる入出力プロトコル間の入出力デイジタル回路を構成するための装置と方法
JPS58164352A (ja) * 1982-03-24 1983-09-29 Yokogawa Hokushin Electric Corp ル−プ形デ−タ通信システム
US4534031A (en) * 1982-08-02 1985-08-06 News Log International Coded data on a record carrier and method for encoding same
US4499576A (en) * 1982-08-13 1985-02-12 At&T Bell Laboratories Multiplexed first-in, first-out queues
US4521776A (en) * 1982-10-01 1985-06-04 Motorola, Inc. Radio paging device including apparatus for preventing undesired device turn-off
JPS59108133A (ja) * 1982-12-13 1984-06-22 Nec Corp 入出力制御方式
JPS59206962A (ja) * 1983-05-11 1984-11-22 Mitsubishi Electric Corp デ−タ記憶処理装置
US4519068A (en) * 1983-07-11 1985-05-21 Motorola, Inc. Method and apparatus for communicating variable length messages between a primary station and remote stations of a data communications system
AU575351B2 (en) * 1983-11-07 1988-07-28 Digital Equipment Corporation Data processing system
US4852127A (en) * 1985-03-22 1989-07-25 American Telephone And Telegraph Company, At&T Bell Laboratories Universal protocol data receiver

Also Published As

Publication number Publication date
AU5475186A (en) 1986-09-25
EP0195598A3 (en) 1987-08-05
EP0195598B1 (de) 1992-12-30
AU595437B2 (en) 1990-03-29
CA1255006A (en) 1989-05-30
EP0195598A2 (de) 1986-09-24
JPH0673940U (ja) 1994-10-18
AU576952B2 (en) 1988-09-08
KR940002195B1 (ko) 1994-03-18
AU1305088A (en) 1988-06-16
AU598917B2 (en) 1990-07-05
JPS61220542A (ja) 1986-09-30
CA1252898A (en) 1989-04-18
CA1255007C (de) 1989-05-30
DE3687355D1 (de) 1993-02-11
AU1304988A (en) 1988-06-16
US4852127A (en) 1989-07-25
KR860007836A (ko) 1986-10-17

Similar Documents

Publication Publication Date Title
DE3687355T2 (de) Universalprotokoll-datenempfaenger.
DE69015275T2 (de) Datenkommunikationssystem und Vorrichtung mit einer zyklischen Quittungsantwortensequenz.
DE69130187T2 (de) Hochgeschwindigkeitsübertragungsprotokoll mit zwei Fenstern
DE69232613T2 (de) Hochgeschwindigkeitschnittstelle für eine Duplex-Datenverbindung
DE68925958T2 (de) Adaptives Datenübertragungsprotokoll
DE69525895T2 (de) System für Sendewiederholung in der Datenkommunikation
DE69434310T2 (de) Wiederholungsprotokoll für drahtlose Kommunikation
DE69426683T2 (de) Datenübertragungssystem mit automatischer Wiederholungsaufforderung (ARQ)
DE3850610T2 (de) Schnelles Richtungswechselprotokoll für ein schnelles Halbduplex-Modem.
DE3687792T2 (de) Verfahren und system zum bearbeiten von uebertragungsfehlern.
DE69330399T2 (de) HDLC-Empfänger
CH615286A5 (de)
DE2258623A1 (de) Fehlerschutzanordnung fuer die nachrichtenuebertragung
DE60111991T2 (de) Verfahren und System zur Übertragung von Daten mit einer Datenflusssteuerung
DE2945147A1 (de) Verfahren und anordnung zur fehlerueberwachung bei der asynchronen nachrichtenuebertragung
DE68916528T2 (de) System für das Senden von HDLC-Rahmen auf einem PCM-Kanal mit einer einzelnen HDLC-Anordnung und Transpositionspufferspeicher.
EP1061688A2 (de) Verfahren zur wiederholten Übertragung von Nachrichten in einem zentral gesteuerten Kommunikationsnetz
EP0903025B1 (de) Verfahren zur rechnergestützten rücksignalisierung in einem automatischen wiederholungs-anforderungs-verfahren
DE3586919T2 (de) Verfahren zur steuerung von informationsuebertragung.
DE3635106C2 (de)
DE3853118T2 (de) Verfahren und Vorrichtung zur Datenübertragung.
DE68908204T2 (de) Nachrichtenverteilungssystem.
DE69507724T2 (de) Methode und verfahren für datenpakete-empfang in einem einwegübertragungsvorrichtung
DE60113766T2 (de) System und Verfahren zur Datenübertragung in zwei Moden und entsprechender Sender und Empfänger
DE10132577A1 (de) Verfahren zur Übertragung von Datenpaketen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Free format text: BLUMBACH, KRAMER & PARTNER, 65193 WIESBADEN

8339 Ceased/non-payment of the annual fee