DE60111991T2 - Verfahren und System zur Übertragung von Daten mit einer Datenflusssteuerung - Google Patents
Verfahren und System zur Übertragung von Daten mit einer Datenflusssteuerung Download PDFInfo
- Publication number
- DE60111991T2 DE60111991T2 DE60111991T DE60111991T DE60111991T2 DE 60111991 T2 DE60111991 T2 DE 60111991T2 DE 60111991 T DE60111991 T DE 60111991T DE 60111991 T DE60111991 T DE 60111991T DE 60111991 T2 DE60111991 T2 DE 60111991T2
- Authority
- DE
- Germany
- Prior art keywords
- virtual channel
- data
- transmitter
- available
- packet
- 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
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
- H04L47/39—Credit based
-
- 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/16—Flow control; Congestion control in connection oriented networks, e.g. frame relay
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q11/00—Selecting arrangements for multiplex systems
- H04Q11/04—Selecting arrangements for multiplex systems for time-division multiplexing
- H04Q11/0428—Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
- H04Q11/0478—Provisions for broadband connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5629—Admission control
- H04L2012/563—Signalling, e.g. protocols, reference model
Description
- Die vorliegende Erfindung bezieht sich auf ein Verfahren und ein System zum Übertragen von Daten zwischen zumindest einem Empfänger, der wirksam mit zumindest einem Sender verbunden ist, z. B. für eine zulässige Übertragung über zumindest eine Hochgeschwindigkeitsverbindung, die eine Mehrzahl virtueller Kanäle aufweist.
- Virtuelle Kanäle werden allgemein für eine Verwendung einer einzelnen bidirektionalen seriellen Verbindung zwischen einem Empfänger und einem Sender mit maximaler Effizienz verwendet. Die Kommunikation basiert üblicherweise auf asynchronen gleichzeitigen Prozessen auf der Paketebene. Insbesondere werden kommunizierende sequentielle Prozesse („CSP"; CSP = Communicating Sequential Processes) für eine synchronisierte Kommunikation zwischen dem Empfänger und dem Sender verwendet, was bedeutet, dass jeder Kommunikationsprozess wartet, bis eine Datenübertragung abgeschlossen ist, bevor er fortfährt.
- Ein bekanntes Verfahren zum Beibehalten der CSP, während sichergestellt wird, dass keine Daten verloren gehen oder überschrieben werden, schlägt die Verwendung von Bestätigungspaketen vor. Der Empfänger muss jedes Paket bestätigen, bevor ein weiteres gesendet werden kann, und alle Pakete einer Nachricht müssen ebenso bestätigt werden, bevor der Sendeprozess fortfährt. Auf diese Weise wird, wenn das Datenpaket durch einen Prozess empfangen wird, ein Bestätigungspaket zurück zu dem Sender gesendet. Das Bestätigungspaket erlaubt es dem Sender, ein weiteres Paket zu senden, nachdem ein Paket empfangen oder sogar teilweise empfangen wurde.
- Das Problem bei der Verwendung von Bestätigungspaketen besteht darin, dass der Sender nicht notwendigerweise weiß, ob der Empfänger bereit ist, um an erster Stelle ein Paket zu empfangen. Wenn der Sender ein Paket an den Empfänger sendet, der keinen verfügbaren Puffer bzw. Zwischenspeicher aufweist, geht das Paket entweder verloren oder die Verbindung wird auf der physischen Schicht flussgesteuert. Wenn das Paket verloren geht, wird der Sender das Bestätigungspaket niemals empfangen. Als ein Ergebnis muss er sich auf einen bestimmten Zeitgeber verlassen, um zu wissen, wann er einen erneuten Versuch starten kann, was Verzögerung und Verschwendung an Bandbreite bewirkt. Andererseits wird, wenn die Daten an der physischen Schicht flussgesteuert werden, eine Datenübertragung auf unbestimmte Zeit verschoben, bis der Empfänger in der Lage ist, die Daten anzunehmen. Wieder bewirkt dies sowohl Verzögerung als auch Verschwendung an Bandbreite durch ein Blockieren anderer virtueller Kanäle.
- „Client-Server Performance on Flow-Controlled ATM Networks: A Web Database of Simulation Results" (Client-Server-Verhalten bei flussgesteuerten ATM-Netzen: eine Web-Datenbank mit Simulationsergebnissen) von Kung H. T. u. a. offenbart eine Flusssteuerung auf Kreditbasis. Dieses Dokument offenbart ein Verfahren zum Übertragen von Daten zwischen zumindest einem Empfänger, der wirksam mit zumindest einem Sender über zumindest eine Hochgeschwindigkeitsverbindung verbunden ist, die eine Mehrzahl virtueller Kanäle aufweist. Das Verfahren umfasst, dass der Empfänger ein Virtueller-Kanal-Kreditpaket für eine bestimmte virtuelle Schaltung an den Sender sendet. Der Sender ist, nachdem er das Kreditpaket empfangen hat, befähigt, eine bestimmte Anzahl von Datenzellen an den Empfänger zu senden, und dekrementiert seinen gegenwärtigen Restbetrag für die virtuelle Schaltung um Eins.
- Die vorliegende Erfindung möchte eine verbesserte Datenübertragung schaffen. Gemäß einem Aspekt der vorliegenden Erfindung wird ein Verfahren, um Daten zwischen zumindest einem Empfänger, der wirksam mit zumindest einem Sender verbunden ist, zu übertragen, wie im Anspruch 1 spezifiziert ist, bereitgestellt.
- Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein System, um Datenpakete zwischen zumindest einem Empfänger, der wirksam mit zumindest einem Sender verbunden ist, zu übertragen, wie im Anspruch 11 spezifiziert ist, bereitgestellt.
- Das bevorzugte Ausführungsbeispiel liefert ein Verfahren und ein System, um Daten unter Verwendung eines Virtueller-Kanal-Kreditpakets über eine Hochgeschwindigkeitsverbindung mit einer Mehrzahl virtueller Kanäle, vorzugsweise ohne die Verwendung von Bestätigungspaketen, zu übertragen. Vorzugsweise erlaubt es das System dem Sender nur, ein Datenpaket an den Empfänger zu senden, nachdem ein Empfänger Ressourcen aufweist, um das Paket zu empfangen. Eine Übertragung geschieht vorzugsweise über zumindest eine Hochgeschwindigkeitsverbindung mit einer Mehrzahl virtueller Kanäle, die eine effizientere Bandbreite verwenden. Daten könnten unter Verwendung eines Virtueller-Kanal-Kreditpakets, das eine eindeutige zugewiesene Virtueller-Kanal-Nummer für jeden virtuellen Kanal aufweist, übertragen werden.
- Bei dem bevorzugten Ausführungsbeispiel werden ein Verfahren und ein System zum Übertragen von Daten zwischen einem oder mehreren Empfängern, die wirksam mit einem oder mehreren Sendern verbunden sind, und insbesondere für eine zulässige Übertragung über zumindest eine Hochgeschwindigkeitsverbindung, die eine Mehrzahl virtueller Kanäle aufweist, bereitgestellt. Dadurch, dass der Empfänger ein Kreditpaket mit einer eindeutigen Virtueller-Kanal-Nummer sendet, die spezifisch jedem virtuellen Kanal zugewiesen ist, und zwar nur dann, wenn dieser verfügbaren Zwischenspeicher aufweist, ist das System in der Lage, den Bedarf nach einem Bestätigungspaket zu umgehen, was zu zuverlässigen Übertra gungen und einer effizienten Verwendung einer Bandbreite führt.
- Vorzugsweise sendet der Empfänger zuerst ein Virtueller-Kanal-Kreditpaket für einen bestimmten virtuellen Kanal an den Sender, und zwar nur dann, wenn der Empfänger verfügbar ist, um Daten zu empfangen. Eine eindeutige Virtueller-Kanal-Nummer ist für diesen bestimmten virtuellen Kanal zugewiesen und in dem Virtueller-Kanal-Paket enthalten. Dann spricht der Sender entsprechend auf das Virtueller-Kanal-Kreditpaket an, was ein Übertragen von Daten an den Empfänger, wenn dieser tatsächlich verfügbar ist, umfasst. Der Empfänger empfängt dann das von dem Sender übertragene Datenpaket. Das Senden eines Kreditpakets garantiert, dass der Empfänger bereit ist und die verfügbaren Ressourcen aufweist, um Übertragungsdaten von dem Sender zu empfangen.
- Ein Ausführungsbeispiel der vorliegenden Erfindung ist unten lediglich beispielhaft Bezug nehmend auf die beigefügten Zeichnungen beschrieben. Es zeigen:
-
1 ein schematisches Diagramm einer exemplarischen Verbindung zwischen einem Peripheriegerät und einer Eingangs-/Ausgangs- (I/O-) Karte, in der das System implementiert sein könnte; -
2 eine Anordnung; die das Format und Steuerzeichen für das Datenpaket und das Kreditpaket für einen virtuellen Kanal darstellt; -
3 eine Sequenz, die den Fluss des Kreditpakets und des Datenpakets für einen virtuellen Kanal darstellt; -
4 ein Flussdiagramm, das die durch den Empfänger ausgeführte Teilroutine darstellt; und -
5 ein Flussdiagramm, das die durch den Sender ausgeführte Teilroutine darstellt. - Breit ausgedrückt richtet sich das bevorzugte Ausführungsbeispiel auf ein Verfahren und ein System, um Daten zwischen zumindest einem Empfänger, der wirksam mit zumindest einem Sender über eine Hochgeschwindigkeitsverbindung mit einer Mehrzahl virtueller Kanäle verbunden ist, zu übertragen. Jedem virtuellen Kanal ist eine eindeutige Virtueller-Kanal-Nummer zugewiesen. Wenn der Empfänger für eine Übertragung für einen bestimmten virtuellen Kanal bereit ist, sendet er ein Virtueller-Kanal-Kreditpaket, das die zugewiesene Virtueller-Kanal-Nummer trägt. Der Sender spricht dann auf das Virtueller-Kanal-Kreditpaket an. Nachdem die Übertragung für diesen bestimmten virtuellen Kanal abgeschlossen ist, wird der Prozess für den nächsten virtuellen Kanal wiederholt, bis alle virtuellen Kanäle laufen.
- Wieder Bezug nehmend auf
1 ist ein schematisches Diagramm einer exemplarischen Verbindung zwischen einem Peripheriegerät oder einer Peripherievorrichtung und einer I/O-Karte gezeigt und dieses stellt eine Weise dar, auf die der Empfänger mit dem Sender für die Implementierung der vorliegenden Erfindung verbunden ist. Es sollte jedoch ersichtlich sein, dass andere Verbindungen möglich und innerhalb des Schutzbereichs dieser Offenbarung sind. Bei diesem Beispiel ist ein Peripheriegerät10 mit einer I/O-Karte12 durch eine bidirektionale serielle Verbindung14 mit einer Mehrzahl virtueller Kanäle16 verbunden. In diesem Fall ist das Peripheriegerät10 der Sender und die I/O-Karte12 ist der Empfänger. Obwohl jede Anzahl virtueller Kanäle16 verwendet werden kann, werden 256 virtuelle Kanäle für diese Implementierung bevorzugt. Die virtuellen Kanäle können von der Zahl Null beginnen und mit jeder erwünschten Zahl N enden, so lange diese endlich ist. Die einzige Einschränkung ist die Hardware. Die Anzahl virtueller Kanäle ist jedoch dahingehend wichtig, dass sie die Anzahl von Kreditpaketen bestimmt, die in der vorliegenden Erfindung verwen det werden, wie noch beschrieben wird. Ferner durchläuft das vorliegende Verfahren eine Schleife, um den Prozess zu wiederholen, bis alle virtuellen Kanäle laufen. - Die bevorzugte Anordnung eines Virtueller-Kanal-Datenpakets, allgemein bei
20 angezeigt, und eines Kreditpakets, allgemein bei22 angezeigt, für einen virtuellen Kanal ist detailliert in den2 und3 gezeigt. Jedem virtuellen Kanal ist eine eindeutige Virtueller-Kanal-Nummer (VCN)24 zugewiesen. Wie in2 gezeigt ist, umfassen die Pakete einige der Steuerzeichen26 , die durch die Standards des Institute of Electrical and Electrics Engineers (IEEE Std) 1355 – 1995 für heterogene Zwischenverbindungen definiert sind. Zusätzlich wird die VCN24 für sowohl das Datenpaket- als auch das Kreditpaketformat für jeden virtuellen Kanal verwendet. Da es eine Nummer gibt, die jedem virtuellen Kanal zugewiesen ist, sind der Sender10 und der Empfänger12 in der Lage, die Übertragung innerhalb der Mehrzahl virtueller Kanäle16 zu verfolgen. - Wenn der Empfänger
12 ein Virtueller-Kanal-Kreditpaket22 für einen bestimmten virtuellen Kanal sendet, weiß der Sender10 , für welchen virtuellen Kanal das Kreditpaket bestimmt ist. Anders ausgedrückt, wird dem Sender10 nun die Erlaubnis erteilt, ein Datenpaket20 , falls verfügbar, an den Empfänger12 durch den virtuellen Kanal, der durch das Kreditpaket22 bezeichnet ist, zu senden. In3 ist die Sequenz des Flusses des Kreditpakets22 und des Datenpakets20 für einen einzelnen virtuellen Kanal dargestellt, wobei die Richtung der Zeile unterhalb der Paketinformationen die Richtung eines Paketflusses zwischen Sender und Empfänger darstellt. Jedes Datenpaket20 von einem Sender kann nur dann übertragen werden, wenn ein Kreditpaket22 durch den Empfänger12 ausgegeben wird.3 zeigt den zugrunde liegenden Fluss für mehrere Übertragungen, die für jeden virtuellen Kanal stattfinden könnten. - Ein Flussdiagramm, das die Teilroutine des Empfängers
12 darstellt, ist in4 zu sehen. Damit der Empfänger12 den Prozess (Block28 ) für eine Mehrzahl virtueller Kanäle16 starten kann, muss eine wirksame Kommunikationsverbindung zwischen dem Sender10 und dem Empfänger eingerichtet sein (Block30 ). Sobald dies erfolgt ist, bringt der Empfänger12 einen Empfängerprozess für eine bestimmte Virtueller-Kanal-Nummer N hervor (Block32 ). Der Empfänger12 prüft zuerst, ob verfügbarer Zwischenspeicher für die VCN „N" vorliegt (Block34 ). Wenn der Empfänger12 keinen Zwischenspeicher aufweist, der zur Übertragung verfügbar ist (Block36 ), wartet er eine vorbestimmte Zeit und prüft wieder auf einen verfügbaren Zwischenspeicher, bis er einen bestimmten Zwischenspeicher findet (Block34 ). Sobald verfügbarer Zwischenspeicher gefunden wurde (Block36 ), sendet der Empfänger12 ein Virtueller-Kanal-Kreditpaket22 für die VCN „N" an den Sender (Block38 ). - Wie zuvor angemerkt wurde, umfasst das Virtueller-Kanal-Kreditpaket
22 die VCN „N", um bei dem Sender10 zu identifizieren, dass eine Übertragung für die VCN „N" zulässig ist. Der Empfänger12 prüft als nächstes, ob er ein Datenpaket20 von dem Sender10 empfangen hat (Block40 ). Wenn kein Datenpaket20 empfangen wurde, wartet er eine vorbestimmte Zeit und prüft wieder auf ein Datenpaket20 (Block40 ). Wenn andererseits der Empfänger das Datenpaket20 von dem Sender10 empfangen hat (Block41 ), wird schleifenmäßig zurückgegangen, um mit einem Prüfen auf verfügbaren Zwischenspeicher für die VCN „N" für das nächste Datenpaket fortzufahren (Block34 ). Gleichzeitig wiederholt der Empfänger den Empfängerprozess für die nächste VCN, nämlich die VCN „N + 1" (Block42 ). - Der Empfängerprozess wird wiederholt, bis alle VCNs laufen (Block
42 ), was den Empfängerprozess zu einem Ende bringt (Block44 ). Es wird angemerkt, dass, da der Empfänger12 tatsächlich auf verfügbaren Zwischenspeicher prüft, bevor er ein Kreditpaket22 ausgibt, ein Bestätigungspaket bei der vorliegenden Erfindung nicht benötigt wird. Nach der Übertragung des Datenpakets20 darf der Sender10 keine weiteren Datenpakete senden, bis er ein weiteres Kreditpaket22 , das die bezeichnete VCN trägt, empfängt. - Das Flussdiagramm für die Teilroutine des Senders
10 ist in5 dargestellt. Es ähnelt der Teilroutine des Empfängers dahingehend, dass der Sender10 den Senderprozess nicht startet (Block46 ), bis eine wirksame Kommunikationsverbindung zu dem Empfänger12 vorliegt (Block48 ). Wenn eine Verbindung eingerichtet wurde, wird ein Senderprozess für eine bestimmte VCN hervorgebracht (Block50 ), z. B. VCN „N". Der Sender10 verifiziert ähnlich, ob er verfügbaren Zwischenspeicher zur Übertragung von Paketen für die VCN „N" aufweist (Block52 ). Wenn kein Zwischenspeicher verfügbar ist (Block54 ), wartet er eine vorbestimmte Zeit und prüft erneut den Zwischenspeicher, bis verfügbarer Zwischenspeicher für eine Übertragung vorliegt (Block52 ). - Im Gegensatz dazu schaut der Sender
10 als nächstes, wenn verfügbarer Zwischenspeicher vorliegt (Block54 ), nach dem Virtueller-Kanal-Kreditpaket22 mit der zugewiesenen VCN „N" von dem Empfänger12 (Block56 ). Wenn kein Kreditpaket22 gefunden werden kann, wartet der Sender eine vorbestimmte Zeit und prüft erneut auf das Kreditpaket22 für diesen bestimmten virtuellen Kanal mit der VCN „N" (Block56 ). Wenn ein Kreditpaket22 vorliegt, prüft er, um zu bestimmen, ob er Datenpakete20 zur Übertragung aufweist (Block58 ). Der Sender wartet wieder eine vorbestimmte Zeit und prüft weiterhin auf Datenpakete20 , wenn kein Datenpaket zur Übertragung vorliegt (Block58 ). Wenn jedoch ein Datenpaket20 vorliegt, mit der VCN „N", wie zuvor beschrieben wurde, wird dies entsprechend an den Empfänger12 übertragen (Block60 ). Nach der Übertragung des Datenpakets20 für die VCN „N" kehrt der Sender10 schleifenmäßig zurück, um mit einem Prüfen auf einen verfügbaren Zwischenspeicher für die VCN „N" fortzufahren (Block52 ). Er wiederholt jedoch auch den Senderprozess für die nächste VCN oder VCN „N + 1", bis alle VCNs laufen (Block62 ). Wenn alle VCNs laufen, verlässt der Senderprozess die Teilroutine (Block64 ). - So kann das bevorzugte Ausführungsbeispiel eine verbesserte Übertragung von Daten zwischen zumindest einem Empfänger, der wirksam mit zumindest einem Sender über zumindest eine Hochgeschwindigkeitsverbindung mit einer Mehrzahl virtueller Kanäle verbunden ist, bereitstellen. Das Verfahren und das System erlauben es dem Sender
10 nur dann, Datenpakete20 an den Empfänger12 zu senden, wenn der Empfänger bereit ist und die verfügbaren Ressourcen aufweist, um die Datenpakete anzunehmen. Zusätzlich ist die vorliegende Erfindung durch ein Verwenden eines Datenpakets20 und eines Kreditpakets22 mit einer eindeutigen VCN24 , die spezifisch jedem virtuellen Kanal zugewiesen ist, in der Lage, den Bedarf nach einem Bestätigungspaket zu vermeiden, was zu einer effizienteren Verwendung einer Bandbreite führt.
Claims (11)
- Ein Verfahren, um Daten Datenpaket für Datenpaket zwischen zumindest einem Empfänger (
12 ), der über zumindest eine Hochgeschwindigkeitsverbindung, die eine Mehrzahl virtueller Kanäle (16 ) aufweist, mit zumindest einem Sender (10 ) wirksam verbunden ist, zu übertragen, wobei das Verfahren folgende Schritte aufweist: (a) für einen bestimmten virtuellen Kanal (16 ) prüft der Empfänger (12 ), ob an dem Empfänger (12 ) Zwischenspeicher verfügbar ist, um eingehende Pakete von dem Sender (10 ) von der Mehrzahl virtueller Kanäle (16 ) zwischenzuspeichern; (b) der Empfänger (12 ) sendet ein einzelnes Virtueller-Kanal-Kreditpaket (22 ) für den bestimmten virtuellen Kanal (16 ) an den Sender (10 ), wobei das Kreditpaket (22 ) anzeigt, dass der Empfänger (12 ) verfügbar ist, um ein einzelnes Datenpaket (20 ) zu empfangen, und eine eindeutige Virtueller-Kanal-Nummer aufweist, die dem bestimmten virtuellen Kanal (16 ) zugewiesen ist; (c) der Sender (10 ) spricht auf das Virtueller-Kanal-Kreditpaket (22 ) an, einschließlich eines Übertragens eines einzelnen Datenpakets (20 ) auf dem zugewiesenen bestimmten virtuellen Kanal (16 ) an den Empfänger (12 ), wenn ein Datenpaket (20 ) verfügbar ist, wobei der Sender (10 ) nach der Übertragung eines Datenpakets (20 ) keine weiteren Datenpakete (20 ) auf dem zugewiesenen bestimmten virtuellen Kanal (16 ) senden darf, bis er ein weiteres Virtueller-Kanal-Kreditpaket (22 ) für den zugewiesenen bestimmten virtuellen Kanal (16 ) von dem Empfänger (12 ) empfängt; (d) der Empfänger (12 ) wartet darauf, ein Datenpaket (20 ) auf dem bestimmten virtuellen Kanal (16 ), das von dem Sender (10 ) gesendet wird, zu empfangen; und (e) nach einem ersten Empfangen eines Datenpakets (20 ) im Schritt (d) wiederholt der Empfänger (12 ) die Schritte (a) bis (d) für den bestimmten virtuellen Kanal (16 ) und wiederholt die Schritte (a) bis (e) für die nächste Virtueller-Kanal-Nummer, bis alle virtuellen Kanäle (16 ) am Laufen sind. - Ein Verfahren gemäß Anspruch 1, bei dem das Virtueller-Kanal-Kreditpaket (
22 ) gesendet wird, wenn der Empfänger (12 ) die verfügbaren Ressourcen aufweist, um Übertragungsdaten von dem Sender (10 ) für den bestimmten virtuellen Kanal (16 ) zu empfangen, und bereit hierfür ist. - Ein Verfahren gemäß Anspruch 1 oder 2, bei dem die Daten die eindeutige Virtueller-Kanal-Nummer, die dem bestimmten virtuellen Kanal (
16 ) zugewiesen ist, umfassen. - Ein Verfahren gemäß einem der vorherigen Ansprüchen, bei dem der Schritt, in dem der Empfänger (
12 ) prüft, ob Zwischenspeicher verfügbar ist, die folgenden Schritte umfasst: der Empfänger (12 ) wartet eine vorbestimmte Zeit, wenn kein Zwischenspeicher verfügbar ist; und der Empfänger (12 ) sendet das Virtueller-Kanal-Kreditpaket (22 ) für den spezifischen virtuellen Kanal (16 ), sobald Zwischenspeicher verfügbar ist. - Ein Verfahren gemäß einem der vorherigen Ansprüche, bei dem der Schritt, in dem der Sender (
10 ) auf das Virtueller-Kanal-Kreditpaket (22 ) anspricht, die folgenden Schritte aufweist: der Sender (10 ) prüft, ob Zwischenspeicher auf der Senderseite für den spezifischen virtuellen Kanal (16 ) verfügbar ist; der Sender (10 ) wartet eine vorbestimmte Zeit, wenn kein Zwischenspeicher verfügbar ist; und der Sender (10 ) sucht nach dem Virtueller-Kanal-Kreditpaket (22 ) von dem Empfänger (12 ), wenn Zwischenspeicher verfügbar ist. - Ein Verfahren gemäß Anspruch 5, bei dem der Schritt, in dem der Sender (
10 ) nach dem Virtueller-Kanal-Kreditpaket (22 ) sucht, die folgenden Schritte aufweist: der Sender (10 ) wartet eine vorbestimmte Zeit, wenn das Virtueller-Kanal-Kreditpaket (22 ) nicht gefunden wird; und der Sender (10 ) prüft, ob Daten zur Übertragung verfügbar sind, wenn das Virtueller-Kanal-Kreditpaket (22 ) gefunden ist. - Ein Verfahren gemäß Anspruch 6, bei dem der Schritt, in dem der Sender (
10 ) prüft, ob Daten verfügbar sind, ferner die folgenden Schritte aufweist: der Sender (10 ) wartet eine vorbestimmte Zeit, wenn keine Daten verfügbar sind; und der Sender (10 ) sendet die Daten, wenn Daten verfügbar sind. - Ein Verfahren gemäß Anspruch 4, 5, 6 oder 7, bei dem der Schritt, in dem der Empfänger (
12 ) oder der Sender (10 ) eine vorbestimmte Zeit wartet, den folgenden Schritt aufweist: der Empfänger (12 ) oder der Sender (10 ) prüft wiederholt, ob Zwischenspeicher verfügbar ist, bis Zwischenspeicher verfügbar ist, oder der Sender (10 ) prüft wiederholt, ob Daten verfügbar sind, bis Daten zur Übertragung verfügbar sind, oder der Sender (10 ) sucht nach dem Virtueller-Kanal-Kreditpaket (22 ), bis das Virtueller-Kanal-Kreditpaket (22 ) gefunden ist. - Ein Verfahren gemäß Anspruch 7, bei dem der Schritt, in dem der Sender (
10 ) die Daten sendet, den Schritt aufweist, in dem der Sender (10 ) das Verfahren gemäß Anspruch 1 für die nächste Virtueller-Kanal-Kredit-Nummer wiederholt. - Ein Verfahren gemäß Anspruch 1, bei dem der Schritt, in dem der Empfänger (
12 ) die Daten annimmt, die folgenden Schritte aufweist: der Empfänger (12 ) prüft, ob die Daten von dem Sender (10 ) empfangen wurden; der Empfänger (12 ) wartet eine vorbestimmte Zeit, wenn die Daten noch nicht empfangen wurden; und der Empfänger (12 ) wiederholt das Verfahren gemäß Anspruch 1 für die nächste Virtueller-Kanal-Nummer, wenn die Daten empfangen wurden. - Ein System, um Datenpakete (
20 ) Datenpaket für Datenpaket zwischen zumindest einem Empfänger (12 ), der ü ber zumindest eine Hochgeschwindigkeitsverbindung, die eine Mehrzahl virtueller Kanäle (16 ) aufweist, wirksam mit zumindest einem Sender (10 ) verbunden ist, zu übertragen, wobei das System eine Einrichtung zum Durchführen aller Schritte der vorherigen Ansprüche aufweist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/535,696 US6944173B1 (en) | 2000-03-27 | 2000-03-27 | Method and system for transmitting data between a receiver and a transmitter |
US535696 | 2000-03-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE60111991D1 DE60111991D1 (de) | 2005-08-25 |
DE60111991T2 true DE60111991T2 (de) | 2006-05-24 |
Family
ID=24135378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE60111991T Expired - Fee Related DE60111991T2 (de) | 2000-03-27 | 2001-02-23 | Verfahren und System zur Übertragung von Daten mit einer Datenflusssteuerung |
Country Status (5)
Country | Link |
---|---|
US (1) | US6944173B1 (de) |
EP (1) | EP1143672B1 (de) |
JP (1) | JP2001308926A (de) |
DE (1) | DE60111991T2 (de) |
TW (1) | TW530470B (de) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7453878B1 (en) * | 2000-07-21 | 2008-11-18 | Silicon Graphics, Inc. | System and method for ordering of data transferred over multiple channels |
IL142254A0 (en) * | 2001-03-26 | 2002-03-10 | Univ Ben Gurion | Method for the preparation of stable suspensions of single carbon nanotubes |
US7000024B1 (en) | 2001-07-09 | 2006-02-14 | Cisco Technology, Inc. | Systems and methods for providing transmission control protocol communications |
US7502860B1 (en) * | 2001-07-09 | 2009-03-10 | Cisco Technology, Inc. | Method and apparatus for client-side flow control in a transport protocol |
US20050063305A1 (en) * | 2003-09-24 | 2005-03-24 | Wise Jeffrey L. | Method of updating flow control while reverse link is idle |
US20050063306A1 (en) * | 2003-09-24 | 2005-03-24 | Wise Jeffrey L. | Method of early buffer return |
US20050063308A1 (en) * | 2003-09-24 | 2005-03-24 | Wise Jeffrey L. | Method of transmitter oriented link flow control |
US7719964B2 (en) * | 2004-08-12 | 2010-05-18 | Eric Morton | Data credit pooling for point-to-point links |
US8924512B2 (en) | 2007-06-15 | 2014-12-30 | Microsoft Corporation | Extensible remote display infrastructure with dynamic virtual channels |
US7562168B1 (en) * | 2008-05-29 | 2009-07-14 | International Business Machines Corporation | Method of optimizing buffer usage of virtual channels of a physical communication link and apparatuses for performing the same |
US8154996B2 (en) | 2008-09-11 | 2012-04-10 | Juniper Networks, Inc. | Methods and apparatus for flow control associated with multi-staged queues |
US8213308B2 (en) * | 2008-09-11 | 2012-07-03 | Juniper Networks, Inc. | Methods and apparatus for defining a flow control signal related to a transmit queue |
US8325749B2 (en) | 2008-12-24 | 2012-12-04 | Juniper Networks, Inc. | Methods and apparatus for transmission of groups of cells via a switch fabric |
US8254255B2 (en) * | 2008-12-29 | 2012-08-28 | Juniper Networks, Inc. | Flow-control in a switch fabric |
US9264321B2 (en) | 2009-12-23 | 2016-02-16 | Juniper Networks, Inc. | Methods and apparatus for tracking data flow based on flow state values |
US9602439B2 (en) | 2010-04-30 | 2017-03-21 | Juniper Networks, Inc. | Methods and apparatus for flow control associated with a switch fabric |
US9065773B2 (en) | 2010-06-22 | 2015-06-23 | Juniper Networks, Inc. | Methods and apparatus for virtual channel flow control associated with a switch fabric |
US8553710B1 (en) | 2010-08-18 | 2013-10-08 | Juniper Networks, Inc. | Fibre channel credit-based link flow control overlay onto fibre channel over ethernet |
US9660940B2 (en) | 2010-12-01 | 2017-05-23 | Juniper Networks, Inc. | Methods and apparatus for flow control associated with a switch fabric |
US9032089B2 (en) | 2011-03-09 | 2015-05-12 | Juniper Networks, Inc. | Methods and apparatus for path selection within a network based on flow duration |
US9329843B2 (en) * | 2011-08-02 | 2016-05-03 | International Business Machines Corporation | Communication stack for software-hardware co-execution on heterogeneous computing systems with processors and reconfigurable logic (FPGAs) |
US8811183B1 (en) | 2011-10-04 | 2014-08-19 | Juniper Networks, Inc. | Methods and apparatus for multi-path flow control within a multi-stage switch fabric |
US9385962B2 (en) * | 2013-12-20 | 2016-07-05 | Intel Corporation | Method and system for flexible credit exchange within high performance fabrics |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5633867A (en) * | 1994-07-01 | 1997-05-27 | Digital Equipment Corporation | Local memory buffers management for an ATM adapter implementing credit based flow control |
US5432824A (en) * | 1994-07-06 | 1995-07-11 | Mitsubishi Electric Research Laboratories, Inc. | Credit/rate-based system for controlling traffic in a digital communication network |
US5483526A (en) * | 1994-07-20 | 1996-01-09 | Digital Equipment Corporation | Resynchronization method and apparatus for local memory buffers management for an ATM adapter implementing credit based flow control |
US5515359A (en) * | 1994-08-26 | 1996-05-07 | Mitsubishi Electric Research Laboratories, Inc. | Credit enhanced proportional rate control system |
US5511076A (en) * | 1994-11-07 | 1996-04-23 | Digital Equipment Corporation | Method and apparatus to efficiently reuse virtual connections by means of chaser packets |
US5528591A (en) * | 1995-01-31 | 1996-06-18 | Mitsubishi Electric Research Laboratories, Inc. | End-to-end credit-based flow control system in a digital communication network |
EP0873611A1 (de) * | 1995-09-14 | 1998-10-28 | Fujitsu Network Communications, Inc. | Sender-gesteuerte flusssteuerung zur pufferspeicherzuordnung in atm-wan |
US5610745A (en) * | 1995-10-26 | 1997-03-11 | Hewlett-Packard Co. | Method and apparatus for tracking buffer availability |
JP2929991B2 (ja) * | 1996-01-29 | 1999-08-03 | 日本電気株式会社 | 最適化クレジット制御方法 |
JP3039385B2 (ja) * | 1996-07-17 | 2000-05-08 | 日本電気株式会社 | Atm通信装置 |
US5901138A (en) * | 1996-11-08 | 1999-05-04 | International Business Machines Corporation | Process for improving the efficiency of high performance routing |
US6002675A (en) * | 1997-01-06 | 1999-12-14 | Cabletron Systems, Inc. | Method and apparatus for controlling transmission of data over a network |
FR2759518B1 (fr) * | 1997-02-07 | 1999-04-23 | France Telecom | Procede et dispositif d'allocation de ressources dans un reseau numerique de transmission par paquets |
US5825748A (en) * | 1997-04-08 | 1998-10-20 | International Business Machines Corporation | Credit-based flow control checking and correction system |
US6044406A (en) * | 1997-04-08 | 2000-03-28 | International Business Machines Corporation | Credit-based flow control checking and correction method |
US6078565A (en) * | 1997-06-20 | 2000-06-20 | Digital Equipment Corporation | Method and apparatus to expand an on chip FIFO into local memory |
US6594701B1 (en) * | 1998-08-04 | 2003-07-15 | Microsoft Corporation | Credit-based methods and systems for controlling data flow between a sender and a receiver with reduced copying of data |
US6681254B1 (en) * | 1998-09-10 | 2004-01-20 | International Business Machines Corporation | Method of controlling the flow of information between senders and receivers across links being used as channels |
US6747949B1 (en) * | 1999-05-21 | 2004-06-08 | Intel Corporation | Register based remote data flow control |
US6452903B1 (en) * | 2000-05-31 | 2002-09-17 | Fujitsu Network Communications, Inc. | Network switch supporting rate-based and credit-based flow control mechanisms on a link-by-link basis |
-
2000
- 2000-03-27 US US09/535,696 patent/US6944173B1/en not_active Expired - Fee Related
-
2001
- 2001-02-23 EP EP01301677A patent/EP1143672B1/de not_active Expired - Lifetime
- 2001-02-23 DE DE60111991T patent/DE60111991T2/de not_active Expired - Fee Related
- 2001-03-23 JP JP2001085489A patent/JP2001308926A/ja active Pending
- 2001-04-30 TW TW090107082A patent/TW530470B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP1143672B1 (de) | 2005-07-20 |
DE60111991D1 (de) | 2005-08-25 |
EP1143672A3 (de) | 2002-05-15 |
EP1143672A2 (de) | 2001-10-10 |
JP2001308926A (ja) | 2001-11-02 |
US6944173B1 (en) | 2005-09-13 |
TW530470B (en) | 2003-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60111991T2 (de) | Verfahren und System zur Übertragung von Daten mit einer Datenflusssteuerung | |
DE19736515B4 (de) | Netzwerkknoten für Paketvermittlung mit selektiver Datenverarbeitung und entsprechendes Verfahren | |
DE69735740T2 (de) | Asynchrone paketvermittlung | |
DE69827053T2 (de) | Verfahren zur Zuteilung von Betriebsmitteln in einem digitalen Datenübertragungsnetzwerk | |
DE69935554T2 (de) | Verfahren und Rechnerprogrammprodukt zum effizienten und zuverlässigen Übertragen von kleinen Datennachrichten von einem Sendesystem zu einer grossen Anzahl von Empfangssystemen | |
DE60036218T2 (de) | Verbindungsschichtquittierung und wiederübertragung für ein zellulares telekommunikationssystem | |
DE69736914T2 (de) | Verfahren und Vorrichtung zur Fehlerkompensation sowie ein Fehlerkompensationsprogramm speicherndes Speichermedium | |
DE3020077C2 (de) | ||
DE602004002086T2 (de) | Verfahren und Apparat zur gemeinsamen dynamischen Verwaltung von Fensterlängen von mehreren ARQ-Datenverbindungen | |
DE60100369T2 (de) | Vorrichtung für Datenaustausch in einem drahtlosen Kommunikationssystem | |
EP0090210B2 (de) | System zum automatischen Aufbau einer Kurzwellen-Telegrafiezeichen-Verbindung | |
DE60214691T2 (de) | Verfahren und Vorrichtung zum Senden und Empfangen von digitalen Daten | |
DE2258623A1 (de) | Fehlerschutzanordnung fuer die nachrichtenuebertragung | |
DE3532439A1 (de) | Mehrfachzugriff-uebertragungsverfahren | |
DE69731324T2 (de) | Verfahren und Vorrichtung zur Datenübertragung | |
EP0993712B1 (de) | Verfahren und anordnung zur codierung digitaler daten | |
EP1457085A1 (de) | Verfahren zum paketvermittelten datenübertragung bei funkzellenwechsel | |
DE112011105003T5 (de) | Sendevorrichtung, Empfangsvorrichtung, Kommunikationsvorrichtung, Kommunikationssystem und Sendeverfahren | |
DE10322885A1 (de) | Verfahren zum Organisieren von Datenpaketen | |
DE60036121T2 (de) | Hochgeschwindigkeitsverbindung für eingebettete Systeme in einem Rechnernetzwerk | |
DE10108146A1 (de) | Datenübertragungsverfahren | |
DE69816820T2 (de) | Verfahren zur kommunikation durch direkt zugriff mit binärer rückkopplung | |
DE2645929C3 (de) | System zur Fehlerkorrektur | |
DE10022270B4 (de) | Verfahren und Kommunikationssystem zum Übertragen von kodierten Datenpaketen | |
DE10034977A1 (de) | Verfahren und Vorrichtungssystem zur Datenübertragung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8327 | Change in the person/name/address of the patent owner |
Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE |
|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |