DE60111991T2 - Verfahren und System zur Übertragung von Daten mit einer Datenflusssteuerung - Google Patents

Verfahren und System zur Übertragung von Daten mit einer Datenflusssteuerung Download PDF

Info

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
Application number
DE60111991T
Other languages
English (en)
Other versions
DE60111991D1 (de
Inventor
Scott Arthur Jones
Alan Chris Berkema
Thang Vinh Le
Fred Joel Anast
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE60111991D1 publication Critical patent/DE60111991D1/de
Application granted granted Critical
Publication of DE60111991T2 publication Critical patent/DE60111991T2/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/39Credit based
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/16Flow control; Congestion control in connection oriented networks, e.g. frame relay
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5629Admission control
    • H04L2012/563Signalling, 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ät 10 mit einer I/O-Karte 12 durch eine bidirektionale serielle Verbindung 14 mit einer Mehrzahl virtueller Kanäle 16 verbunden. In diesem Fall ist das Peripheriegerät 10 der Sender und die I/O-Karte 12 ist der Empfänger. Obwohl jede Anzahl virtueller Kanäle 16 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 bei 22 angezeigt, für einen virtuellen Kanal ist detailliert in den 2 und 3 gezeigt. Jedem virtuellen Kanal ist eine eindeutige Virtueller-Kanal-Nummer (VCN) 24 zugewiesen. Wie in 2 gezeigt ist, umfassen die Pakete einige der Steuerzeichen 26, 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 VCN 24 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 Sender 10 und der Empfänger 12 in der Lage, die Übertragung innerhalb der Mehrzahl virtueller Kanäle 16 zu verfolgen.
  • Wenn der Empfänger 12 ein Virtueller-Kanal-Kreditpaket 22 für einen bestimmten virtuellen Kanal sendet, weiß der Sender 10, für welchen virtuellen Kanal das Kreditpaket bestimmt ist. Anders ausgedrückt, wird dem Sender 10 nun die Erlaubnis erteilt, ein Datenpaket 20, falls verfügbar, an den Empfänger 12 durch den virtuellen Kanal, der durch das Kreditpaket 22 bezeichnet ist, zu senden. In 3 ist die Sequenz des Flusses des Kreditpakets 22 und des Datenpakets 20 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 Datenpaket 20 von einem Sender kann nur dann übertragen werden, wenn ein Kreditpaket 22 durch den Empfänger 12 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 in 4 zu sehen. Damit der Empfänger 12 den Prozess (Block 28) für eine Mehrzahl virtueller Kanäle 16 starten kann, muss eine wirksame Kommunikationsverbindung zwischen dem Sender 10 und dem Empfänger eingerichtet sein (Block 30). Sobald dies erfolgt ist, bringt der Empfänger 12 einen Empfängerprozess für eine bestimmte Virtueller-Kanal-Nummer N hervor (Block 32). Der Empfänger 12 prüft zuerst, ob verfügbarer Zwischenspeicher für die VCN „N" vorliegt (Block 34). Wenn der Empfänger 12 keinen Zwischenspeicher aufweist, der zur Übertragung verfügbar ist (Block 36), wartet er eine vorbestimmte Zeit und prüft wieder auf einen verfügbaren Zwischenspeicher, bis er einen bestimmten Zwischenspeicher findet (Block 34). Sobald verfügbarer Zwischenspeicher gefunden wurde (Block 36), sendet der Empfänger 12 ein Virtueller-Kanal-Kreditpaket 22 für die VCN „N" an den Sender (Block 38).
  • Wie zuvor angemerkt wurde, umfasst das Virtueller-Kanal-Kreditpaket 22 die VCN „N", um bei dem Sender 10 zu identifizieren, dass eine Übertragung für die VCN „N" zulässig ist. Der Empfänger 12 prüft als nächstes, ob er ein Datenpaket 20 von dem Sender 10 empfangen hat (Block 40). Wenn kein Datenpaket 20 empfangen wurde, wartet er eine vorbestimmte Zeit und prüft wieder auf ein Datenpaket 20 (Block 40). Wenn andererseits der Empfänger das Datenpaket 20 von dem Sender 10 empfangen hat (Block 41), 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 (Block 34). Gleichzeitig wiederholt der Empfänger den Empfängerprozess für die nächste VCN, nämlich die VCN „N + 1" (Block 42).
  • Der Empfängerprozess wird wiederholt, bis alle VCNs laufen (Block 42), was den Empfängerprozess zu einem Ende bringt (Block 44). Es wird angemerkt, dass, da der Empfänger 12 tatsächlich auf verfügbaren Zwischenspeicher prüft, bevor er ein Kreditpaket 22 ausgibt, ein Bestätigungspaket bei der vorliegenden Erfindung nicht benötigt wird. Nach der Übertragung des Datenpakets 20 darf der Sender 10 keine weiteren Datenpakete senden, bis er ein weiteres Kreditpaket 22, das die bezeichnete VCN trägt, empfängt.
  • Das Flussdiagramm für die Teilroutine des Senders 10 ist in 5 dargestellt. Es ähnelt der Teilroutine des Empfängers dahingehend, dass der Sender 10 den Senderprozess nicht startet (Block 46), bis eine wirksame Kommunikationsverbindung zu dem Empfänger 12 vorliegt (Block 48). Wenn eine Verbindung eingerichtet wurde, wird ein Senderprozess für eine bestimmte VCN hervorgebracht (Block 50), z. B. VCN „N". Der Sender 10 verifiziert ähnlich, ob er verfügbaren Zwischenspeicher zur Übertragung von Paketen für die VCN „N" aufweist (Block 52). Wenn kein Zwischenspeicher verfügbar ist (Block 54), wartet er eine vorbestimmte Zeit und prüft erneut den Zwischenspeicher, bis verfügbarer Zwischenspeicher für eine Übertragung vorliegt (Block 52).
  • Im Gegensatz dazu schaut der Sender 10 als nächstes, wenn verfügbarer Zwischenspeicher vorliegt (Block 54), nach dem Virtueller-Kanal-Kreditpaket 22 mit der zugewiesenen VCN „N" von dem Empfänger 12 (Block 56). Wenn kein Kreditpaket 22 gefunden werden kann, wartet der Sender eine vorbestimmte Zeit und prüft erneut auf das Kreditpaket 22 für diesen bestimmten virtuellen Kanal mit der VCN „N" (Block 56). Wenn ein Kreditpaket 22 vorliegt, prüft er, um zu bestimmen, ob er Datenpakete 20 zur Übertragung aufweist (Block 58). Der Sender wartet wieder eine vorbestimmte Zeit und prüft weiterhin auf Datenpakete 20, wenn kein Datenpaket zur Übertragung vorliegt (Block 58). Wenn jedoch ein Datenpaket 20 vorliegt, mit der VCN „N", wie zuvor beschrieben wurde, wird dies entsprechend an den Empfänger 12 übertragen (Block 60). Nach der Übertragung des Datenpakets 20 für die VCN „N" kehrt der Sender 10 schleifenmäßig zurück, um mit einem Prüfen auf einen verfügbaren Zwischenspeicher für die VCN „N" fortzufahren (Block 52). Er wiederholt jedoch auch den Senderprozess für die nächste VCN oder VCN „N + 1", bis alle VCNs laufen (Block 62). Wenn alle VCNs laufen, verlässt der Senderprozess die Teilroutine (Block 64).
  • 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, Datenpakete 20 an den Empfänger 12 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 Datenpakets 20 und eines Kreditpakets 22 mit einer eindeutigen VCN 24, 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)

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
DE60111991T 2000-03-27 2001-02-23 Verfahren und System zur Übertragung von Daten mit einer Datenflusssteuerung Expired - Fee Related DE60111991T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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