[go: up one dir, main page]

DE69833928T2 - Netzwerkbandbreitensteuerung - Google Patents

Netzwerkbandbreitensteuerung Download PDF

Info

Publication number
DE69833928T2
DE69833928T2 DE69833928T DE69833928T DE69833928T2 DE 69833928 T2 DE69833928 T2 DE 69833928T2 DE 69833928 T DE69833928 T DE 69833928T DE 69833928 T DE69833928 T DE 69833928T DE 69833928 T2 DE69833928 T2 DE 69833928T2
Authority
DE
Germany
Prior art keywords
bandwidth
time
window size
transmission unit
control mechanism
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69833928T
Other languages
English (en)
Other versions
DE69833928D1 (de
Inventor
Marcos Ares Blanco
Jean Christophe Martin
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE69833928D1 publication Critical patent/DE69833928D1/de
Application granted granted Critical
Publication of DE69833928T2 publication Critical patent/DE69833928T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

  • Technischer Hintergrund der Erfindung
  • Die Erfindung betrifft die Bandbreitensteuerung über ein Telekommunikationsnetzwerk. Insbesondere betrifft die Erfindung die Bandbreitensteuerung für das Steuern des Kommunikationsflusses bei einer Verbindung zu einer Netzwerkstation, beispielsweise für das Steuern des TCP/IP Verkehrs an einer Internetverbindung.
  • Das Internet stellt begrifflich drei Sätze von Diensten zur Verfügung. Auf niedrigsten Niveau stellt ein verbindungsloses Zustellungssystem ein Fundament bereit, auf dem alles aufbaut. Auf dem nächsten Niveau stellt ein zuverlässiger Transportdienst eine Highlevel-Plattform zur Verfügung. Auf dem dritten Niveau werden Anwendungsdienste zur Verfügung gestellt, die auf dem zuverlässigen Transportdienst angewiesen sind.
  • Ein fundamentaler Internetdienst besteht aus einem nicht zuverlässigem, verbindungsloses "Best-effort" (so gut wie möglich) Paketzuführungssystem. Der Dienst wird als "unzuverlässig" beschrieben, da die Zustellung nicht garantiert ist. Ein Paket kann verloren gehen, dupliziert werden oder beschädigt zugestellt werden, das Internet wird jedoch solche Zustände nicht erfassen, noch wird des den Sender oder Empfänger informieren. Der Dienst wird als "verbindungslos" beschrieben, da jedes Paket unabhängig von allen anderen behandelt wird. Eine Sequenz von Paketen, die er von einer Maschine zu einer anderen gesendet wird, kann über unterschiedliche Pfade verschickt werden oder es können einige verloren gehen, während andere zugestellt werden. Der Dienst kann als "Best-effort" beschrieben werden, da das Internet darauf ausgerichtet ist, Pakete zuzustellen.
  • Das Protokoll, das den unzuverlässigen, verbindungslosen Zustellmechanismus festlegt, wird das "Internetprotokoll" genannt und wird üblicherweise durch dessen Initialen IP bezeichnet. IP legt die formale Spezifikation der Datenformate fest, und zwar einschließlich eine Basiseinheit der Basisübertragung und den exakten Format aller Daten, die über das Internet verteilt werden. IP beinhaltet ebenso Regeln, die spezifizieren, wie Pakete verarbeitet werden sollten und wie Fehler gehandhabt werden sollten. Insbesondere verkörpert IP die Idee der unzuverlässigen Lieferung der Paketweiterleitung.
  • Oberhalb des IP-Layers bzw. der IP-Schicht der Internetprotokollstruktur gibt es einen Dienst, der als zuverlässiger Transportdienst bereitgestellt wird, der typischerweise der "zuverlässige Stromtransportservice" genannt wird, festgelegt durch das Übertragungssteuerprotokoll (TCP).
  • Die Kombination des TCP-Protokolls und des darunter liegenden Internet-Protokolls (IP) wird oft bezeichnet als TCP/IP.
  • Der zuverlässige Stromlieferdienst, der von dem TCP bereitgestellt werden, kann sich deutlich von dem unzuverlässigen Datagrammprotokoll (UDP), das ebenso über das Internet bereitgestellt wird, unterscheiden. Das UDP stellt einen unzuverlässigen Lieferdienst bereit, da die Auslieferung nicht garantiert wird. Beispielsweise können Pakete verloren gehen oder beschädigt werden, wenn Übertragungsfehler Daten beeinflussen, wenn die Netzwerkhardware versagt oder wenn Netzwerke zu stark belastet werden, um die präsentierte Last zu bedienen.
  • Das TCP hat andererseits eine komplexe Struktur, die die Auslieferung mittels eines Bitstroms, der in 8 Bitbytes unterteilt ist, bereitstellt. Das TCP spezifiziert das Datenformat und die Bestätigungen, die zwei Computer auszutauschen haben, um einen zuverlässigen Transfer zu erzielen sowie die Prozedur, um sicherzustellen, daß die Daten korrekt angekommen sind.
  • Weitere Details und Aspekte des Internet- und TCP/IP-Protokolls können beispielsweise in den folgenden US-Patenten gefunden werden: 5,293,379; 5,307,347; 5,307,413; 5,309,437; 5,351,237 und 5,535,199.
  • Wie oben erwähnt, sei das zugrundelegende Internetprotokoll unzuverlässig, dann arbeiten die TCP-Übertragungen gemäß einer Technik, die als positive Bestätigung durch Rückübertragung bekannt ist. Die Technik erfordert es, daß ein Empfänger mit der Quelle kommuniziert, und zwar eine Bestätigungsnachricht zurückschickt, jedes Mal, wenn er Daten empfängt. Der Sender behält einen Eintrag für jedes Paket, das er sendet und wartet auf eine Bestätigung, bevor er das nächste Paket sendet. Der Sender startet ebenso einen Timer, wenn er ein Paket sendet und sendet das Paket erneut, wenn der Timer abläuft, bevor die Bestätigung ankommt.
  • Die Zeitperiode zwischen der Übertragung einer Nachricht und dem Empfang einer Bestätigung (sagen wir A1) wird als die Round Trip Time oder Umlaufzeit (RTT) bezeichnet. Die RTT variiert mit der Zeit abhängig von vielen Faktoren, wie zum Beispiel Netzwerkauslastung (zum Beispiel Verzögerungen an Zwischenknoten in dem System) und Auslastung des Empfängers. Ein wichtiger Faktor bei der Bestimmung der RTT ist die verfügbare Bandbreite, wo somit mehrere Clients Zugriff auf einen gemeinsamen Server haben, ist es, beispielsweise, um die Dienstqualität zwischen den Clients auszugleichen, wünschenswert, die Bandbreite, die den einzelnen Clients zugewiesen wird, zu steuern.
  • Ein Bandbreitensteuermechanismus wurde vorgeschlagen, der auf der Messung der RTT, wie man sie auf einer gegebenen Verbindung erfährt, und auf der angekündigten TCP-Fenstergröße des Empfängers basiert, die in dem WINDOW-Feld eines TCP-Headers bzw. einer TCP-Kopfzeile entnommen werden kann. Die RTT kann festgelegt werden als die Zeit zwischen dem Senden eines Bytes mit einer bestimmten Sequenznummer und dem Empfangen einer Bestätigung, die diese Sequenznummer abdeckt.
  • Mit solch einer Anordnung hängt die Maximalgröße der Bandbreite, die von einer bestimmten Verbindung seit einer willkürlichen Zeit t(i – 1) verwendet wurde, von dem Wert von beiden Parametern ab, entsprechend dem Ausdruck, der als das "Bandbreiten-Verzögerungsprodukt" bekannt ist: Verwendete Bandbreite seit t(i – 1) bps = Empfänger-Fenstergröße seit t(i – 1)/RTT(S) (1)
  • Dieser Ausdruck stellt einen direkten Weg des Modifizierens der Bandbreitenverwendung eines bestimmten Flusses dar. Mit anderen Worten, wenn wir die RTT des Flusses kennen, können wir auf den Fenstergrößenwert einwirken, um die gewünschte Bandbreite zu erhalten.
  • Die oben beschriebene Berechnung hat jedoch Grenzen. Als erstes gibt es das Problem des Bestimmens des Werts der RTT mit ausreichender Präzision. Die Berechnung der RTT ist keine leichte Aufgabe, da sie die Ankunft von Paketen in zwei Richtungen zwischen zwei zu berücksichtigenden Stationen erfordert. Darüber hinaus ist die RTT nicht dieselbe für jedes Paket (zum Beispiel kann eine TCP-Bestätigung den Empfang von verschiedenen Paketen bestätigen). Darüber hinaus muß eine Durchschnitts-(nicht-momentane) Berechnung angepaßt werden. Weitere Information über das sogenannte Bandbreitenverzogerungsprodukt kann erhalten werden aus beispielsweise TCP/IP Illustrated, Volume 1: The Protocols W. Richard Stevens, Addison-Wesley, Oktober 1995.
  • Obgleich TCP über das Internet bereitgestellt wird, ist es tatsächlich ein unabhängiges Universalprotokoll, was ebenso mit anderen Verteilsystemen verwendet werden kann. TCP macht sehr wenig Annahmen in Bezug auf das darunter liegende Netzwerk und es kann ebenso über ein Einzelnetzwerk wie Ethernet, sowie über ein komplexes Internet oder Intranet verwendet werden. Obgleich verschiedene Implementierungen der Erfindungen in dem Kontext des TCP/IP-Verkehrs über das Internet beschrieben werden, ist tatsächlich die Erfindung nicht hierauf beschränkt.
  • Folglich achtet die vorliegende Erfindung darauf, eine Lösung für die Bandbreitensteuerung ohne die Nachteile des oben beschriebenen Ansatzes bereitzustellen.
  • Die EP-A-0458033 beschreibt ein Verfahren und eine Vorrichtung für das dynamische Einstellen der Fenstergröße in einer Session in einem Sender und einem Empfänger über eine Verbindung eines Paketübertragungsnetzwerks. Ebenso beschrieben ist ein Verfahren zum gemeinsamen Nutzen von Pacing Credits in einer Anzahl von Sessions, während deren Pakete über ein Paketübertragungsnetzwerk übertragen werden.
  • Zusammenfassung der Erfindung
  • Bestimmte und bevorzugte Aspekte der Erfindung werden in den begleitenden unabhängigen und abhängigen Ansprüchen ausgeführt.
  • In Übereinstimmung mit einem Aspekt der Erfindung wird ein computerimplementiertes Verfahren zum Steuern der Netzwerkbandbreite durch dynamisches Bestimmen einer gegenwärtigen Fenstergröße für einen Zielpuffer als ein Bandbreitensteuerparameter für einen Kommunikationsfluss bereitgestellt. Das Verfahren weist auf:
    • a) Bestimmen einer ersten Fenstergröße für den Zielpuffer bei einer ersten Zeit, und
    • b) Bestimmen einer gegenwärtigen Fenstergröße zu einer zweiten Zeit als eine Funktion der ersten Fenstergröße eines gewünschten Bandbreitenwertes und einer Bandbreite, die verwendet wird, zwischen der ersten Zeit und der zweiten Zeit.
  • Somit stellt ein Verfahren entsprechend der Erfindung eine Lösung zu dem Problem des Erzielens einer gewünschten Bandbreite für eine bestimmte Verbindung zur Verfügung, und zwar ohne die Probleme, die mit RTT-Berechnungen, wie in der Einführung beschrieben, verknüpft sind. Eine Ausführungsform der Erfindung ermöglicht eine "gewünschte Bandbreiten" Grenze, die einer speziellen Verbindung, beispielsweise einer TCP-Verbindung, zugewiesen wird und für die adaptive Bestimmung einer Fenstergröße für einen Kommunikationsfluß ohne die Notwendigkeit absolute RTT-Berechnungen durchzuführen. Mit anderen Worten, während der Ansatz, der in der Einleitung beschrieben wurde, die Steuerung der Bandbreite in Antwort auf die Berechnung eines absoluten RTT-Werts beinhaltet, verwendet eine Ausführungsform der vorliegenden Erfindung einen relativen oder differentiellen Ansatz, der sukzessive Neuberechnung eines gegenwärtigen Fenstergrößenwerts basierend auf einem vorherigen Fenstergrößenwert bereitstellt.
  • In Übereinstimmung mit einem anderen Aspekt der Erfindung wird ein Bandbreitensteuermechanismus bereitgestellt für das Steuern der Netzwerkbandbreite durch dynamisches Bestimmen einer gegenwärtigen Fenstergröße für einen Zielpuffer als ein Bandbreitensteuerparameter für einen Kommunikationsfluß, wobei der Mechanismus aufweist, eine Einrichtung für das Bestimmen einer ersten Fenstergröße für den Zielpuffer zu einem ersten Zeitpunkt und für das Bestimmen einer gegenwärtigen Fenstergröße als eine Funktion der ersten Fenstergröße, eines gewünschten Bandbreitenwerts und einer Bandbreite, die verwendet wird zwischen einem ersten Zeitpunkt und einem zweiten Zeitpunkt.
  • In Übereinstimmung mit einer Ausführungsform der Erfindung wird ein Bandbreitensteuermechanismus für eine Telekommunikationsnetzwerkstation bereitgestellt. Der Bandbreitensteuermechanismus wird konfiguriert, so daß er betreibbar ist, um eine gegenwärtige Fenstergröße für ein Zielpuffer als ein Bandbreitensteuerparameter für einen Kommunikationsfluß festzulegen. Der Bandbreitensteuermechanismus wird konfiguriert, so daß er auf eine Fenstergröße, die für den Zielpuffer zu einem früheren Zeitpunkt bestimmt wurde, einen gewünschten Bandbreitenwert und einer Bandbreite, die zwischen dem vorherigen Zeitpunkt und den gegenwärtigen Zeitpunkt verwendet wurde für das Bestimmen der gegenwärtigen Fenstergröße reagiert.
  • Eine Ausführungsform eines Bandbreitensteuermechanismus gemäß der Erfindung berücksichtigt die Realisierung, daß die Bandbreitensteuerung ohne die Berechnung eines absoluten RTT-Werts erzielt werden kann, jedoch statt dessen auf der Basis einer relativen oder differentiellen Berechnung der gegenwärtigen Fenstergröße basierend auf einer vorherigen Berechnung der Fenstergröße.
  • Überraschenderweise ermöglicht der relative Berechnungsansatz eine Ausführungsform der Erfindung eine genauere Steuerung der Bandbreite für eine Verbindung, als es mit der absoluten Berechnung eines RTT-Werts möglich wäre. Typischerweise kann die absolute RTT-Berechnung nur mit geringer Genauigkeit erzielt werden. Da der RTT-Fehlerbereich groß ist, ist der Bandbreitenfehlerbereich ebenso groß. In einer Ausführungsform der Erfindung kann der Fehlerbereich in der Bandbreitenberechnung drastisch reduziert werden durch die Verwendung des adaptiven (delta) Ansatzes (das heißt ein relativer oder differentieller Ansatz) statt eines Ansatzes, der auf der absoluten Berechnung von RTT-Werten beruht.
  • Da eine Ausführungsform der Erfindung die Bandbreitensteuerung ohne eine direkte Berechnung von RTT-Werten bereitstellt, ergeben sich weitere Vorteile. Als erstes ist der "Fehlerbereich" nicht kumulativ. Ebenso während direkte RTT-Berechnung zwei-Wege-Steuerung (Paketsendung + Bestätigungsempfang), was zeitaufwendig und hohe Speicheranforderungen nach sich zieht, erfordert, können die Berechnungen in einer Ausführungsform der Erfindung auf einer Einwegsteuerung (zum Beispiel die Erfassung von TCP-Bestätigungen) beruhen.
  • Der Bandbreitensteuermechanismus kann als ein Software-Bandbreitensteuermechanismus auf einem Trägermedium (zum Beispiel ein computerlesbares Speichermedium, wie zum Beispiel eine optische oder magnetische Platte oder ein Band, Festkörperspeicher usw. oder Telekommunikationsmedium, wie zum Beispiel eine Telefonleitung, eine Funkverbindung, usw., oder irgendein anderes geeignetes Trägermedium) bereitgestellt werden.
  • Der Bandbreitensteuermechanismus kann ebenso als eine Qualität der Diensteinheit für ein Telekommunikationsnetzwerk oder eine Netzwerkstation implementiert werden.
  • Die Erfindung stellt ebenso eine Telekommunikationsnetzwerkstation bereit, die einen Bandbreitencontroller aufweist.
  • Kurze Beschreibung der Figuren
  • Beispielhafte Ausführungsformen der vorliegenden Erfindung werden im Folgenden beschrieben, und zwar lediglich beispielhaft unter Bezug auf die begleitenden Zeichnungen, in denen gleiche Referenzzeichen gleiche Elemente betreffen und in denen:
  • 1 eine schematische Darstellung einer Telekommunikationsumgebung einschließlich einer Mehrzahl von Stationen, die über ein Netzwerk miteinander verbunden sind, darstellt,
  • 2 eine schematische Darstellung einer möglichen Implementierung einer Station darstellt,
  • 3 eine schematische Darstellung einer anderen möglichen Implementierung einer Stationist,
  • 4 eine schematische Darstellung eines Datagrammformats für die Verwendung auf dem Netzwerk ist,
  • 5 eine schematische Darstellung eines Segmentformats für die Verwendung auf dem Netzwerk ist,
  • 6 die Übertragung von Paketen und Bestätigungen über das Netzwerk veranschaulicht,
  • 7 die Variation einer Umlaufzeit über der Zeit veranschaulicht,
  • 8 ein Flußdiagramm ist, das den Betrieb einer Ausführungsform der Erfindung repräsentiert,
  • 9 ein schematisches Blockdiagramm eines Bandbreitensteuermechanismus gemäß einer Ausführungsform der Erfindung ist.
  • Beschreibung der bevorzugten Ausführungsformen
  • Bestimmte Ausführungsformen der Erfindung werden nun beschrieben, die ein adaptives TCP-Fenstergröße-Berechnungsverfahren in dem Kontext einer Internetanwendung einsetzen. Es versteht sich jedoch, daß die Erfindung nicht hierauf beschränkt ist und daß die Erfindung Anwendung bei jeder Kommunikationsnetzwerk Anwendung findet, wo die verfügbare Bandbreite eine Funktion von Umlaufzeitfaktoren und umgekehrt ist.
  • 1 der begleitenden Zeichnungen ist eine schematische Darstellung einer Instanz eines Computernetzwerks, wo eine Anzahl von Stationen 10 über ein Netzwerk 12 kommunizieren. Das Netzwerk könnte ein Nahbereichsnetzwerk (LAN) oder ein Weitbereichsnetzwerk (WAN) und ein Intra- oder Internetzwerk sein. Jede der Stationen 10 könnte durch einen einzelnen Computer oder durch ein Netzwerk von Computern, beispielsweise ein LAN oder WAN gebildet sein. Ebenso versteht es sich, daß obgleich nur vier Stationen 10 gezeigt sind, daß ein typisches Computernetzwerk viel mehr Stationen, die in einer komplexen Zwischenverbindungsstruktur angeordnet sind, aufweist. Die Zwischenverbindungsstruktur könnte auf einem logischen Level sein oder könnte zumindest teilweise eine hierarchische Struktur einsetzen. Die einzelnen Stationen 10 können variable Anforderungen an das System stellen, jeweils relativ zueinander und über die Zeit. In einer typischen Situation wird eine relativ kleine Anzahl der Stationen 10 Serverstationen bilden und eine relativ größere Anzahl der Stationen 10 wird kleine Stationen bilden. Einige können sowohl als Client- als auch als Serverstationen in verschiedenen Aspekten ihres Betriebes dienen.
  • 2 der begleitenden Zeichnungen ist eine schematische Darstellung einer möglichen Konfiguration für ein Computersystem, das eine der Stationen 10 bilden könnte. Diese Stationen können implementiert werden unter Verwendung irgendeiner geeigneten Technologie. Wie jedoch in 2 dargestellt ist, wird die Station 10 durch einen Servercomputer 20 implementiert, der eine Systemeinheit 22, optional mit eine Anzeige 38, einer Tastatur 40 und anderen Eingabevorrichtungen 42 aufweist. Es versteht sich, daß die Station 10 keine Tastatur, Anzeige usw. benötigt. 2a der begleitenden Zeichnungen ist eine schematische Blockdarstellung von Aspekten der Inhalte der Systemeinheit 22. Wie in 2a dargestellt ist, beinhaltet die Systemeinheit einen Prozessor 28, einen Speicher 30, Festplattenlaufwerke 24 und 26 und einen Kommunikationsadapter 32 für die Verbindung zu einer oder mehreren Telekommunikationsleitungen 34 für die Verbindung zu dem Telekommunikationsnetzwerk 12. Wie in 2a darge stellt ist, werden die Komponenten der Systemeinheit über eine Busanordnung 36 verbunden. Es versteht sich, daß die 2/2a eine generelle schematische Darstellung einer möglichen Konfiguration für einen Servercomputer für das Bilden eines Routers oder eines Senders oder einer Zielstation ist und daß viele alternative Konfigurationen bereitgestellt werden könnten.
  • 3 stellt ein anderes Beispiel einer möglichen Implementierung von einer der Stationen 10 dar. In diesem Fall bildet die Station 10 einen Dienstqualitätscontroller 37 (QoS) für ein Nahbereichsnetzwerk 38, an das eine Mehrzahl von Computern 39 angeschlossen sind. Der Dienstqualitätscontroller 37 steuert den Zugriff aufs Nahbereichnetzwerk zu und/oder von dem externen Netzwerk 12 und kann ebenso andere Zugriffs- und Dienstfunktionen innerhalb des Nahbereichsnetzwerks steuern.
  • Bestimmte Ausführungsformen der Erfindung, die im Folgenden beschrieben werden, betreffen die Bandbreitensteuerung in einer TCP/IP-Internetumgebung, obgleich, wie oben erwähnt, es sich versteht, daß die Erfindung nicht hierauf beschränkt ist.
  • Wie oben erwähnt, wird die Basiseinheit des Datentransfers über das Internet als ein "Internet-Datagramm" oder alternativ "IP-Datagramm" oder einfach "Datagramm" genannt. Ein Datagramm weist Kopfzeilen- und Datenbereiche und Quell- und Zieladressen auf. Es gibt keine feste Größe für ein Datagramm. Merkt man sich dies und ebenso die physikalischen Beschränkungen der zu Grunde liegenden Hardwaredienste, auf dem das Internet basiert, ist es notwendig, das Datagramm in Abschnitte zu unterteilen, die "Fragmente" genannt werden.
  • 4 stellt das Format eines Internet-Datagramms dar. Dasselbe Format wird für ein Fragment eines Datagramms verwendet.
  • Das 4 Bit-Versionsfeld (VERS) spezifiziert die IP-Protokollversion und wird verwendet, um sicherzustellen, daß alle Knoten entlang des Pfades des Datagramms mit dem Format übereinstimmen.
  • Das LEN-Feld gibt die Länge des Datagrammkopfzeilenteils gemessen in 32 Bit Worten an. Das TOTAL LENGTH-Feld gibt die Länge des IP-Datagramms an, gemessen in Bytes zu 8 Bit einschließlich der Länge der Kopfzeile und der Daten.
  • Das SERVICE TYPE-Feld enthält Handhabungsdetails für das Datagramm.
  • Drei Felder der Datagrammkopfzeile, IDENT, FLAGS und FRAGMENT OFFSET steuern die Fragmentierung und die Wiederzusammenfügung der Datagramme. Das Feld IDENT enthält einen eindeutigen Identifizierer, der das Datagramm identifiziert.
  • In dem FLAGS-Feld spezifiziert ein erstes Bit, ob das Datagramm fragmentiert sein kann und ein zweites Bit zeigt an, ob dies das letzte Fragment in dem Datagramm ist. Das FRAGMENT OFFSET-Feld spezifiziert den Offset dieses Fragments in dem ursprünglichen Datagramm, gemessen in Einheiten von 8 Byte zu je 8 Bit, beginnend mit dem Offset 0.
  • Da jedes Fragment dasselbe grundlegende Kopfzeilenformat, wie ein vollständiges Datagramm hat, wird die Kombination der FLAGS- und FRAGMENT OFFSET-Felder verwendet, um anzuzeigen, daß die Kopfzeilen Fragmente betreffen, und die Position des Fragments innerhalb des ursprünglichen Datagramms anzuzeigen. Das FRAGMENT OFFSET-Feld identifiziert die Position innerhalb des Datagramms, und das zweite der FLAGS-Bits, die oben erwähnt wurden (die manchmal auch als MORE FRAGMENTS-Anzeige bezeichnet wird) wird verwendet, um anzuzeigen, ob es weitere Fragmente in dem Datengramm gibt oder ob statt dessen das betreffende Fragment das letzte Fragment des Datengramms ist.
  • Das Feld PROTO ist eine Form eines Schriftfeldes. Die HEADER CHECK SUM Größe stellt die Integrität der Kopfzeilenwerte sicher.
  • SOURCE IP ADDRESS und DESTINATION IP ADDRESS enthalten 32 Bit Internetadressen des Senders des Datagramms und des beabsichtigten Empfängers. Das OPTIONS-Feld und das PADDING-Feld sind in dem Datagramm optional. Das Feld, welches mit DATA bezeichnet ist, stellt den Beginn des Datenfeldes dar.
  • 5 stellt das Format eines Segments dar, das verwendet wird, um zwischen zwei Knoten unter dem TCP zu kommunizieren. Jedes Segment ist in zwei Teile unterteilt, eine Kopfzeile gefolgt von den Daten. Die Kopfzeile weist SOURCE PORT- und DESTINATION PORT-Felder auf, die die TCP PORT-Zahlen enthalten, die die Anwendungsprogramme am Ende der Verbindung identifizieren. Die SEQENCE NO. identifiziert die Position der Daten in dem Segment in dem Bytestrom des Senders. Das ACKNOWLEDGEMENT NO.-Feld identifiziert die Position des höchsten Byte, das die Quelle empfangen hat. Die SEQUENCE NO. bezieht sich auf den Strom, der in dieselbe Richtung wie das Segment fließt, während die ACKNOWLEDGEMENT NO. sich auf den Strom bezieht, der in die umgekehrte Richtung stattfindet. Das OFF-Feld enthält eine ganze Zahl, die den Offset des Datenabschnitts des Segments spezifiziert. Dies wird benötigt, da das OPTIONS-Feld in der Länge variiert. Das Feld RES wird reserviert für die zu künftige Benutzung. Segmente können verwendet werden, um eine Bestätigung oder Daten oder Anfragen zu tragen, um eine Verbindung zu errichten oder zu schließen. Das CODE-Feld wird verwendet, um den Zweck und den Inhalt des Segments zu bestimmen. Das WINDOW-Feld spezifiziert die Puffergröße, die das Ziel bereit ist, zu akzeptieren, jedes Mal, wenn es ein Segment sendet. Das CHECK SUM-Feld beinhaltet eine TCP-Kopfzeile-Prüfsumme. Das URGENT POINTER-Feld wird verwendet für das Identifizieren von eiligen Daten.
  • Das OPTIONS-Feld wird verwendet, um Information dem Ziel zu übermitteln. Beispielsweise kann das OPTIONS-Feld verwendet werden, um eine maximale Segmentgröße zu spezifizieren. Die DATA-Anzeige stellt den Start des Datenfeldes des Segments dar.
  • Wenn das TCP-Daten- und Segmente mit variabler Länge sendet, beziehen sich Bestätigungen notwendigerweise auf eine Position in dem Strom und nicht auf Pakete oder Segmente. Jede Bestätigung spezifiziert eine Position, die um Eins größer als die höchste Byte-Position ist, die empfangen wurde. Folglich spezifizieren die Bestätigungen die Nummer des nächsten Bytes, das der Empfänger zu empfangen erwartet.
  • 6 ist eine schematische Darstellung der Übertragung und des Empfangs von Paketen und Bestätigungen. Die linke Seite von 6 stellt Ereignisse an einer Senderseite 50 dar, die rechte Seite stellt Ereignisse an einer Empfängerseite 52 dar und der mittlere Abschnitt stellt Netzwerknachrichten dar, die von dem Sender und von dem Empfänger ausgetauscht werden.
  • In 54 sendet der Sender 50 (zum Beispiel eine Client-Station 10) ein Paket P1 zu einem Empfänger 52 (zum Beispiel eine Serverstation 10) über das Netzwerk und startet einen Timer für die Nachricht P1. Wenn der Empfänger 52 das Paket P1 empfängt 56, dann sendet 58 der Empfänger eine Bestätigung A1. Wenn die Bestätigung A1 an dem Sender 50 empfangen wird 60, kann der Sender den Timer löschen und das nächste Paket P2 zu dem Empfänger 52 senden 62 und dabei einen Timer für die Nachricht P2 einstellen. Wenn der Empfänger 52 das Paket P2 empfängt 64, sendet 66 eher eine zweite Bestätigung A2 zu dem Sender 50. Erneut kann der Sender den Timer löschen. Der Prozeß setzt dann mit der Übertragung von weiteren Paketen mit Empfang der zweiten Bestätigung A2 fort.
  • 7 stellt eine Variation der Umlaufzeit über der Zeit dar. Da sich der RTT-Wert nur sehr graduell mit der Zeit verändert, sind die RTT-Werte bei zwei nahen Zeitpunkten t(i – 1) und t(i) im wesentlichen gleich.
  • Wenn somit die "verwendete Bandbreite" des Flusses über eine Verbindung in zwei Abfragen nahe genug beieinander sind, sagen wir zu den Zeiten t(i – 1) und t(i), wird dann angenommen, daß die folgende Annahme durchgeführt werden kann: RTT(t(i – 1)) = RTT(t(i)) (2)
  • Diese Annahme ist vernünftig, da die RTT unter normalen Umständen nicht stark variiert, wie in 7 dargestellt ist. Wenn diese Annahme getroffen wird, kann man dann die "Fenstergröße seit t(i)", die benötigt wird, um ein "gewünschte Bandbreite seit t(i)" zu berechnen gemäß dem Wert der alten "Fenstergröße seit t(i – 1)" und der "tatsächlich verwendeten Bandbreite seit t(i – 1)". Somit ist: WSt(i) = WSt(i – 1)·DUBt(i)/AUBt(i – 1), (3)wobei:
  • WSt(i)
    = Fenstergröße seit t(i)
    WST(i – 1)
    = Fenstergröße seit t(i – 1)
    DUBt(i)
    = gewünschte verwendete Bandbreite seit t(i)
    AUBt(i – 1)
    = tatsächlich verwendete Bandbreite seit t(i – 1)
  • Diese Berechnungen können alle durchgeführt werden ohne das Wissen des tatsächlichen Werts von RTT. Es sei bemerkt, daß dies die Tatsache berücksichtigt, daß sich RTT typischerweise graduell zwischen zwei "nahe genug liegenden" Abfragen zu den Zeitpunkten t(i – 1) und t(i) entwickelt, und nicht auf einem Absolutwert von RTT bei t(i – 1) und t(i) beruht. Die von einer Ausführungsform der Erfindung eingesetzte Technik stellt somit die Lösung einer Einvariablenfunktion (die RTT als eine Funktion der Zeit) bereit, deren Absolutwerte nicht exakt bekannt sind, durch Verwendung deren Ableitung. Dies ist möglich, da die Ableitung der Funktion sehr klein ist und sich Null nähert.
  • Abgesehen von der Fehlerbereichsverbesserung beruht ein anderer Vorteil in der Tatsache, daß alle benötigten Berechnungen in einer Verkehrsfließrichtung durchgeführt werden können: in der speziell beschriebenen Ausführungsform die Bestätigungsrichtung.
  • 8 ist ein schematisches Flußdiagramm der Operation des Bandbreitensteuermechanismus für Echtzeitberechnung in einer adaptiven Art und Weise der Fenstergröße für eine gewünschte Bandbreite für jeden Fluß, für den die Bandbreite gesteuert wird.
  • In Schritt S1 wird zu jeder Abfragezeit t(i) ein Eintrag des zuletzt empfangenen Übertragungseinheitsidentifizierer (zum Beispiel eine Bestätigungsnummer) vorgenommen. Dieser Eintrag wird zumindest bis zur nachfolgenden Abfragezeit (t + 1) aufbewahrt.
  • In Schritt S2 wird die verwendete Bandbreite seit t(i – 1) aus der Differenz zwischen sowohl dem Übertragungseinheitidentifizierer für die gegenwärtige Zeit t(i) und auch einem Eintrag des Identifizierers für die vorherige Abfragezeit t(i – 1) berechnet. Wo die Übertragungseinheitsidentifizierer beispielsweise Bestätigungsnummern sind, die in Folge für nachfolgende Bestätigungen zugewiesen sind, gibt die Differenz t(i) – t(i – 1) direkt eine Zahl eines Ergebnisses, das eine Anzahl von Bytes repräsentiert, die zwischen beiden Zeitpunkten bestätigt wurden. Unter dem TCP/IP gibt die Differenz tatsächlich direkt die Anzahl von Bytes an, da unter diesem Protokoll die Differenz zwischen zwei aufeinander folgenden Bestätigungsnummern die Anzahl von dazwischen übertragenen Bytes darstellt.
  • Die Berechnung der verwendeten Bandbreite zwischen t(i – 1) und t(i) kann durchgeführt werden als: AUBt(i – 1) = (ANt(i) – ANt(i – 1))/(t(i) – t(i – 1)), (4)wobei:
  • AUBt(i – 1)
    = tatsächlich verwendete Bandbreite seit t(i – 1)
    ANt(i)
    = Bestätigungsnummer zur Zeit (t(i)
    ANt(i – 1)
    = Bestätigungsnummer zur Zeit t(I – 1)
    t(i)
    = Zeit t(i)
    t(i – 1)
    = Zeit t(i – 1)
  • In Schritt S3 kann die "Fenstergröße zum Zeitpunkt t(i)" (WSt(i)) Berechnung (Gleichung 3) wie folgt durchgeführt werden: WSt(i) = WSt(i – 1)·DuBt(i)/AUBt(i – 1), (5)
  • Die "gewünschte verwendete Bandbreite zum Zeitpunkt t(i)" (DUBt(i)) und "Fenstergröße zum Zeitpunkt t(i – 1)" (WSt(i – 1)) sind bekannte Werte. Insbesondere ist die gewünschte verwendete Bandbreite zum Zeitpunkt t(i) die Bandbreite für den betreffenden Fluß, die erreicht werden soll, und die Fenstergröße zum Zeitpunkt t(i – 1) ist aus dem vorherigen Durchlauf von Schritt S3 bekannt.
  • In Schritt S4 kann der Fenstergröße zum Zeitpunkt t(i) Wert in dem WINDOW SIZE-Feld einer ausgehenden Nachricht oder ausgehenden Nachrichten (siehe beispielsweise 5) eingestellt werden. Der Fenstergrößenwert wird dann in einer konventionellen Art und Weise verwendet, um die Menge der Information anzuzeigen, die der Empfänger von seinem Eingangspuffer zum gegenwärtigen Zeitpunkt empfangen kann. Dieser Wert wird sich mit der Zeit verändern, abhängig von dynamischen Faktoren, die mit der Verbindung verknüpft sind, welche die tatsächliche Bandbreite bis zu einem folgenden Zeitpunkt, zu dem die Fenstergröße, wie oben beschrieben, erneut berechnet wird, bestimmen wird.
  • Nach einer neuen Abfrageverzögerung (Schritt S5) wird die Steuerung zurück zu Schritt S1 geführt.
  • Man kann somit sehen, daß das Verfahren, wie es in 8 dargestellt ist, die Steuerung der Netzwerkbandbreiten für eine Verbindung erlaubt durch dynamisches Bestimmen einer gegenwärtigen Fenstergröße für einen Zielpuffer als ein Bandbreitensteuerparameter für einen Kommunikationsfluß. Das Verfahren beinhaltet Schritte des Bestimmens einer ersten Fenstergröße für den Zielpuffer an einem ersten Zeitpunkt an einem ersten Durchlauf der Verfahrensschritte S1–S5. Dann bei einem zweiten Durchlauf der Schritte S1–S5 zu einem zweiten Zeitpunkt, beinhaltet das Verfahren das Bestimmen einer gegenwärtigen Fenstergröße zum zweiten Zeitpunkt als eine Funktion der ersten Fenstergröße, einem gewünschten Bandbreitenwert und einer Bandbreite, die zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt verwendet wurde. Die Schritte, die in 8 dargestellt wurden, werden zu nachfolgenden Zeitpunkten wiederholt, um die adaptive Bandbreitensteuerung bereitzustellen.
  • Die verwendete Bandbreite wird bestimmt von einer ersten Übertragungseinheit in einer ersten Richtung am ersten Zeitpunkt und einer zweiten Übertragungseinheit in derselben Richtung an dem zweiten Zeitpunkt, wobei die Übertragungseinheit ein Netzwerknachrichtenpaket oder ein Netzwerkbestätigungspaket sein kann. Die verwendete Bandbreite wird aus einem Unterschied zwischen den Übertragungseinheitnummern zum ersten und zweiten Zeitpunkt bestimmt.
  • In der speziell beschriebenen Ausführungsform ist die Übertragungseinheitnummer eine TCP-Paketsequenznummer.
  • Der erste und der zweite Zeitpunkt können in Antwort auf einen Takt oder alternativ in Antwort auf das Erfassen des Empfangs von entsprechenden Netzwerknachrichten in einer gegebenen Richtung über eine Verbindung oder auf entsprechende Bestätigungen oder tatsächlich auf irgendeinen anderen Impuls, so wie es gewünscht ist, bestimmt werden.
  • Das Verfahren kann durch Software implementiert werden, die auf einem Computer oder in einer DIN-Qualität-Einheit bei oder als eine Station 10 arbeitet. Dies Software kann als eine Abfolge von Befehle in einem Speicher des Computers (z. B. ein Speicher einer Station, wie in 2 gezeigt ist) oder auf einem transportierbaren Datenträger für die Verwendung mit solch einem Computer gespeichert sein. Sie könnte ebenso zumindest teilweise durch geeignete Hardwarelogik, beispielsweise in Form von einem oder mehreren anwendungsspezifischen Schaltkreisen (ASICs) implementiert sein.
  • 9 ist eine schematische Darstellung der funktionalen Komponenten eines Beispiels eines Bandbreitensteuermechanismus nach einer Ausführungsform der Erfindung. Dieser Mechanismus kann ebenso durch Software implementiert werden für das Steuern des Betriebs von programmierbarer Computerhardware oder zumindest teilweise durch Spezialhardware.
  • Wie in 9 gezeigt ist, veranlaßt der Controller 80 des Bandbreitencontrollers, daß eine erste Übertragungseinheitnummer (zum Beispiel eine Bestätigungsnummer – siehe 5) aus einer Übertragungseinheit (zum Beispiel ein TCP-Segment) extrahiert wird und in einem ersten Register 82 zusammen mit einem Zeiteintrag der ersten Übertragungseinheit (falls erforderlich) und/oder dem Eintrag der ersten Übertragungseinheitnummer gespeichert wird.
  • Der Controller 80 veranlasst ebenso, daß eine zweite Übertragungseinheitnummer (zum Beispiel eine Bestätigungsnummer – siehe 5) aus einer nachfolgenden Übertragungseinheit (zum Beispiel einem TCP-Segment) extrahiert wird und in einem zweiten Register 84 zusammen mit einem Eintrag der Zeit der zweiten Übertragungseinheit (falls erforderlich) und/oder dem Eintrag der zweiten Übertragungseinheitnummer gespeichert wird.
  • Der Controller 80 veranlasst dann, daß ein Prozessor 86 einen verwendeten Bandbreitenwert bestimmt durch Berechnen der Datenmenge, die zwischen dem ersten und zweiten Zeitpunkt (zum Beispiel für aufeinander folgende TCP-Segmente, die Anzahl von übertragenen Bytes durch Subtrahieren der ersten Bestätigungsnummer von der zweiten Bestätitungsnummer) übertragen wurden. Wenn die Berechnung in regelmäßigen Intervallen durchgeführt wird, ist es nicht notwendig, die Zeiten der Übertragungseinheiten oder die Aufzeichnung der Übertragungseinheitnummern aufzuzeichnen. Falls die Berechnung jedoch nicht in regelmäßigen Abständen durchgeführt werden, könnten die Zeitpunkte verwendet werden, um eine verwendete Bandbreite pro Einheitszeitintervalle zu bestimmen.
  • Der Controller veranlaßt dann, daß ein Prozessor 88 eine gegenwärtige Fenstergröße in Übereinstimmung mit Gleichung (4) oben auf der Basis der verwendeten Bandbreitenwertausgabe von dem Prozessor 86, dem gewünschten Bandbreitenwert von einem gewünschten Bandbreitenregister (DBR) 90 und einem vorherigen Fenstergrößenwert von einem Fenstergrößenregister (WSR) 92, der zum Zeitpunkt der ersten Zeit bestimmt wurde, bestimmt. Der resultierende gegenwärtige Fenstergrößenwert kann von dem Prozessor 88 zu der Nachrichtenerzeugungslogik (MGL) 94 ausgegeben werden. Die berechnete gegenwärtige Fenstergröße ersetzt dann den Wert in dem Fenstergrößenregister 92. Die Nachrichtenerzeugungslogik 94 kann konventionell sein und verwendet den berechneten gegenwärtigen Fenstergrößenwert für das WINDOW-Feld eines TCP-Segments.
  • Der gewünschte Bandbreitenwert in dem Register 90 kann für eine bestimmte Verbindung vorbestimmt sein oder kann dynamisch durch irgendeine geeignete Technik für das Steuern der Verteilung der Bandbreite zwischen unterschiedlichen Verbindungen berechnet werden. Die ursprüngliche Fenstergröße kann im wesentlichen zufällig gewählt werden. Da das Verfahren ein adaptives ist, wird die Fenstergröße schnell nach einer geringen Anzahl von Iterationen das Optimum erreichen.
  • Vorzugsweise veranlaßt der Controller, daß die Register 82 und 84 in einer Tandem-Art und Weise betrieben werden, so daß die Register alternativ den gegenwärtigen und den vorher aufgezeichneten Wert enthalten.
  • Obgleich getrennte Prozessoren 86 und 88 in 9 aus Gründen der einfachen Erläuterung gezeigt sind, können diese als einzelner Prozessor oder als Verarbeitungslogik implementiert sein.
  • In einer bevorzugten Ausführungsform kann der Bandbreitensteuermechanismus Teil eines Servers bilden und kann auf den Empfang von Nachrichten an dem Server reagieren, um Bestätigungsnummern von empfangenen Nachrichten zu extrahieren. Der Server kann dann die über ein oder mehrere Verbindungen verfügbarer Bandbreite steuern.
  • Obgleich aus Gründen der Erläuterung ein Bandbreitensteuermechanismus für eine einzelne Verbindung beschrieben wurde, kann die Bandbreitensteuerung in der gleichen Weise für eine Mehrzahl von unterschiedlichen Verbindungen, beispielsweise zwischen einem Server und einer Mehrzahl von Clients bewirkt werden. Algorithmen können eingesetzt werden, um die Verteilung der gewünschten Bandbreite zwischen den unterschiedlichen Verbindungen in Überein stimmung mit irgendwelchen geeigneten Parametern, wie zum Beispiel Bandbreitenprioritäten, bezahlte Bandbreiten usw. bestimmen.
  • Der Bandbreitensteuermechanismus kann als ein Software-Bandbreitensteuermechanismus auf einem Trägermedium (zum Beispiel ein computerlesbares Speichermedium, wie zum Beispiel eine optische oder magnetische Platte oder Band, Festkörperspeicher, usw., oder ein Telekommunikationsmedium, wie zum Beispiel eine Telefonleitung, eine Funkverbindung, usw., oder irgendein anderes geeignetes Trägermedium) bereitgestellt werden.
  • Es versteht sich, daß obgleich bestimmte Ausführungsformen der Erfindung beschrieben wurden, viele Modifikationen/Hinzufügungen und/oder Ersetzungen innerhalb des Schutzbereichs der vorliegenden Erfindung durchgeführt werden können.

Claims (20)

  1. Computerimplementiertes Verfahren zum Steuern der Netzwerkbandbreite durch das dynamische Bestimmen einer gegenwärtigen Fenstergröße für einen Zielpuffer als einen bandbreiten Steuerparameter für einen Kommunikationsfluß, wobei das Verfahren aufweist: a) Bestimmen einer ersten Fenstergröße für den Zielpuffer zu einem ersten Zeitpunkt, b) Bestimmen einer gegenwärtigen Fenstergröße zu einem zweiten Zeitpunkt als eine Funktion der ersten Fenstergröße, einem gewünschten Bandbreitenwert und einer Bandbreite, die zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt verwendet wurde.
  2. Verfahren nach Anspruch 1, wobei Schritt (b) aufweist: Bestimmen der verwendeten Bandbreite von einer ersten Übertragungseinheit in einer ersten Richtung zu dem ersten Zeitpunkt und einer zweiten Übertragungseinheit in derselben Richtung zum zweiten Zeitpunkt.
  3. Verfahren nach Anspruch 2, wobei die erste Übertragungseinheit eine Netzwerknachricht ist.
  4. Verfahren nach Anspruch 2, bei dem die zweite Übertragungseinheit eine Netzwerkbestätigung ist.
  5. Verfahren nach einem der vorherigen Ansprüche, bei dem Schritt (b) aufweist: Bestimmen der verwendeten Bandbreite aus einer Differenz zwischen Übertragungseinheitsidentifizierern an dem ersten und zweiten Zeitpunkt.
  6. Verfahren nach Anspruch 5, bei dem der Übertragungseinheitsidentifizierer eine TCP-Sequenzzahl ist.
  7. Verfahren nach einem der vorherigen Ansprüche, bei dem der erste Zeitpunkt bestimmt wird als der Zeitpunkt einer ersten Übertragungseinheit in einer ersten Richtung und ein zweiter Zeitpunkt bestimmt wird als ein Zeitpunkt einer zweiten Übertragungseinheit in derselben Richtung.
  8. Verfahren nach einem der vorherigen Ansprüche, bei dem die gegenwärtige Fenstergröße berechnet wird als eine Deltafunktion mit der Formel WSt(i) = WSt(i – 1)·DUBt(i)/AUBt(i – 1),wobei: WSt(i) = Fenstergröße seit t(i) WSt(i – 1) = Fenstergröße seit t(i – 1) DUBt(i) = gewünschte verwendete Bandbreite seit t(i) AUBt(i – 1) = tatsächlich verwendete Bandbreite seit t(i – 1)
  9. Bandbreitensteuermechanismus für das Steuern der Netzwerkbandbreite durch dynamisches Bestimmen einer gegenwärtigen Fenstergröße für einen Zielpuffer als ein Bandbreitensteuerparameter für einen Kommunikationsfluß, wobei der Mechanismus eine Einrichtung für das Bestimmen einer ersten Fenstergröße für den Zielpuffer zu einem ersten Zeitpunkt und für das Bestimmen einer gegenwärtigen Fenstergröße als eine Funktion der ersten Fenstergröße, einem gewünschten Bandbreitenwert und einer zwischen dem ersten Zeitpunkt und einem zweiten Zeitpunkt verwendeten Bandbreite aufweist.
  10. Brandbreitensteuermechanismus nach Anspruch 9, für eine Telekommunikationsnetzwerkstation, wobei der Bandbreitensteuermechanismus konfiguriert ist, um betrieben zu werden, um eine gegenwärtige Fenstergröße für einen Zielpuffer als ein Bandbreitensteuerparameter für einen Kommunikationsfluß festzulegen, wobei der Bandbreitensteuermechanismus konfiguriert ist, so daß er auf die an dem ersten Zeitpunkt für den Zielpuffer bestimmte Fenstergröße, einen gewünschten Bandbreitenwert und eine zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt verwendete Bandbreite reagiert, um die gegenwärtige Fenstergröße zu bestimmen.
  11. Bandbreitensteuermechanismus nach Anspruch 9 oder Anspruch 10, wobei der Bandbreitensteuermechanismus konfiguriert ist, so daß er betrieben werden kann, um die von einer ersten Übertragungseinheit in einer ersten Richtung während des ersten Zeitpunkts und einer zweiten Übertragungseinheit in derselben Richtung zu dem zweiten Zeitpunkt verwendeten Bandbreite zu bestimmen.
  12. Bandbreitensteuermechanismus nach Anspruch 11, wobei die erste Übertragungseinheit eine Netzwerknachricht ist.
  13. Bandbreitensteuermechanismus nach Anspruch 12, wobei die zweite Übertragungseinheit eine Netzwerkbestätigung ist.
  14. Bandbreitensteuermechanismus nach einem der Ansprüche 9 bis 13, wobei der Bandbreitensteuermechanismus konfiguriert ist, so daß er in der Lage ist, die verwendete Bandbreite aus einem Unterschied zwischen den Übertragungseinheitsidentifizierern zum ersten und zweiten Zeitpunkt zu bestimmen.
  15. Bandbreitensteuermechanismus nach Anspruch 14, wobei der Übertragungseinheitsidentifizierer eine TCP-Sequenzzahl ist.
  16. Bandbreitensteuermechanismus nach einem der Ansprüche 9 bis 15, wobei der Bandbreitensteuermechanismus konfiguriert ist, so daß er in der Lage ist, den ersten Zeitpunkt als eine Zeit einer ersten Übertragungseinheit in eine erste Richtung zu bestimmen und der zweite Zeitpunkt bestimmt wird als eine Zeit einer zweiten Übertragungseinheit in derselben Richtung.
  17. Bandbreitensteuermechanismus nach einem der Ansprüche 9 bis 16, der einen Fenstergrößenspeicher, Übertragungseinheitsidentifiziererspeicher und eine Verarbeitungslogik aufweist, die konfiguriert ist, so daß sie auf einen Übertragungseinheitsidentifizierer in dem Übertragungseinheitsnummernspeicher und auf einen zweiten Übertragungseinheitsidentifizierer reagiert, um einen verwendeten Bandbreitenwert zu bestimmen, und auf den verwendeten Bandbreitenwert, eine erste Fenstergröße in dem Fenstergrößenspeicher und eine gewünschte Bandbreite für einen Kommunikationsfluß reagiert, um eine gegenwärtige Fenstergröße für den Kommunikationsfluß zu bestimmen.
  18. Bandbreitensteuermechanismus nach einem der Ansprüche 9 bis 17, der als Software auf einem Trägermedium konfiguriert ist, wobei der Bandbreitensteuermechanismus konfiguriert ist, um innerhalb einer Telekommunikationsnetzwerkstation betrieben zu werden, um die gegenwärtige Fenstergröße für den Zielpuffer als ein Bandbreitensteuerparameter für einen Kommunikationsfluß festzulegen, wobei der Bandbreitensteuermechanismus konfiguriert ist, so daß er auf die erste Fenstergröße, die für den Zielpuffer an dem ersten Zeitpunkt bestimmt wurde, den gewünschten Bandbreitenwert und die zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt verwendete Bandbreite reagiert, um die gegenwärtige Fenstergröße zu bestimmen.
  19. Besonderheit der Serviceeinheit für eine Telekommunikationsnetzwerkstation, wobei die Besonderheit der Serviceeinheit einen Bandbreitensteuermechanismus nach einem der Ansprüche 9 bis 18 aufweist.
  20. Telekommunikationsnetzwerkstation, die einen Bandbreitensteuermechanismus nach einem der Ansprüche 9 bis 18 aufweist.
