DE69922180T2 - Verfahren und Vorrichtung zur Datenflusssteuerung - Google Patents

Verfahren und Vorrichtung zur Datenflusssteuerung Download PDF

Info

Publication number
DE69922180T2
DE69922180T2 DE69922180T DE69922180T DE69922180T2 DE 69922180 T2 DE69922180 T2 DE 69922180T2 DE 69922180 T DE69922180 T DE 69922180T DE 69922180 T DE69922180 T DE 69922180T DE 69922180 T2 DE69922180 T2 DE 69922180T2
Authority
DE
Germany
Prior art keywords
data
value
link
bandwidth
window
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 - Lifetime
Application number
DE69922180T
Other languages
English (en)
Other versions
DE69922180D1 (de
Inventor
Reiner Ludwig
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of DE69922180D1 publication Critical patent/DE69922180D1/de
Publication of DE69922180T2 publication Critical patent/DE69922180T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • 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/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • 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/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]

Description

  • Die vorliegende Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung für eine Datenflusssteuerung in einer Paketvermittlungsverbindung.
  • Das sogenannte Internet ist ein Kommunikationsnetzwerk, das eine Anzahl von verschiedenen Dienstschichten umfasst. Die niedrigste Schicht ist die Hardware-Schicht, auf die Software-Schichten verschiedener Funktionen hinzugefügt werden. Als Beispiel ist das sogenannte World Wide Web (WWW) eine Schicht über der durch das sogenannte Internetprotokoll (IP) bereitgestellten Basisinternetschicht.
  • Das Internet ist ein Paketvermittlungsnetzwerk, bei dem die Basisstruktur von Information durch das Internetprotokoll IP bestimmt ist. Ein Protokoll ist ein Satz von Regel, die zwei Partner in einer beabsichtigten Kommunikation beachten müssen, um dadurch die Kommunikation zu ermöglichen. Das Internetprotokoll IP reguliert Adressierung, d.h., es stellt sicher, dass Router zwischen zwei Kommunikationspunkten in der Lage sind, Datenpakete an ihre Bestimmung zu senden. Ein IP-Paket besteht aus einem Kopf, der Information bezüglich zu sendender Daten enthält und einem die Daten selbst enthaltenden Körper.
  • Um die zuverlässige Übermittlung von Daten zwischen zwei Enden einer Kommunikation zu erleichtern, wird ein weiteres Protokoll zur Verfügung gestellt, das Übermittlungssteuerungsprotokoll (TCP). TCP nimmt die zu sendende Information und teilt sie in gegebene Abschnitte. Jeder Abschnitt bekommt eine Nummer, so dass der Empfang eines gegebenen Abschnitts durch den Empfänger bestätigt werden kann und der Empfänger in der Lage ist, die Information in der richtigen Reihenfolge zusammenzusetzen. TCP hat seinen eigenen, seine eigene Information tragenden, Kopf, der durch dieses Protokoll verwendet wird. Die TCP-Pakete werden über das Internet durch Platzieren in IP-Paketen gesendet, d.h., das TCP-Paket wird in dem (untere Schicht) IP-Paket eingekapselt. Das ist der Grund, warum der Transport von Paketen über das Internet oft als TCP/IP bezeichnet wird.
  • 2 zeigt einen in 8 Datenabschnitte gleicher Größe geteilten Körper von Daten 100, entsprechend mit 1 bis 8 nummeriert. Als ein Beispiel könnte der Körper 100 eine Größe von 8192 Bytes aufweisen, so dass jedes Datensegment 1024 Bytes umfassen würde. Es muss bemerkt werden, dass die tatsächlich zu sendende Information gewöhnlich irgendwo zwischen 7168 Bytes und den oben erwähnten 8192 Bytes sein wird und dass der letzte Datenabschnitt 8 einfach durch sogenanntes Stopfen (Padding) aufgefüllt wird, um dadurch eine gleiche Größe von Datenabschnitten zu erreichen. Die genaue Größe eines einzelnen Datenabschnitts ist nicht auf das oben ausgewählte Beispiel von 1024 Bytes fixiert, sondern wird in geeigneter Weise durch ein Sendesystem gemäß gegebener Bedingungen ausgewählt, z.B. die durch eine spezifische Verbindung erlaubte maximale Übermittlungseinheit (MTU).
  • Das Verfahren, durch das TCP den Fluss von Datenabschnitten steuert, ist das Verfahren "gleitender Fenster" (Sliding Windows). Dieses Konzept wird z.B. in dem Buch "TCP/IP Illustrated" von W.R. Stevens, Volume 1, Addison Wesley, 1994, Kapitel 20 und 21, beschrieben.
  • Der Begriff "Fenster" beschreibt einen Umfang von Bytes, oder allgemeiner, einen in Einheiten von Daten ausgedrückten Datenumfang. Gemäß TCP sendet ein sogenanntes "angekündigtes" oder angebotenes Fenster an den Sender in Antwort auf ein Paket von dem Sender, der eine Kommunikation initiiert. Einem TCP-Sender ist nicht erlaubt, mehr ausstehende nichtbestätigte Pakete aufzuweisen, als den durch das angebotene Fenster definierte Umfang. Es sollte bemerkt werden, dass der Empfänger ein angebotenes Fenster in jeder bestätigten Nachricht oder Paket sendet.
  • Das angebotene Fenster entspricht gewöhnlicherweise der Eingangspufferkapazität der Empfängerseite. Dadurch ist es die Funktion des angebotenen Fensters zu vermeiden, dass ein schneller Sender den Eingangspuffer eines langsamen Empfängers überfließen lässt.
  • Der Mechanismus einer gleitenden Fenstersteuerung wird im Folgenden durch Bezugnahme auf 3 und 4 beschrieben, die ein Beispiel zum Senden des in 2 gezeigten Datenumfangs 100 darstellen und durch Bezugnahme auf 5 und 6, die das Prinzip einer gleitenden Fenstersteuerung darstellen.
  • 3 stellt ein Beispiel der Übermittlung von den 8 Segmenten von in 2 gezeigten Daten dar, in dem der Sender auf der linken Seite und der Empfänger auf der rechten Seite gezeigt ist. Jeder Pfeil zeigt das Senden eines Paketes an, wobei die Doppellinienpfeile die Datenabschnitte enthaltenden Paketen entsprechen, wie unten detaillierter beschrieben wird. Das Senden von individuellen Paketen ist durch Bezugszeichen S1 bis S20 dargestellt, wobei jeder Sendevorgang von einer der zwei Seiten ebenfalls als ein Abschnitt bezeichnet wird. Das zeigt, dass im allgemeinen ein die Daten von 2 enthaltendes Paket ein Datensegment enthalten wird. Die Zeitrichtung ist von oben nach unten.
  • Es sollte bemerkt werden, dass die in 3 gezeigte Sequenz eine Vereinfachung zum Erklären der Flusssteuerung ist, und daher nicht alle Pakete ein Bezugszeichen tragen, sowie diese sich auf andere Aspekte einer Kommunikation beziehen. Ebenso tragen einige der bezugszeichentragenden Abschnitte ebenso mehr Daten, da sich aber diese ergänzenden Daten wiederum auf andere Aspekte der Kommunikation als eine Flusssteuerung beziehen, wird dies hier nicht dargestellt. Die Notierung X:Y(Z) bedeutet, dass Byte-Nummern X bis Y gesendet werden, was insgesamt Z ausmacht. Ack X bedeutet, dass der Empfang von Bytes bis zu Nummer X bestätigt ist und Win X bedeutet, dass ein Fenster von X Bytes angeboten wird.
  • Die Abschnitte S1 bis S3 zwischen Sender und Empfänger beziehen sich auf das Einrichten einer Kommunikation, und werden nicht weiter erklärt, mit einer Ausnahme, dass der Empfänger ein Fenster von 4096 Bytes in Segment S2 ankündigt. In Segmenten S4 bis S7 sendet der Sender die ersten drei Datenabschnitte 1 bis 3, d.h., die Bytes 1 bis 1025, 1025 bis 2049 und 2049 bis 3073. Der Empfänger bestätigt den Empfang der Bytes bis 2049 in S7, wobei S7 wiederum ein Fenster von 4096 anbietet. Warum der Empfänger nicht bis 3073 bestätigt, ist zum Erklären einer Flusssteuerung unwichtig. Es ist z.B. möglich, dass dieser Datenabschnitt bei einer Verarbeitung auf der empfangenden Seite verzögert ist. In dem Abschnitt S8 bestätigt der Empfänger bis 3073 und bietet ein Fenster von 3073 an. Der Grund für dieses ist wiederum für die Erklärung einer Flusssteuerung unwichtig. Es ist z.B. möglich, dass in dem Eingangspuffer des Empfängers noch eine Verzögerung vorliegt und daher das verminderte Fenster zum Vermeiden eines Überfließens dient. In Abschnitt 59 sendet der Sender ein oder mehrere Datenabschnitte, nämlich Bytes 3073 bis 4097. Diese werden in Abschnitt S10 bestätigt, in dem wiederum ein Fenster von 4096 angeboten wird. Der Sender sendet dann drei Datenabschnitte in Abschnitten S11 bis S13, nämlich Bytes 4097 bis 5121, 5121 bis 6145, 6145 bis 7169. In Segment S14 bestätigt der Empfänger nur bis Byte 6145, aber bietet weiterhin ein Fenster von 4096 an. In Abschnitt S15 sendet der Sender den letzten aus Bytes 7169 bis 8193 bestehenden Datenabschnitt, wobei der Empfänger den Empfang von allen Bytes bis 8193 in Segment S16 bestätigt. Die verbleibenden Vermittlungen S17 bis S20 beziehen sich nicht auf eine Flusssteuerung.
  • Es kann gesehen werden, dass nicht jeder Datenabschnitt individuell bestätigt werden muss, der Empfänger kann ebenso den Empfang einer Anzahl von Datenabschnitten bis zu einem gegebenen Abschnitt mit einer Bestätigungsnachricht bestätigen.
  • 5 zeigt das Prinzip einer auf gleitendem Fenster basierenden Flusssteuerung. Die Nummern 1 bis 11 bezeichnen Datenabschnitte, z.B. können dies in 2 gezeigte Datenabschnitte sein, oder einfach eine gegebene Anzahl von Bytes sein. Bezugnehmend auf die Erklärung einer fensterbasierten Flusssteuerung ist es nur wichtig zu bemerken, dass das Fenster 200 einen gewissen Datenumfang einschließt, wobei das Steuerungsfenster zwischen einem linken Rand 201 und rechten Rand 202 Datenabschnitte 4 bis 9 einschließt. In dem Beispiel von 5 ist das Steuerungsfenster das angebotene Fenster (ein anderer Typ eines Steuerungsfensters wird später beschrieben). Die Position des linken Rands von dem Fenster 200 wird durch die Anzahl von (durch den Sender) schon gesendeten Datenabschnitten bestimmt und (durch den Empfänger) bestätigt. In 5 bedeutet dies, dass Datenabschnitte 1 bis 3 gesendet und bestätigt worden sind.
  • Obwohl der obige Datenfluss in Verbindung mit dem Beispiel einer Sequenz von Abschnitten erklärt ist, sollte bemerkt werden, dass TCP ein strömungsorientiertes Protokoll ist, derart, dass die Sequenzbasis in Form von Bytes vorliegt. Daher zeigen die Bestätigungsnachrichten von dem Empfänger keine empfangenen Abschnitte, vielmehr zeigen sie, bis zu welchem Byte der Sequenz Daten empfangen worden sind.
  • Der Sender berechnet das verwendbare Fenster, d.h., den Datenumfang, der gesendet werden kann, als die Differenz zwischen der gesamten Fenstergröße und dem Datenumfang der gesendet, aber noch nicht bestätigt wurde. In 5 schließt das verwendbare Fenster von Teilung 203 bis zum rechten Rand 202 Datenabschnitte 7 bis 9 ein. Daher können diese Daten gesendet werden. Die Datenabschnitte hinter dem rechten Rand 202, d.h., 10, 11, etc., können solange nicht gesendet werden, wie sich das Fenster bewegt, um diese einzuschließen. Die Bewegung des Fensters soll im folgenden erklärt werden.
  • 6 zeigt das Prinzip zum zeitlichen Einstellen des Fensters. Über die Zeit bewegt sich das Fenster nach rechts, da der Empfänger Daten bestätigt. Die relative Bewegung der zwei Ränder 201 und 202 erhöht oder vermindert die Größe des Fensters. Drei verschiedene Begriffe werden konventionellerweise verwendet, um diese Bewegung zu beschreiben: das Fenster schließt sich, da der linke Rand 201 sich nach rechts bewegt, das Fenster öffnet sich, da der rechte Rand 202 sich nach rechts bewegt, und das Fenster schrumpft, da sich der rechte Rand 202 nach links bewegt. Die Bewegung der Ränder 201, 202 wird bestimmt durch die Position des linken Randes 201 gemäß wie viele Daten gesendet und bestätigt wurden, und durch die Größe des angebotenen Fensters, das startend von einem gegebenen linken Rand 201 den rechten Rand 202 bestimmt. Es kann bemerkt werden, dass der linke Rand sich nicht nach links bewegt, und wenn eine Bestätigung (ACK) empfangen wurde, die ein Bewegen des linken Randes nach links beinhaltet, es eine Duplikat-ACK wäre und folglicherweise verworfen wurde.
  • Wenn der linke Rand 201 den rechten Rand 202 erreicht, wird das sich ergebende Fenster 200 als ein Nullfenster bezeichnet. Das hält den Sender an, jegliche Daten zu übermitteln.
  • Das oben beschriebene Prinzip einer Flusssteuerung wird mit Bezugnahme auf 4 dargestellt, das die gleitende Fensterflusssteuerung für das in 3 gegebene Beispiel erklärt. Der obere Teil in der Figur zeigt die Datensegmente von 2, und die Balken und Pfeile repräsentieren und stellen die Bewegung von Veränderung des Flusssteuerungsfensters über die Zeit dar in Antwort auf das Senden von Daten durch den Sender und die Bestätigung durch den Empfänger. Wie gesehen werden kann, muss der Sender nicht ein volles Datenwort eines Fensters übermitteln. Jede Bestätigung von dem Empfänger lässt das Fenster nach rechts gleiten. Die Größe des Fensters kann sich vermindern, wie durch die Veränderung von Abschnitt S7 nach S8 gezeigt, aber der rechte Rand des Fensters darf sich nicht nach links bewegen. Ebenso muss der Empfänger nicht auf das Fenster zum Füllen achten, bevor er einen ACK sendet.
  • In der obigen Beschreibung war das die Flusssteuerung bestimmende Fenster das angebotene oder angekündigte Fenster des Fensters. Mit anderen Worten, das angebotene Fenster ist das Instrument, mit dem der Empfänger die Flusssteuerung beeinflusst, die selbst natürlich durch den Sender durchgeführt wird. Wie schon erwähnt, verwendet der Empfänger das angebotene Fenster, um ein Überfließen seines Eingangspuffers zu vermeiden. Daher wird gewöhnlicher Weise die Größe des angebotenen Fensters durch den Empfangsvorgang gesteuert.
  • Neben dem Problem eines schnellen Senders, der ein Überfließen eines langsamen Empfängers verursacht, besteht ebenso das Problem, dass ein Stau in dem Netzwerk auftreten kann. Dies ist ein Problem, das nicht an dem Empfangsende einer Verbindung auftritt, sondern zwischen dem sendenden und empfangenen Ende. Wie gut bekannt ist, wird eine typische Verbindung in dem Internet durch andere Mitglieder eingerichtet, die als Router agieren, und diese Router können durch weit variierende Hardwaretypen verbunden werden, wobei derartige Verbindungen zwischen Routern gewöhnlicherweise als Verbindungen (links) bezeichnet werden. Mit anderen Worten, wird ein Paket von einem Sender zu einem Empfänger durch Router durch Verbindungen mit anderen Routern geführt, bis es an dem empfangenen Ende angekommen ist. Eine Stauung ist der Effekt der auftritt, wenn eine gegebene Verbindung nicht groß genug ist (keine hinreichende Übermittlungskapazität aufweist), um den durch die Verbindung zu sendenden Datenumfang handzuhaben. Das kann z.B. passieren, wenn Daten auf einer Verbindung ankommen, die eine große Kapazität aufweist ("Big Pipe", z.B. ein schnelles LAN) und auf einer Verbindung besteht, die eine niedrige Kapazität aufweist ("Small Pipe", z.B. ein langsames WAN), oder wenn mehrfache Eingangsströme an einem Router ankommen, dessen Ausgangskapazität geringer ist als die Summe der Eingänge.
  • 7 zeigt ein Beispiel eines Staus. In dieser Figur kommen Datenabschnitte, wie die in 2 gezeigten und entsprechende Nummern 1 bis 8 tragende Pakete an einem Router R1 über eine Verbindung 300 an, die eine große Übermittlungskapazität aufweist. Verbindung 301, in die R1 die Pakete routet, ist kleiner als Verbindung 300. Es sollte bemerkt werden, dass die Pakete mit einem schraffierten Bereich dargestellt sind, wobei der Bereich der Größe des Pakets entspricht. Das bedeutet, dass der Bereich von einem in Verbindung 301 gezeigtem Paket 3 oder 4 gleich dem Bereich von Paketen 5 oder 6 in Verbindung 300, oder von 1 und 2 in Verbindung 302 ist. Wie gesehen werden kann, agiert R1 als eine Engstelle bzw. "Flaschenhals" (bottleneck), weil er die Pakete nicht so schnell in Verbindung 301 senden kann, wie sie von Verbindung 300 ankommen. Wie auch aus der Figur gesehen werden kann, kann Router R2 die Pakete nur in Verbindung 302 so schnell setzen, wie sie von der Niedrigkapazitätsverbindung 301 ankommen. Folglicherweise bestimmt die Verbindung der niedrigsten Kapazität die Zwischenräume der Pakete.
  • Es ist zu bemerken, dass in dem Beispiel von 7 angenommen wird, dass der Empfänger ein Fenster angeboten hat, das eine acht Abschnitten entsprechende Größe aufweist, so dass der Sender alle acht so schnell sendet, wie Verbindung 300 sie aufnehmen kann. Es wird auch angenommen, dass Router R1 einen hinreichend großen Puffer zum Speichern der eingehenden Pakete aufweist, solange sie ausgesendet werden können. Jedoch ist die letztere Annahme oft nicht erfüllt, so dass ein Stau zu einem Verwerfen von Paketen führen kann, was wiederum bedeutet, dass Pakete erneut übermittelt werden müssen, d.h., eine Übermittlung ist behindert.
  • Um einen Stau in Betracht zu ziehen, wird die Steuerung des Datenflusses in TCP nicht nur gemäß dem oben beschriebenen angebotenen Fenster durchgeführt, sondern auch gemäß dem sogenannten Staufenster. Das Staufenster wird durch eine Routine versendet, die im folgenden langsamer Start genannt wird. Wenn eine neue Verbindung eingerichtet wird, wird das Staufenster auf einen Abschnitt von Daten initialisiert. Jedes Mal, wenn eine Bestätigung durch den Sender empfangen wird, wird der Stau um einen Abschnitt erhöht. Die oben erklärte Fensterkontrolle (siehe 5 und 6) wird entweder mit dem angebotenen Fenster oder dem Staufenster durchgeführt, das kleiner ist. Mit anderen Worten, wenn das Staufenster kleiner ist als das angebotene Fenster, würde das in 5 gezeigte Steuerungsfenster 200 das Staufenster sein und nicht das angebotene Fenster. Der Vorgang zum Bestimmen der Position des linken Rands des Steuerungsfensters wird genau ausgeführt, wie in Verbindung mit 4, 5 und 6 beschrieben, aber die Position des rechten Rahmens wird mit dem Minimum des angebotenen und des Staufensters bestimmt.
  • Das angebotene Fenster wird durch den Empfänger bestimmt, wohingegen das Staufenster durch den Sender bestimmt wird. Daher ist das Staufenster eine Flusssteuerung, die durch den Sender auferlegt wird, während das angebotene Fenster eine Flusssteuerung ist, die durch den Empfänger auferlegt wird. Das erstere basiert auf der Bewertung des Senders eines empfangenen Netzwerkstaus, das letztere bezieht sich auf einen Umfang verfügbaren Pufferplatzes an dem Empfänger.
  • [Aufgabe der Erfindung]
  • Wenn eine gleitende Fensterflusssteuerung durch Verwenden eines langsamen Starts und des Staufensters wie oben beschrieben durchgeführt wird, startet der Sender durch Übermitteln eines Abschnitts oder Pakets und Warten auf die entsprechende Bestätigung ACK. Wenn diese ACK empfangen wird, wird das Staufenster von 1 auf 2 erhöht und zwei Abschnitte können gesendet werden. Im allgemeinen erhöht jedes empfangene ACK das Fenster um eins. Daher wird, wenn jeder dieser zwei Abschnitte bestätigt wird, das Staufenster auf Vier erhöht, etc. Das führt zu einem exponentiellen Ansteigen. Es sollte bemerkt werden, dass das exponentielle Ansteigen nicht hinsichtlich angemessener Zeit sondern hinsichtlich der sogenannten Round Trip-Zeit RTT stattfindet. Die RTT ist die Zeit, die zwischen dem Senden eines gegebenen Bytes und dem Empfang der entsprechenden Bestätigungsnachricht vergangen ist. Infolge diese exponentiellen Anstiegs kann die Größe des Staufensters schnell einen Wert erreichen, der obwohl er noch kleiner als das angebotene Fenster ist, zu einem Stau führt, wie in Verbindung mit 7 beschrieben.
  • Ein Stau führt typischerweise zu einem Paketverlust, der durch in der Kommunikation auftretende Auszeiten bzw. Time-Outs bemerkt werden kann (wenn ein Paket gesendet wird, beginnt eine Time-Out-Uhr zu laufen, und wenn keine Bestätigung in der derzeitigen Zeitperiode empfangen wird, wird ein Time-Out ausgegeben) oder durch Duplizieren von empfangenen ACKs.
  • Um dieses Problem zu behandeln, wird ein Stauvermeidungsverfahren vorgeschlagen, das z.B. in Kapitel 21.6 des oben erwähnten Buchs von W. R. Stevens beschrieben wird. Gemäß diesem Erfahren, das gewöhnlich zusammen mit dem oben beschriebenen langsamen Startverfahren implementiert wird, wird ein Staufensterwert und ein langsamer Startschwellwert gehalten. Anfänglich wird das Staufenster auf einen Abschnitt gesetzt und der Schwellwert auf die erlaubte maximale Fenstergröße (typischerweise 65535 Bytes). Das Steuerungsfenster wird als das Minimum des angebotenen Fensters und des Staufensters ausgewählt. Wenn ein Stau auftritt und dies durch einen stattfindenden Time-Out bemerkt wird, wird eine Hälfte des laufenden Steuerungsfensters als der Schwellwert gespeichert und das Staufenster wird auf einen Abschnitt gesetzt. Ein Time-Out ist eine Funktion gemäß der ein Timer die Zeit misst, die seit dem Senden eines Pakets vergeht und eine Time-Out-Warnung wird ausgegeben, wenn keine Bestätigung innerhalb einer vorbestimmten Zeitdauer empfangen wird. Dann wird das Verfahren des langsamen Starts durchgeführt (mit seinem exponentiellen Ansteigen der Fenstergröße), solange bis die Steuerungsfenstergröße den Schwellwert erreicht, nach der das Stauvermeidungsverfahren eingesetzt hat, das diktiert, das das Staufenster mit dem reziproken Wert des Staufensters erhöht wird, was zu einem linearen Ansteigen der Größe des Staufensters führt.
  • Ein anderer Hinweis eines Staus ist der Empfang einer doppelten Bestätigung, nach der das Staufenster auf die Hälfte des laufenden Steuerungsfensters gesetzt ist und das Stauvermeidungsverfahren verwendet wird. Time-Out und verdoppelte Bestätigungen und die Reaktionen darauf sind in Verbindung mit TCP wohlbekannt, so dass keine weitere Erklärung notwendig ist.
  • Als eine Konsequenz des obigen führt eine durch TCP durchgeführte Basisflusssteuerung zu einem konstanten Untersuchen für mehr Bandbreiten durch den Sender. Bandbreite ist definiert als die Datenübermittlungsrate, d.h., wird in der Einheit von Datenzeiteinheit, z.B. Bits pro Sekunde, angegeben. Dieses konstante Sondieren nach Bandbreite hat die Auswirkung, dass ein Stau dennoch auftreten wird, solange wie der Empfänger ein ausreichend großes Fenster anbieten wird, auch wenn es gemäß dem oben beschriebenen Verfahren einer Stauvermeidung durchgeführt wird, das bewirkt, dass sich das Staufenster nur linear nach einem gewissen Punkt erhöht.
  • Es sollte bemerkt werden, dass dieses Problem nicht auf TCP beschränkt ist, sondern auch in jedem System auftritt, das eine gleitende Fensterflusssteuerung durchführt.
  • EP-0 454 364 A2 zeigt ein Hochgeschwindigkeitstransportprotokoll mit zwei Fenstern. Das Protokoll schließt zwei Fenster zum Steuern des Informationsvolumens ein, wobei das erste Fenster Netzwerkfenster genannt wird und verwendet wird, um die Daten in dem Netzwerk zu begrenzen, so dass Netzwerkpufferressourcen ökonomisch bemessen werden können und schon auf eine derartige Weise, dass kein außerordentlicher Verlust der Anzahl von über das Netzwerk übermittelte Pakete auftritt, wobei das zweite Fenster als das Empfängerflusssteuerungsfenster bezeichnet wird und typischerweise größer als das erste Fenster ist. Das zweite Fenster wird verwendet, um sicherzustellen, dass Pakete nicht unterdrückt werden oder an dem Empfänger verloren gehen. Dieses Dokument erwähnt, dass typischerweise das erste Fenster auf einen Wert des sogenannten Bandbreiteverzögerungsprodukts gesetzt wird, was definiert ist als das Produkt der Round-Trip-Verzögerung und der Bandbreite des Netzwerks, das den Übermittler und den Empfänger verbindet. Der Begriff "Bandbreiteverzögerungsprodukt" ist synonym für den Umfang unbestätigter Daten.
  • Aus EP-0 693 840 A1 ist ein System bekannt, das eine Hop-By-Hop-Flusssteuerung verwendet, wobei eine Quellenendstation regelmäßig eine Steuerungszelle über die eingerichtete Verbindung an eine Bestimmungsendstation sendet, wobei die Steuerungszelle ein aufgestempeltes Ratenfeld aufweist, das eine diskrete Übermittlungsrate anzeigt. In einem periodischen Aktualisierungsprozess berechnet jede der Vermittlungen entlang der Verbindung zwischen der Quellenendstation und der Bestimmungsendstation eine verfügbare Bandbreite für die Verbindung. Der Wert in dem aufgestempelten Ratenfeld in jeder Steuerungszelle wird mit der laufenden verfügbaren Bandbreitenzuweisung verglichen, und die laufende verfügbare Bandbreitenzuweisung in einer gegebenen Vermittlung wird in das aufgestempelte Ratenfeld geschrieben, wenn sie kleiner als der in dem Feld vorliegende Wert ist. Dann läuft ein Steuerungszellenrückkehrprozess und in der Quellenendstation triggert die zurückgekehrte Steuerungszelle ein Aktualisieren der erlaubten Übermittlungsrate derart, dass die erlaubte Übermittlungsrate gleich einer der Diskretübermittlungsraten ist. Daher beschreibt dieses Dokument ein Verfahren einer Ratensteuerung.
  • Aus dem Artikel "Protocol Mechanisms for Reliable Transmission and Flow Control on Multimedia Highways" von Miloucheva, I. et al., in Proceedings der 1996 IEEE Fifteenth Annual International Phoenix Conference on Computers and Communications, Scottsdale, 27.–29. März 1996, Conf. Nr. 15, 27. März 1996, Seiten 239–245 (XP000594795), werden gewisse Routinen und Techniken, wie langsamer Start und Stauvermeidung in TCP beschrieben.
  • [Aufgabe der Erfindung]
  • Es ist Aufgabe der Erfindung, die oben erwähnten Probleme zu überwinden und ein verbessertes Verfahren und Vorrichtung für eine Flusssteuerung bereitzustellen.
  • [Zusammenfassung der Erfindung]
  • Diese Aufgabe wird durch das in den unabhängigen Ansprüchen beschriebene Verfahren und Vorrichtung beschrieben. Vorteilhafte Ausführungsformen werden in den unabhängigen Ansprüchen beschrieben.
  • Gemäß der vorliegenden Erfindung verwendet eine Flusssteuerung in einer Verbindung, über die ein Datenumfang gesendet werden muss, direkt Information auf der Verbindung, nämlich einen oder mehrere Bandbreitewerte, die zu die Verbindung bildenden Links bzw. Verknüpfungen gehören. Auf diese Weise kann eine Flusssteuerung direkt auf die Situation in dem Netzwerk angepasst werden.
  • Vorzugsweise wird der Bandbreitewert oder Werte nicht nur einmal bestimmt, sondern werden einige Male während des Sendens der Daten derart bestimmt, dass der Bandbreitewert oder -werte aktualisiert werden und die Flusssteuerung dynamisch an die Situation entlang der Verbindung angepasst wird.
  • Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung, wird in einem System, in dem eine gleitende Fenstersteuerung verwendet wird, eine Fenstergröße in Abhängigkeit von den Bandbreiten berechnet und die Fenstergröße in dem Vorgang zum Bestimmen eines Steuerungsfensters in der gleitenden Fenstersteuerung verwendet.
  • Verwenden der Fenstergröße in dem Vorgang zum Bestimmen eines Steuerungsfensters bedeutet, dass z.B. das Fenster direkt als eine Größe des Steuerungsfensters verwendet wird oder mit anderen verfügbaren Fenstergrößenwerten verglichen wird (z.B. eine Staufenstergröße und eine angebotene Fenstergröße, bekannt aus TCP) und die Steuerungsfenstergröße aus diesem Vergleich bestimmt wird, z.B. das kleinste der verfügbaren Fenstergrößen ausgewählt wird.
  • Die Grundauswirkung eines Definierens eines Fensters in der oben beschriebenen Weise ist, dass dieses neue, auch als das Flaschenhalsfenster bezeichnete Fenster in Betracht zieht, dass einer der Links in der Verbindung in der Lage ist, der Flaschenhals für eine Paketübermittlung zu sein und dass ein in Betrachtziehen des Flaschenhalsfensters während der gleitenden Fensterflusssteuerung einen Stau auf einem der Links minimieren kann, deren Bandbreite für die Bestimmung des Flaschenhalsfensters in Betracht gezogen wurde.
  • Gemäß einer anderen bevorzugten Ausführungsform wird das Flaschenhalsfenster durch Erhalten eines entsprechenden Bandbreitewerts für jeden der in Betracht gezogenen Links erhalten, der das Minimum der Mehrzahl von Bandbreitewerten bestimmt und einen Zeitwert bestimmt, der den Zeitumfang charakterisiert, der zwischen dem Senden eines gegebenen Bytes und dem Empfangen einer Bestätigung vergeht, dass das gegebene Byte an dem anderen Ende der Verbindung empfangen worden ist, und Berechnen des Produkts des Zeitwertes und des Minimumbandbreitewertes als das Flaschenhalsfenster.
  • Vorzugsweise ist der Zeitwert der Round-Trip-Zeitwert für die gegebene Paketübermittlungsverbindung in die Richtung, in die die Pakete gesendet werden müssen.
  • Gemäß einer anderen bevorzugten Ausführungsform ist der zu einer Verbindung gehörige Bandbreitewerte die physikalische Bandbreite des Links, d.h., der gesamte Datenumfang, der durch den Link zu einem gegebenen Zeitpunkt gesendet werden kann. Gemäß einer anderen bevorzugten Ausführungsform ist der zu einem Link gehörende Bandbreitewert der tatsächliche Bandbreitewert, der in der Paketvermittlungsverbindung in diesem Link verfügbar ist. Die letztere Ausführungsform zieht in Betracht, dass mehr als eine Verbindung durch einen Link laufen kann.
  • Gemäß einer weiteren bevorzugten Ausführungsform wird nur ein Bandbreitewert in Betracht gezogen, nämlich der verfügbare Bandbreitewert des Zugriffs-Links. Der Zugriffs-Link ist der Link zwischen der Vorrichtung an dem Ende der Paketvermittlungsverbindung und dem nächsten Router entlang der Paketvermittlungsverbindung. Diese Ausführungsform führt zu dem Flaschenhals-Link, der durch die Basis der Bandbreite den Zugriffs-Links definiert, so dass die Staumöglichkeit auf dem Zugriffs-Link vermindert werden kann. Der gemessene Zugriffs-Link kann entweder der der Vorrichtung sein, die als ein Sender in der Verbindung agiert oder der der Vorrichtung sein, die als ein Empfänger agiert.
  • Vorzugsweise ist diese Ausführungsform derart ausgelegt, dass die Bandbreite des Zugriffslinks durch den Bestandteil bereitgestellt wird, der die Link-Schicht durch den Zugriffs-Link steuert. Als Beispiel, wenn die Vorrichtung an dem Ende der Paketvermittlungsverbindung ein Personal Computer ist und der Zugriffs-Link ein Modem-Link an den Internet-Provider ist, dann wird die Link-Schicht durch ein geeignetes Link-Protokoll eingerichtet, wie SLIP (Serial Line Internet Protocol), PPP (Point-to-Point Protocol) oder RLP (in Verbindung mit GSM verwendetes Radio Link Protocol) und der die Link-Schicht steuernde Bestandteil ist der Treiber, der die Vermittlung zwischen dem Personal Computer und dem Modem verwaltet. Als ein anderes Beispiel kann der Zugriffs-Link ein digitaler Telefon-Link, wie eine ISDN-Leitung oder eine Verbindung in einem digitalen zellularen Telefonnetzwerk sein, wobei der Treiber dann nicht ein Modem steuert, sondern eine geeignete Anpassungseinheit, wie eine ISDN-Anpassungskarte.
  • Diese letzte Ausführungsform hat den Vorteil, dass sie leicht implementiert wird, da sie in irgendwelche Teile eines Paketvermittlungsnetzwerkes implementiert werden kann, ohne das Netzwerk oder die das Netzwerk verwaltenden Protokolle verändern zu müssen, und ist besonders effektiv, wenn der Zugriffs-Link einen Funkübermittlungsteil enthält, wie einen Zugriffs-Link über ein zellulares Telefon, weil in einem derartigen Fall der Zugriffs-Link typischerweise der Flaschenhals-Link sein wird, d.h., der Link unter all den Links bildet die Paketvermittlungsverbindung, die den Sender mit der niedrigsten Bandbreite versorgt. Mit anderen Worten, kann in diesem Fall das Auftreten eines Staus in der gesamten Paketvermittlungsverbindung vollständig vermieden werden, wenn ein Stau in dem Zugriffs-Link vermieden wird, was die vorliegende Erfindung in der obigen Ausführungsform sicherstellen kann.
  • Gemäß einem anderen bevorzugten Ausführungsbeispiel sind zwei Bandbreitewerte bestimmt, nämlich diese des Zugriffs-Links des Senders bzw. des Empfängers. Auf diese Weise kann das Auftreten eines Staus in diesen Links vermindert werden.
  • Die vorliegende Erfindung stellt eine einfache, effektive und flexible Lösung des oben erwähnten Problems einer Stauvermeidung bereit und kann in jedem Kommunikationssystem angewendet werden. Sie kann besonders in Systemen angewendet werden, die eine gleitende Fensterflusssteuerung verwenden. Wie schon erwähnt, kann die Flusssteuerung durch Verwenden allein des Flaschenhalsfensters durchgeführt werden oder durch Kombinieren der Verwendung des Flaschenhalsfensters mit bekannten Fenstern für das gegebene System. Wenn zum Beispiel die Erfindung auf TCP angewendet wird, könnte dieses Protokoll derart verändert werden, dass eine Flusssteuerung nur mit dem Flaschenhalsfenster durchgeführt wird, oder die Verwendung des Flaschenhalsfensters kann zu der Verwendung des bekannten Fensters hinzugefügt werden, d.h., das Staufenster und das angebotene Fenster, z.B. durch Bestimmen des Steuerungsfensters als das Minimum des angebotenen Fensters, des Staufensters und des Flaschenhaltfensters.
  • In dem letzteren Fall, d.h., wenn die Erfindung durch Hinzufügen des Flaschenhalsfensters zu einem bestehenden Fenster oder Fenstern hinzugefügt wird und dann das Steuerungsfenster aus diesen Fenstern ausgewählt wird, stellt die Erfindung den ergänzenden Vorteil bereit, dass das herkömmliche Übermittlungsprotokoll (z.B. TCP) nicht verändert werden müsste und die Erfindung würde noch effektiv sein, auch wenn sie nur an einem Ende einer Verbindung implementiert ist. Mit anderen Worten, in diesem letzteren Fall könnte die Kompatibilität mit bestehenden Implementierungen des Standardübermittlungsprotokolls beibehalten werden, während noch der Gewinn einer verbesserten Leistung erhalten wird.
  • Durch Definieren eines neuen Fensters, das in der gleitenden Fensterflusssteuerung verwendet wird, nämlich des Flaschenhalsfensters, unterscheidet sich eine bevorzugte Ausführungsform der vorliegenden Erfindung von dem im Stande der Technik dargelegten Konzept, in dem die bestehenden Fenster (angebotene Fenster, Staufenster) zusammen mit neuen Algorithmen verwendet werden, z.B. dem oben beschriebenen Stauvermeidungsalgorithmus. Im Gegensatz hierzu erreicht die vorliegende Erfindung durch Definieren des Flaschenhalsfensters, dass eine lokale Information der Bandbreite von individuellen Links unter den die Paketvermittlungsverbindung bildenden Links in Betracht zieht, ein einfaches und hochflexibles Verfahren, bei dem die Verwendung dieses Flaschenhalsfensters, sei es alleine oder in Verbindung mit anderen bekannten Fenstern, eine effektivere Stauvermeidung als die bekannten Lösungen erreicht.
  • Diese und andere Vorteile werden deutlicher aus der folgenden Beschreibung der bevorzugten Ausführungsformen der Erfindung, die in Verbindung mit den anhängenden Zeichnungen beschrieben werden, in denen:
  • 1 ein Flussdiagramm zeigt, das eine Basisausführungsform der vorliegenden Erfindung darstellt;
  • 2 ein Beispiel eines Satzes von zu übermittelnden Datenabschnitten zeigt;
  • 3 ein Beispiel einer Paketvermittlung gemäß TCP zum Übermitteln der in 2 gezeigten Abschnitte zeigt;
  • 4 die Bewegung und Einstellung des Steuerungsfensters während der Flusssteuerung der in 3 gezeigten Kommunikation erklärt;
  • 5 eine schematische Darstellung ist, die das Prinzip einer gleitenden Fensterflusssteuerung zeigt;
  • 6 eine schematische Darstellung ist, wie sich die Ränder des Steuerungsfensters bewegen;
  • 7 eine schematische Wiedergabe ist, um einen Stau an einem Link entlang des Kommunikationspfad zu erklären; und
  • 8 ein Flussdiagramm zeigt, das eine bevorzugte Ausführungsform zum Bestimmen des Flaschenhalsfensters darstellt.
  • [Detaillierte Beschreibung der Erfindung]
  • Die meisten der unten gegebenen Beispiele werden in Verbindung mit einer Kommunikation gemäß TCP erklärt. Da die vorliegende Erfindung mit den bekannten Elementen einer Flusssteuerung gemäß TCP kombiniert werden kann, bildet die vorhergehende Beschreibung ein Teil der Offenbarung der Erfindung. Es sollte jedoch bemerkt werden, dass die vorliegende Erfindung nicht auf die Anwendung von TCP beschränkt ist, sondern auch auf jedes andere Kommunikationssystem angewendet werden kann, das eine gleitende Fensterflusssteuerung verwendet.
  • Eine Verbindung zwischen zwei Kommunikationspartnern in einem Paketvermittlungsnetzwerk, wie das Internet, besteht typischerweise aus einer Anzahl von individuellen Links, wobei die Links durch Router verbunden sind. Zum Beispiel kann ein Personal Computer mit einem Server über ein schnelles LAN verbunden sein, der Server mit anderen Teilen des Internets (auch bezeichnet als Internetprotokoll-Peer oder IP-Peer) über ein langsames LAN, und diese anderen Teile des Internets mit dem Empfänger, wieder über ein schnelles LAN. Das LAN und WAN stellt Links dar, wohingegen die Server die Router sind, d.h., die Vorrichtungen, die die Pakete in Richtung ihrer Bestimmung gemäß der in den Paketen enthaltenen Routing-Information routen. Diese Situation entspricht dem, was schematisch in 7 gezeigt ist, wobei das erste LAN Link 300 ist, der erste Server Router R1, der WAN Link 301, der andere Internetteilnehmer Router R2, und der zweite LAN Link 302. Ein anderes Beispiel ist ein Personal Computer, der mit einem Internet-Server über einen langsamen Modem-Link verbunden ist, wobei der Server mit einem anderen IP-Peer über einen festgelegten Satelliten-Link verbunden ist, und dieser IP-Peer mit dem Empfänger wiederum über einen langsamen Modem-Link verbunden ist.
  • 1 stellt eine Basisausführungsform des Verfahrens einer Flusssteuerung gemäß der vorliegenden Erfindung dar. Der Datenfluss in einer Paketvermittlungsverbindung zwischen zwei Kommunikationspartnern wird gesteuert, wobei die Verbindung aus einer Mehrzahl von durch Router verbundenen Links besteht. Ein Beispiel ist eine TCP/IP-Verbindung über das Internet. In der Verbindung ist der Partner, der Daten zu senden hat, der Sender, und der andere Partner ist der Empfänger. In einem ersten Schritt ST10 wird die Sequenz von zu sendenden Daten (z.B. eine E-Mail) für den Sender bestimmt. Das bedeutet, dass eine Sequenz von Dateneinheiten (z.B. Bytes) von zu sendenden Daten bestimmt wird.
  • In einem weiteren Schritt ST20 werden Bandbreitewerte, die zu wenigstens einem dieser Links in der Verbindung über die Daten zu senden sind, automatisch bestimmt. Das kann auf viele verschiedene Weise erfolgen. Zum Beispiel können ein oder beide Partner in der Verbindung Bandbreitewerte von einem oder mehreren Links in der Verbindung in die Richtung, in die Daten zu senden sind, überwachen, d.h., in der Richtung vom Sender zum Empfänger. Eine Möglichkeit ist, die Router entlang der Verbindung diese Bandbreitenwerte Pakete zufügen zu lassen, die zu dem Empfänger gesendet werden oder bevorzugter Bestätigungspakete, die zu dem Sender zurückgegeben werden. Eine andere Möglichkeit ist, den Link-Schichttreiber in einem oder beiden der Partner zum Überwachen des Bandbreitewerts des Zugriffs-Links des Partners anzupassen. Der Zugriffs-Link ist der Link, der die Partner mit dem nächsten Router in Verbindung mit dem andern Partner verbindet. Der zu einem Link gehörige Bandbreitewert kann jeder Wert sein, der anzeigt, wieviele Daten pro Zeiteinheit dieser Link tragen kann. Dies kann zum Beispiel der physikalische Bandbreitewert des Links sein, d.h., die gesamte Bandbreite des Links, oder bevorzugter kann dies die momentan für die Verbindung auf diesem Link verfügbare Bandbreite sein.
  • Schließlich wird der Fluss der Datensequenz durch Verwenden der Bandbreitewerte gesteuert. Das bedeutet, dass der Datenfluss von dem Sender durch automatisches in Betrachtziehen des einen oder mehreren Bandbreitewertes gesteuert wird, so dass ein Stau minimiert werden kann. Das kann z.B. in einem System getan werden, das eine gleitende fensterbasierte Flusssteuerung durch Bestimmen eines Fensterwertes aus dem einen oder mehreren Bandbreitewerten durchführt, und dann den Fensterwert als das Steuerungsfenster verwendet, oder das Steuerungsfenster aus einer Gruppe auswählt, die unter anderem den Fensterwert enthält. Auf diese Weise erhält die vorliegende Erfindung ein System, in dem der Datenfluss in automatischer Abhängigkeit von Parametern, die direkt die Verbindung charakterisieren, gesteuert wird.
  • Es sollte bemerkt werden, dass die Hardware zum Steuern des Flusses durch jede geeignete oder gewünschte Weise bereitgestellt werden kann, z.B. in einer Vorrichtung, die simultan beide Partner in der Verbindung steuert, oder bevorzugter wird die Steuerung gemäß der vorliegenden Erfindung direkt in einem oder beiden der Partner in der Verbindung verkörpert. Es ist ein wichtiger Vorteil der vorliegenden Erfindung, dass sie gemäß einer bevorzugten Ausführungsform in nur einem Partner einer Verbindung implementiert werde kann und nichtsdestotrotz eine verbesserte Flusssteuerung für die gesamte Verbindung erreicht.
  • 8 zeigt ein Flussdiagramm einer bevorzugten Ausführungsform des Verfahrens der vorliegenden Erfindung. In einem ersten Schritt ST1 werde ein oder mehrere Bandbreitewerte, die zu den Links entlang der Verbindung gehören, bestimmt. Eine Bandbreite wird definiert als der Umfang von Daten pro Zeiteinheit, z.B. Bits pro Sekunde. Es sollte bemerkt werden, dass die Links in der Verbindung diese sind, die einen Pfad zwischen Sender und Empfänger in der Richtung einrichten, in die die Pakete gesendet werden müssen, oder gesendet werden. Dies folgt aus der Tatsache, dass der Pfad oder Verbindung entlang der Pakete von dem Sender zu dem Empfänger gesendet werden, nicht notwendiger Weise identisch ist mit dem Pfad, entlang dem Pakete von dem Empfänger zu dem Sender gesendet werden.
  • Der Mechanismus zum Bestimmen, welche Bandbreite zu einem gegebenen Link gehört, ist nicht wesentlich für die Erfindung und kann auf jede geeignete Weise ausgewählt werden. Gemäß einer bevorzugten Ausführungsform der Erfindung ist der zu einem gegebenen Link zugehörige Wert die Bandbreite der physikalischen Verbindung entsprechend dem Link. Als Beispiel, wenn der Link durch ein Modem mit einer Übermittlungsgeschwindigkeit von 28800 Bits pro Sekunde gebildet wird, ist die zugehörige Bandbreite 28800 Bits pro Sekunde. Es muss bemerkt werden, dass die physikalische Bandbreite entweder die absolute Maximumbandbreite sein kann, die ein spezifischer Link anbieten kann, wobei in diesem Fall der Wert für einen gegebenen Link konstant ist, oder die Maximumbandbreite unter den vorherrschenden Bedingungen. Diese Unterscheidung ist wichtig, wenn ein Link durch eine Funkkommunikation gegeben wird, wobei in diesem Fall das absolute Maximum der Wert unter idealen Funkbedingungen ist, und das vorherrschende Maximum der durch die momentanen Bedingungen erlaubte Wert ist.
  • Es sollte bemerkt werden, dass diese so definierte physikalische Link-Bandbreite unabhängig davon ist, wie viel Bandbreite tatsächlich für die in Betracht gezogene Verbindung verfügbar ist. Wie im Stand der Technik gut bekannt ist, kann ein gegebener Link mehr als eine Verbindung tragen, wobei ein Teilen der gesamten (d.h., physikalischen) Bandbreite für jede Verbindung verfügbar ist. Folglicherweise ist gemäß einer anderen bevorzugten Ausführungsform der Erfindung der mit einem gegebenen Link verbundene Bandbreitewert die derzeitig für die Verbindung für den Link verfügbare Bandbreite.
  • In der Ausführungsform, in der die zu einem Link gehörige Bandbreite die derzeitig verfügbare Bandbreite ist, ist eine Möglichkeit zum Bestimmen dieses Wertes die Modifikation des Basisprotokolls, dem die Paketübermittlung unterliegt (z.B. IP im Fall einer Paketvermittlung über das Internet) derart, dass jeder Link in einer Verbindung diese Information zu den übertragenen Paketen hinzufügt, sei es zu den Datenpaketen, die zu dem Empfänger gesendet werden oder zu den entsprechenden Bestätigungspaketen, die durch den Empfänger an den Sender gesendet werden. Jedoch kann im Sinne der vorliegenden Erfindung jedes geeignete Verfahren zum Bestimmen des derzeitig verfügbaren Bandbreitewertes verwendet werden, da die Erfindung nicht davon abhängt.
  • In der Ausführungsform, in der die physikalische Link-Bandbreite als die zugehörige Bandbreite verwendet wird, ist eine Möglichkeit zum Bestimmen dieser Werte wiederum die Modifikation des unterliegenden Netzwerkschichtübermittlungsprotokolls, derart, dass die Links diese Information an den Sender oder Empfänger (wieder z.B. IP) bereitstellen. Es ist jedoch auch möglich, das Verfahren der vorliegenden Erfindung ohne Modifizieren des unterliegenden Übermittlungsprotokolls zu verwenden. Eine Möglichkeit ist, dass die relevante Bandbreiteinformation nicht durch Modifizieren des Basisübermittlungsprotokolls (z.B. TCP), sondern durch Verwenden eines geeigneten modifizierten Link-Schichtprotokolls (z.B. SLIP, PPP oder RLP) bereitgestellt wird, oder bevorzugter, nur ein modifizierter Treiber für ein derartiges Link-Schichtprotokoll. Wenn nur der Treiber des Link-Schichtprotokolls modifiziert wird, stellt die vorliegende Erfindung den Vorteil bereit, dass keines der involvierten Protokolle verändert werden muss, so dass absolut keine Kompatibilitätsprobleme mit eingerichteten Systemen auftreten, und die Erfindung kann in jeden Teil eines Netzwerks eingeführt werden, ohne irgendetwas in dem Rest des Netzwerks verändern zu müssen.
  • Ein Link-Schichtprotokoll verbreitet die Kommunikation zwischen zwei Partnern in der Kommunikation über einen spezifischen Link, wobei der Link einen Teil der Verbindung bildet. Ein typisches Beispiel ist ein Zugreifen auf das Internet von einem Personal Computer über einen Modem-Link auf einen Server. Die Kommunikation zwischen dem Personal Computer und dem Server, der als ein Router agiert, wird dann gemäß einem spezifischen Protokoll für derartige Links durchgeführt, z.B. SLIP (Serial Line Internet Protocol) oder PPP (Point to Point Protocol). Diese Protokolle schließen die niedrigeren Schicht-Pakete ein, d.h., die TCP/IP-Pakete. Diese Protokolle und Einschließungen sind im Stand der Technik wohlbekannt und werden z.B. in dem oben erwähnten Buch von W. R. Stevens, TCP/IP Illustrated, beschrieben. Die Details müssen daher hier nicht wiederholt werden.
  • Der zum Betreiben der Kommunikation gemäß dem Link-Protokoll verwendete Treiber könnte dann die Information auf der physikalischen Bandbreite des entsprechenden Links bereitstellen.
  • Der Vorteil zum Implementieren der vorliegenden Erfindung durch Verwenden der physikalischen Bandbreite ohne Modifizieren des basisübermittlungsunterliegenden Protokolls (z.B. TCP/IP) hat den Vorteil, dass die Erfindung in bestehende Systeme und ohne Kompatibilitätsprobleme integriert werden kann, während der Vorteil einer erhöhten Leistung erhalten werden kann. Weiterhin kann die Erfindung in nur einem Partner der Kommunikation implementiert werden und noch effektiv sein. Das bedeutet, dass die vorliegende Erfindung im allgemeinen in jedem System anwendbar ist, das eine gleitende Fensterflusssteuerung verwendet, ohne das unterliegende Übermittlungsprotokoll dieses Systems verändern zu müssen. Dies ist ein großer Vorteil gegenüber dem Stand der Technik, da alle bekannten Lösungen Modifikationen von beiden Kommunikationspartnern oder die Installation von einem Transportschichtstatus in dem Netzwerk erfordern.
  • Zurückkehrend nun zu der Beschreibung von 8, repräsentieren die in Schritt ST1 bestimmten Bandbreitewerte den Datenumfang pro Zeiteinheit, die die dazugehörigen Links handhaben können.
  • In dem nächsten Schritt ST2 wird das Minimum der in Schritt ST1 bestimmten Bandbreitewerte bestimmt. Wenn nur ein Wert bestimmt wurde, ist natürlich dieser Wert das Minimum. Es jedoch zu bevorzugen, das mehr als ein Bandbreitenwert in Schritt ST1 bestimmt wird, so dass der in Schritt ST2 gewählte Minimumwert die Bandbreite des Links darstellt, der die niedrigste Übermittlungsgeschwindigkeit unter den in Schritt ST1 Betracht gezogenen Links aufweist. Obwohl es zu bevorzugen ist, dass all diese die Verbindung bildenden Links in Betracht gezogen werden, ist dies nicht unbedingt notwendig, wie im folgenden erklärt wird.
  • In dem nächsten Schritt ST3 wird ein Zeitwert, der die Verzögerung entlang der Paketvermittlung in der Senderichtung charakterisiert, bestimmt (d.h., die Richtung vom Sender zum Empfänger). Dieser charakteristische Zeitwert wird im allgemeinen mit der sogenannten Roundtrip-Zeit (RTT) der Verbindung zugeordnet. Die RTT ist in eine gegebene Richtung definiert als die Zeit, die zwischen dem Senden eines Bytes in diese Richtung und dem Empfang der direkten Bestätigung dieses Bytes vergeht. Wenn man die in Fig. gezeigte Vermittlung von Paketen als Beispiel nimmt, ist die RTT die Zeit, die zwischen dem Senden von Abschnitt S1 durch den Sender und dem Empfang der Bestätigung in Abschnitt S2 vergeht. Mit anderen Worten, die RTT ist der Unterschied zwischen der Empfangszeit einer Antwort auf eine Nachricht und dem Senden der Nachricht, oder genauer, die Zeit zwischen Senden eines Bytes mit einer besonderen Sequenznummer und Empfangen einer Bestätigung, die diese Sequenznummer einschließt.
  • Es sollte bemerkt werden, dass in der vorliegenden Erfindung der oben erwähnte charakteristische Zeitwert als ein Wert verstanden werden muss, der die Verzögerungszeit entlang der Paketvermittlungsverbindung anzeigt, d.h., die oben erwähnte Zeitdifferenz zwischen einem Aussenden eines Pakets und Empfangen der entsprechenden Bestätigung. Daher ist die RTT oder jeder von der RTT abgeleitete Wert geeignet als der charakteristische Zeitwert.
  • Die Bestimmung der RTT kann in jeder geeigneten Weise durchgeführt werden. Eine besondere Möglichkeit ist aus Kapitel 21.3 des oben erwähnten Buchs von W.R Stevens, TCP/IP Illustrated, bekannt. Dieses darin offenbarte Verfahren ist nicht auf TCP begrenzt, sondern kann geeigneter Weise auf jedes System angewendet werden, das eine gleitende Fenstersteuerung für eine Paketübermittlung verwendet. Ein alternatives Verfahren ist z.B. bekannt aus dem Network Working Group Internet-Draft von V. Jacobson, R. Braden, D. Borman, Februar 1997.
  • In einem einfachsten Fall kann der charakteristische Zeitwert einfach direkt bestimmt werden als die momentane RTT durch Überwachen der Zwischenzeit zwischen dem Aussenden eines Abschnitts mit einer spezifischen Sequenznummer und dem Empfang des eine Bestätigung des Empfangs von diesem Abschnitt enthaltenden Pakets an dem anderen Ende, z.B. durch einen geeigneten Uhrschaltkreis, der zu laufen beginnt, wenn ein Abschnitt ausgesendet wird, und einen Wert ausgibt, der die vergangene Zeit anzeigt, wenn das entsprechende Bestätigungspaket empfangen wird. Dieser Ausgabewert wird als die momentane RTT gespeichert. Eine derartige Bestimmung ist vollständig geeignet in einem Steuerungsprotokoll, das jedes individuelle Paket oder Abschnitt individuell bestätigt, d.h., eine Eins-zu-Eins-Entsprechung von Datenabschnitten und Bestätigungsnachrichten aufweist.
  • Jedoch können in Protokollen auch kumulative Bestätigungsnachrichten gesendet werden, wie im Fall von TCP (siehe z.B. S1 in 3, der den Empfang von bis zu 2049 Bytes bestätigt, d.h., die ersten beiden Datenabschnitte S4 und S5) ist es zu bevorzugen, den charakteristischen Zeitwert aus Schritt ST3 als eine geglättete Menge abhängig von der RTT zu bestimmen. In diesem Fall wird die momentane RTT wie oben gezeigt gemessen, d.h., die Verzögerungszeit zwischen dem Aussenden eines eine spezifische Frequenznummer aufweisenden Abschnitts und den Empfang einer die Sequenzzahl einschließenden Bestätigung (die auch andere Sequenznummern einschließen kann). Dieser Zeitwert wird bezeichnet mit M. Dann wird ein als R bezeichneter Abschätzer durch Verwenden eines Tiefpassfilters wie folgt aktualisiert R ← αR + (1 – α)M,wobei α ein Glättungsfaktor ist, der in TCP einen empfohlenen Wert von 0,9 aufweist. Der momentane Werte von R kann dann als der charakteristische Zeitwert in Schritt ST3 verwendet werden.
  • Ebenso bevorzugter wird der charakteristische Zeitwert gemessen durch Mittelung des Messwertes M. Dies wird durch Berechnen des Fehlerwertes Err und Aktualisieren eines Mittelwertes A bei jeder Messung von M in der folgenden Weise durchgeführt: Err = M – A, A ← A + gErr,wobei g ein Verstärkungswert zum Bestimmen des Mittelwertes ist. Ein typischer Wert von g ist 0,125. Der momentane Wert von A kann dann als der charakteristische Zeitwert in Schritt ST3 verwendet werden.
  • Schließlich wird in Schritt ST4 das Produkt des in Schritt ST2 bestimmten Minimumbandbreitenwertes und des in Schritt ST3 bestimmten charakteristischen Zeitwertes berechnet und dieses Produkt wird definiert als das Flaschenhalsfenster. Gemäß der vorliegenden Erfindung kann dieses Flaschenhalsfenster dann in der gleitenden Fensterflusssteuerung verwendet werden. Die genaue Verwendung ist nicht wesentlich für die Erfindung, d.h., die Bedingungen oder Erfordernisse gemäß denen das Flaschenhalsfenster als das Steuerungsfenster in einer gleitenden Fensterflusssteuerung verwendet wird, wie in Verbindung mit 5 und 6 beschrieben.
  • Gemäß einer Ausführungsform, wird das Flaschenhalsfenster konstant als das Steuerungsfenster verwendet, d.h., die ganze Flusssteuerung wird auf der Basis des Flaschenhalsfensters ausgeführt. Gemäß einer anderen Ausführungsform wird das Flaschenhalsfenster zusammen mit dem bekannten angebotenen Fenster verwendet, wobei das Steuerungsfenster als das Minimum des Flaschenhalsfensters und des angebotenen Fensters ausgewählt wird. Gemäß einer anderen Ausführungsform wird das Flaschenhalsfenster zusammen mit dem bekannten angebotenen Fenster und dem bekannten Staufenster verwendet, wobei das Steuerungsfenster als das Minimum des angebotenen Stau- und Flaschenhalsfensters ausgewählt wird.
  • Gemäß einer einfachsten Ausführungsform wird der Wert des Flaschenhalsfensters nur einmal automatisch vor Einrichten des Sendens der nummerierten Datensequenz berechnet (wie z.B. in 2 gezeigt). Jedoch wird gemäß einer bevorzugten Ausführungsform der Wert des Flaschenhalsfensters einige Male während des Sendens der Abschnitte derart bestimmt, dass der Flaschenhals immer aktualisiert wird und korrekt den momentanen Übermittlungsstatus der Paketvermittlungsverbindung reflektiert. Diese Messung und Aktualisierung des Flaschenhalsfensters kann zu jeder Zeit erfolgen, in der weitere Abschnitte gesendet werden müssen, oder periodisch zu einer gegebenen Zeitdauer, oder konstant, d.h., die Vorrichtung, in der das Verfahren der vorliegenden Erfindung implementiert ist, geht zyklisch durch den Vorgang zum Bestimmen des Flaschenhalsfensters mit der schnellsten möglichen Rate, das bedeutet, dass das Bestimmen eines neuen Flaschenhalsfensters jedes Mal initiiert wird, wenn ein Zyklus zum Bestimmen des Flaschenhalsfensters abgeschlossen ist.
  • Wenn das Flaschenhalsfenster dynamisch an die oben beschriebene Weise adaptiert wird, da die verschiedenen, in Schritten ST1 bis ST3 aufgezählten Parameter dazu neigen, über die Zeit variabel zu sein, da z.B. die momentanen Bandbreitewerte, die über die Verbindung verfügbar sind, sich aufgrund eines verändernden Verkehrs im Netzwerk verändern, kann der Beitrag des Senders zum Stau bezüglich der Verbindung der in Betracht gezogenen Links minimiert werden, auch wenn die Eigenschaften der Paketvermittlungsverbindung sich verändern.
  • Es sollte bemerkt werden, dass der Begriff "Stau" im allgemeinen verwendet wird, um den gesamten Stau in einem Link zu bezeichnen, d.h., der durch den gesamten Verkehr verursachte Stau (aller Verbindungen), der durch den Link geht. Es ist verständlich, dass die vorliegende Erfindung nur direkt den Teil des gesamten Staus beeinflussen kann, der durch den Sender in der in Betracht gezogenen Verbindung verursacht wird, d.h., der Beitrag des Senders zu dem Stau. Jedoch wird ein Minimieren dieses Beitrags natürlich auch den gesamten Stau minimieren.
  • Das durch die vorliegende Erfindung definierte Flaschenhalsfenster ist eine Einrichtung zum Minimieren eines Staus in einem spezifischen Link und in allen anderen Links, die eine größere Bandbreite als der spezifische Link aufweisen. Dies ist etwas, was der Stand der Technik nicht erreichen kann. Mit anderen Worten kann aus der obigen Beschreibung gesehen werden, dass das Flaschenhalsfenster entsprechend dem Link, zu dem die in Schritt ST3 bestimmte Minimumbandbreite gehört, definiert ist. Die Verwendung des Flaschenhalsfensters minimiert das Auftreten eines Staus in dem Link. Wie schon oben bemerkt, ist vorzuziehen, dass die in Betracht gezogenen Links in Schritt ST1 alle Links in der Verbindung sind. In diesem Fall entspricht das Flaschenhalsfenster dem Link unter denen, die die Verbindung bilden, die die absolut niedrigste Bandbreite bereitstellt. Jedoch arbeitet die Erfindung ebenso, wenn weniger Links in Schritt ST1 in Betracht gezogen werden, weil dann ein Stau wenigstens an diesen in Betracht gezogenen Links sicher minimiert werden kann, was etwas ist, das der Stand der Technik nicht garantieren kann.
  • Wenn die vorliegende Erfindung in einer Vorrichtung, die ein Partner in einer Paketvermittlungsverbindung mit einer gleitenden Fensterflusssteuerung ist, in die Praxis umgesetzt wird, wenn die Vorrichtung der Sender ist, dann bestimmt sie das Flaschenhalsfenster in der Senderichtung, wie oben beschrieben, und verwendet es geeigneter Weise für die Flusssteuerung. Wenn der Partner der Empfänger ist, dann bestimmt sie das Flaschenhalsfenster in seine Empfangsrichtung und übermittelt diese Information an den Sender. Zum Beispiel kann der Empfänger in einer TCP-Verbindung, in der nur der Empfänger gemäß der vorliegenden Erfindung arbeitet, das Flaschenhalsfenster in seine Empfangsrichtung bestimmen, und dann das Minimum eines Flaschenhalsfensters und dem Fenster anbieten, das er gemäß dem Standard-TCP als das angebotene Fenster an den TCP-Sender anbietet (z.B. die Eingabepuffergrenze). Auf diese Weise arbeitet der Sender gemäß der Erfindung, obwohl er in keiner Weise modifiziert wurde. Auf diese Weise weist die vorliegende Erfindung einen großen Vorteil auf, dass sie in jedes bestehende System ohne jegliche Kompatibilitätsprobleme integriert werden kann, während der Gewinn einer verbesserten Leistung noch erhalten wird.
  • Die vorliegende Erfindung kann in einer Vorrichtung implementiert sein, die als ein Sender ausgelegt ist oder als ein Empfänger ausgelegt ist, wird jedoch typischer Weise in einer Vorrichtung implementiert, die sowohl als Sender als auch als Empfänger agieren kann, abhängig davon, ob Daten von der Vorrichtung gesendet werden oder durch die Vorrichtung empfangen werden.
  • Wenn die vorliegende Erfindung gemäß der in 8 gezeigten Ausführungsform in einer als Sender agierenden Vorrichtung, implementiert wird, kann die Steuerung derart durchgeführt werden, dass die Vorrichtung geeigneter Weise einen oder mehrere Bandbreitewerte für die Links (Schritt ST1 in 8) bestimmt und dann das Minimum (Schritt ST2) bestimmt. Jede der oben genannten Möglichkeiten in Verbindung mit Schritt ST1 und ST2 kann verwendet werden. Die Bestimmung des Verzögerungsanzeigewertes (Schritt ST3) kann auch direkt wie oben beschrieben, durchgeführt werden, z.B. durch Messen der Zeit, die zwischen dem Senden eines Bytes und dem Empfangen der dieses Byte einschließenden Bestätigung vergeht. Das Produkt des Minimumbandbreitewertes und des Verzögerungsanzeigewertes kann dann in dem Sender berechnet werden und in der Flusssteuerung als das Flaschenhalsfenster geeignet verwendet werden.
  • Wenn andererseits die vorliegende Erfindung gemäß der in 8 gezeigten Ausführungsform in einer als Receiver agierenden Vorrichtung implementiert wird, kann die Steuerung wiederum derart durchgeführt werden, dass die Vorrichtung geeigneter Weise einen oder mehrere Bandbreitewerte für die Verbindungen (Schritt ST1 in 8) bestimmen und dann das Minimum (Schritt ST2) bestimmen. Jede der oben erwähnten Möglichkeiten in Verbindung mit den Schritten ST1 und ST2 kann wieder verwendet werden. Die Bestimmung des Verzögerungsanzeigewertes in der Richtung von dem Sender zu dem Empfänger kann auf jede geeignete Weise durchgeführt werden. Eine Möglichkeit ist das Aussenden durch den Empfänger einer bestimmten Verbindungsverzögerungszeitmessnachricht an den Sender und Messen der Zeit, solange bis eine entsprechende Bestätigung zurückgekehrt ist. Das macht es notwendig, dass sowohl der Empfänger als auch der Sender in der Verbindung gemäß einem Protokoll arbeiten, das derartige Verzögerungszeitmessnachrichten unterstützt. In einer bevorzugten Ausführungsform ist ein derartiges Protokoll nicht notwendig, weil der Empfänger den Verzögerungsanzeigewert unabhängig bestimmen kann. Es wird nur angenommen, dass ein System zum Bestätigen des Empfangs von Daten zwischen dem Sender und dem Empfänger gegeben ist. Dann wird der Empfänger die RTT der Verbindung durch Messen der Differenz zwischen dem Senden der Bestätigung ACK (n) und Empfangen eines eine Byte-Nummer n+1 einschließenden Abschnitts bestimmen, wobei ACK (n) sich auf die Bestätigung für alle Bytes einschließlich und bis zu der Byte-Nummer n in der Sequenz bezieht, die durch den Sender gesendet wird. Der so bestimmte Wert kann direkt zum Berechnen des Flaschenhalsfensters verwendet werden oder eine Glättung und/oder Mittelwertbildung kann durchgeführt werden, ähnlich zu der obigen Erklärung in Verbindung mit denn Werten R und A. Das Flaschenhalsfenster kann dann an den Sender auf jede geeignete Weise bereitgestellt werden, z.B. in Form eines angebotenen Fensters, wie schon oben erklärt.
  • Gemäß einer anderen im folgenden beschriebenen Ausführungsform der Erfindung, wird die Erfindung auf eine TCP-Kommunikation angewendet, und die folgenden Definitionen werden verwendet. Es sollte bemerkt werden, dass sich TCP in dem schon erwähnten Sinn auf das Übermittlungssteuerungsprotokoll bezieht, das in dem Internet verwendet wird, in dem Sinn, dass alle vergangenen, derzeitigen und zukünftigen Variationen und Implementierungen dieses Protokolls, z.B. gemäß jedes vorherrschenden Standards, eingeschlossen sind.
  • Eine Kommunikationsvorrichtung, in der das TCP-Protokoll implementiert ist und die ein Ende einer TCP-Verbindung bildet, wird als ein "TCP-Peer" bezeichnet. Jeder TCP-Peer kann als ein TCP-Sender oder als TCP-Empfänger oder als beides gleichzeitig laufen. Ein TCP-Peer, der gemäß dieser Erfindung modifiziert wurde, wird als ein "modifizierter TCP-Peer" bezeichnet, andernfalls wird er als ein "Standard-TCP-Peer" bezeichnet. Die Begriffe "modifizierter TCP-Sender", "modifizierter TCP-Empfänger", "Standard-TCP-Sender" und "Standard-TCP-Empfänger" werden entsprechend verwendet. Ohne die Qualifizierungen "modifiziert" oder "Standard" beziehen sich die relevanten Bezeichnungen auf beide Fälle. Für Erklärungszwecke wird der Standard TCP-Peer als gemäß dem oben zitierten Buch von W. R. Stevens, TCP/IP Illustrated, Volume 1, implementiert angenommen, jedoch ist diese Ausführungsform auf jede Variation von TCP anwendbar, solang die Annahmen und in Verbindung mit dieser Ausführungsform ausgeführten Vorbedingungen zutreffen.
  • Gemäß dieser Ausführungsform ist ein modifizierter TCP-Peer eine standard-willfähige Modifikation eines Standard-TCP-Peers, d.h., ein modifizierter TCP-Peer verhält sich konform mit den derzeitigen TCP-Protokollstandards, was eine rückwärtige Kompatibilität mit bestehenden TCP-Implementierungen garantiert.
  • Der Begriff "Maximum-Link-Bandbreite" (MLB) wird die Bandbreite der physikalischen Verbindung entsprechend der Verbindung bezeichnen, die zu dem Sender auf dem Link verfügbar ist.
  • Das Minimum von allen MLBs, die durch einen modifizierten TCP-Peer für eine besondere Richtung einer TCP-Verbindung (Senden oder Empfangen) in Betracht gezogen werden, werden "MinMLB" der relevanten Richtung genannt. Es ist zu bemerken, dass die MinMLB für die Sende- oder Empfangsrichtungen eines TCP-Peers verschieden sein können, da der Pfad der Links für die Senderichtung nicht notwendiger Weise der gleiche ist, wie der Pfad der Links für die Empfangsrichtung. Weiterhin sollte bemerkt werden, dass die wie oben definierten MinMLBs nicht das Minimum aller MLBs von allen eine TCP-Verbindung in eine Richtung darstellenden Verbindungen sind. In den meisten Fällen zieht ein modifizierter TCP-Peer nicht alle MLBs in Betracht, z.B. weil es nicht notwendig ist, oder sie ihm nicht alle bekannt sind. Die MinMLBs können sich über die Zeit ändern, z.B. da der Wert eines bekannten MLBs sich verändert, oder ein neuer MLB in Betracht gezogen wird, was vorher nicht in Betracht gezogen wurde und dieser neue MLB langsamer ist als der vorhergehende MinMLB.
  • Der Begriff "Flaschenhalsfenster" für eine gegebene Richtung (Senden oder Empfangen) wird für das Produkt des laufenden MinMLBs in die Richtung und des laufenden RTTs in diese Richtung verwendet. Wie der MinMLB kann das Flaschenhalsfenster für die Sende und die Empfangsrichtung eines TCP-Peers unterschiedlich sein.
  • Gemäß der vorliegenden Erfindung ist ein modifizierter TCP-Sender darauf beschränkt nicht schneller zu senden als der derzeitige MinMLB seiner Senderichtung, und dass ein modifizierter TCP-Empfänger den entsprechenden TCP-Sender steuern wird, um ihn nicht schneller senden zu lassen, als der modifizierte laufende MinMLB des modifizierten TCP-Empfängers seiner Empfangsrichtung. Das letztere ist äquivalent dazu, dass dem entsprechenden TCP-Sender nicht erlaubt ist, schneller zu senden, als der laufende MinMLB seiner Senderichtung.
  • Nicht schneller zu senden als der MinMLB bedeutet, dass dem TCP-Sender nicht erlaubt ist, mehr ausstehende unbestätigte Pakete aufzuweisen, als durch das Flaschenhalsfenster seiner Senderichtung gegeben ist. Ein modifizierter TCP-Sender wird kontinuierlich den laufenden MinMLB und den laufenden RTT seiner Senderichtung verfolgen. Ein modifizierter TCP-Empfänger wird kontinuierlich den laufenden MinMLB und den laufenden RTT seiner Empfangsrichtung verfolgen, d.h., Verfolgen des Flaschenhalsfensters der entsprechenden Senderichtung des TCP-Senders.
  • Gemäß der vorliegenden Erfindung wird die Flusssteuerung in dem modifizierten TCP-Sender durch das Flaschenhalsfenster seiner Senderichtung ergänzt, d.h., das Flaschenhalsfenster wird zusammen mit dem angebotenen Fenster und dem Staufenster zum Bestimmen des verwendeten Steuerungsfensters verwendet.
  • Das Steuerungsfenster wird als das Minimum der drei Fenster ausgewählt, was bedeutet, dass der modifizierte TCP-Sender nicht mehr ausstehende unbestätigte Pakete aufweisen kann, als das Minimum des angebotenen Fensters, des Staufensters und des Flaschenhalsfenster seiner Senderichtung. Weiterhin bestimmt gemäß der vorliegenden Erfindung der modifizierte TCP-Empfänger das Flaschenhalsfenster seiner Empfangsrichtung und bietet dann das Minimum des Flaschenhalsfensters und des Fensters, das er gemäß dem Standard-TCP als das angebotene Fenster dem TCP-Sender anbietet, an (z.B. die Eingabepuffergrenze).
  • Wenn die Ausführungsform in einer Vorrichtung implementiert ist, die als ein Sender agiert, dann kann die Bestimmung des RTT in der Senderichtung, die zum Bestimmen des Flaschenhalsfensters verwendet wird, durch Messen des momentanen RTT durch Überwachen der Zwischenzeit zwischen dem Aussenden eines eine spezifische Sequenznummer aufweisenden Bytes und dem Empfangen der sich auf den Empfang des Bytes beziehenden Bestätigung von dem Empfänger durchgeführt werden. Dieser Wert wird als M bezeichnet. Dann wird der Fehlerwert Err berechnet und ein Mittelwert A wird bei jedem Messen von M in der folgenden Weise aktualisiert: Err = M – A, A ← A + gErr,wobei g ein Verstärkungswert zum Bestimmen des Mittelwertes ist. Ein typischer Wert von g ist 0,125. Der momentane Wert von A wird dann als der RTT-Wert verwendet, der zum Berechnen des Flaschenhalsfensters dient.
  • Wenn die Ausführungsform in einer Vorrichtung implementiert wird, die als Empfänger agiert, dann kann die Bestimmung des RTT in der Senderichtung (d.h., die Richtung von dem Sender zu dem Empfänger), die zum Bestimmen des Flaschenhalsfensters verwendet wird, durch Messen des momentanen RTT in einer modifizierten Weise ausgeführt werden.
  • Der laufende RTT-Wert, der wiederum als M bezeichnet wird, wird durch Überwachen der Zwischenzeit zwischen dem Aussenden einer Bestätigung ACK (n) durch den Empfänger bestimmt, die den Empfang aller Bytes einschließlich und bis zu einer Byte-Zahl n bestätigt, und die Bestätigung durch den Empfänger von dem TCP-Abschnitt, der eine Byte-Nummer n+1 einschließt. Der verwendete Wert von RTT wird erneut bestimmt als A in der folgenden Weise: Err = M – A, A ← A + gErr,
  • Da die Situation in der umgekehrten Richtung nicht identisch zu der Situation in der Senderichtung ist, tritt ein Problem auf, wenn der eine Byte-Nummer n einschließende Abschnitt sich an dem TCP-Sender verzögert, z.B. weil die Anwendung ihn noch nicht freigegeben hat. In diesem Fall sollte der gemessene momentane RTT M nicht verwendet werden, um den Wert A zu aktualisieren, d.h., solche Werte von M sollten übersprungen werden. Die Entscheidung zum Überspringen wird auf der Basis der zwischen Paketsankunftszeit von durch den Empfänger empfangenen TCP-Paketen durchgeführt. Mit anderen Worten misst gemäß der vorliegenden Erfindung der modifizierte Empfänger die Paketzwischenankunftszeit während der momentanen RTT und vergleicht die Ankunftszeit mit einem Schwellwert, und wenn die Ankunftszeit den Schwellwert überschreitet, dann wird der gemessene momentane Wert RTT nicht verwendet, um A in der oben erwähnten Formel zu aktualisieren.
  • Gemäß der vorliegenden Erfindung bestimmt die Vorrichtung, die gemäß der vorliegenden Erfindung läuft, sei es als Sender oder als Empfänger, den MinMLB als die Bandbreite seines Zugriffs-Links, der momentan für die Vorrichtung verfügbar ist. Nur ein MLB wird bestimmt, was automatisch gleich dem MinMLB ist. Da der Zugriffs-Link in beide Richtungen verwendet wird, d.h., Senden und Empfangen, muss keine Beschränkung zwischen Sende- und Empfangsrichtung in diesem Fall gemacht werden. Der Zugriffs-Link ist der Link, der die Vorrichtung mit dem nächsten Router entlang der Verbindung verbindet. Gemäß dieser Ausführungsform wird die verfügbare Bandbreite durch den Link-Schichttreiber geliefert. Der Link-Schichttreiber hält eine laufende Durchsatzmetrik, die die letzten aufkommenden in Betracht zieht, d.h., sie misst den Datendurchsatz (in Bytes) über Zeitintervalle und teilt die gemessenen Durchsätze durch die Länge dieser Intervalle als den Quotient des Durchsatzes und einer Intervalllänge, um dadurch kontinuierlich die Bandbreite zu messen. Dies wird kontinuierlich durchgeführt, d.h., nachdem eine Messung über ein Intervall geendet hat, wird die nächste begonnen. Eine andere Möglichkeit ist, einen offen Mittelwert über eine Spanne eines gegebenen vergangen Zeitumfangs (z.B. einige Sekunden) zu nehmen. Diese Funktion kann in den Link-Schichttreiber der Vorrichtung implementiert werden durch geeignetes Implementieren eines verwendeten Link-Schichtprotokolls, z.B. SLIP, PPP oder RLP. Verändern der Implementierung bedeutet, dass das Standardprotokoll vollständig derart erhalten wird, dass eine Kommunikation mit jeder Standardimplementierung erhalten bleibt, d.h., Kompatibilität, aber dass die oben erwähnte spezielle Funktion einer Bandbreitenbestimmung der Implementierung der Vorrichtung hinzugefügt wird, die gemäß der vorliegenden Ausführungsform der Erfindung arbeitet.
  • Konventionelle Techniken zum Verbessern von TCP-Leistung erfordern, dass die Implementierungen von beiden Endpunkten (d.h., Sender und Empfänger) von bidirektionalen Kommunikationspfaden von TCPs modifiziert werden. Folglicherweise werden alle bestehenden TCP-Implementierungen mit den Hosts, mit denen eine Kommunikation nachgesucht wird, aufgewertet. Unter der heute gegebenen weiten Streuung von Internet-Servern würde dies unpraktisch sein. Andere Annäherungen zum Verbessern einer TCP-Leistung erfordern ein Aufrechterhalten von pro TCP-Flussstatus in einem Netzwerk, was ein Nachteil von pro Fluss-Ressourcenanforderungen im Netzwert zur folge hat.
  • Die obige Ausführungsform hat den Vorteil, dass eine TCP-Leistung sowohl in der Sende-, als auch in der Empfangsrichtung durch Modifizieren nur einer Seite einer End-zu-End-TCP-Verbindung erhöht wird.

