DE3586919T2 - Verfahren zur steuerung von informationsuebertragung. - Google Patents
Verfahren zur steuerung von informationsuebertragung.Info
- Publication number
- DE3586919T2 DE3586919T2 DE8585304864T DE3586919T DE3586919T2 DE 3586919 T2 DE3586919 T2 DE 3586919T2 DE 8585304864 T DE8585304864 T DE 8585304864T DE 3586919 T DE3586919 T DE 3586919T DE 3586919 T2 DE3586919 T2 DE 3586919T2
- Authority
- DE
- Germany
- Prior art keywords
- bytes
- queue
- data
- channel
- address
- 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
Links
- 238000000034 method Methods 0.000 title claims description 24
- 238000012546 transfer Methods 0.000 title description 2
- 230000006870 function Effects 0.000 description 28
- 230000005540 biological transmission Effects 0.000 description 17
- 238000012360 testing method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002592 echocardiography Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/43—Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
- Die Erfindung bezieht sich auf ein Verfahren zur Steuerung der Menge an Informationen, die eine Vielzahl von Datenbytes umfassen, welche von jedem Kanal einer Vielzahl von durch einen Knoten bedienten Kanälen zu durch einen anderen Knoten bedienten Kanälen zu übertragen sind.
- Vor nicht allzu langer Zeit war zur Durchführung von Rechenoperationen der direkte Zugang zu einer zentralen Recheneinrichtung erforderlich. Die Einführung der Mikroprozessoren jedoch machte es möglich, daß ein Benutzer über ein intelligentes Terminal mit einem Großrechner kommunizieren kann. Zu jeder beliebigen Zeit gibt es eine Anzahl von Benutzern, die untereinander für einen Zugriff zu dem Rechner konkurrieren. Einige Benutzer nehmen eine längere Wartezeit als andere hin. Unter diesen gibt es einige, die eine relativ kurze Zugriffszeit benötigen. Die Benutzer befinden sich typischerweise in einer Warteschlange hintereinander in der Reihenfolge der Ankunft ihrer Zugriffsanforderung. Befindet sich ein Benutzer mit einer langen Zugriffszeit vor Benutzern mit einer kurzen Zugriffszeit, so ergibt sich für letztere eine lange Wartezeit. Dieses Problem ist als Verzögerung oder Einreihen in eine Warteschlange bekannt. Mehrere Lösungen wurden vorgeschlagen. Eine Einführung in diese Problematik wird in dem Buch "Computer Networks" von A. S. Tanenbaum, veröffentlicht 1981 durch Prentice-Hall, Inc. gegeben.
- Häufig ist es auch erforderlich, daß diese Benutzer miteinander kommunizieren. Ein in einem Knoten befindlicher Schalter verbindet die Terminals der Benutzer miteinander. Diese Terminals sind intelligente Terminals, Rechner oder ähnliches. Ein Verfahren zum Übertragen der Information von einem Terminal zu einem anderen besteht in der Übertragung von Datenpaketen. Ein derartiges System ist unter dem Warenzeichen "DATAKIT VCS" der AT&Co. in einem Aufsatz von A. G. Fraser beschrieben, der in "International Conference on Communications", Boston, MA, 1979, Band 2, Seiten 20.1.1. bis 20.1.3., veröffentlicht ist. Eine weit akzeptierte Spezifikation für die Übertragung von Datenpaketen ist ferner in einem von der International Telecommunications Union, Genf, 1977, veröffentlichten Buch "Public Date Networks", Band VITI.2, beschrieben, das von der International Telegraph and Telephone Committee (CCITT) autorisiert ist.
- Manchmal möchte auch ein von einem ersten Knoten bedienter Benutzer mit einem anderen, von einem zweiten Knoten bedienten Benutzer kommunizieren. Der zweite Knoten befindet sich häufig in dem gleichen Gebäudekomplex und ist mit dem ersten Knoten über einen Lichtleiter verbunden. Wenn jedoch, und zwar in zunehmendem Maß, der zweite Knoten gegenüber dem ersten sich in einer Entfernung befindet, die nicht durch einen Lichtleiter überbrückt werden kann, können die beiden Knoten nur durch übliche verfügbare Einrichtungen miteinander verbunden werden. Allgemein verfügbare Einrichtungen in den USA können Daten nur mit einer Geschwindigkeit von 56 Kilobits/Sekunde übertragen werden.
- Es wird verständlich, daß ein Algorithmus benötigt wird, um Datenpakete zwischen zwei Terminals, die durch separate Knoten bedient werden, über eine solche Distanz mit einer üblicherweise langsamen Einrichtung zu übertragen. In diesem Fall sollte der Algorithmus sicherstellen, daß kein Benutzer andere Benutzer verzögert, die von dem gleichen Knoten bedient werden.
- Entsprechend der Erfindung ist ein Verfahren vorgesehen, wie es im Anspruch 1 definiert ist.
- Eine Möglichkeit zur Durchführung der Erfindung in einem Datenübertragungssystem, das einen Datenpaketschalter an jedem der beiden Knoten zur Verbindung über eine Übertragungseinrichtung vorsieht, besteht in der Verwendung eines üblichen Übertragungsträgers eines Fernmeldesystems. Ein Verbindungsmodul an jedem Knoten ermöglicht eine akzeptable und schnelle Bedienung für jede Einrichtung des Benutzers, die von jedem Knoten über einen separaten Kanal bedient wird. Zur Speicherung der Adressen der Kanäle sind zwei Warteschlangen vorgesehen: eine Warteschlange mit höherer Priorität und eine Wartschlange mit niedrigerer Priorität. Zu Beginn wird jede Kanaladresse an das Ende der Reihe in der Warteschlange mit der höheren Priorität eingegeben, es sei denn, die Kanaladresse ist bereits in eine der Warteschlangen eingegeben. In diesem Fall wird die Kanaladresse nicht wieder eingegeben. Eine Kanaladresse kann in die eine oder die andere Warteschlange eingegeben werden, jedoch nicht gleichzeitig in beide. Die einem Kanal zugeordneten Daten werden in eine separate Datenwarteschlang eingegeben. Die Daten werden zwischen den Knoten in Rahmen übertragen. Jeder Rahmen umfaßt Datenbündel, die einem oder mehreren Kanälen zugeordnet sind. Jedes Bündel hat seine Kanaladresse und die Anzahl der Bytes in den Bündeln. Jedes Bündel umfaßt Datenbytes und Steuerbytes. Steuerbytes werden in den Knoten gebildet und verwendet. Jedem Steuerbyte ist ein besonderes Byte zugeordnet, um die Steuerbytes von den Datenbytes zu unterscheiden.
- Ein Rahmen wird gestartet durch Lesen der Kanaladresse aus der Warteschlange mit der höheren Priorität und Lesen der entsprechenden Daten- und Steuerbytes aus der Datenwarteschlange und Bilden eines Bündels. Das Bündel ist in seiner Länge begrenzt. Wenn Daten- und Steuerbytes im Überschuß gegenüber dieser Grenzmenge verbleiben, verbleibt dieser Überschuß in der Datenwarteschlange, und die Kanaladresse wird an das Ende der Liste der Kanaladresse in der zweiten Warteschlange mit der niedrigeren Priorität eingegeben. Dieser Prozeß wird wiederholt, bis zwei Tests erfüllt sind: Es sind keine Kanaladressen mehr in der ersten Warteschlange, oder eine vorbestimmte Anzahl von Bytes für die Rahmenlänge ist erreicht.
- Wenn keine Kanaladressen mehr in der ersten Warteschlange mehr vorhanden sind, wird der vorher erwähnte Prozeß für die niedrigere Priorität wiederholt, nämlich die zweite Warteschlange der Kanaladressen. Die Bündellänge und die Rahmenlänge für Daten der zweiten Datenschlange sind jedoch länger. Wenn die Grenzmenge für eine Bündellänge erreicht ist und es verbleiben Datenbytes, werden die verbleibenden Bytes nicht gelesen, und die Kanaladresse wird an das Ende der Liste der Kanaladresse in der zweiten Warteschlange eingegeben.
- Nachdem jedes Bündel für eine zweite Warteschlange beendet ist, wird jedoch eine Überprüfung durchgeführt, um zu sehen, ob eine Kanaladresse in der ersten Warteschlange vorhanden ist. Wenn vorhanden, wird ein Bündel für diesen Kanal gebildet. Daher kann ein Datenbündel aus der ersten Warteschlange einem Datenbündel aus der zweiten Warteschlange folgen. Es kann jedoch niemals ein Datenbündel aus der zweiten Warteschlange einem Datenbündel aus der ersten Warteschlange in dem gleichen Rahmen folgen.
- Die Erfindung soll anhand der Zeichnungen näher erläutert werden. Es zeigen:
- Fig. 1 ein Blockdschaltbild eines einfachen DATAKIT VCS- Systems;
- Fig. 2 eine isometrische Ansicht eines Teils des Knotens in Fig. 1;
- Fig. 3 eine Leitungsdarstellung der Rückwandplatine des Gehäuses der Fig. 2;
- Fig. 4 das Format einer Einhüllenden;
- Fig. 5 das Format eines Paritätswortes;
- Fig. 6 das Format eines Datenpaketes;
- Fig. 7 die Anordnung des Verbindungsmoduls in einem Blockschaltbild;
- Fig. 8 das Format eines Halbwortes;
- Fig. 9 eine Erläuterung, wie Daten in eine Datenwarteschlange eingegeben werden;
- Fig. 10, 11 und 12 eine Erläuterung des Verfahrens, wie jede Datenwarteschlange nach Fig. 1 gelesen wird,
- Fig. 13 das Format eines Rahmens und
- Fig. 14 das Format eines Bündels.
- In Fig. 1 ist ein DATAKIT VCS-Netzwerk mit zwei Knoten 10 und 110 dargestellt. Eine Vielzahl von Rechnern und Terminals 12, 14, . . . 16 werden von dem Knoten 10 über die Kanäle 13, 15, . . . 17 bedient. Ebenso werden eine Vielzahl von Rechnern und Terminals 112, 114, . . . 116 von dem Knoten 110 über die Kanäle 113, 115, . . . 117 bedient. Zu einer beliebigen Zeit steht der Knoten 110 unter Steuerung entweder der Schaltung 18 oder 118, jedoch nicht beider gleichzeitig. Ebenso steht der Knoten 10 unter Steuerung entweder der Schaltung 18 oder 118, jedoch nicht beider gleichzeitig. Das DATAKID VCS-Netzwerk ermöglicht die Übertragung von Informationen über die Übertragungseinrichtung 11 von einem Kanal, der von einem Knoten bedient wird, zu einem Kanal, der von einem anderen Knoten bedient wird.
- Fig. 2 zeigt einen DATAKID-Knoten 10 (oder 110) mit einer Rückwandplatine des Gehäuses. Diese gedruckten Schaltungen bilden die Schnittstelle zu der Einrichtung des Benutzers. Ebenso sind die Kanäle 15, 13 dargestellt, welche die Schnittstellenmodule des Knotens 10 mit der Einrichtung des Benutzers, einem Rechner 14 oder einem Terminal 12, verbinden. Das Gehäuse befindet sich praktischerweise in einem Gebäude des Teilnehmers. Ein derartiger Teilnehmer hat vermutlich mehrere Benutzer.
- Fig. 3 zeigt eine Leitungsdarstellung der Rückwandplatine, eine übliche gedruckte Schaltung, des DATAKIT-Knotens 10 oder 110 in Fig. 2. Der Taktgeber 20 und der Schalter 28 sind als Steckkarten ausgebildet und werden durch einen Konkurrenzbus 31 und einen Übertragungsbus 33 miteinander geschaltet. Jedes einer Vielzahl von Modulen 22, 24, . . . 26 sind zwischen den Konkurrenzbus 31 und den Übertragungsbus 33 verbunden. Datenpakete werden von den Modulen über den Konkurrenzbus 31 zu dem Schalter 28 übertragen und von dort über den Übertragungsbus 33 zu dem Bestimmungsmodul zurückgesandt, wie im einzelnen noch beschrieben wird.
- Informationen werden von den Kanälen 13, 15, . . . 17 in Bytes zu dem Knoten 10 übertragen, wobei jedes Byte das übliche Format von 8 Bits hat. Es ist jedoch auch möglich, daß ein Teilnehmer von einer Einrichtung, wie z. B. einem Rechner 15, die Information in Einhüllenden überträgt, einem Format, das noch nachstehend beschrieben wird. Jedes Byte einer Information von einem Kanal kommt an seinem entsprechenden Schnittstellenmodul 24 . . . 26 an. In Fig. 4 ist das Format einer Einhüllenden dargestellt, die in einem Schnittstellenmodul 22 . . . 24 erzeugt wird. Wenn das Steuerbit eine 1 ist, enthält die Einhüllende eine Information von dem Kanal. Wenn das Steuerbit eine 0 ist, enthält die Einhüllende eine Information von dem Schnittstellenmodul.
- Ferner wird in jedem Schnittstellenmodul am Ende der Einhüllenden ein Paritätsbit 46 hinzugefügt, um ein Paritätswort zu bilden. Dies ist in Fig. 5 dargestellt.
- Wie bereits erwähnt, wird die Information von einem Modul zu dem Schalter in Datenpaketen übertragen. Ein Paket enthält eine Moduladresse 60, eine Kanalnummer 62 und 16 Paritätswörter 64. Die Moduladresse 60 zeigt die Adresse des Moduls an, von dem das Datenpaket ausgeht. Die Kanalnummer zeigt die Nummer des Kanals an, von dem die Information in dem Datenpaket ausgeht. Für das Weitere wird wieder auf Fig. 3 Bezug genommen. Ein über den Konkurrenzbus 31 zu dem Schalter 28 übertragenes Datenpaket hat die Adressen des Ursprungsmoduls und des Ursprungskanals. An dem Schalter 28 werden die Adressen des Ursprungsmoduls und des Ursprungskanals gelöscht und dafür die Adressen des Bestimmungsmoduls und des Bestimmungskanals eingesetzt. Dieses geänderte Datenpaket wird dann über den Übertragungsmodul 33 gesendet. Nur das Modul, das an die Bestimmungsadresse des Pakets angepaßt ist, verarbeitet das Datenpaket. Wenn daher Informationen von dem Knoten 10 über einen mit diesem verbundenen Kanal zu einem mit dem Knoten 110 verbundenen Kanal übertragen werden, wird das Verbindungsmodul 22 das Paket empfangen und verarbeiten, das dann über den Übertragungsbus von dem Schalter 28 empfangen wird.
- In Fig. 7 ist ein Blockdiagramm des Verbindungsmoduls 22 in Fig. 3 dargestellt. Ein von dem Schalter 28 (Fig. 3) empfangenes Datenpaket wird von dem Bus 23 empfangen, der mit dem Verbindungsbus 33 verbunden ist, und über eine Schnittschaltung 70 mit direktem Speicherzugriff (DMA) in einen Umlaufpuffer 72 eingegeben, der ein Speicher mit wahlfreiem Zugriff sein kann. DMA- Schnittschaltungen sind allgemein bekannt zur Eingabe von Daten in einen Speicher ohne Unterbrechung des Prozessors. Da Standardeinrichtungen verwendet werden, ist es notwendig, die nicht einer Standardeinrichtung entsprechenden Paritätswörter in jedem Datenpaket in ein Format umzuwandeln, das zur Handhabung einer Standardeinrichtung geeignet ist. Daher wird jedes Datenpaket mit der DMA-Schaltung disassembliert. Die Moduladresse wird gelöscht. Jedes verbleibende Paritätswort wird in Halbwörter paketiert, die, beginnend mit der Kanalnummer, 16 Bits aufweisen und als Halbwörter zu dem Umlaufpuffer 72 übertragen werden.
- Wie bereits anhand von Fig. 5 dargelegt, umfaßt ein Paritätswort ein Steuerbit, 8 Bits von einem Kanal oder einem die Steuerung anzeigenden Modul und ein Paritätsbit. In Fig. 8 ist ein Halbwort dargestellt, das für jedes Paritätswort von der DMA-Schaltung erzeugt wird. Jedes Halbwort umfaßt 16 Bits in drei Bereichen 80, 82 und 88. Der Bereich 80 wird in der vorliegenden Erfindung nicht verwendet. Der Bereich 82 umfaßt sechs Bits. Jedes der ersten vier Bits ist immer auf Null gesetzt. Das fünfte Bit ist das Paritätsbit (P) 85. Wenn das Paritätswort eine unkorrekte Parität hat, ist P auf Eins gesetzt. Wenn das Paritätswort eine korrekte Parität aufweist, ist P auf Null gesetzt. Das sechste Bit 86 ist eine Eins, wenn die Einhüllende 88 eine Kanalnummer hat, anderenfalls eine Null. Der dritte Bereich 88 hat eine Einhüllende.
- Die von dem Verbindungsmodul durchgeführte Funktion umfaßt im wesentlichen drei Prozesse:
- 1) Leeren des Umlaufpuffers und Eingeben der Halbwörter in die Datenwarteschlangen;
- 2) Auswählen der Datenwarteschlange, um bereits zu lesen und Bytes zu einem entfernten Knoten zu übertragen; und
- 3) Rahmen von dem entfernten Knoten zu empfangen und Datenpakete über den Konkurrenzbus 31 zu übertragen.
- Die Funktion des Verbindungsmoduls kann ohne weiteres durch gleichzeitige Inbezugnahme der Fig. 7 und 9 verstanden werden. Jedes in den Umlaufpuffer 72 eingegebene Halbwort wird unter Steuerung des Mikroprozessors gelesen und als Bytes in Datenwarteschlangen 92, 94, . . . 96 in den RAM 74 eingegeben, wie nachstehend noch im einzelnen beschrieben wird. Die jedem Kanal entsprechenden Bytes werden in eine separate Datenwarteschlange eingegeben. Eine Funktion des Verbindungsmoduls besteht darin, eine vorbestimmte Anzahl von Bytes aus jeder Datenwarteschlange zu lesen, was sich dadurch schematisch darstellen läßt, daß der Schalter 90 längs der Datenschlangen periodisch wiederholend Kontakt mit den Terminals 91, 93, . . . 95 herstellt, jedoch nicht notwendigerweise in dieser festgesetzten Reihenfolge.
- In Fig. 10 sind eine First-In-, First-Out- (FIFO) - Warteschlange, Q1, 102 und eine Round-Robin-(RR)- Warteschlange, Q2, 104 dargestellt. Die Kanalnummern werden entweder in die Warteschlange 102 oder die Warteschlange 104 eingegeben, jedoch nicht in beide, wenn die entsprechenden Halbwörter von dem Umlaufspeicher 72 gelesen und in den RAM 74 eingegeben werden. Diese Warteschlangen sind Software-Warteschlangen und befinden sich in dem RAM 76. Wenn eine Kanalnummer weder in Q1 noch in Q2 ist, wenn Daten für den Kanal aus dem Umlaufpuffer 72 entfernt werden, dann wird die Kanalnummer in Q1 eingegeben. Wenn eine Kanalnummer bereits in Q1 oder Q2 eingegeben ist, wird keine weitere Eintragung gemacht, da der Mikroprozessor nur bewirkt, daß Bytes an das Ende der entsprechenden Wartschlange eingefügt werden. Um Bytes von verschiedenen Datenpaketen des Kanals in eine Warteschlange einzugeben, ist es erforderlich, daß das Verbindungsmodul einen genügend großen RAM aufweist. Keine Aufzeichnung der ursprünglichen Paketgrenzen wird gehalten, wenn mehrere Datenpakete in der gleichen Datenschlange untergebracht sind.
- Anfänglich werden die Programme zur Durchführung der Funktionen des Verbindungsmoduls von einem EPROM 52 zu einem RAM 76 unter Steuerung des Mikroprozessors 50 übertragen. Nachdem alle Variablen initialisiert sind, beginnt die normale Verarbeitung des Verbindungsmoduls damit, daß Halbwörter sequentiell aus dem Umlaufpuffer 72 entsprechend zu einem Kanal zur Verarbeitung durch den Mikroprozessor 50 gelesen werden.
- Wenn das Paritätsfehlerbit 85 in der fünften Position des Bereichs 82 in Fig. 8 eine 0 ist, wird das Halbwort als fehlerfrei angesehen. Wenn das sechste Bit der Position 86 in den Bereich 82 der Figur eine 1 ist, hat die Einhüllende im Bereich 88 eine Kanalnummer. Die Kanalnummer kann in Q1 eingegeben werden, wie vorher erläutert wurde. Wenn eines der folgenden Kanalwörter eine Kanalnummer hat, sollte es entweder die Information des Benutzers oder die DATAKIT-Steuerinformation sein. Diese Einhüllenden werden umgewandelt in Bytes entsprechend der noch zu erläuternden Verfahrensweise und in eine Datenwarteschlange eingegeben, die der Kanalnummer zugeordnet ist. Die Umwandlung der Einhüllenden in Bytes erlaubt die Verwendung einer Standardeinrichtung zur Durchführung der vorliegenden Erfindung.
- Wenn das Paritätsfehlerbit eine 1 ist, hat die Einhüllende in dem Halbwort einen Fehler und sollte gelöscht werden. Wenn sich die Kanalnummer als fehlerhaft herausstellt, werden sämtliche auf die Kanalnummer folgenden Einhüllenden in den Halbwörtern ebenfalls gelöscht, bis die nächste Kanalnummer empfangen wird. Dies ist erforderlich, da diesen Einhüllenden keine Kanalnummer zugeordnet ist.
- Einhüllende werden in Bytes nach der folgenden Verfahrensweise umgewandelt. Die Steuereinhüllende hat eine 0, und zwar in dem ersten der neun Bytes, vorangehend das Steuerbyte. Acht Steuerbytes sind für Funktionen des Verbindungsmoduls reserviert:
- Bytes haben den Dezimalwert von 0 bis 7 einschließlich. Diese Einhüllenden müssen nicht zu dem entfernten Knoten gesendet werden und werden gelöscht.
- Wenn das Steuerbyte nicht den Dezimalwert 0 bis 7 hat, wird die führende 0 in ein STUF-Byte, 10011101, umgewandelt, wodurch zwei Bytes erzeugt werden: das STUF- Byte gefolgt von dem Steuerbyte. Beide werden in der Datenwarteschlange gespeichert.
- Alle von einem Kanal empfangenen Bytes haben eine führende 0 in der Einhüllenden. Wenn ein von einem Kanal empfangenes, nicht zur Steuerung dienendes Byte das Format 10011101 hat, sollte dieses Byte gegenüber dem STUF-Byte unterschieden werden. Die führende 1 wird gelöscht, und das Byte 00000000 wird hinter dem Byte 10011101 hinzugefügt, um zwei Bytes zu liefern: 10011101, gefolgt von 00000000, die beide in dieser Reihenfolge gespeichert werden.
- Bei sämtlichen anderen Einhüllenden, die von Kanälen empfangene Bytes haben, wird die führende 1 gelöscht und nur das verbleibende Byte in dem RAM 74 gespeichert. Da jede Einhüllende aus dem Puffer 72 zur Verarbeitung gelesen wird, ist die Variable "Queue Length" für diesen Kanal um 1 erhöht. Das bedeutet, daß die zusätzlichen Bytes, die zur Unterscheidung der Kanalbytes und der Steuerbytes verwendet sind, nicht gezählt werden.
- Um eine gerechte Bedienung für alle Benutzer bereitzustellen, ist die Länge der Warteschlange für jede Datenwarteschlange auf einen Maximalwert begrenzt, und zwar auf 1024 Einhüllende in dem vorliegenden Ausführungsbeispiel. Alle von einem Kanal ankommenden Einhüllenden, die bereits eine Länge der Warteschlange an dieser Grenze haben, werden gelöscht und nicht in der Datenwarteschlange gespeichert.
- Da jede Kanalnummer entweder in Q1 oder Q2 eingegeben ist, wird eine Variable "QUEUED FLAG" für jeden Kanal aufgestellt. Die Variable "QUEUED FLAG" ist "wahr", wenn eine Kanalnummer in Q1 oder Q2 vorhanden ist. Anderenfalls ist sie "falsch". Die Variable "QUEUED FLAG" ist ebenfalls "wahr", wenn einer Kanalnummer zugeordnete Bytes zu einem entfernten Knoten gesendet werden.
- In diesem Abschnitt wird ein Programm zur Durchführung der Funktionen des Verbindungsmoduls beschrieben.
- Ein Unterprogramm zur Auswahl des Kanals wird aufgerufen. Wenn eine beliebige Eintragung in Q1 vorhanden ist, wird die erste Eintragung in Q1 gelesen und in eine Variable eingegeben, die mit Trans Chan bezeichnet ist. Diese Variable Trans Chan befindet sich in dem RAM 76.
- Eine andere Variable From kann entweder in Q1 oder Q2 oder weder in Q1 noch in Q2 gesetzt werden. Diese Variable From wird für den Augenblick in Q1 gesetzt. Ansonsten, nämlich wenn Q1 leer und Q2 nicht leer ist, wird die erste Eintragung in Q1 in den Variablen Trans Chan und From nachgebildet und in Q2 gesetzt. Wenn jedoch Q1 und Q2 leer sind und ein Rahmen laufend übertragen wird, wird die Funktion End Frame aufgerufen, um den Rahmen, wie nachstehend beschrieben, zu beenden.
- Angenommen, ein Kanal ist ausgewählt und ein Eintrag in die Variable Trans Chan gemacht. Wenn der Abschnitt der Warteschlange für die Kanalnummer in Trans Chan 0 ist, wird das QUEUED FLAG in "falsch geändert und eine neue Kanalnummer ausgesucht. Der Grund für diesen Schritt wird nachstehend genauer erläutert. Unmittelbar danach wird eine Prüfung durchgeführt, um zu sehen, ob die Variable From Q2 ist und eine andere Variable Last From, umfassend die frühere Eintragung in die Variable From, Q1 ist. Wenn dieser Test positiv ist, wird die Funktion End Frame aufgerufen, um den Rahmen zu beenden und eine Priorität für die Bedienung von Q1 zu geben. Dies ist so, da ein Rahmen keine Bytes von Q2 mit niedrigerer Priorität haben darf und sich und Bytes mit höherer Priorität von Q1 folgen.
- Wenn jedoch kein Rahmen übertragen wird, wird die Funktion Start Frame aufgerufen. Ob ein Rahmen übertragen wird oder nicht, wird überprüft durch Testen einer Variablen No Transmitting, um zu sehen, ob sie "wahr" oder "falsch" ist: "Wahr" zeigt an, daß ein Rahmen übertragen wird, und "falsch", daß dem nicht so ist.
- In Fig. 13 ist das Format eines Rahmens dargestellt, der zur Übertragung von Bytes von einem Knoten zu einem anderen verwendet wird mittels eines in der vorliegenden Erfindung beschriebenen Übertragungsmoduls. Der Rahmen wird von links nach rechts gesendet. Ein führendes Flag 131, umfassend acht Bits in dem Format 01111110 wird zuerst gesendet. Das nachfolgende Flag 131 sendet einen Status-Byte 132 von acht Bits. Das Status-Byte übermittelt eine Information bezüglich des Typs des bedienenden Verbindungsmoduls. Dem Status-Byte nachfolgend werden eine oder mehrere Bündel 131, 134, 135, . . . 137 gesendet. Ein Bündel umfaßt Daten einer Ausgangswarteschlange und wird nachfolgend anhand von Fig. 14 erklärt. Dem Datenbündel nachfolgend wird eine Rahmenprüffolge (FCS) 138 gesendet. FCS ist ein Standard, spezifiziert durch x.25, ein CCITT (The International Telegraph and Telephone Consultative Committee) Standard. Dieser Standard kann in einem Buch mit dem Titel "Public Data Networks", Band VIII.2, nachgeschlagen werden, das von der International Telecommunication Union, Genf, 1977, veröffentlicht wurde. FCS 138 wird zum Auffinden von Übertragungsfehlern verwendet. FCS nachfolgend wird ein Flag 139 mit dem Format 01111110 gesendet. Auf diese Weise zeigen die Flags 131 und 139 den Start und das Ende eines Rahmens an.
- Wenn die Funktion Start Frame aufgerufen ist, leitet der Mikroprozessor 50 eine Rahmenfolge durch Senden eines Signals nach USART 54 ein, das ein Flag 131 sendet. Es sollte jedoch festgehalten werden, daß im freien Zustand USART 54 konstant Flags zu dem entfernten Knoten sendet und ebenso Flags empfängt. Beim Empfang eines Signals von dem Mikroprozessor jedoch ist USART 54 informiert, daß ein Rahmen gestartet wird. Dabei wird, unmittelbar nachdem das Flag 131 gesendet ist, das von dem Mikroprozessor 50 empfangene Status-Byte 132 von USART 54 zu dem entfernten Knoten gesendet. Unmittelbar nachdem das Status-Byte gesendet ist, wird die Variable No Transmitting auf "wahr" gesetzt. Die maximale Rahmengröße ist auf 256 gesetzt. Die Variable Frame Length ist auf Eins initialisiert, Zählen des Status-Byte. Danach wird die Funktion Start Chunk aufgerufen.
- In Fig. 14 ist ein Bündel in einem Blockformat dargestellt. Es sind eine Vielzahl von Datenbytes 141, 142, 143, . . . 147 mit je 8 Bits gezeigt, gefolgt von einem Byte LEN 148 mit sechs Bits und einem Kanalbyte 149 mit zehn Bits. Einige vorstehend diskutierte Einhüllende sind als zwei Bytefolgen dargestellt, einschließlich der Datenbytes 141 bis 147. LEN 148 repräsentiert die Bündellänge in Bytes. Dieses LEN-Byte umfaßt auch die beiden Bytes LEN und das Kanalbyte in seiner Zählung. Das zehn Bits umfassende Kanalbyte schließt die Zahl der Kanäle ein, die sich auf das Bündel bezieht. Die Zahl der Kanäle ist eine Angelegenheit der Auslegung des Systems. In dem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung wurden 512 Kanäle ausgewählt. Da 210 1024 ergibt, liefern zehn Bits 1024 Kanalnummern. Die verbleibenden 512 Nummern sind für den Zuwachs vorgesehen. In der Praxis jedoch, da die Bytes von dem Mikroprozessor über USART 54 übertragen werden, werden sechs LEN-Bits zusammen mit den höchststelligen Bits der Kanalnummer als ein Einzelbyte übertragen. Bytes von nur einem Kanal werden in einem Bündel gesendet.
- Das Bündel wird von dem Mikroprozessor 50 nach Aufruf der Funktion Start Chunk gebildet. Eine Prüfung wird durchgeführt, um die ausgewählte Kanalwarteschlange zu finden: Q1 oder Q2. Diese Information, Q1 oder Q2, wird in der Variablen From gespeichert. Wenn Q1 ausgewählt ist, wird eine als "Max Chunk Length" bezeichnete Variable auf 16 gesetzt. Dies bedeutet die Anzahl der Bytes, ausschließlich STUF-Bytes, LEN 148 und Kanal 149, die übertragen werden sollen, ist auf 16 begrenzt. Die Variable Max Frame Length ist auf 64 gesetzt, ungeachtet dessen, was vorher darin eingegeben wurde. Wenn Max Frame Length vorher auf 265 gesetzt wurde, wird die Variable auf 64 zurückgesetzt. Wenn Q2 ausgewählt ist, wird Max Chunk Length auf 48 gesetzt, und Max Frame Length kann so bestehen bleiben, wie sie war.
- In allen Fällen sind die Variablen Chunk Length and Stuf Length initialisiert, d. h. auf Null gesetzt. Die Variable Stuf Length ist eine Zählung der Anzahl der STUF- Bytes in einem Bündel. Dies beendet die Funktion Start Chunk.
- Eine Schleife wird als nächste begonnen für so lang, wie die Variable Queue Length für den Kanal in Trans Chan größer als Null ist und eine Funktion More Chunk als "wahr" wiederkehrt.
- Die Funktion More Chunk überprüft, ob die Variable Chunk Length kleiner ist als die Variable Max Chunk Length und ob die Variable Stuf Length kleiner als neun ist. Wenn keine dieser Grenzen überschritten ist, kehrt die Funktion More Chunk als "wahr" zurück. Andernfalls kehrt die Funktion als "falsch" zurück.
- Für so lange, wie die Variable Queue Length Null überschreitet und More Chunk als "wahr" zurückkehrt, ist die Funktion Send Envelop aufgerufen. Die Variable Queue Length zählt nicht die STUF-Bytes in einer Datenwarteschlange.
- Wenn die Funktion Send Envelop aufgerufen ist, wird das erste Byte der Datenwarteschlange gestartet, die der Kanalnummer in Trans Chan zugeordnet ist, und in die Variable "byte" eingegeben. Der Inhalt der Variablen "byte" wird dann durch Aufruf der Funktion Output zu USART 54 für die Übertragung zu dem entfernten Knoten gesendet.
- Als nächstes werden die Variablen Chunk Length und Frame Length um Eins erhöht.
- Wenn die Variable "byte" ein STUF-Byte ist, dann wird ein anderes Byte auf der Datenwarteschlange, die dem Kanal in "Trans Chan" zugeordnet ist, herausgeholt und zu dem entfernten Knoten übertragen. Das erfolgt so, daß das STUF-Byte immer dem zugeordneten Byte in dem gleichen Bündel vorausgeht. Danach werden die Variablen Stuf Length und Frame Length um Eins erhöht.
- In allen Fällen wird danach die Variable Queue Length, die dem Kanal in "Trans Chan" zugeordnet ist, um Eins erniedrigt. An dieser Stelle ist die Schleife beendet.
- Eine Prüfung wird durchgeführt, um zu sehen, ob die Eintragung entweder in der Variablen From Q1 ist oder die Variable Queue Length, die dem Kanal in der Variablen Trans Chan entspricht, größer als Null ist. Wenn der Test positiv verläuft, wird der in die Variable Trans Chan eingegebene Kanal an das Ende der Warteschlange Q2 geschoben. Anderenfalls ist die Variable Queued Flag für den Kanal in Trans Chan auf "falsch" gesetzt.
- Das Vorherstehende kann anhand von Fig. 11 verstanden werden. Dargestellt ist ein Block 102, der die Warteschlange Q1 repräsentiert, und ein Block 104, der die Warteschlange Q2 repräsentiert. In Q1 sind der Kanal 310 und in Q2 die Kanäle 73, 142 und 5 gezeigt, die darauf warten, bedient zu werden. Da Q1 Priorität hat, wird der Kanal 310 zuerst bedient. Wenn die Anzahl der Einhüllenden, die von der Warteschlange gesendet werden sollen, die dem Kanal 310 entspricht, kleiner oder gleich 16 ist, werden sie gesendet. Die Kanalnummer 310 wird in Q2 hinter der letzten Nummer 5 eingegeben. Danach wird, wie in Fig. 12 dargestellt, der erste Kanal von Q2, das ist 73 in dem Ausführungsbeispiel, bedient, da keine zu bedienenden Kanäle in Q1 verbleiben. Die Kanalnummer 310 wird hinter der letzten Nummer 5 in Q2 eingegeben.
- Wenn mehr als 16 Einhüllende vorhanden sind, die zur Übertragung von dem Kanal 310 anstehen, einem Q1-Kanal, wird der 16 überschreitende Anteil nicht übertragen. In jedem Fall wird die Kanalnummer 15 an das Ende der Wartschlange in Q2 eingegeben. Daher braucht auch eine kurze Nachricht, wie z. B. Bestätigungen, Unterbrechungen, kurze interaktive Kennzeichen und Echos, die von einem entfernten Ende zurückkommen, keine allzu große Wartezeit hinter einer sehr langen Nachricht.
- Die nächste Funktion End Chunk ist aufgerufen, um das Bündel zu beenden. Nachdem eine freigegebene Anzahl von Bytes gesendet ist, wird der Bündelnachsatz, der die Bereiche 148 und 149 in Fig. 14 umfaßt, gesendet. Nachdem diese beiden letzten Bytes gesendet sind, wird die Variable Frame Length um zwei erhöht.
- Zu diesem Zeitpunkt wird ein Test durchgeführt. Wenn Frame Length größer als Max Frame Length ist, dann wird die Funktion End Frame aufgerufen. Die Variable Last From wird dann auf die Variable From gesetzt. Es wird daran erinnert, das Last From der frühere Wert von From ist. Das bedeutet, Last From zeigt an, welcher Kanal dem letzten Bündel zugeordnet war. An diesem Punkt wird der Kanal ausgesucht, und der vorstehende Prozeß zum Bilden und Beenden eines Bündels wird wiederholt.
- Der erste Schritt, der bei der nächsten Funktion End Frame durchzuführen ist, besteht darin, ein Signal von dem Mikroprozessor 50 zu USART 54 zu senden, das wiederum FCS 138 in Fig. 13 veranlaßt zu senden. Danach sendet USART 54 ein Flag, das das Ende des Rahmens anzeigt.
- Bytes von einem Kanal können das Format 01111110 haben, das ebenfalls das Format eines Flags ist, das Anfang und Ende eines Rahmens anzeigt. Um zu verhindern, daß ein Benutzer solche Bytes als ein Flag erkennt, fügt USART 54 nach dem Senden von fünf 1'en in Serie eine 0 ein. Die Bytes in USART 54 werden dann über eine digitale Bedienungseinheit (DSU) 56 gesendet, einer Schnittschaltung zwischen dem vorgenannten Verbindungsmodul und der Übertragungseinrichtung zur Übertragung über die Einrichtung 11 zu dem entfernten Knoten. DSU 56 ist ausgelegt nach dem CCITT-Standard V.35, dargelegt in Band VIII.1, Orange Series, wie bereits zitiert wurde. Die Variable Now Transmitting ist auf "falsch" gesetzt, wodurch angezeigt wird, daß keine Daten übertragen werden. Die Variablen From und Last From sind auf Null gesetzt.
- Ein Programm wird verwendet zur Durchführung der Funktionen, wie sie in diesem Abschnitt beschrieben sind.
- USART 54 hat einen kleinen Puffer zur Speicherung von wenigen Bytes, die von einem entfernten Knoten empfangen werden. USART 54 unterbricht den Mikroprozessor 54, welcher dann bei Aufruf der Funktion Input ein Byte liest. Die Funktion Read Frame wird von dem Prozessor aufgerufen, um die empfangenen Bytes zu lesen.
- Durch Lesen eines Bytes aus dem Rahmen wird eine Schleife gestartet. Wenn die Variable Frame Buffer voll ist, wenn der Index gleich der Pufferkapazität ist, wird der Speicherinhalt gelöscht. Wenn die Variable Frame Buffer nicht voll ist, wird das gelesene Byte in den Frame Buffer eingegeben.
- Wenn die Zeichen ausgegeben werden, werden Status- Register in USART 54 überprüft. Während eine Information von dem entfernten Knoten empfangen wird, überprüft USART 54 die empfangenen Daten, berechnet ein FCS, und nachdem ein nachfolgendes Flag empfangen ist, führt das berechnete Flag mit dem am Ende des Rahmens empfangene FCS einen Vergleich durch, um zu bestimmen, ob die empfangenen Daten gut oder schlecht im Hinblick auf den Stardard in x.25 sind, der bereits zitiert wurde. Die Ergebnisse dieser Überprüfung werden über die Statusregister (nicht dargestellt) in USART 54 dem Mikroprozessor 50 mitgeteilt.
- Nachdem der Mikroprozessor 50 mittels der Statusregister in USART 54 entscheidet, daß der FCS-Test positiv ist, wird fortgefahren durch Einführung des über den Konkurrenzbus empfangenen Rahmens, und zwar durch Aufruf der Funktion Peel Chunk. Das Statusbyte des ankommenden Rahmens wird überprüft, und, wenn es nicht kompatibel ist mit dem dem empfangenden Modul bekannten Rahmen, wird der Rahmen gelöscht. Die Funktion Peel Chunk startet von dem Ende des Rahmenpuffers und berechnet rekursiv die Länge 148 und die Kanalnummer 149 für jedes Bündel, bis der Anfang des Rahmenpuffers erreicht ist. Dann, beginnend mit dem ersten Bündel in dem Rahmenpuffer, werden die Bytes in dem Bündel wie nachfolgend beschrieben verarbeitet.
- Als nächstes wird ein Byte aus dem Bündel gelesen, das vorher in dem RAM 76 gespeichert war. Wenn das gelesene Byte kein STUF-Byte ist, wird es als ein Byte des Benutzers angesehen. Eine "1" wird dem Byte vorangestellt und dann durch Aufruf der Funktion Distribute als Einhüllende zum FIFO in der Schaltung 78 übertragen.
- Wenn das aus dem RAM 76 wiedergewonnene Byte das Format 10011101 hat, wird das nächste Byte gelesen. Wenn das nächste gelesene Byte das Format 00000000 hat, wird das erste gelesene Byte als ein Byte des Benutzers interpretiert. Das Byte 00000000 wird gelöscht und eine "1" dem Byte vorangestellt und als Einhüllende 110011101 übertragen.
- Wenn das gelesene Byte das Format 10011101 hat, also ein STUF-Byte ist, und das nächste von dem RAM 76 wiedergewonnene Byte nicht das Format 00000000 hat, wird das STUF-Byte gelöscht, dem nachfolgenden Byte wird eine "0" vorangestellt und zu dem FIFO in der Schaltung 78 als eine Einhüllende durch die Funktion Distribute gesendet.
- Nachdem ein gewünschter Teil, üblicherweise 16 Einhüllende, oder manchmal sämtliche eines Bündels, zum FIFO in der Schaltung 78 gesendet sind, wird von dem Mikroprozessor 50 zu der DATAKIT-Schnittschaltung 78 ein Signal übertragen, das anzeigt, daß das Datenpaket assembliert und über den Bus 21 zu dem Schalter 40 in Fig. 3 gesendet werden soll. Die DATAKIT-Schnittschaltung 78 bildet eine Ursprungs-Moduladresse, nämlich die Adresse des Verbindungsmoduls, die Ursprungs-Kanalnummer, und verbleibende Paritätswörter, eingefügt ein Paritätsbit in jedem Paritätswort. Schlechte Daten werden durch den Schalter 40 gelöscht.
- Anschließend, wenn ein Teil eines Bündels verbleibt, wiederholt der Mikroprozessor 50 den vorstehenden Prozeß, bis das gesamte Bündel zu dem Bestimmungsterminal gesendet ist.
- Wie bereits ausgeführt, wird die Ursprungs- Moduladresse durch den Schalter 40 gelöscht und dafür die Bestimmungsadresse eingesetzt. Das Datenpaket wird danach über den Verbindungsbus 33 gesendet.
- Das zu der Adresse des Bestimmungsmoduls passende Schnittstellenmodul verarbeitet das Datenpaket durch Löschen der Adresse des Bestimmungsmoduls. Steuereinhüllende werden zur Verwendung in dem Modul zurückbehalten. Die verbleibenden Einhüllenden werden durch Löschen des Steurbits in Bytes umgewandelt und die Bytes über den Kanal zu der Einrichtung des Benutzers übertragen. Wenn ein Teilnehmer es wünscht, können die Informationen zu der Einrichtung des Teilnehmers übertragen werden, wie z. B. einem Rechner, und zwar direkt als Einhüllende.
- Obwohl der Sender und Empfänger in einem einzelnen Prozessor untergebracht sind, können beide auch unabhängig voneinander in getrennten Prozessoren arbeiten.
Claims (9)
1. Verfahren zur Steuerung der Menge an Informationen, die
eine Vielzahl von Datenbytes umfassen, welche von jedem
Kanal einer Vielzahl von durch einen Knoten (10) bedienten
Kanälen (13, 15, 17) zu durch einen anderen Knoten (110)
bedienten Kanälen (113, 115, 117) zu übertragen sind,
wobei jeder Kanal an jedem der Knoten eine Adresse
besitzt,
gekennzeichnet durch die Schritte:
Disassemblieren der an einem Knoten empfangenen
Informationen,
Eingeben der Adresse (62) jedes der eine Bedienung
anfordernden Kanäle in der Reihenfolge des Eintreffens der
Informationen in eine erste Warteschlange (102),
Speichern der jedem der Kanäle entsprechenden
Informationen in einer getrennten Daten-Warteschlange (92,
94, 96),
Lesen der Adresse für einen der in der ersten
Warteschlange gespeicherten Kanäle,
Lesen einer vorbestimmten, dem einen der Kanäle
entsprechenden Vielzahl von Datenbytes aus der getrennten
Daten-Warteschlange und
Eingeben der Adresse für den einen der Kanäle an ein Ende
einer zweiten Warteschlange (104).
2. Verfahren nach Anspruch 1, mit dem Schritt:
Lesen der Adresse für einen der in der zweiten
Warteschlange gespeicherten Kanäle, wenn die erste
Warteschlange leer ist.
3. Verfahren nach Anspruch 2, mit dem Schritt:
Lesen jeweils eines Datenbyte aus der getrennten
Datenwarteschlange entsprechend der aus der zweiten
Warteschlange gelesenen Adresse.
4. Verfahren nach Anspruch 2 oder 3, mit den Schritten:
Bilden eines Rahmens zur Übertragung der Informationen von
dem einen Knoten zu dem anderen Knoten und einzelnes
Bilden einer Vielzahl von Bündeln zur Übertragung der
jeder Adresse der Kanäle entsprechenden Datenbytes in
einem getrennten Bündel, wobei jedes Bündel, falls nötig,
Steuerbytes zur Steuerung der Knoten enthält und die
Steuerbytes von den Datenbytes der Information dadurch
unterschieden sind, daß ein besonderes Byte nahe dem
Steuerbyte eingefügt wird.
5. Verfahren nach Anspruch 4, mit den Schritten:
Begrenzen der Länge eines Bündels entsprechend einer
vorbestimmten ersten Grenzmenge, die eine Vielzahl der
Daten- und Steuerbytes umfaßt, wobei des Bündel eine
Adresse eines der Kanäle und die Anzahl von Bytes in dem
Bündel enthält, und ferner Begrenzen der Länge des Bündels
durch eine zweite Grenzmenge, die eine vorbestimmte Anzahl
der besonderen Bytes umfaßt sowie Beenden des Bündels,
wenn entweder alle der Adresse des Kanals entsprechenden
Datenbytes aus der Daten-Warteschlange gelesen oder die
erste oder die zweite Grenzmenge erreicht worden sind.
6. Verfahren nach Anspruch 5, mit den Schritten:
Begrenzen der Länge eines Rahmens entsprechend einer
vorbestimmten dritten Grenzmenge, die gleich einer
vorbestimmten Anzahl der Daten- und der Steuerbytes sowie
einer Vielzahl von Allgemeinbytes ist, die die Länge des
Bündels und die Kanalnummer umfassen, und Beenden des
Rahmens, wenn die dritte Grenzmenge erreicht ist oder wenn
alle Warteschlangen leer sind.
7. Verfahren nach Anspruch 6, mit den Schritten:
Bilden eines Rahmens zur Übertragung der Informationen von
dem einen Knoten zu dem anderen Knoten, Bilden eines
Bündels der Datenbytes entsprechend der aus der zweiten
Warteschlange gelesenen Adresse des Kanals, wobei die
Länge des Bündels durch eine vierte Grenzmenge der Steuer-
und der Datenbytes oder durch die zweite Grenzmenge der
besonderen Bytes bestimmt ist und jedes der Bündel die
Adresse des Kanals und die Anzahl der Datenbytes sowie der
Steuerbytes in dem Bündel enthält, Eingeben der Adresse
des bedienten Kanals, wenn Datenbytes am Ende aller
anderen Kanalnummern in der zweiten Warteschlange
verbleiben, und Beenden des Bündels, wenn die vierte
Grenzmenge erreicht wird oder keine weiteren Datenbytes in
der Daten-Warteschlange verbleiben.
8. Verfahren nach Anspruch 7, mit dem Schritt:
Beenden des Rahmens, wenn eine fünfte Grenzmenge erreicht
ist, die eine vorbestimmte Anzahl der Steuerbytes und der
Datenbytes umfaßt, oder wenn keine weiteren Adresse in der
ersten oder der zweiten Warteschlange verbleiben.
9. Verfahren nach Anspruch 8, mit dem Schritt:
Begrenzen der jedem der Kanäle entsprechenden
Informationen, die in den Daten-Warteschlangen gespeichert
werden können.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/631,395 US4583219A (en) | 1984-07-16 | 1984-07-16 | Trunk for packet switching |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3586919D1 DE3586919D1 (de) | 1993-02-04 |
DE3586919T2 true DE3586919T2 (de) | 1993-07-01 |
Family
ID=24531015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE8585304864T Expired - Fee Related DE3586919T2 (de) | 1984-07-16 | 1985-07-08 | Verfahren zur steuerung von informationsuebertragung. |
Country Status (5)
Country | Link |
---|---|
US (1) | US4583219A (de) |
EP (1) | EP0169017B1 (de) |
JP (1) | JPS6135652A (de) |
CA (1) | CA1233225A (de) |
DE (1) | DE3586919T2 (de) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4644533A (en) * | 1985-05-06 | 1987-02-17 | American Telephone & Telegraph Company | Packet switch trunk circuit queueing arrangement |
US4646294A (en) * | 1985-08-02 | 1987-02-24 | Gte Laboratories Incorporated | High-speed queue sequencer for a burst-switching communications system |
US4802161A (en) * | 1986-09-16 | 1989-01-31 | Gte Communication Systems Corporation | Packet bus interface |
US4887076A (en) * | 1987-10-16 | 1989-12-12 | Digital Equipment Corporation | Computer interconnect coupler for clusters of data processing devices |
JP2527821B2 (ja) * | 1989-09-14 | 1996-08-28 | 株式会社日立製作所 | デ―タ処理方法及び入出力装置 |
AU625628B2 (en) * | 1989-10-12 | 1992-07-16 | Alcatel N.V. | Device for regulating the throughput of virtual circuits on an asynchronous time-division multiplex transmission channel |
FR2653285B1 (fr) * | 1989-10-12 | 1991-12-06 | Cit Alcatel | Dispositif d'evaluation du debit de circuits virtuels empruntant une voie de transmission a multiplexage temporel asynchrone. |
US5163046A (en) | 1989-11-30 | 1992-11-10 | At&T Bell Laboratories | Dynamic window sizing in a data network |
US5014265A (en) * | 1989-11-30 | 1991-05-07 | At&T Bell Laboratories | Method and apparatus for congestion control in a data network |
US5050161A (en) * | 1989-12-04 | 1991-09-17 | Bell Communications Research, Inc. | Congestion management based on multiple framing strategy |
US5048013A (en) * | 1990-04-06 | 1991-09-10 | At&T Bell Laboratories | Transmission congestion control method and apparatus |
EP0453863A2 (de) * | 1990-04-27 | 1991-10-30 | National Semiconductor Corporation | Verfahren und Gerät zur Ausführung einer Mediumzugriffssteuerung/Wirtsystemschnittstelle |
JPH0468733A (ja) * | 1990-07-04 | 1992-03-04 | Fujitsu Ltd | セル多重方式 |
US5680400A (en) * | 1995-05-31 | 1997-10-21 | Unisys Corporation | System for high-speed transfer of a continuous data stream between hosts using multiple parallel communication links |
US5960066A (en) * | 1996-11-07 | 1999-09-28 | Lucent Technologies, Inc. | Method and apparatus for using telephone house wiring for voice/data network |
US6445712B1 (en) * | 1999-06-08 | 2002-09-03 | Verizon Laboratories Inc. | Broadband architecture using existing twisted pair |
US8612649B2 (en) | 2010-12-17 | 2013-12-17 | At&T Intellectual Property I, L.P. | Validation of priority queue processing |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CH577255A5 (de) * | 1974-10-31 | 1976-06-30 | Ibm | |
US3979733A (en) * | 1975-05-09 | 1976-09-07 | Bell Telephone Laboratories, Incorporated | Digital data communications system packet switch |
IT1118518B (it) * | 1979-03-27 | 1986-03-03 | Cselt Centro Studi Lab Telecom | Procedimento e dispositivo per la ricostruzione del segnale vocale in un sistema di comunicazione a commutazione di pacchetto |
US4399531A (en) * | 1980-09-29 | 1983-08-16 | Rockwell International Corporation | Distributed digital data communications network |
JPS5768949A (en) * | 1980-10-17 | 1982-04-27 | Fujitsu Ltd | Buffer memory control system in packet transmission |
US4475192A (en) * | 1982-02-16 | 1984-10-02 | At&T Bell Laboratories | Data packet flow control scheme for switching networks |
US4443875A (en) * | 1982-02-19 | 1984-04-17 | International Telephone And Telegraph Corporation | Apparatus and methods of call clearing in a packet switched data communications network |
JPS58170155A (ja) * | 1982-03-30 | 1983-10-06 | Fujitsu Ltd | パケツト通信方式 |
US4488288A (en) * | 1982-06-25 | 1984-12-11 | At&T Bell Laboratories | End-to-end information memory arrangement in a line controller |
US4499576A (en) * | 1982-08-13 | 1985-02-12 | At&T Bell Laboratories | Multiplexed first-in, first-out queues |
US4484326A (en) * | 1982-11-04 | 1984-11-20 | At&T Bell Laboratories | Packet load monitoring by trunk controllers |
NL8300033A (nl) * | 1983-01-06 | 1984-08-01 | Philips Nv | Werkwijze voor het overdragen van digitale informatie over een transmissiering. |
US4516238A (en) * | 1983-03-28 | 1985-05-07 | At&T Bell Laboratories | Self-routing switching network |
-
1984
- 1984-07-16 US US06/631,395 patent/US4583219A/en not_active Expired - Lifetime
-
1985
- 1985-06-26 CA CA000485322A patent/CA1233225A/en not_active Expired
- 1985-07-08 DE DE8585304864T patent/DE3586919T2/de not_active Expired - Fee Related
- 1985-07-08 EP EP85304864A patent/EP0169017B1/de not_active Expired
- 1985-07-16 JP JP15528385A patent/JPS6135652A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP0169017A3 (en) | 1988-03-02 |
EP0169017B1 (de) | 1992-12-23 |
CA1233225A (en) | 1988-02-23 |
JPS6135652A (ja) | 1986-02-20 |
DE3586919D1 (de) | 1993-02-04 |
EP0169017A2 (de) | 1986-01-22 |
US4583219A (en) | 1986-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3586919T2 (de) | Verfahren zur steuerung von informationsuebertragung. | |
DE3689968T2 (de) | Verbessertes synchrones/asynchrones Modem. | |
DE3880692T2 (de) | Schnelle datenpaketübermittlung für digitale netze. | |
DE68924238T2 (de) | Verfahren zum Senden einer Mehrzahl von Datenkanälen über eine einzige Nachrichtenleitung. | |
DE69535477T2 (de) | Paketverwaltungsgerät für schnelles Paketnetzwerk | |
DE3786298T2 (de) | Verfahren und Schalter zum Vermitteln von Informationen. | |
DE3786569T2 (de) | Vorrichtung und verfahren zur uebertragung einer ersten und einer zweiten informationsart ueber einen zeitschlitzgesteuerten bus. | |
DE69734260T2 (de) | Zugriffskontrollverfahren in einem Kommunikationssystem | |
DE3687355T2 (de) | Universalprotokoll-datenempfaenger. | |
DE3785855T2 (de) | Vermittlungsanordnung und -verfahren. | |
DE69326935T2 (de) | Verfahren und Vorrichtung zur Übertragung von einem Datenstrom mit hoher Bitfolgefrequenz über unabhängige digitale Kommunikationskanäle | |
DE68908148T2 (de) | Mehrfachprotokoll-ISDN-Übertragungssteuerung. | |
DE2753532A1 (de) | Vielstellen-aufrufsystem | |
DE2953444T1 (de) | Bus collision a voidance system for distributed network data processing communications systems | |
DE4228316A1 (de) | Adapter für Übertragungsleitungen unter Verwendung von HDLC-Rahmen | |
DE69022278T2 (de) | Vorrichtung und Verfahren zur wirksamen Kopplung digitaler Nachrichtenpaketsignale mit einem Kommunikationsmedium. | |
DE3887552T2 (de) | Zeitsteuerung für Doppelanschluss. | |
DE68913028T2 (de) | Empfangs- und Bearbeitungssystem für PCM-TDM-mehrwegübertragene HDLC-Rahmen, insbesondere für Datenvermittler. | |
DE3881574T2 (de) | Vermittlungsverfahren für integrierte Sprach/Daten-Übertragung. | |
DE69127971T2 (de) | Verfahren und vorrichtung zur ziel- und quellenadressierung in einem paketnetz | |
DE3635106A1 (de) | Kommunikationsverfahren und -system fuer serielle daten | |
DE69227444T2 (de) | Einrichtung für die Erzeugung von Mehradresspaketen in einem Paketvermittlungssystem | |
DE4037723C2 (de) | Verfahren zum Übermitteln von an mehreren Datenschnittstellen einer prozessorgesteuerten Einrichtung vorliegenden Informationen an deren Prozessoreinrichtung | |
DE69326378T2 (de) | Steuerung des Austauschens von Datenpaketen in einem Netzwerk | |
EP0184706A2 (de) | Schnittstelleneinrichtung |
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 |