DE69833928T 1997-12-22 1998-11-19 Netzwerkbandbreitensteuerung Expired - Fee Related DE69833928T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US995707 1997-12-22
US08/995,707 US6249530B1 (en) 1997-12-22 1997-12-22 Network bandwidth control

Publications (2)

Publication Number Publication Date
DE69833928D1 DE69833928D1 (de) 2006-05-11
DE69833928T2 true DE69833928T2 (de) 2006-12-07

Family

ID=25542121

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69833928T Expired - Fee Related DE69833928T2 (de) 1997-12-22 1998-11-19 Netzwerkbandbreitensteuerung

Country Status (5)

Country Link
US (1) US6249530B1 (de)
EP (1) EP0924902B9 (de)
JP (1) JPH11275150A (de)
CA (1) CA2256229A1 (de)
DE (1) DE69833928T2 (de)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6473793B1 (en) * 1994-06-08 2002-10-29 Hughes Electronics Corporation Method and apparatus for selectively allocating and enforcing bandwidth usage requirements on network users
JPH11243419A (ja) * 1998-02-26 1999-09-07 Fujitsu Ltd Tcpレイヤのレート制御方式
US6621829B1 (en) * 1998-05-20 2003-09-16 Nortel Networks Limited Method and apparatus for the prioritization of control plane traffic in a router
US6505253B1 (en) * 1998-06-30 2003-01-07 Sun Microsystems Multiple ACK windows providing congestion control in reliable multicast protocol
US6728263B2 (en) * 1998-08-18 2004-04-27 Microsoft Corporation Dynamic sizing of data packets
FI106417B (fi) * 1998-12-08 2001-01-31 Nokia Mobile Phones Ltd Menetelmä tiedonsiirron optimoimiseksi
US6483805B1 (en) * 1998-12-28 2002-11-19 Nortel Networks Limited Internet differentiated services service for transaction applications
US6438105B1 (en) * 1999-02-08 2002-08-20 3Com Corporation Reliable internet facsimile protocol
US6731600B1 (en) * 1999-02-08 2004-05-04 Realnetworks, Inc. System and method for determining network conditions
SG87029A1 (en) * 1999-05-08 2002-03-19 Kent Ridge Digital Labs Dynamically delayed acknowledgement transmission system
EP1059828A1 (de) * 1999-06-11 2000-12-13 BRITISH TELECOMMUNICATIONS public limited company Zeitabhängige Bandbreitenzuordnung in einem Kommunikationsnetzwerk
AU6942200A (en) * 1999-08-26 2001-03-19 Spinway, Inc. Bandwidth adaptive data transfer system and method
JP3391316B2 (ja) * 1999-10-22 2003-03-31 日本電気株式会社 ネットワークシステム
US6505034B1 (en) * 1999-12-20 2003-01-07 Nokia Ip Inc. Adaptive ARQ feedback bandwidth allocation
US7106742B1 (en) * 2000-01-13 2006-09-12 Mercury Computer Systems, Inc. Method and system for link fabric error detection and message flow control
US6674717B1 (en) * 2000-03-30 2004-01-06 Network Physics, Inc. Method for reducing packet loss and increasing internet flow by feedback control
US6947445B1 (en) * 2000-06-09 2005-09-20 Hughes Electronics Corporation Available bandwidth control mechanism
US7047309B2 (en) 2000-08-23 2006-05-16 International Business Machines Corporation Load balancing and dynamic control of multiple data streams in a network
US6772217B1 (en) 2000-08-23 2004-08-03 International Business Machines Corporation Internet backbone bandwidth enhancement by initiating an additional data stream when individual bandwidth are approximately equal to the backbone limit
US8009667B1 (en) * 2001-01-16 2011-08-30 Wi—LAN, Inc. Packing source data packets into transporting packets with fragmentation
US7072297B2 (en) * 2001-04-30 2006-07-04 Networks Physics, Inc. Method for dynamical identification of network congestion characteristics
US7551560B1 (en) * 2001-04-30 2009-06-23 Opnet Technologies, Inc. Method of reducing packet loss by resonance identification in communication networks
JP2002368832A (ja) * 2001-06-08 2002-12-20 Nec Eng Ltd プロトコル変換装置
US7697447B2 (en) * 2001-08-10 2010-04-13 Motorola Inc. Control of jitter buffer size and depth
US7539756B2 (en) * 2002-01-31 2009-05-26 Darby & Mohaine, L.L.C. Method and system of data packet transmission timing for controlling bandwidth
US7113497B2 (en) * 2002-05-08 2006-09-26 Lenovo (Singapore) Pte. Ltd. Bandwidth management in a wireless network
US7171482B2 (en) * 2002-07-12 2007-01-30 Ianywhere Solutions, Inc. System and method for managing bandwidth utilization
EP1383281A1 (de) * 2002-07-19 2004-01-21 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Verfahren zur Berechnung von Übertragungsfenstergrösse
US20040017773A1 (en) * 2002-07-23 2004-01-29 Eyeball Networks Inc. Method and system for controlling the rate of transmission for data packets over a computer network
US7069326B1 (en) * 2002-09-27 2006-06-27 Danger, Inc. System and method for efficiently managing data transports
US7428243B2 (en) 2002-10-18 2008-09-23 Darby & Mohaine, Llc Method and system for varying data packet size for controlling bandwidth
US7421502B2 (en) * 2002-12-06 2008-09-02 International Business Machines Corporation Method and system for storage-aware flow resource management
WO2004057817A2 (en) * 2002-12-19 2004-07-08 Koninklijke Philips Electronics N.V. Protecting real-time data in wireless networks
US7688733B1 (en) 2003-08-04 2010-03-30 Sprint Communications Company L.P. System and method for bandwidth selection in a communication network
KR100604597B1 (ko) * 2004-02-20 2006-07-24 주식회사 팬택앤큐리텔 이동 통신 단말기
US7664067B2 (en) * 2005-12-15 2010-02-16 Microsoft Corporation Preserving socket connections over a wireless network
US8170802B2 (en) * 2006-03-21 2012-05-01 Westerngeco L.L.C. Communication between sensor units and a recorder
US9274238B2 (en) * 2008-11-08 2016-03-01 Westerngeco L.L.C. Reliable broadcast delivery of communications in land-based seismic surveying
US9350616B1 (en) * 2010-05-11 2016-05-24 Trend Micro Inc. Bandwidth prediction using a past available bandwidth value and a slope calculated from past available bandwidth values
JP5258938B2 (ja) * 2011-07-26 2013-08-07 株式会社日立製作所 通信装置
US9660924B2 (en) * 2012-04-16 2017-05-23 Hewlett Packard Enterprise Development Lp Determining a maximal size of packets
GB2493639B (en) * 2012-08-22 2014-02-12 Broadcom Corp Method and apparatus for transmitting data units
US9131251B2 (en) * 2012-09-20 2015-09-08 Google Technology Holdings LLC Use of a receive-window size advertised by a client to a content server to change a video stream bitrate streamed by the content server
US9544344B2 (en) * 2012-11-20 2017-01-10 Google Technology Holdings LLC Method and apparatus for streaming media content to client devices
US10122645B2 (en) 2012-12-07 2018-11-06 Cisco Technology, Inc. Output queue latency behavior for input queue based device
US9628406B2 (en) * 2013-03-13 2017-04-18 Cisco Technology, Inc. Intra switch transport protocol
US9860185B2 (en) 2013-03-14 2018-01-02 Cisco Technology, Inc. Intra switch transport protocol

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163046A (en) * 1989-11-30 1992-11-10 At&T Bell Laboratories Dynamic window sizing in a data network
US5063562A (en) * 1990-05-23 1991-11-05 International Business Machines Corporation Flow control for high speed networks
US5309437A (en) 1990-06-29 1994-05-03 Digital Equipment Corporation Bridge-like internet protocol router
CA2065578C (en) 1991-04-22 1999-02-23 David W. Carr Packet-based data compression method
US5307413A (en) 1991-07-19 1994-04-26 Process Software Corporation Method and apparatus for adding data compression and other services in a computer network
US5307347A (en) 1992-04-10 1994-04-26 International Business Machines Corporation Method and apparatus for sharing a telecommunications channel among multiple users
JP2826416B2 (ja) 1992-06-05 1998-11-18 日本電気株式会社 ローカルエリアネットワーク間の接続ルータ
US5442637A (en) * 1992-10-15 1995-08-15 At&T Corp. Reducing the complexities of the transmission control protocol for a high-speed networking environment
FI964919L (fi) * 1994-06-08 1997-02-07 Hughes Aircraft Co Laite ja menetelmä hybridiverkkoon pääsyä varten
US5535199A (en) 1994-09-06 1996-07-09 Sun Microsystems, Inc. TCP/IP header compression X.25 networks
US5592627A (en) * 1994-10-11 1997-01-07 Emprise Technologies, L.P. Pipelined, sliding-window, flow control for end-to-end communication sessions
US5764625A (en) * 1995-11-13 1998-06-09 International Business Machines Corp. Optimal flow control window size design in high-speed networks
US5974028A (en) * 1997-02-24 1999-10-26 At&T Corp. System and method for improving transport protocol performance in communication networks having lossy links
US6023453A (en) * 1997-09-11 2000-02-08 Nokia Telecommunications, Oy System and method employing last occurrence and sliding window technique for determining minimum and maximum values