Claims (39)

  1. Verfahren zum Steuern des Flusses eines Datenumfangs von einem Sender zu einem Empfänger in einer End-zu-End-Paketvermittlungsverbindung, wobei die Verbindung aus einer Mehrzahl durch Router (R1, R2) aufeinander folgend verbundenen Verknüpfungen (300, 301, 302) besteht, umfassend: Steuern des Senders, um aus dem Datenumfang eine zu sendende Datensequenz zu bestimmen, automatisches Bestimmen eines oder mehr Bandbreitenwerte, wobei jeder Bandbreitenwert mit einer individuellen Verknüpfung in Beziehung steht und ein Bandbreitenwert, der mit einer individuellen Verknüpfung in Beziehung steht, ein Wert ist, der eine Angabe darüber macht, wie viele Daten pro Zeiteinheit die individuelle Verknüpfung tragen kann, und Steuern des Flusses der Sequenz von dem Sender zu dem Empfänger unter Verwendung des einen oder mehr Bandbreitenwerte.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der eine oder mehr Bandbreitenwerte mehr als einmal während des Sendens der Sequenz bestimmt werden.
  3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der eine oder mehr Bandbreitenwerte in regelmäßigen Zeitabständen während des Sendens der Sequenz bestimmt werden.
  4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der eine oder mehr Bandbreitenwerte kontinuierlich während des Sendens der Sequenz bestimmt werden.
  5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der eine oder mehr Bandbreitenwerte vor jedem Senden eines neuen Pakets bestimmt werden.
  6. Verfahren nach einem der Ansprüche 1 bis 5, gekennzeichnet durch Bestätigen des Empfangs von Daten in dem Empfänger durch Zurückgeben von Nachrichten an den Sender, die eine Angabe machen, bis zu welchem Punkt in der Sequenz Daten empfangen worden sind, Steuern des Sendens der Sequenz in dem Sender zu einem Zeitpunkt, derart dass unter Berücksichtigung der Sequenz nur einige oder alle der Daten innerhalb eines Datenfensters zu dem Zeitpunkt gesendet werden können, wobei das Datenfenster durch eine erste und zweite Begrenzung bezüglich der Sequenz definiert ist, und die erste Grenze in Abhängigkeit des schon gesendeten und bestätigten Datenumfangs bestimmt wird, derart dass der schon gesendete und bestätigte Datenumfang außerhalb des Fensters fällt, und die zweite Grenze durch Zufügen eines Datenfenstergrößenwertes zu der ersten Grenze bestimmt wird, und Verwenden des einen oder mehr Bandbreitenwerte in dem Prozess zum Bestimmen des Datenfenstergrößenwertes.
  7. Verfahren nach Anspruch 6, gekennzeichnet durch die Schritte: Bestimmen des einen oder mehr Bandbreitenwerte, der zu der Mehrzahl von Verknüpfungen in die Richtung gehört, in die die Sequenz zu senden ist, Bestimmen des Minimums des einen oder mehr Bandbreitenwerte, Bestimmen eines Zeitwertes, der den Zeitumfang kennzeichnet, der zwischen dem Senden eines gegebenen Bytes durch den Sender und dem Empfang einer Bestätigung vergeht, dass das gegebene Byte durch den Empfänger empfangen wurde, wobei der Zeitwert für die Verbindung in die Richtung bestimmt wird, in die die Sequenz zu senden ist, und Bestimmen des Produktes des Minimums des einen oder mehr Bandbreitenwerte und des Zeitwertes als ein verknüpfungsabhängiger Datenumfangswert, der in dem Prozess zum Bestimmen des Datenfenstergrößenwertes verwendet wird.
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass der verknüpfungsabhängige Datenumfangswert als der Datenfenstergrößenwert verwendet wird.
  9. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass der Datenfenstergrößenwert durch Auswählen des kleinsten Wertes aus einer Gruppe von Datenumfangswerten bestimmt wird, wobei der verknüpfungsabhängige Datenumfangswert innerhalb der Gruppe ist.
  10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass die Paketvermittlungsverbindung gemäß TCP eingerichtet ist, und der Datenfenstergrößenwert aus der Gruppe ausgewählt wird, die aus dem angebotenen Fenster, dem Stauungsfenster und dem verknüpfungsabhängigen Datenumfangswert besteht.
  11. Verfahren nach einem der Ansprüche 7 bis 10, dadurch gekennzeichnet, dass die Paketvermittlungsverbindung gemäß TCP eingerichtet wird und der Zeitwert als eine Funktion der Umlaufzeit für die Verbindung in die Richtung bestimmt wird, in die die Sequenz zu senden ist.
  12. Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, dass der mit einer Verknüpfung in Beziehung stehende Bandbreitenwert die physikalische Bandbreite der Verknüpfung ist.
  13. Verfahren nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, dass der mit einer Verknüpfung in Beziehung stehende Bandbreitenwert die für die Verbindung momentan verfügbare Bandbreite in der Verknüpfung ist, in der Richtung von dem Sender zu dem Empfänger.
  14. Verfahren nach einem der Ansprüche 1 bis 13, dadurch gekennzeichnet, dass die Bandbreitenwerte wenigstens einen der Bandbreitenwerte umfassen, die mit der Zugriffsverknüpfung des Senders und der Zugriffsverknüpfung des Empfängers in Beziehung stehen, wobei die Zugriffsverknüpfung des Senders die Verknüpfung ist, die den Sender mit dem nächsten Router entlang der Paketvermittlungsverbindung in die Richtung verbindet, in die die Sequenz zu senden ist, und die Zugriffsverknüpfung des Empfängers die Verknüpfung ist, die den Empfänger mit dem nächsten Router entlang der Paketvermittlungsverbindung entgegen der Richtung verbindet, in die die Sequenz zu senden ist.
  15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass der zu einer Zugriffsverknüpfung gehörende Bandbreitenwert durch den Verknüpfungsschichttreiber für die Zugriffsverknüpfung in dem Sender und/oder Empfänger bereitgestellt wird.
  16. Eine Vorrichtung zum Steuern des Flusses eines Datenumfangs von einem Sender zu einem Empfänger in einer End-Zu-End-Paketvermittlungsverbindung, wobei die End-Zu-End-Paketvermittlungsverbindung aus einer Mehrzahl von Verknüpfungen (300, 301, 302) besteht, die durch Router (R1, R2) aufeinander folgend verbunden sind, umfassend: ein Bestimmungsmittel zum Bestimmen einer zu sendenden Datensequenz aus dem Datenumfang, ein Mittel zum automatischen Bestimmen von einem oder mehr Bandbreitenwerten, wobei jeder Bandbreitenwert mit einer individuellen Verknüpfung in Beziehung steht und ein mit einer individuellen Verknüpfung in Beziehung stehender Bandbreitenwert ein Wert ist, der eine Angabe macht, wie viele Daten pro Zeiteinheit die individuelle Verknüpfung tragen kann, und ein Mittel zum Steuern des Flusses der Sequenz von dem Sender zu dem Empfänger in Abhängigkeit des einen oder mehr Bandbreitenwerte.
  17. Eine Kommunikationsvorrichtung zum Senden und Empfangen von Daten über eine End-Zu-End-Paketvermittlungsverbindung, wobei die End-Zu-End-Paketvermittlungsverbindung aus einer Mehrzahl von Verknüpfungen (300, 301, 302) besteht, die durch Router (R1, R2) aufeinander folgend verbunden sind, umfassend: Steuerungsmittel zum Steuern der Kommunikationsvorrichtung, um als ein Sender oder ein Empfänger zu agieren, und eine Vorrichtung gemäß Anspruch 16.
  18. Kommunikationsvorrichtung nach Anspruch 17, dadurch gekennzeichnet, dass das Steuerungsmittel derart funktioniert, dass der eine oder mehr Bandbreitenwerte mehr als einmal während des Sendens der Sequenz bestimmt wird, wenn die Vorrichtung als ein Sender agiert.
  19. Kommunikationsvorrichtung nach Anspruch 17, dadurch gekennzeichnet, dass das Steuerungsmittel derart funktioniert, dass der eine oder mehr Bandbreitenwerte in regelmäßigen Zeitintervallen während des Sendens der Sequenz bestimmt werden, wenn die Vorrichtung als ein Sender agiert.
  20. Kommunikationsvorrichtung nach Anspruch 17, dadurch gekennzeichnet, dass das Steuerungsmittel derart funktioniert, dass der eine oder mehr Bandbreitenwerte kontinuierlich während des Sendens der Sequenz bestimmt werden, wenn die Vorrichtung als ein Sender agiert.
  21. Kommunikationsvorrichtung gemäß einem der Ansprüche 17 bis 20, dadurch gekennzeichnet, dass das Protokoll zum Senden von Daten über die Verbindung derart ausgelegt ist, dass ein Empfänger den Empfang einer Sequenz von Bytes durch Zurückgeben von Nachrichten an einen Sender der Bytes bestätigt, die eine Angabe machen, bis zu welchem Byte Daten empfangen worden sind, und das Senden einer zu sendenden Sequenz zu einem Zeitpunkt derart durchgeführt wird, dass nur einige oder alle der Daten innerhalb eines Datenfensters zu dem Zeitpunkt gesendet werden können, wobei das Datenfenster durch eine erste und zweite Grenze bezüglich der zu sendenden Sequenz definiert ist, und die erste Grenze in Abhängigkeit von dem schon gesendeten und bestätigten Datenumfang bestimmt wird, derart, dass der schon gesendete und bestätigte Datenumfang außerhalb des Fensters fällt, und die zweite Grenze durch Hinzufügen eines Datenfenstergrößenwertes zu der ersten Grenze bestimmt wird, wobei das Steuerungsmittel den einen oder mehr Bandbreitenwerte in dem Prozess zum Bestimmen des Datenfenstergrößenwertes verwendet, wenn die Vorrichtung als ein Sender agiert.
  22. Kommunikationsvorrichtung nach Anspruch 21, dadurch gekennzeichnet, dass das Steuerungsmittel, wenn die Vorrichtung als ein Sender agiert, den einen oder mehr Bandbreitenwerte bestimmt, die mit der Mehrzahl von Verknüpfungen in der Richtung in Beziehung stehen, in die die Sequenz von Daten zu senden ist, das Minimum des einen oder mehr Bandbreitenwerte bestimmt, einen den Zeitumfang kennzeichnenden Zeitwert bestimmt, der zwischen dem Senden eines gegebenen Bytes durch den Sender und dem Empfangen einer Bestätigung, dass das gegebene Byte an dem anderen Ende der Verbindung empfangen worden ist, vergangen ist, und das Produkt des Minimums des einen oder mehr Bandbreitenwerte als einen verknüpfungsabhängigen Datenumfangswert bestimmt, der in dem Prozess zum Bestimmen des Datenfenstergrößenwertes verwendet wird.
  23. Kommunikationsvorrichtung nach Anspruch 22, dadurch gekennzeichnet, dass die Paketvermittlungsverbindung gemäß TCP eingerichtet ist und der Zeitwert als eine Funktion der Umlaufzeit für die Verbindung in die Richtung bestimmt wird, in die die Sequenz zu senden ist.
  24. Kommunikationsvorrichtung nach Anspruch 22, dadurch gekennzeichnet, dass der verknüpfungsabhängige Datenumfangswert als der Datenfenstergrößenwert verwendet wird.
  25. Kommunikationsvorrichtung nach Anspruch 22, dadurch gekennzeichnet, dass der Datenfenstergrößenwert durch Auswählen des kleinsten Wertes aus einer Gruppe von Datenumfangswerten bestimmt wird, wobei der verknüpfungsabhängige Datenumfangswert innerhalb der Gruppe ist.
  26. Kommunikationsvorrichtung nach Anspruch 25, dadurch gekennzeichnet, dass die Paketvermittlungsverbindung gemäß TCP eingerichtet ist, und das Steuerungsmittel derart funktioniert, dass der Datenfenstergrößenwert aus der Gruppe ausgewählt wird, die aus dem angebotenen Fenster, dem Stauungsfenster, und dem verknüpfungsabhängigen Datenumfangswert besteht, wenn die Vorrichtung als ein Sender agiert.
  27. Kommunikationsvorrichtung gemäß einem der Ansprüche 17 bis 26, dadurch gekennzeichnet, dass die Kommunikationsvorrichtung derart ausgelegt ist, dass, wenn sie als ein Empfänger zum Empfangen von Daten über die Verbindung von einem Kommunikationspartner an dem anderen Ende der Verbindung agiert, einer oder mehr Bandbreitenwerte, die in der Richtung von dem Partner zu der Vorrichtung, mit jeweils einer oder mehr Verknüpfungen in Beziehung stehen, automatisch bestimmt werden, wobei ein mit einer Verknüpfung in Beziehung stehender Bandbreitenwert ein Wert ist, der eine Angabe macht, wie viele Daten pro Zeiteinheit die Verknüpfung tragen kann, und eine Nachricht zu dem Partner gesendet wird, derart, dass der eine oder mehr Bandbreitenwerte in dem Prozess zum Steuern des Flusses der Daten durch den Partner verwendet werden können.
  28. Kommunikationsvorrichtung nach Anspruch 27, dadurch gekennzeichnet, dass das Steuerungsmittel derart funktioniert, dass der eine oder mehr Bandbreitenwerte mehr als einmal während des Empfangs der Daten bestimmt wird, wenn die Vorrichtung als ein Empfänger agiert.
  29. Kommunikationsvorrichtung nach Anspruch 27, dadurch gekennzeichnet, dass das Steuerungsmittel derart funktioniert, dass der eine oder mehr Bandbreitenwerte in regelmäßigen Zeitabständen während des Empfangens der Daten bestimmt werden, wenn die Vorrichtung als ein Empfänger agiert.
  30. Kommunikationsvorrichtung nach Anspruch 27, dadurch gekennzeichnet, dass das Steuerungsmittel derart funktioniert, dass der eine oder mehr Bandbreitenwerte kontinuierlich während des Empfangens der Daten bestimmt werden, wenn die Vorrichtung als ein Empfänger agiert.
  31. Kommunikationsvorrichtung gemäß einem der Ansprüche 27 bis 30, dadurch gekennzeichnet, dass das Protokoll zum Senden von Daten über die Verbindung derart ausgelegt ist, dass ein Empfänger den Empfang einer Sequenz von Bytes durch Zurückgeben von Nachrichten an einen Sender der Bytes bestätigt, die eine Angabe machen, bis zu welchem Byte Daten empfangen worden sind, und das Senden einer zu sendenden Sequenz zu einem Zeitpunkt derart durchgeführt wird, dass nur einige oder alle der Daten innerhalb eines Datenfensters zu dem Zeitpunkt gesendet werden können, wobei das Datenfenster durch eine erste und zweite Grenze bezüglich der zu sendenden Sequenz definiert ist, und die erste Grenze in Abhängigkeit von dem Umfang der schon gesendeten und bestätigten Daten derart bestimmt wird, dass der schon gesendete und bestätigte Datenumfang außerhalb des Fensters fällt, und die zweite Grenze durch Hinzufügen eines Datenfenstergrößenwertes zu der ersten Grenze bestimmt wird, wobei das Steuerungsmittel einen Datenumfangswert auf der Basis des einen oder mehr Bandbreitenwerte bestimmt und der Datenumfangswert zu dem Partner in der Verbindung gesendet wird, derart dass der Datenumfangswert in dem Prozess zum Bestimmen des Datenfenstergrößenwertes in dem Partner verwendet werden kann, wenn die Vorrichtung als ein Empfänger agiert.
  32. Kommunikationsvorrichtung nach Anspruch 31, dadurch gekennzeichnet, dass das Steuerungsmittel, wenn die Vorrichtung als ein Empfänger agiert, den einen oder mehr Bandbreitenwerte bestimmt, die mit der Mehrzahl von Verknüpfungen in der Richtung in Beziehung stehen, in der Daten zu senden sind, das Minimum des einen oder mehr Bandbreitenwerte bestimmt, einen Zeitwert bestimmt, der den Zeitumfang kennzeichnet, der zwischen dem Senden einer gegebenen Bestätigungsnachricht, die ein bestimmtes Byte abdeckt, durch den Empfänger, und dem Empfang des nächsten Bytes in der von dem Partner in der Verbindung am anderen Ende der Verbindung gesendeten Sequenz von Daten vergeht, und das Produkt des Minimums des einen oder mehr Bandbreitenwerte und dem Zeitwert als einen verknüpfungsabhängigen Datenumfangswert bestimmt, der zu dem Partner gesendet wird, um in dem Prozess zum Bestimmen des Datenfenstergrößenwertes durch den Partner verwendet zu werden.
  33. Kommunikationsvorrichtung nach Anspruch 32, dadurch gekennzeichnet, dass der verknüpfungsabhängige Datenumfangswert als der Datenfenstergrößenwert verwendet wird.
  34. Kommunikationsvorrichtung nach Anspruch 32, dadurch gekennzeichnet, dass der Datenfenstergrößenwert bestimmt wird durch Auswählen des kleinsten Wertes aus einer Gruppe von Datenumfangswerten, wobei der verknüpfungsabhängige Datenumfangswert innerhalb der Gruppe ist.
  35. Kommunikationsvorrichtung nach Anspruch 34, dadurch gekennzeichnet, dass die Paketvermittlungsverbindung gemäß TCP eingerichtet ist, und das Steuerungsmittel derart funktioniert, dass der verknüpfungsabhängige Datenumfangswert zu dem Partner in der Verbindung als das angebotene Fenster gesendet wird, wenn die Vorrichtung als ein Empfänger agiert.
  36. Kommunikationsvorrichtung nach einem der Ansprüche 17 bis 35, dadurch gekennzeichnet, dass der mit einer Verknüpfung in Beziehung stehende Bandbreitenwert die physikalische Bandbreite der Verknüpfung ist.
  37. Vorrichtung gemäß einem der Ansprüche 1 bis 35, dadurch gekennzeichnet, dass der mit einer Verknüpfung in Beziehung stehende Bandbreitenwert die momentan verfügbare Bandbreite für die Verbindung in der Verknüpfung in die Richtung ist, in die die Daten zu senden sind.
  38. Vorrichtung gemäß einem der Ansprüche 17 bis 37, dadurch gekennzeichnet, dass die Bandbreitenwerte den Bandbreitenwert umfassen, der mit der Zugriffsverknüpfung der Vorrichtung in Beziehung steht, wobei die Zugriffsverknüpfung die Verknüpfung ist, die die Vorrichtung mit dem nächsten Router entlang der Paketvermittlungsverbindung verbindet.
  39. Vorrichtung nach Anspruch 38, gekennzeichnet durch Aufweisen eines Verknüpfungsebenentreibermittels, und dass der Bandbreitenwert, der mit der Zugriffsverknüpfung in Beziehung steht, durch das Verknüpfungsebenentreibermittel bereitgestellt wird.
DE69922180T 1998-03-31 1999-03-30 Verfahren und Vorrichtung zur Datenflusssteuerung Expired - Lifetime DE69922180T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP98105859A EP0948168A1 (de) 1998-03-31 1998-03-31 Verfahren und Vorrichtung zur Datenflusssteuerung
EP98105859 1998-03-31
PCT/EP1999/002184 WO1999050998A1 (en) 1998-03-31 1999-03-30 Method and device for data flow control

Publications (2)

Publication Number Publication Date
DE69922180D1 DE69922180D1 (de) 2004-12-30
DE69922180T2 true DE69922180T2 (de) 2005-12-01

Family

ID=8231691

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69922180T Expired - Lifetime DE69922180T2 (de) 1998-03-31 1999-03-30 Verfahren und Vorrichtung zur Datenflusssteuerung

Country Status (9)

Country Link
US (1) US6754228B1 (de)
EP (2) EP0948168A1 (de)
JP (1) JP4738594B2 (de)
CN (1) CN1149793C (de)
AU (1) AU752032B2 (de)
CA (1) CA2326488C (de)
DE (1) DE69922180T2 (de)
IL (1) IL138303A (de)
WO (1) WO1999050998A1 (de)

Families Citing this family (148)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7085227B1 (en) * 2001-05-11 2006-08-01 Cisco Technology, Inc. Method for testing congestion avoidance on high speed networks
US9009345B1 (en) 1997-12-24 2015-04-14 Aol Inc. Asynchronous data protocol
US6788704B1 (en) * 1999-08-05 2004-09-07 Intel Corporation Network adapter with TCP windowing support
JP3391316B2 (ja) 1999-10-22 2003-03-31 日本電気株式会社 ネットワークシステム
US6996067B1 (en) * 1999-12-07 2006-02-07 Verizon Services Corp. Apparatus for and method of providing and measuring data throughput to and from a packet data network
US7343413B2 (en) 2000-03-21 2008-03-11 F5 Networks, Inc. Method and system for optimizing a network by independently scaling control segments and data flow
US8380854B2 (en) 2000-03-21 2013-02-19 F5 Networks, Inc. Simplified method for processing multiple connections from the same client
GB2361386B (en) * 2000-04-13 2003-10-01 Nokia Networks Oy Improvements in or relating to wireless LAN`s
US7499453B2 (en) * 2000-05-19 2009-03-03 Cisco Technology, Inc. Apparatus and methods for incorporating bandwidth forecasting and dynamic bandwidth allocation into a broadband communication system
US6917622B2 (en) * 2000-05-19 2005-07-12 Scientific-Atlanta, Inc. Allocating access across a shared communications medium in a carrier network
US6791945B1 (en) * 2000-09-15 2004-09-14 Motorola, Inc. Time out threshold shaping for wireless TCP communications
US7304948B1 (en) * 2000-12-29 2007-12-04 Nortel Networks Limited Congestion control for signalling transport protocols
US7542419B2 (en) * 2001-04-02 2009-06-02 International Business Machines Corporation Method and apparatus for managing aggregate bandwidth at a server
WO2002093389A1 (en) 2001-05-17 2002-11-21 Decru, Inc. A stream-oriented interconnect for networked computer storage
US7023876B2 (en) * 2001-07-09 2006-04-04 Quantum Corporation Point-to-point protocol
US7020716B2 (en) * 2001-08-31 2006-03-28 Adaptec, Inc. Method and system for verifying the hardware implementation of TCP/IP
US8370517B2 (en) * 2001-09-27 2013-02-05 International Business Machines Corporation Conserving energy in a data processing network
FR2831742B1 (fr) * 2001-10-25 2004-02-27 Cit Alcatel Procede de transmission de paquets par l'intermediaire d'un reseau de telecommunications utilisant le protocole ip
US7237007B2 (en) * 2001-12-05 2007-06-26 Qualcomm Incorporated Method and system for flow control between a base station controller and a base transceiver station
EP1324544A1 (de) * 2001-12-26 2003-07-02 Telefonaktiebolaget L M Ericsson (Publ) Methode und System zur Verkehrskontrolle zwischen Multimedien-gateway-kontrolleuren und proxies
DE60236138D1 (de) * 2002-01-03 2010-06-10 Innovative Sonic Ltd Fenster-basierende Blockadevermeidung für ein drahtloses Hochgeschwindigkeits-Kommunikationssystem
EP1326397B1 (de) * 2002-01-03 2010-03-10 Innovative Sonic Limited Mechanismus zur Vermeidung eines Datenstromabbruchs in drahtlosen Hochgeschwindigkeits-Kommunikationssystemen mittels eines Zeitschalters
US7706269B2 (en) 2002-03-22 2010-04-27 Nokia Corporation Method, system and device for controlling a transmission window size
DE60236691D1 (de) * 2002-04-19 2010-07-22 Ericsson Telefon Ab L M Verfahren und einrichtungen für adaptive proxy-bearbeitung von flüssen
AT411948B (de) * 2002-06-13 2004-07-26 Fts Computertechnik Gmbh Kommunikationsverfahren und apparat zur übertragung von zeitgesteuerten und ereignisgesteuerten ethernet nachrichten
DE60212104T2 (de) 2002-06-18 2006-10-19 Matsushita Electric Industrial Co., Ltd., Kadoma Auf Empfänger basierte Umlaufzeitmessung in TCP
EP1383281A1 (de) * 2002-07-19 2004-01-21 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Verfahren zur Berechnung von Übertragungsfenstergrösse
US7802008B2 (en) * 2002-08-12 2010-09-21 Matsushita Electric Industrial Co., Ltd. Quality of service management in network gateways
SE0203104D0 (en) * 2002-10-18 2002-10-18 Ericsson Telefon Ab L M Method and apparatus for network initiated rate control for P2C services in a mobile system
US8233392B2 (en) 2003-07-29 2012-07-31 Citrix Systems, Inc. Transaction boundary detection for reduction in timeout penalties
US7630305B2 (en) 2003-07-29 2009-12-08 Orbital Data Corporation TCP selective acknowledgements for communicating delivered and missed data packets
US8270423B2 (en) 2003-07-29 2012-09-18 Citrix Systems, Inc. Systems and methods of using packet boundaries for reduction in timeout prevention
US7616638B2 (en) 2003-07-29 2009-11-10 Orbital Data Corporation Wavefront detection and disambiguation of acknowledgments
US7206316B2 (en) 2002-12-12 2007-04-17 Dilithium Networks Pty Ltd. Methods and system for fast session establishment between equipment using H.324 and related telecommunications protocols
US7680143B2 (en) * 2002-12-12 2010-03-16 Rpx Corporation Methods and apparatus for combining session acceleration techniques for media oriented negotiation acceleration
US20070266161A1 (en) * 2002-12-12 2007-11-15 Dilithium Networks Pty Ltd. Methods and system for fast session establishment between equipment using h.324 and related telecommunications protocols
US7139279B2 (en) 2002-12-12 2006-11-21 Dilithium Networks Pty Ltd. Methods and system for fast session establishment between equipment using H.324 and related telecommunications protocols
US7336607B2 (en) * 2002-12-27 2008-02-26 Lucent Technologies Inc. Methods and apparatus for flow control based packet aggregation in a communication network
DE502004005264D1 (de) * 2003-03-20 2007-11-29 Nokia Siemens Networks Gmbh Verfahren und sender zur übertragung von datenpaketen
SE0301053D0 (sv) * 2003-04-07 2003-04-07 Ericsson Telefon Ab L M Method and system in a communications network
JP2005012260A (ja) * 2003-06-16 2005-01-13 Matsushita Electric Ind Co Ltd データ伝送の制御方法
US8238241B2 (en) 2003-07-29 2012-08-07 Citrix Systems, Inc. Automatic detection and window virtualization for flow control
US8437284B2 (en) 2003-07-29 2013-05-07 Citrix Systems, Inc. Systems and methods for additional retransmissions of dropped packets
US8432800B2 (en) 2003-07-29 2013-04-30 Citrix Systems, Inc. Systems and methods for stochastic-based quality of service
US7656799B2 (en) * 2003-07-29 2010-02-02 Citrix Systems, Inc. Flow control system architecture
ITBA20030039A1 (it) * 2003-08-29 2005-02-28 Grieco Luigi Alfredo Controllo di congestione rate-based del traffico entrante
KR100548134B1 (ko) * 2003-10-31 2006-02-02 삼성전자주식회사 무선 네트워크 환경에서의 tcp의 데이터 전송효율을향상시킬 수 있는 통신시스템 및 그 방법
WO2005054134A1 (ja) * 2003-12-05 2005-06-16 Jsr Corporation 誘電体膜形成用組成物の製造方法、誘電体膜形成用組成物、ならびに誘電体膜およびその形成方法
KR101022471B1 (ko) * 2004-01-17 2011-03-16 삼성전자주식회사 멀티미디어 데이터를 기록한 정보저장매체, 그 재생방법및 재생장치
CA2529313C (en) * 2004-02-09 2008-07-15 Research In Motion Limited Methods and apparatus for controlling wireless network operations associated with a flow control process
FI20040737A0 (fi) 2004-05-31 2004-05-31 Nokia Corp Menetelmä yhteydellisen tiedonsiirtoprotokollan toteuttamiseksi langattomissa verkoissa
US7512072B2 (en) * 2005-09-15 2009-03-31 International Business Machines Corporation TCP/IP method FPR determining the expected size of conjestion windows
WO2007044884A1 (en) * 2005-10-11 2007-04-19 Dilithium Networks Pty Ltd. Methods and system for fast session establishment for h.324 and related telecommunications terminals
US7496038B2 (en) * 2005-12-12 2009-02-24 International Business Machines Corporation Method for faster detection and retransmission of lost TCP segments
AU2007212001A1 (en) * 2006-02-07 2007-08-16 Asankya Networks, Inc. Systems and methods of improving performance of transport protocols
US8315274B2 (en) * 2006-03-29 2012-11-20 Honeywell International Inc. System and method for supporting synchronous system communications and operations
CN100466625C (zh) * 2006-09-07 2009-03-04 华为技术有限公司 一种实现业务流量控制的方法及系统
WO2008049462A1 (en) * 2006-10-26 2008-05-02 Telefonaktiebolaget Lm Ericsson (Publ) A method and receiver for controlling the conformance of a data flow in a communication system to a traffic definition
US8654638B2 (en) * 2006-12-19 2014-02-18 Marcin Godlewski Dynamically adjusting bandwidth usage among subscriber streams
US7757017B2 (en) * 2007-05-15 2010-07-13 International Business Machines Corporation Adjusting direction of data flow between I/O bridges and I/O hubs based on real time traffic levels
US8116337B2 (en) * 2007-07-27 2012-02-14 Marcin Godlewski Bandwidth requests transmitted according to priority in a centrally managed network
US8284692B2 (en) * 2007-08-02 2012-10-09 Celtro Ltd Method and system for identifying UDP communications
CN101483558B (zh) * 2008-01-10 2012-07-04 华为技术有限公司 网络设备接入分组交换网络的方法、系统及装置
US8806053B1 (en) 2008-04-29 2014-08-12 F5 Networks, Inc. Methods and systems for optimizing network traffic using preemptive acknowledgment signals
US8024417B2 (en) * 2008-06-04 2011-09-20 Microsoft Corporation Simple flow control protocol over RDMA
US20100008248A1 (en) * 2008-07-08 2010-01-14 Barry Constantine Network tester for real-time measuring of tcp throughput
CN101651612A (zh) * 2008-08-15 2010-02-17 深圳富泰宏精密工业有限公司 数据传输系统与方法
TWI463835B (zh) * 2008-08-29 2014-12-01 Chi Mei Comm Systems Inc 資料傳輸系統與方法
WO2010042578A1 (en) * 2008-10-08 2010-04-15 Citrix Systems, Inc. Systems and methods for real-time endpoint application flow control with network structure component
US8566444B1 (en) 2008-10-30 2013-10-22 F5 Networks, Inc. Methods and system for simultaneous multiple rules checking
JP2012515491A (ja) * 2009-01-16 2012-07-05 メインライン ネット ホールディングス リミテッド 送信制御プロトコルを利用した、パケットの損失および高いレイテンシーを有するネットワークにおける帯域幅利用の最大化
US8351434B1 (en) * 2009-02-06 2013-01-08 Olympus Corporation Methods and systems for data communication over wireless communication channels
US8340099B2 (en) * 2009-07-15 2012-12-25 Microsoft Corporation Control of background data transfers
US10157280B2 (en) 2009-09-23 2018-12-18 F5 Networks, Inc. System and method for identifying security breach attempts of a website
US9313047B2 (en) 2009-11-06 2016-04-12 F5 Networks, Inc. Handling high throughput and low latency network data packets in a traffic management device
US8868961B1 (en) 2009-11-06 2014-10-21 F5 Networks, Inc. Methods for acquiring hyper transport timing and devices thereof
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US9141625B1 (en) 2010-06-22 2015-09-22 F5 Networks, Inc. Methods for preserving flow state during virtual machine migration and devices thereof
US10015286B1 (en) 2010-06-23 2018-07-03 F5 Networks, Inc. System and method for proxying HTTP single sign on across network domains
US8908545B1 (en) 2010-07-08 2014-12-09 F5 Networks, Inc. System and method for handling TCP performance in network access with driver initiated application tunnel
US8347100B1 (en) 2010-07-14 2013-01-01 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
CA2806729A1 (en) * 2010-08-06 2012-02-09 Acquire Media Ventures Inc. Method and system for pacing, ack'ing, timing, and handicapping (path) for simultaneous receipt of documents
US9083760B1 (en) 2010-08-09 2015-07-14 F5 Networks, Inc. Dynamic cloning and reservation of detached idle connections
US8630174B1 (en) 2010-09-14 2014-01-14 F5 Networks, Inc. System and method for post shaping TCP packetization
US8463909B1 (en) 2010-09-15 2013-06-11 F5 Networks, Inc. Systems and methods for managing server resources
US8886981B1 (en) 2010-09-15 2014-11-11 F5 Networks, Inc. Systems and methods for idle driven scheduling
US8804504B1 (en) 2010-09-16 2014-08-12 F5 Networks, Inc. System and method for reducing CPU load in processing PPP packets on a SSL-VPN tunneling device
US9554276B2 (en) 2010-10-29 2017-01-24 F5 Networks, Inc. System and method for on the fly protocol conversion in obtaining policy enforcement information
WO2012058486A2 (en) 2010-10-29 2012-05-03 F5 Networks, Inc. Automated policy builder
US8639835B2 (en) * 2010-11-29 2014-01-28 Verizon Patent And Licensing Inc. TCP window size performance optimization in wireless networks
US8627467B2 (en) 2011-01-14 2014-01-07 F5 Networks, Inc. System and method for selectively storing web objects in a cache memory based on policy decisions
US10135831B2 (en) 2011-01-28 2018-11-20 F5 Networks, Inc. System and method for combining an access control system with a traffic management system
US8824687B2 (en) * 2011-05-04 2014-09-02 Acquire Media Ventures, Inc. Method and system for pacing, acking, timing, and handicapping (path) for simultaneous receipt of documents employing encryption
US9246819B1 (en) 2011-06-20 2016-01-26 F5 Networks, Inc. System and method for performing message-based load balancing
US9270766B2 (en) 2011-12-30 2016-02-23 F5 Networks, Inc. Methods for identifying network traffic characteristics to correlate and manage one or more subsequent flows and devices thereof
US9380635B2 (en) 2012-01-09 2016-06-28 Google Technology Holdings LLC Dynamic TCP layer optimization for real-time field performance
US10230566B1 (en) 2012-02-17 2019-03-12 F5 Networks, Inc. Methods for dynamically constructing a service principal name and devices thereof
US9172753B1 (en) 2012-02-20 2015-10-27 F5 Networks, Inc. Methods for optimizing HTTP header based authentication and devices thereof
US9231879B1 (en) 2012-02-20 2016-01-05 F5 Networks, Inc. Methods for policy-based network traffic queue management and devices thereof
EP2853074B1 (de) 2012-04-27 2021-03-24 F5 Networks, Inc Verfahren zur optimierung von inhaltsdienstanfragen und vorrichtungen dafür
US9338095B2 (en) 2012-05-01 2016-05-10 F5 Networks, Inc. Data flow segment optimized for hot flows
US9525632B1 (en) 2012-05-01 2016-12-20 F5 Networks, Inc. Minimize recycle SYN issues for split TCP hot flows to improve system reliability and performance
US9154423B1 (en) 2012-05-01 2015-10-06 F5 Networks, Inc. Minimize SYN-flood issues with flow cache while maintaining performance
US9203771B1 (en) 2012-07-23 2015-12-01 F5 Networks, Inc. Hot service flow hardware offloads based on service priority and resource usage
JP5998923B2 (ja) * 2012-12-28 2016-09-28 富士通株式会社 プログラム、情報処理装置、及び通信方法
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US10581687B2 (en) 2013-09-26 2020-03-03 Appformix Inc. Real-time cloud-infrastructure policy implementation and management
US9385959B2 (en) 2013-09-26 2016-07-05 Acelio, Inc. System and method for improving TCP performance in virtualized environments
US10291472B2 (en) 2015-07-29 2019-05-14 AppFormix, Inc. Assessment of operational states of a computing environment
US10355997B2 (en) 2013-09-26 2019-07-16 Appformix Inc. System and method for improving TCP performance in virtualized environments
US10187317B1 (en) 2013-11-15 2019-01-22 F5 Networks, Inc. Methods for traffic rate control and devices thereof
US9237467B2 (en) 2013-11-27 2016-01-12 At&T Intellectual Property I, L.P. Adaptive pacing of media content delivery over a wireless network
EP2887595B8 (de) * 2013-12-23 2019-10-16 Rohde & Schwarz GmbH & Co. KG Verfahren und knoten zur wiederübertragung von datenpaketen in einer tcp-verbindung
US10015143B1 (en) 2014-06-05 2018-07-03 F5 Networks, Inc. Methods for securing one or more license entitlement grants and devices thereof
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US10122630B1 (en) 2014-08-15 2018-11-06 F5 Networks, Inc. Methods for network traffic presteering and devices thereof
US9906454B2 (en) * 2014-09-17 2018-02-27 AppFormix, Inc. System and method for providing quality of service to data center applications by controlling the rate at which data packets are transmitted
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US11350254B1 (en) 2015-05-05 2022-05-31 F5, Inc. Methods for enforcing compliance policies and devices thereof
US10505818B1 (en) 2015-05-05 2019-12-10 F5 Networks. Inc. Methods for analyzing and load balancing based on server health and devices thereof
US11757946B1 (en) 2015-12-22 2023-09-12 F5, Inc. Methods for analyzing network traffic and enforcing network policies and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US11178150B1 (en) 2016-01-20 2021-11-16 F5 Networks, Inc. Methods for enforcing access control list based on managed application and devices thereof
US10797888B1 (en) 2016-01-20 2020-10-06 F5 Networks, Inc. Methods for secured SCEP enrollment for client devices and devices thereof
US10791088B1 (en) 2016-06-17 2020-09-29 F5 Networks, Inc. Methods for disaggregating subscribers via DHCP address translation and devices thereof
US11063758B1 (en) 2016-11-01 2021-07-13 F5 Networks, Inc. Methods for facilitating cipher selection and devices thereof
US10505792B1 (en) 2016-11-02 2019-12-10 F5 Networks, Inc. Methods for facilitating network traffic analytics and devices thereof
CA3048055A1 (en) * 2016-12-21 2018-06-28 Dejero Labs Inc. Packet transmission system and method
US10326696B2 (en) 2017-01-02 2019-06-18 Microsoft Technology Licensing, Llc Transmission of messages by acceleration components configured to accelerate a service
US10320677B2 (en) 2017-01-02 2019-06-11 Microsoft Technology Licensing, Llc Flow control and congestion management for acceleration components configured to accelerate a service
US10334055B2 (en) * 2017-02-01 2019-06-25 International Business Machines Corporation Communication layer with dynamic multi-session management
US11496438B1 (en) 2017-02-07 2022-11-08 F5, Inc. Methods for improved network security using asymmetric traffic delivery and devices thereof
US10791119B1 (en) 2017-03-14 2020-09-29 F5 Networks, Inc. Methods for temporal password injection and devices thereof
US10812266B1 (en) 2017-03-17 2020-10-20 F5 Networks, Inc. Methods for managing security tokens based on security violations and devices thereof
US11068314B2 (en) 2017-03-29 2021-07-20 Juniper Networks, Inc. Micro-level monitoring, visibility and control of shared resources internal to a processor of a host machine for a virtual environment
US10868742B2 (en) 2017-03-29 2020-12-15 Juniper Networks, Inc. Multi-cluster dashboard for distributed virtualization infrastructure element monitoring and policy control
US10931662B1 (en) 2017-04-10 2021-02-23 F5 Networks, Inc. Methods for ephemeral authentication screening and devices thereof
US11323327B1 (en) 2017-04-19 2022-05-03 Juniper Networks, Inc. Virtualization infrastructure element monitoring and policy control in a cloud environment using profiles
US10972453B1 (en) 2017-05-03 2021-04-06 F5 Networks, Inc. Methods for token refreshment based on single sign-on (SSO) for federated identity environments and devices thereof
US11122042B1 (en) 2017-05-12 2021-09-14 F5 Networks, Inc. Methods for dynamically managing user access control and devices thereof
US11343237B1 (en) 2017-05-12 2022-05-24 F5, Inc. Methods for managing a federated identity environment using security and access control data and devices thereof
US11122083B1 (en) 2017-09-08 2021-09-14 F5 Networks, Inc. Methods for managing network connections based on DNS data and network policies and devices thereof
US11658995B1 (en) 2018-03-20 2023-05-23 F5, Inc. Methods for dynamically mitigating network attacks and devices thereof
US11044200B1 (en) 2018-07-06 2021-06-22 F5 Networks, Inc. Methods for service stitching using a packet header and devices thereof
CN110995606B (zh) * 2019-12-20 2022-02-22 迈普通信技术股份有限公司 一种拥塞分析方法及装置
CN114629841B (zh) * 2020-11-27 2023-05-16 华为技术有限公司 通信方法、装置及系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5130986A (en) * 1990-04-27 1992-07-14 At&T Bell Laboratories High speed transport protocol with two windows
US5063562A (en) * 1990-05-23 1991-11-05 International Business Machines Corporation Flow control for high speed networks
JP2870569B2 (ja) * 1993-03-22 1999-03-17 富士通株式会社 フレームリレー交換装置における輻輳処理方式および輻輳処理回路
US5734825A (en) * 1994-07-18 1998-03-31 Digital Equipment Corporation Traffic control system having distributed rate calculation and link by link flow control
JP3388511B2 (ja) * 1996-02-19 2003-03-24 日本電信電話株式会社 輻輳制御方法
US5966381A (en) * 1996-03-20 1999-10-12 Sun Microsystems, Inc. Method and apparatus for explicit rate flow control in ATM networks
JPH1023064A (ja) * 1996-07-01 1998-01-23 Nippon Telegr & Teleph Corp <Ntt> 自律分散型トラヒックフロー制御法
US6252851B1 (en) * 1997-03-27 2001-06-26 Massachusetts Institute Of Technology Method for regulating TCP flow over heterogeneous networks
US6320846B1 (en) * 1997-08-05 2001-11-20 Hi/Fm, Inc. Method and apparatus for controlling network bandwidth
US6438101B1 (en) * 1997-12-23 2002-08-20 At&T Corp. Method and apparatus for managing congestion within an internetwork using window adaptation
US6370114B1 (en) * 1997-12-31 2002-04-09 Nortel Networks Limited Apparatus and method for optimizing congestion control information in a multi-protocol network
US6219713B1 (en) * 1998-07-07 2001-04-17 Nokia Telecommunications, Oy Method and apparatus for adjustment of TCP sliding window with information about network conditions

Also Published As

Publication number Publication date
US6754228B1 (en) 2004-06-22
CN1149793C (zh) 2004-05-12
IL138303A0 (en) 2001-10-31
AU752032B2 (en) 2002-09-05
DE69922180D1 (de) 2004-12-30
AU3602999A (en) 1999-10-18
EP1070407A1 (de) 2001-01-24
EP1070407B1 (de) 2004-11-24
JP4738594B2 (ja) 2011-08-03
CN1303557A (zh) 2001-07-11
CA2326488A1 (en) 1999-10-07
EP0948168A1 (de) 1999-10-06
WO1999050998A1 (en) 1999-10-07
CA2326488C (en) 2008-08-12
JP2002510904A (ja) 2002-04-09
IL138303A (en) 2005-09-25

Similar Documents

Publication Publication Date Title
DE69922180T2 (de) Verfahren und Vorrichtung zur Datenflusssteuerung
DE19983404B4 (de) Verfahren und Vorrichtung zur Verwendung bei der Einstellung eines TCP Gleitfensters
DE60119780T2 (de) System und verfahren für eine übertragungsratensteuerung
DE60211322T2 (de) Empfängerinitiierte Inkrementierung der Übertragungsrate
DE60023019T2 (de) Verfahren und system zur ablösung oder regeneration von quittierungspaketen in adsl kommunikationen
DE69927252T2 (de) Auf der Überwachung der Belegung von Puffern basierte Planung der Netzwerkkapazität
DE60113549T2 (de) Tcp-flusssteurung
DE69434841T2 (de) Dynamische Zugriffsteuerung für ein ATM-Netz
DE60036218T2 (de) Verbindungsschichtquittierung und wiederübertragung für ein zellulares telekommunikationssystem
DE69738359T2 (de) System zur Verbesserung des Datendurchsatzes einer TCP/IP Netzwerkverbindung mit langsamen Rückkanal
DE602005002006T2 (de) Verfahren und Vorrichtung zur Ermittlung der verfügbaren Bandbreite in einem Datenpaketnetzwerk
DE60217361T2 (de) Verfahren und System zur Überlastkontrolle in einem Kommunikationsnetzwerk
DE69833928T2 (de) Netzwerkbandbreitensteuerung
DE69732398T2 (de) System zur Verkehrssteuerung und Überlastregelung für Paketnetzwerke
DE60020413T2 (de) Verfahren und Einrichtung zur Bestimmung eines Zeit-Parameters
DE69930992T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen
DE69920893T2 (de) Berichtigung der Verbindungsbandbreite auf der Basis der Beobachtung der Belegung der Ressourcen des Netzes
DE602005002158T2 (de) Lastausgleichtechnik für Verkehrstechnik zwischen Domänen
DE69937537T2 (de) Überwachung von Internet unterschiedlichen Diensten für Transaktionsverwendungen
DE60317837T2 (de) Verfahren und System zur Messung von Last und Kapazität auf einem Kanal mit variabler Kapazität
DE69535404T2 (de) Flussteuerung für echtzeit-datenströme
DE69434763T2 (de) Verfahren und Vorrichtung zur Überlastregelung in einem Kommunikationsnetzwerk
DE69938570T2 (de) Verfahren und Vorrichtung für eine reservierte und dynamische Dienstqualität in einem Kommunikationsnetz
EP1224777B1 (de) Verfahren zum verbessern der datenübertragungsqualität in datenpaketorientierten kommunikationsnetzen
DE60318539T2 (de) Netzwerküberwachungssystem, das auf Veränderungen der Variant und des Mittelwertes der Paketankunftszeiten reagiert

Legal Events

Date Code Title Description
8364 No opposition during term of opposition