Also Published As

Publication number Publication date
EP0924902B1 (de) 2006-03-22
CA2256229A1 (en) 1999-06-22
DE69833928D1 (de) 2006-05-11
EP0924902A3 (de) 2003-04-02
US6249530B1 (en) 2001-06-19
EP0924902B9 (de) 2006-06-28
JPH11275150A (ja) 1999-10-08
EP0924902A2 (de) 1999-06-23

Similar Documents

Publication Publication Date Title
DE69833928T2 (de) Netzwerkbandbreitensteuerung
DE19983404B4 (de) Verfahren und Vorrichtung zur Verwendung bei der Einstellung eines TCP Gleitfensters
DE69922180T2 (de) Verfahren und Vorrichtung zur Datenflusssteuerung
DE69829203T2 (de) Paketnetzwerk
DE69031266T2 (de) Übertragungsarchitektur für Hochgeschwindigkeitsnetzwerk
DE69033551T2 (de) Vermeidung von Überlastung in Computer-Netzwerken mit Hilfe von Verzögerung
DE10066507B3 (de) Verfahren und Vorrichtung zur Kommunikation mit verzögerter Bestätigung und Alarmverwaltung
EP0966824B1 (de) Verfahren zum datentransport sowie rechnernetzwerk zur durchführung des verfahrens
DE69930992T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen
DE69937537T2 (de) Überwachung von Internet unterschiedlichen Diensten für Transaktionsverwendungen
EP1224777B1 (de) Verfahren zum verbessern der datenübertragungsqualität in datenpaketorientierten kommunikationsnetzen
DE60212104T2 (de) Auf Empfänger basierte Umlaufzeitmessung in TCP
DE60211322T2 (de) Empfängerinitiierte Inkrementierung der Übertragungsrate
DE602005002006T2 (de) Verfahren und Vorrichtung zur Ermittlung der verfügbaren Bandbreite in einem Datenpaketnetzwerk
DE69219266T2 (de) Zuweisung von Mitteln in einem dienste-integrierenden Satelliten-Netzwerk durch vorzeitige Reservierung
WO2019007516A1 (de) Verfahren zur performanten datenübertragung in einem datennetz mit teilweise echtzeit-anforderungen und vorrichtung zur durchführung des verfahrens
DE69225667T2 (de) Datenflusssteuerung
DE112011105003T5 (de) Sendevorrichtung, Empfangsvorrichtung, Kommunikationsvorrichtung, Kommunikationssystem und Sendeverfahren
DE19543892A1 (de) Verfahren und Vorrichtung zum Bestimmen, wann alle Pakete einer Nachricht angekommen sind
DE60037361T2 (de) Verfahren und Vorrichtung zur Mediumzugriffssteuerung zur Paketübertragung über einen Puffereinfügungsring
EP3840303B1 (de) Datenübertragungseinrichtung, datenempfangseinrichtung und sendeverfahren zum übertragen von datenpaketen durch einen tunnel
DE102015111438B3 (de) Verfahren zum Transport von Datenpaketen
EP2002611A1 (de) Verfahren und vorrichtung zur datenverkehrsglättung
DE102019125545B3 (de) Datenübertragungsverfahren, segment-telegramm und automatisierungskommunikationsnetzwerk
DE10327545B4 (de) Verfahren und Vorrichtung zur Verarbeitung von Echtzeitdaten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee