DE60113549T2 - Tcp-flusssteurung - Google Patents

Tcp-flusssteurung Download PDF

Info

Publication number
DE60113549T2
DE60113549T2 DE60113549T DE60113549T DE60113549T2 DE 60113549 T2 DE60113549 T2 DE 60113549T2 DE 60113549 T DE60113549 T DE 60113549T DE 60113549 T DE60113549 T DE 60113549T DE 60113549 T2 DE60113549 T2 DE 60113549T2
Authority
DE
Germany
Prior art keywords
node
mode
datagram
tcp
data communication
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.)
Revoked
Application number
DE60113549T
Other languages
English (en)
Other versions
DE60113549D1 (de
Inventor
Jussi Ruutu
Jian Ma
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.)
Nokia Oyj
Original Assignee
Nokia Oyj
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=9896228&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE60113549(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Nokia Oyj filed Critical Nokia Oyj
Application granted granted Critical
Publication of DE60113549D1 publication Critical patent/DE60113549D1/de
Publication of DE60113549T2 publication Critical patent/DE60113549T2/de
Anticipated expiration legal-status Critical
Revoked 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/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • H04L47/323Discarding or blocking control packets, e.g. ACK packets
    • 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]

Description

  • Diese Erfindung bezieht sich auf ein Steuern des Datenflusses, insbesondere in Netzwerken, deren Betreiben bei hoher Geschwindigkeit erforderlich ist.
  • Viele Netzwerke verwenden das Übertragungssteuerprotokoll (TCP, „Transmission control protocol") als ihr Transportschichtprotokoll. Das Übertragungssteuerprotokoll ist das primäre Transportprotokoll in der üblicherweise verwendeten TCP/IP-Protokollgruppe. Das Internetprotokoll (IP) stellt keinen zuverlässigen Bitstrom zur Verfügung: Fehler im Laufe einer Übertragung werden durch das IP nicht korrigiert. Ein Überlagern von TCP auf eine IP-Anbindung implementiert einen zuverlässigen Bytestrom über den durch das IP bereitgestellten, unzuverlässigen Datagrammdienst. Als ein Teil der Implementierung des zuverlässigen Dienstes ist das TCP auch für Fluss- und Blockierungssteuerung verantwortlich: Sicherstellen, dass die Daten bei einer mit den Kapazitäten sowohl des Empfängers als auch der zwischenliegenden Anbindungen in dem Netzwerkweg bzw. -pfad konsistenten Rate übertragen werden. Im Ergebnis sind die meisten Durchsatzprobleme in einem TCP/IP-System in dem TCP begründet.
  • Das TCP ist eines der wenigen Transportprotokolle, das Blockierungssteuermechanismen aufweist (siehe W. Richard Stevens, „TCP/IP Illustrated Volume 1, The Protocols", und IETF RFC 793, „Transport Control Protocol", September 1981). Ein Schlüsselelement des TCP-Blockierungsmechanis mus ist sein Langsam-Startsondieralgorithmus („Slow Start Probe Algorithm"). Fährt eine TCP-Verbindung hoch, dann erfordert die TCP-Spezifikation, dass die Verbindung konservativ ist, und nimmt an, dass die für den Empfänger zur Verfügung stehende Bandbreite klein ist. Das TCP soll einen Langsam-Start („Slow Start") genannten Algorithmus zur Sondierung des Pfads verwenden, um in Erfahrung zu bringen, wie viel Bandbreite zur Verfügung steht, bevor die Rate des Datenflusses erhöht wird. Der Langsam-Start wird verwendet, so dass sich der TCP-Fluss, wenn eine neue TCP-Verbindung gestartet wird, nach einer unbestimmten Untätigkeitszeitspanne, oder wenn eine Bestätigung (ACK, „Acknowledgement") nach einer (ein verlorenes Paket anzeigenden) eingestellten Zeitspanne nicht zurückgekehrt ist, fortsetzt. Außerdem wird die Größe des Übertragungsfensters verringert. Jede TCP-Bestätigung spezifiziert ein entsprechendes Paket, so dass das System identifizieren kann, welches Paket verloren gegangen ist.
  • Eine TCP-Anbindung wird zwischen zwei Einrichtungen eingerichtet, von denen eine die Quelle bzw. Quelleneinrichtung einer zu übertragenden Datennachricht ist, und die andere die Datennachricht empfangen soll. Die beiden Einrichtungen sind durch einen Datenpfad verbunden, über den sich die Daten bewegen sollen. Die Quelleneinrichtung erzeugt Datagramme (z. B. Pakete), die zusammen die zu sendende Nachricht darstellen. Die Datagramme werden über den Datenpfad übertragen. Schließlich werden die Datagramme durch die Empfängereinrichtung wieder zusammengesetzt, die ebenso ein Wiederübertragen aller Datagramme anfordert, die sie nicht korrekt dekodieren kann.
  • Während der Langsam-Startalgorithmus läuft, startet die TCP-Quelleneinrichtung mit einem auf ein Segment eingestellten, nominellen Übertragungsfenster. In diesem Zu stand überträgt sie nicht mehr als ein Datagramm (z.B. Paket), wenn sie nicht eine Bestätigung von der Empfängereinrichtung empfangen hat. Wird eine Bestätigung (ACK) empfangen, dann wird die Fenstergröße um eins erhöht. In der Praxis tendiert die Fenstergröße zu einer exponentiellen Erhöhung, da eine ACK die Größe auf zwei erhöht, ACKs von diesen beiden Segmenten die Fenstergröße auf vier erhöhen, deren ACKs wiederum die Größe auf acht erhöhen usw. Dies ist gemäß 1 gezeigt. Linie 1 gemäß 1 zeigt das exponentielle Wachstum der Fenstergröße FG bis zu einer maximalen FGVERF einem Zeitpunkt t1.
  • Es gibt zwei Probleme mit dem Langsam-Startalgorithmus auf Hochgeschwindigkeitsnetzwerken. Zuerst ist der Sondieralgorithmus derart gestaltet, dass es eine beträchtliche Zeit dauern kann, bis die Anbindung ihre Maximalgeschwindigkeit erreicht. Die zum Erreichen der Maximalgeschwindigkeit erforderliche Zeit (t1 gemäß 1) ist zur Umlaufzeit (RTT, „Round Trip Time") und dem Verzögerungs-Bandbreitenprodukt (DBW, „Delay Bandwitdh Product") direkt proportional und zur mittleren Segmentlänge (L) indirekt proportional. Erhöht sich die verfügbare Bandbreite, oder erhöht sich die Umlaufzeit, oder beide, dann kann diese Hochfahrzeit sehr lang sein. Ist die Anbindung ansonsten untätig, dann wird während jener Zeitspanne ein Großteil der Anbindungsbandbreite nicht verwendet, und deshalb potentiell verschwendet. Dies ist gemäß 1 gezeigt. Es kann angenommen werden, dass von dem Start der TCP-Verbindung an eine der verfügbaren Fenstergröße FGVERF entsprechende Bandbreite zur Verfügung steht. Es wird jedoch bis zum Zeitpunkt t1 die Bandbreite unterhalb jener nicht zur Gänze verwendet. Deshalb stellt der schraffierte Bereich 2 gemäß 1 die verschwendete Bandbreite dar.
  • Ein potentiell bedeutsameres Problem besteht darin, dass in vielen Fällen (insbesondere wenn vergleichsweise kurze Nachrichten zu senden sind) die gesamte Datenübertragung vollendet ist, bevor der Langsam-Startalgorithmus beendet und die bandbreitenbegrenzte maximale Fenstergröße FGVERF erreicht ist. In dieser Situation widerfährt dem Benutzer nie die volle Anbindungsbandbreite. Die gesamte Übertragungszeit wird in dem Langsam-Start verbracht. Es gibt einige praktische Situationen, in denen dies auftreten kann. Diese Problem ist beispielsweise insbesondere für Hyper-Texttransferprotokoll- (HTTP, „Hyper-Text Transfer Protocol") -Verbindungen (wie zur Übertragung von Daten des world wide web verwendet) schwerwiegend, da das HTTP bekanntermaßen für jedes Element auf einer Netzseite eine neue TCP-Verbindung startet.
  • Es liegt in dem Langsam-Startalgorithmus selbst zusätzlich zu der Verschwendung von Bandbreite, die durch den Langsam-Startalgorithmus verursacht wird, eine Schwäche darin, dass dieser einen Paketverlust als ein Anzeichen einer Blockierung interpretiert. Tatsächlich kann ein Paketverlust aufgrund anderer Ursachen, wie Übertragungsfehler, auftreten. Es steht unter dem TCP kein einfacher Weg zur Unterscheidung von Verlusten aufgrund von Übertragungsfehlern von Verlusten aufgrund einer Blockierung offen, weswegen der Langsam-Startalgorithmus auf der konservativen Annahme ausgelegt ist, das alle Verluste aufgrund einer Blockierung auftreten. Somit senkt die TCP-Quelleneinrichtung ihre Übertragungsrate, selbst wenn ein Paketverlust aufgrund eines Übertragungsfehlers anstelle einer Blockierung auftritt. Nach dieser Ratensenkung kann es eine unnötig lange Zeit dauern, bis die volle Übertragungsrate erreicht ist. Im Ergebnis wird wieder zur Verfügung stehende Bandbreite verschwendet.
  • Diese Probleme werden erschwert, wenn das TCP über Anbindungen läuft, die vergleichsweise hohe Fehlerraten oder eine variable Datenkapazität aufweisen. Es weisen beispielsweise in einigen Fällen drahtlose Anbindungen (wie jene zu Mobiltelefonen oder Satelliten) höhere Fehlerraten als herkömmliche kabelgebundene terrestrische Anbindungen auf. Derartige höhere Fehlerraten spielen aus zwei Gründen eine Rolle. Sie verursachen erstens Fehler in Datagrammen, die dann wieder übertragen werden müssen. Zweitens interpretiert das TCP einen Verlust typischerweise als ein Anzeichen einer Blockierung, und wenn ein Verlust angetroffen wird, greift es auf eine modifizierte Version des Langsam-Startalgorithmus zurück.
  • Es existieren Systeme, die sich eine Restbandbreite auf einer Anbindung zu Nutzen machen können, die momentan von anderen über die Anbindung laufenden Verbindungen übrig geblieben ist. Ein Beispiel ist der Verfügbare-Bitrate- (ABR, „Available Bit Rate") -Dienst des asynchronen Übertragungsbetriebsart- (ATM, „Asynchronous Transfer Mode") -Systems. Aufgrund des ABR-Dienstes kann ein Benutzer Bandbreite verwenden, die von einer konstanten Bitrate (CBR, „Constant Bit Rate") und anderem Verkehr höherer Priorität übrig gelassen wird. Ein weiteres Beispiel ist das generische Paketfunksystem (GPRS, "Generic Packet Radio System"), das die Bandbreite eines globalen Systems für ein Mobilkommunikations- (GSM, „Global System for Mobile Communications") -Zellulartelefonnetzwerk verwendet, das nicht für GSM-Sprachverbindungen verwendet wird. In dem GSM-System gibt es eine Anzahl von GSM-Frequenzschlitzen, von denen jeder in acht Zeitschlitze unterteilt ist. Ein jeder Zeitschlitz und eine jede Frequenzkombination kann eine GSM-Sprachverbindung unterstützen. Die grundlegende Idee des GPRS ist eine Verwendung von Zeitschlitzen, die sich momentan nicht für Sprachverbin dungen in Verwendung befinden, zum Führen von Datenpaketen. Es ändert sich natürlich die Anzahl verfügbarer Zeitschlitze für GPRS abhängig von der momentanen Nachfrage für GSM-Sprachverbindungen über die Zeit.
  • Ein Problem dynamischer Systeme dieser Art besteht darin, dass die für den Dienst zugewiesene Bandbreite über die Zeit variiert. Wird beispielsweise TCP-Verkehr über GPRS übertragen, dann kann sich die für die TCP-Verbindungen verfügbare Bandbreite plötzlich erhöhen oder verringern (wenn mehrere GSM-Rufe gleichzeitig beendet oder begonnen werden). Dies bedeutet, dass eine TCP-Verbindung über ein derartiges dynamisches System womöglich häufig anhalten und starten muss, und dass in jener Umgebung der Langsam-Startalgorithmus des TCP die TCP-Verbindung daran hindert, vollen Gebrauch von der verfügbaren Bandbreite zu machen. Somit werden Netzwerkressourcen verschwendet, und ein Benutzer kann nicht die volle Leistung der dynamischen verfügbaren Bandbreite erhalten. Dieses Problem ist bei drahtlosen Kommunikationssystemen besonders wichtig, da die Funkschnittstellenkapazität begrenzt und teuer ist.
  • Hätte das TCP-System mehr Informationen bezüglich der Eigenschaften des Pfads, über den die Daten gesendet werden, dann könnte es zu einer Beschleunigung des Langsam-Startvorgangs in der Lage sein, beispielsweise durch Überspringen zumindest eines Teils des Langsam-Startvorgangs und durch Beginnen einer Übertragung bei einer beträchtlich höheren Rate, als durch ein Datagramm dargestellt wird, falls eine Unterstützung durch die Anbindung als wahrscheinlich bekannt wäre. Zur Beschleunigung des Langsam-Startvorgangs wurden mehrere Modelle vorgeschlagen.
  • Eine derartige Technik ist als TCP-Aufspüren („TCP Snooping") bekannt. (Siehe Z. Liu u.a., „Evaluation of TCP Vegas: Emulation and Experiment") proc. ACM SIGCOMM' 95, August 1995, Seiten 185 bis 196; und H. Balakrishnan u.a., „Improving TCP/IP Performance over Wireless Networks") proc. ACM SIGCOMM' 95, August 1995). Diese Idee ist gemäß 2 gezeigt. Die Idee erfordert, dass ein Router oder anderer Knoten 10 zwischen der TCP-Quelleneinrichtung 11 und der TCP-Empfängereinrichtung 12 vorhanden ist. Der Knoten 10 sendet ACKs für TCP-Daten, die die Quelleneinrichtung gesendet hat, zurück zu der Quelleneinrichtung 11, um der Quelleneinrichtung 11 die Illusion eines kurzen Verzögerungspfads zu vermitteln. Der Knoten 10 unterdrückt die von der Empfängereinrichtung 12 zurückkehrenden ACKs, und trägt für die Wiederübertragung jedweder Segmente zu der Empfängereinrichtung 12 Sorge, die hinter dem Router verloren gingen (d.h., in dem Abschnitt des Pfads zwischen dem Knoten 10 und der Empfängereinrichtung 12). Dadurch vermittelt ein derartiger TCP-Aufspürknoten 10 („Snooping Node") der TCP-Quelleneinrichtung 11 den Eindruck, dass der Knoten 10 der tatsächliche TCP-Empfänger ist.
  • 2 zeigt den Fluss von Paketen (PKn) und von entsprechend nummerierten Bestätigungen (ACKn). In der gemäß 2 gezeigten Anordnung erzeugt der Knoten, wenn ein Paket PK64 den Knoten 10 von der Quelleneinrichtung 11 erreicht, eine entsprechende Bestätigung ACK64 für das Paket und gibt jene zu der Quelleneinrichtung zurück. Der Knoten 10 speichert im Speicher 13 Pakete, die durch ihn empfangen, aber noch nicht durch die Empfängereinrichtung 12 bestätigt wurden. Der Knoten 10 sendet wiederum Pakete zu der Empfängereinrichtung (siehe Pakete PK59, PK60). Die Empfängereinrichtung gibt Bestätigungen für die Pakete zurück, die sie korrekt empfangen hat (ACK58, ACK59). Empfängt der Knoten 10 eine derartige Bestätigung (z.B. ACK57 wie gemäß 2 gezeigt), dann verwirft er das entsprechende Paket aus seinem Speicher 13. Der Aufspürknoten 10 muss daher eine beträchtliche Menge von Arbeit ableisten, nachdem er eine ACK zu der Quelleneinrichtung 11 sendet. Er muss das soeben empfangene Datensegment puffern, da es der Quelleneinrichtung 11 nun freisteht, ihre Kopie aufgrund der Bestätigung des Segments zu verwerfen, und daher muss der Router in der Lage sein, die volle Verantwortung für eine Wiederübertragung des Segments zu übernehmen, wenn dieses zwischen dem Router und der Empfängereinrichtung verloren geht. Deshalb können die Daten in dem Puffer nicht gelöscht werden, bis der Aufspürknoten die relevanten ACKs von der TCP-Empfängereinrichtung 12 erhält. Unglücklicherweise weist dieses Verfahren das große Problem auf, dass sich der Puffer in einem Aufspürknoten schnell füllen kann, wenn die verfügbare Bandbreite (wie zellulare Netzwerkressourcen) zwischen dem Knoten und der TCP-Empfängereinrichtung (Anbindung 14 gemäß 2) verringert. Das Problem ist gemäß 3 gezeigt, die ein Paket PK69 zeigt, das den Puffer 13 in dem Knoten 10 zum Überlauf bringt.
  • Es sei darauf hingewiesen, dass das Erfordernis zur Speicherung von Segmenten für den Knoten 10, und somit das Problem eines Pufferüberlaufs, aus der Tatsache erwächst, dass der Aufspürknoten eine Bestätigung erzeugt, die dem selben TCP-Segment entspricht, wie er es soeben empfangen hat.
  • Ein anderer Ansatz zur Bewältigung einiger der Probleme des TCP-Langsam-Startalgorithmus ist als aufgespaltetes TCP („Split TCP") bekannt. In diesem Ansatz wird eine TCP-Verbindung mit einer speziellen TCP-Verbindung in viele TCP-Verbindungen unterteilt. Da jede TCP-Verbindung terminiert wird, ist das aufgespaltete TCP nicht für asymmetrische Pfade anfällig. Und in Fällen, in denen Anwendungen aktiv bei der TCP-Verbindungsverwaltung beteiligt sind (wie Netzcash-Bildung, „web caching"), funktioniert es gut. Ansonsten weist das aufgespaltete TCP die selben Probleme wie das TCP-Aufspüren auf, insbesondere das Einrichten von Puffern.
  • Es bespricht „TCP ACK pacing in ATM networks" von N. Ghani eine Bestätigungsabschreitvorrichtung in einem Übertragungspfad. Die Vorrichtung moduliert die Zeitgabe zwischen TCP-ACK-Paketen, um Verwürfe während Blockierungszeitspannen zu begrenzen. Ein ACK-Paket wird durch die Abschreitvorrichtung abgefangen und verzögert, falls die Weiterleitungsanbindung blockiert ist.
  • Die Druckschrift WO 00/21231 offenbart eine puffernde Netzwerkfunktionseinheit, die sich in einem Übertragungspfad befindet. Die puffernde Funktionseinheit fängt Pakete ab und sendet eine Zustandsnachricht zu der sendenden Funktionseinheit. Die puffernde Funktionseinheit überträgt das empfangene Paket zu der empfangenden Funktionseinheit. Bei Empfang einer Bestätigung von der empfangenden Funktionseinheit, welche ein korrektes Empfangen des Pakets bestätigt, überträgt die puffernde Funktionseinheit eine weitere Zustandsnachricht zu der übertragenden Funktionseinheit, die die erfolgreiche Übertragung des Pakets anzeigt.
  • Es besteht deshalb ein Bedarf an einem verbesserten Verfahren zum Betrieb in Protokollen, wie dem TCP, um zumindest teilweise eines oder mehrere der vorstehend beschriebenen Probleme zu bewältigen.
  • Gemäß einer Ausgestaltung der Erfindung ist ein Datenkom munikationsknoten zum Betrieb in einem Kommunikationsweg zwischen einem Datagrammübertrager und einem Datagrammempfänger gemäß einem Protokoll bereitgestellt, wobei die Datagrammübertragung durch den Übertrager davon abhängig ist, dass er eine Bestätigungsnachricht für ein zuvor übertragenes Datagramm empfängt, wobei der Knoten eine Erfassungsvorrichtung zur Erfassung von Kommunikationen in dem Weg, einen Bestätigungserzeuger, der zur Erzeugung von Bestätigungsnachrichten für Datagramme und zur Übertragung dieser Nachrichten zu dem Übertrager angepasst ist, und eine Flussunterbrechungsvorrichtung, die zur Unterbrechung von Kommunikationen in dem Weg angepasst ist, umfasst, dadurch gekennzeichnet, dass der Knoten zum Betrieb in dem zweiten und zumindest in einem der ersten und dritten der nachstehenden Modi angepasst ist: ein erster Modus, bei dem er die Kommunikationen in dem Weg nicht unterbricht, ein zweiter Modus, bei dem er eine Bestätigungsnachricht für ein Datagramm auf das letzte an dem Knoten erfasste Datagramm hin folgend überträgt, und ein dritter Modus, bei dem er die Mitteilung von Bestätigungsnachrichten zu dem Übertrager verzögert.
  • In der ersten Betriebsart beeinflusst der Knoten vorzugsweise nicht die Kommunikation in dem Pfad, geeigneterweise so, dass Datagramme von dem Übertrager bzw. der Sendereinrichtung frei durch den Knoten zu dem Empfänger hin fließen können, und dass Bestätigungsnachrichten von dem Empfänger bzw. der Empfängereinrichtung frei zu der Sendereinrichtung hin fließen können.
  • In der zweiten und/oder dritten Betriebsart unterbricht der Knoten vorzugsweise die Kommunikation von Bestätigungsnachrichten von der Empfängereinrichtung zu der Sendereinrichtung. In der zweiten und/oder dritten Betriebsart unterbricht der Knoten vorzugsweise die Kommunikation von Datagrammen von der Sendereinrichtung zu der Empfängereinrichtung.
  • Der Knoten kann einen Speicher umfassen, der zur Speicherung von Datagrammen und/oder Bestätigungsnachrichten in der Lage ist. In der zweiten und/oder dritten Betriebsart speichert der Knoten vorzugsweise bei einer Übertragung von der Sendereinrichtung zu der Empfängereinrichtung erfasste Datagramme. Der Knoten kann dann in der zweiten und/oder dritten Betriebsart ein Datagramm zu der Empfängereinrichtung wieder übertragen, wenn er innerhalb einer eingestellten Zeitspanne keine Bestätigungsnachricht für das Datagramm von der Empfängereinrichtung erfasst. Bei Empfangen einer Bestätigungsnachricht für ein Datagramm kann der Knoten jenes Datagramm aus dem Speicher löschen.
  • Der Knoten umfasst vorzugsweise eine Betriebsartbestimmungseinrichtung zur Bestimmung der Betriebsart des Knotens. Die Betriebsartbestimmungseinrichtung kann vorzugsweise bestimmen, ob Bandbreite in dem Kommunikationspfad zur Verfügung steht, beispielsweise unbenutzte Bandbreite in dem Kommunikationspfad (vorzugsweise in beiden Richtungen über den Pfad) und/oder Kapazität in dem Speicher des Knotens (falls vorhanden) zur Verfügung steht. Steht eine derartige Kapazität zur Verfügung, dann kann die Betriebsartbestimmungseinrichtung vorzugsweise den Knoten zum Betrieb in der zweiten Betriebsart veranlassen. Die Betriebsartbestimmungseinrichtung kann vorzugsweise bestimmen, ob eine Blockierung in dem Kommunikationspfad vorliegt. Eine Blockierung in dem Kommunikationspfad kann durch Verzögerung bei einer Kommunikation über den Pfad (entweder von Datagrammen oder von Bestätigungen), überhöhten Datenverlust, überhöhte Anforderungen auf dem Pfad usw. angezeigt sein. Die Blockierung kann aufgrund von einer oder beider aus einer Erhöhung der Menge von über dem Pfad gerichteten Daten und einer Verringerung der Datenkapazität (Bandbreite) des Pfads auftreten. Bestimmt die Einrichtung, dass eine Blockierung vorliegt, dann kann sie vorzugsweise den Knoten zum Betrieb in der dritten Betriebsart veranlassen. Ansonsten (d.h., falls keine Kapazität zur Verfügung steht oder eine Blockierung in dem Kommunikationspfad vorliegt) kann die Bestimmungseinrichtung geeigneterweise den Knoten zum Eintreten in die erste Betriebsart veranlassen.
  • Der Knoten ist vorzugsweise zum Betrieb in jeder der ersten, zweiten und dritten Betriebsart der Lage.
  • Gemäß einer zweiten Ausgestaltung der Erfindung ist ein Verfahren für Datenkommunikation über einen Kommunikationsweg zwischen einem Datagrammübertrager (20) und einem Datagrammempfänger gemäß einem Protokoll bereitgestellt, wobei die Datagrammübertragung durch den Übertrager davon abhängig ist, dass er eine Bestätigungsnachricht für ein zuvor übertragenes Datagramm empfängt, wobei ein Knoten in dem Kommunikationsweg zwischen dem Übertrager und dem Empfänger lokalisiert ist, dadurch gekennzeichnet, dass das Verfahren den die Datagramme zu dem Empfänger übertragenden Übertrager, den die Datagramme erfassenden Knoten, und den Knoten umfasst, der eine Bestätigungsnachricht für ein dem neuesten an dem Knoten erfassten Datagramm nochfolgendes Datagramm zu dem Übertrager wiederholt überträgt.
  • Gemäß beiden Ausgestaltungen der Erfindung ist das Protokoll vorzugsweise ein Übertragungssteuerprotokoll (TCP). Das Protokoll stellt vorzugsweise eine Betriebsart bereit, in der der Übertrager bzw. die Sendereinrichtung ein Datagramm nicht überträgt, bis sie eine Bestätigungsnachricht für ein ein gespeichertes Intervall zuvor über tragenes Datagramm empfangen hat, und in der eine Erhöhung des gespeicherten Intervalls besonders bevorzugt wird, falls eine Bestätigungsnachricht empfangen wird. Dies kann eine Langsam-Startbetriebsart sein.
  • Das gespeicherte Intervall ist vorzugsweise als eine Anzahl von Dateneinheiten ausgedrückt, beispielsweise eine Anzahl von Datagrammen oder eine Anzahl von Bits. Vorzugsweise ist das Intervall als eine Anzahl von Datagrammen ausgedrückt. Dann stellt das Protokoll vorzugsweise eine Betriebsart bereit, in der ein Datagramm nicht übertragen wird, bis eine Bestätigung für das Datagramm empfangen wird, das n Datagramme zuvor übertragen wurde, wobei n die Anzahl durch das gespeicherte Intervall ausgedrückter Datagramme ist.
  • Gemäß beiden Ausgestaltungen der Erfindung ist zumindest ein Teil des Kommunikationspfads vorzugsweise durch eine Funkanbindung bereitgestellt, insbesondere ist eine zellulare Funkanbindung bevorzugt.
  • Die Erfindung ist nachstehend beispielhaft unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben. Es zeigen:
  • 1 den TCP-Langsam-Startalgorithmus,
  • die 2 und 3 Ausgestaltungen des TCP-Aufspürvorgangs,
  • 4 die Architektur eines Kommunikationssystems schematisch,
  • 5 bevorzugte Betriebsartanordnungen,
  • die 6 bis 9 den Betrieb des Systems gemäß 4 in den Betriebsarten gemäß 5, und
  • 10 eine Strategie zur Auswahl einer Betriebsart.
  • 4 zeigt eine schematische Ansicht eines Kommunikationssystems. Das Kommunikationssystem umfasst eine Sendereinrichtung 20, die durch einen bidirektionalen Kommunikationspfad 22 mit einer Empfängereinrichtung 21 verbunden ist. Die Sendereinrichtung kann eine Nachricht in Pakete zerlegen und sie unter Verwendung des TCP-Protokolls zur Empfängereinrichtung senden. Zur leichteren Erklärung ist der Kommunikationspfad 22 als einen ausgehenden Kanal 23 und einen Rückführkanal 24 umfassend gezeigt, der zum Senden der Signale in entgegengesetzten Richtungen in der Lage ist, der Pfad kann aber in der Praxis bei jedwedem Punkt entlang seiner Länge ein einzelner physikalischer Kanal sein. Der Pfad kann durch eine Kette einer oder mehrerer in Reihe gestellter Anbindungen bereitgestellt sein, die von der selben oder verschiedenen physikalischen Arten sein könnten (z.B. Festdrähte, Funkkanäle oder optische Kanäle).
  • In den Kommunikationspfad 22 ist ein Knoten 25 gesetzt. Der Knoten 25 umfasst Schalter 26, 27, die in den ausgehenden bzw. Rückführkanal 23, 24 gesetzt sind. Die Schalter funktionieren unter der Steuerung einer Steuereinrichtung 28. Eine Paketerfassungseinrichtung 29 ist mit einem Ausgang des Schalters 26 verbunden. Es ist eine Bestätigungserfassungseinrichtung 30 mit einem Ausgang des Schalters 27 verbunden. Die anderen Ausgänge der Schalter 26, 27 reichen zu der Empfängereinrichtung 21 bzw. der Sendereinrichtung 20 durch. Die Ausgänge der Erfassungseinrichtung 29, 30 reichen zu der Steuereinrichtung 28. Der Knoten enthält ebenso einen Speicher 31, in dem Daten durch die Steuereinrichtung 28 gespeichert werden können, und eine Bestätigungserfassungseinrichtung 36, die Bestätigungsnachrichten für Pakete unter der Weisung durch die Steuereinrichtung 28 erzeugen kann. In einer Einstellung („A") des Schalters 26 werden an dem Knoten auf Kanal 23 ankommende Signale (von Eingang 32) direkt zu dem Ausgang 33 des Knotens 25 auf Kanal 23 verwiesen. In der anderen Einstellung („B") des Schalters 26 werden Signale von Eingang 32 vom Ausgang 33 isoliert; stattdessen wird der Ausgang des Speichers 31 zu dem Ausgang 33 verwiesen. In einer Einstellung („X") des Schalters 27 werden an dem Knoten auf Kanal 24 ankommende Signale (von Eingang 34) direkt zu dem Ausgang 35 des Knotens 25 auf Kanal 24 verwiesen. In der anderen Einstellung („Y") des Schalters 27 werden Signale vom Eingang 34 von Ausgang 35 isoliert; stattdessen wird der Ausgang der Bestätigungserzeugungseinrichtung 36 zu dem Ausgang 35 verwiesen.
  • Die Steuereinrichtung 28 funktioniert unter der Überwachung durch die Betriebsartauswahleinrichtung 37, die die Kanäle 23 und 24 überwacht, um den Zustand des Kommunikationssystems zu bestimmen, und ist durch ein externes Signal 38 steuerbar. Die Betriebsartauswahleinrichtung 37 kann ebenso die Kanäle 23 und 24 überwachen, insbesondere wenn diese einen drahtlosen Pfad oder einen anderen Pfad enthalten, der einen Flaschenhals darstellen könnte.
  • Für die Klarheit der Beschreibung ist der Knoten 25 nachstehend als bestimmte Einzelvorrichtungen umfassend beschrieben. Der Knoten 25 könnte jedoch als ein Block oder mehrere Blöcke einer Funktionalität bereitgestellt sein, die von jenen gemäß 4 gezeigten verschieden ist. Die Funktionen des Knotens 25 könnten zur Gänze oder teil weise durch auf einem oder mehreren Mikroprozessoren laufende Software bereitgestellt sein.
  • Bei Betrieb weist der Knoten 25 drei Betriebsarten auf, die hiernach „normale" Betriebsart, „schnelle" Betriebsart und „verfrühte Bestätigungs-" Betriebsart genannt sind.
    • • Bei der normalen Betriebsart wird der Schalter 26 auf Einstellung A und Schalter 17 wird auf Einstellung X gesetzt. Dies erlaubt Signalen von der Sendereinrichtung 20 ein direktes Passieren durch den Knoten zu der Empfängereinrichtung 21, und Signalen von der Empfängereinrichtung ein direktes Passieren zu der Sendereinrichtung.
    • • Bei der schnellen Betriebsart ist Schalter 26 auf Einstellung A, Schalter 27 auf Einstellung Y gesetzt. Empfängt der Knoten ein Paket von der Sendereinrichtung 20, dann leitet es die Steuereinrichtung 28 zu der Empfängereinrichtung weiter. Die Empfängereinrichtung erzeugt Bestätigungen für die Pakete, die sie empfängt. Wird ein Paket bestätigt, leitet der Knoten 25 die Bestätigung nach einer Verzögerung zu der Sendereinrichtung weiter. Der Knoten 25 kann außerdem das von der Sendereinrichtung 21 empfangene Paket speichern, und es wieder zu der Empfängereinrichtung 21 senden, falls nach einer eingestellten Zeitspanne keine Bestätigung empfangen wird.
    • • Bei der verfrühten Bestätigung sind die Schalter 26 bzw. 27 auf die Einstellung B bzw. Y gesetzt. Dieser Vorgang ist nachstehend ausführlicher beschrieben.
  • Bei der normalen Betriebsart funktioniert die Anbindung 22 zwischen der Sendereinrichtung 20 und der Empfängereinrichtung 21 auf eine Ende-zu-Ende-Weise, als ob der Knoten 25 nicht vorhanden wäre. Bei der verfrühten Bestätigungsbetriebsart stellt der Knoten die Fähigkeit zur Beschleunigung der Erhöhung bei der Übertragungsrate durch die Sendereinrichtung unter dem TCP-Langsam-Start durch Senden sofortiger Bestätigungen bereit. Bei der schnellen Betriebsart kann der Knoten die Übertragungsrate durch den Sender verringern, um der verringerten Kapazität über die Anbindung, oder um dem Füllen der Pufferspeicher der Knoten gerecht zu werden. Die Verfügbarkeit von mehr als einer dieser Betriebsarten versieht den Knoten mit der Fähigkeit zur Funktionssteigerung der TCP-Anbindung in einer Fülle von Umständen, wie nachstehend ausführlicher beschrieben. Insbesondere ermöglicht die Reihe von Betriebsarten ein Betriebsmodell, das die Mängel des TCP-Langsam-Startalgorithmus umgehen und den Pufferaufbau in dem Weiterleistungsknoten entlasten kann.
  • Die Betriebsartauswahleinrichtung 37 überwacht die Anbindung 22 und veranlasst die Steuereinrichtung 28 abhängig von den Anbindungsbedingungen zur Annahme einer der verfügbaren Betriebsarten. 5 zeigt eine bevorzugte Strategie. Bei der normalen Betriebsart wählt die Betriebsartauswahleinrichtung 37 die normale Betriebsart aus. Weist der Pufferspeicher 31 verfügbaren Platz auf und steht verfügbare Bandbreite auf der Anbindung in beiden Richtungen zur Verfügung, dann wählt die Betriebsartauswahleinrichtung die verfrühte Bestätigungsbetriebsart zum Ansteuern der Paketübertragungsrate zu deren Erhöhung aus. Gibt es eine Blockierung auf der Anbindung, oder ist der Pufferspeicher voll, dann wählt die Betriebsartauswahleinrichtung die schnelle Betriebsart zum Ansteuern der Pakettransmissionsrate zu deren Verringerung aus.
  • Die Wirkung der verfügbaren Betriebsarten ist nachstehend ausführlicher beschrieben.
  • Steht Bandbreite oberhalb einer eingestellten Schwelle zur Verfügung, und erfasst die Betriebsartauswahleinrichtung 37 keinen Paketverlust aufgrund einer Blockierung, dann wird die verfrühte Bestätigungsbetriebsart ausgewählt. Wird ein Paket durch Knoten 25 empfangen und durch die Erfassungseinrichtung 29 erfasst, dann steuert die Steuereinrichtung 28 die Bestätigungserzeugungseinrichtung 36 zur Erzeugung einer „verfrühten" Bestätigung, und gibt diese zu der Sendereinrichtung 20 ab. Die in der verfrühten Bestätigungsnachricht spezifizierte Paketnummer ist jene eines Pakets, das noch nicht durch den Knoten 25 empfangen wurde (aber zur Kompatibilität mit den meisten Protokollen eines ist, dass wahrscheinlich durch die Sendereinrichtung gesendet wurde, bevor die Bestätigung diese erreicht). Während sich jenes tatsächliche Datenpaket auf seinem Weg von der Bestätigungssteuereinrichtung zu der TCP-Empfängereinrichtung befindet, befindet sich dadurch die durch die TCP-Empfängereinrichtung erzeugte Bestätigung auf ihrem Weg von der Empfängereinrichtung zu der Bestätigungssteuereinrichtung, oder nicht. Die Anzahl, um die die Bestätigungsanzahl dem letzten durch den Knoten empfangenen Paket vorauseilt, hängt von der zur Verfügung stehenden Bandbreite, der Natur des Paketverlusts und dem zur Verfügung stehenden Pufferplatz in dem Netzwerkknoten ab. Dadurch sagt die Bestätigungssteuereinrichtung den Bedarf an einem Senden einer wahren Bestätigungsnachricht für ein bestimmtes Paket voraus und sendet eine durch sie selbst erzeugte, vorausgesehene Bestätigung zu der TCP-Quelleneinrichtung, so dass die TCP-Quelleneinrichtung eine Bestätigung früher erhält, als sie es sogar bei Verwendung eines Aufspürknotens würde. Der Knoten 25 leitet dann das Paket bei Empfang zu der Empfängereinrichtung weiter, oder erlaubt dem Paket einfach das Passieren durch den Knoten 25. Erreicht die durch die TCP-Empfängereinrichtung erzeugte, entsprechende Bestätigungsnachricht den Knoten, dann verwirft die Steuereinrichtung 28 es aus dem Speicher 31.
  • Um die Effizienz dieser Betriebsart zu zeigen, kann mit Definieren der Sequenznummer des ankommenden Pakets bei dem Knoten als PK(i), der ankommenden Bestätigung als ACKi (i) bzw. der erzeugten Bestätigung als ACK0 (i) die ACK0 (i) als eine Funktion der zur Verfügung stehenden Bandbreite BWa und des zur Verfügung stehenden Pufferplatzes BSa und von ACK0 (i – 1) eingestellt werden. Sie kann formuliert werden als ACK0(i) = ACK0(i – 1) + f(BWa, BSa) ACKi(i) ≤ ACK0(i) ≤ PK(i) (1)
  • Die Funktion f kann beispielsweise sein
    Figure 00190001
    wobei BSmax der maximale Pufferplatz ist, und a1 und a2 Konstanten sind. Es sei darauf hingewiesen, dass sich das verfrühte Bestätigungsverfahren zu dem herkömmlichen TCP-Aufspüren verringert, falls f = PK – ACK0 (i – 1).
  • Bei der verfrühten Bestätigungsbetriebsart wird gegenüber der TCP-Quelleneinrichtung schnell bestätigt, dass ihre Pakete empfangen wurden, und die Quelleneinrichtung beginnt mit einer Erhöhung ihrer Übertragungsrate. Dies verringert wiederum die für das TCP-Protokoll zum Erreichen seiner vollen Geschwindigkeit erforderliche Zeit und verbessert den allgemeinen Durchsatz.
  • Da die Funktion f (Gleichung 2) die zur Verfügung stehende Bandbreite und die Pufferbelegung berücksichtigt, bewältigt sie die Probleme des TCP-Aufspürverfahrens. Die übertragene ACK0 nähert sich effektiv der ACKi an, wenn sich der zur Verfügung stehende Pufferplatz und/oder die Bandbreite verringern/verringert. Steht keine unbenutzte Bandbreite zur Verfügung, dann ist ACKi gleich ACK0, und der Normalbetrieb des TCP ist erreicht. Erhöhen/Erhöht sich demgegenüber die zur Verfügung stehende Bandbreite und/oder der Pufferplatz, dann nähert sich die ACK0 PK an. Falls viel unbenutzte Bandbreite zur Verfügung steht, funktioniert dadurch der Knoten 25 in der verfrühten Bestätigungsbetriebsart auf eine dem vorstehend beschriebenen TCP-Aufspürverfahren ähnliche Weise.
  • Die normale Betriebsart wird verwendet, wenn das TCP-System bei der Sendereinrichtung erst einmal die volle Geschwindigkeit erreicht hat, und es im Wesentlichen keine unbenutzte, zur Verfügung stehende Bandbreite in der Richtung von der Sendereinrichtung zu der Empfängereinrichtung gibt. Die Ankunft eines TCP-Pakets bei dem Knoten löst nicht länger eine Erzeugung einer verfrühten Bestätigung aus. Stattdessen lässt die Bestätigungssteuereinrichtung einfach die TCP-Pakete und die entsprechenden Bestätigungen auf eine natürliche, ungestörte Weise durch sich hindurch fließen.
  • Bei der schnellen TCP-Betriebsart, die verwendet wird, falls die Betriebsartauswahleinrichtung einen Paketverlust aufgrund einer Blockierung erfasst, verzögert die Bestätigungssteuereinrichtung die Zurückgabe von Bestätigungen zu der Sendereinrichtung. Dies könnte durch den Konten durch Empfangen von Bestätigungen, durch deren Speicherung für eine Zeitspanne, und dann durch Weiter leiten zu der Sendereinrichtung erreicht werden; oder indem der Knoten eine Verzögerung einführt, bevor er selbst eine Bestätigung erzeugt. Der Vorgang des Verzögerns von Bestätigungen könnte auf eine wie in der Druckschrift WO 99/04536 beschriebene Weise durchgeführt werden, deren Inhalte hier durch Bezugnahme mit aufgenommen sind. Die Wirkung des Verzögerns von Bestätigungen liegt in der Verringerung einer Blockierung und damit des Paketverlusts.
  • 6 zeigt weiterhin die verfrühte Bestätigungsbetriebsart. Auf der Grundlage der durch sie erfassten Informationen bezüglich der Natur des Paketverlusts und der zur Verfügung stehenden Bandbreite wählte die Betriebsartauswahleinrichtung des Knotens 25 die verfrühte Bestätigungsbetriebsart aus, und veranlasste die Steuereinrichtung zum Betrieb in jener Betriebsart. Ein TCP-Paket mit der Sequenznummer PK kommt von der Quelleneinrichtung zu dem Knoten. Die Bestätigungssteuereinrichtung empfängt das TCP-Paket. Eine Bestätigung ACK0 wird durch den Knoten zu der TCP-Quelleneinrichtung gesendet. Die Bestätigung könnte zur Gänze durch den Knoten erzeugt werden, oder ein geeignetes Bestätigungspaket, das den Knoten zu jenem Zeitpunkt durchläuft (das durch die TCP-Empfängereinrichtung erzeugt wurde), könnte abgefangen und zum Führen der ACK0 modifiziert werden. Ein Verfahren für den Knoten zur Verwendung bei einer Berechnung des Werts von ACK0 ist vorstehend in Gleichung 1 gezeigt.
  • Das Senden von ACK0 und dergleichen Veranlasst die TCP-Quelleneinrichtung zu einer schnellen Beschleunigung, da sie jetzt Bestätigungen schneller als mit anderen Verfahren empfängt. Es gibt eine Ersparnis von deutlich mehr als einer Umlaufzeit zwischen dem Knoten und der TCP-Empfängereinrichtung. Die TCP-Quelleneinrichtung sieht, dass dort ein kürzerer Abstand zu der Empfängereinrichtung als selbst der Abstand zu dem Knoten zu sein scheint.
  • Das TCP-Paket PK wird zu der TCP-Empfängereinrichtung weitergeleitet. Es sei darauf hingewiesen, dass die Erzeugung und die Übertragung (oder das Abfangen und die Änderung) von ACK0 und das Weiterleiten (oder das Zulassen des Passierens) von PK ebenso in umgekehrter Reihenfolge auftreten kann. Eine Kopie des TCP-Pakets PK wird in Speicher 31 gespeichert, so dass es durch den Knoten wieder übertragen werden kann, falls das Paket zwischen der ACK-Steuereinrichtung und der TCP-Empfängereinrichtung verloren geht.
  • Die TCP-Empfängereinrichtung empfängt das TCP-Paket PK und bestätigt es wie üblich durch Senden einer entsprechenden ACKi zu der TCP-Quelleneinrichtung hin. Die ACK-Steuereinrichtung fängt schließlich ACKi ab und verwirft diese, oder verwendet die ACK für eine andere ACK0.
  • Die ACK-Steuereinrichtung muss ebenso für Wiederübertragungen Sorge tragen. Daher überwacht sie den Fluss von Bestätigungen ACKi von der TCP-Empfängereinrichtungen. Ist während einer spezifizierten Zeit keine ACK hervorgekommen, dann überträgt sie das TCP-Paket mit der Sequenznummer PK wieder. Es sei darauf hingewiesen, dass es hier möglich ist, die Standard TCP-Wiederübertragungsmechanismen wie in der IETF RFT 793, „Transport Control Protocol", September 1981, spezifiziert, zu verwenden.
  • 7 zeigt ein ausführlicheres Beispiel einer Übertragung gemäß der Erfindung. Es ist hier angenommen, dass genügend Bandbreite und Pufferplatz für eine weitere Erhöhung der Übertragungsraten zur Verfügung stehen. Es sei angenommen, dass ein Paket mit der Sequenznummer 64 bei dem Knoten von der Quelleneinrichtung ankommt, während eine Bestätigungsnachricht mit der Nummer 57 von der Empfängereinrichtung ankommt. Auf der Grundlage der zur Verfügung stehenden Bandbreite bestimmte der Knoten, die verfrühte Bestätigungsbetriebsart zu verwenden. Er erzeugt eine Bestätigungsnachricht mit der Nummer 60 und überträgt sie zu der TCP-Quelleneinrichtung. Es sei darauf hingewiesen, dass die Nummer dieser Nachricht unterhalb von 64 (die Nummer des angekommenen Pakets) liegt. Die von der TCP-Empfängereinrichtung empfangene Bestätigungsnachricht mit 57 wird verworfen (oder sie hätte verändert werden können, um den Wert 60 zu tragen). Das Paket 64 wird in dem Pufferspeicher des Knotens für den Fall gespeichert, dass es wieder zu übertragen ist. Das Paket 57 wird aus dem Puffer entfernt, da es nun empfangen wurde.
  • In einem gemäß 8 gezeigten, späteren Stadium steht keine unbenutzte Bandbreite mehr zur Verfügung. Deshalb werden von der TCP-Empfängereinrichtung zu dem Knoten kommende Bestätigungen einfach durchgelassen, so dass ACK0 = ACKi. Dies entspricht der normalen TCP-Betriebsart.
  • In einem gemäß 9 gezeigten, anderen Stadium kann eine Blockierung auftreten. Der Puffer in dem Netzwerkknoten wurde voll und/oder die unbenutzte Bandbreite ist klein und/oder es werden Fehler aufgrund einer Blockierung erfasst. Dann beginnt der Knoten, von der TCP-Empfängereinrichtung zu der TCP-Quelleneinrichtung fließende Bestätigungen (ACKis) zur Verringerung der Blockierung zu verzögern.
  • Die Erfindung ist besonders zur Verwendung in Verbindung mit Funknetzwerken geeignet, wie GPRS oder zellularen Netzwerken der dritten Generation (3GN), oder anderen Systemen, in denen es eine Anbindung geben kann, die eine beträchtlich variierende Kapazität für die TCP-Verbindung aufweist (beispielsweise aufgrund von sich verändernden Interferenzpegeln). In einem Funksystem könnte der Knoten 25 in einer Kommunikationsanbindung nahe der Funkschnittstelle angeordnet sein. Der Knoten könnte ein Signal empfangen, das die momentan über die Funkschnittstelle zur Verfügung stehenden Kapazität angibt. Der Knoten könnte beispielsweise bei der Funknetzwerksteuereinrichtung (RNC, „Radio Network Controller") eines 3GN-Systems angeordnet sein. Der Knoten überwacht die zur Verfügung stehende Kapazität. Gibt es viel freie Kapazität für von außerhalb des 3GN-Systems ankommenden TCP-Verkehr, dann beginnt der Knoten mit einer Erzeugung von verfrühten Bestätigungen, selbst wenn sich die eigentlichen Oktette immer noch auf ihrem Weg über die Funkschnittstelle befinden. Dadurch erhält die TCP-Sendereinrichtung Bestätigungen eher, beschleunigt ihre Übertragungen, und nutzt die zur Verfügung stehende Kapazität besser. Demgegenüber kann der Knoten während einer Blockierung (beispielsweise aufgrund schlechter Funkbedingungen) in die schnelle TCP-Betriebsart eintreten.
  • Das verfrühte Bestätigungsverfahren kann den TCP-Langsam-Startvorgang beschleunigen, und auf diese Weise die zur Verfügung stehende Bandbreite effizienter nutzen, sowie die Pufferaufbauprobleme lindern, die in früheren TCP-Aufspürsystemen angetroffen werden können. Das Verfahren wird durch einen zwischen einer TCP-Sendereinrichtung und einer TCP-Empfängereinrichtung lokalisierten Knoten ausgeführt. Der Knoten erzeugt Bestätigungen und gibt sie zu der TCP-Sendereinrichtung für Datenpakete zurück, die den Knoten noch nicht erreichten, und die deshalb durch die TCP-Empfängereinrichtung noch nicht empfangen und bestä tigt wurden. Dies kann die Zeit verringern, die die TCP-Sendereinrichtung auf eine Bestätigung warten muss, und ermöglicht der TCP-Sendereinrichtung somit, ihre Übertragungen schneller als ohne diesen Mechanismus zu beschleunigen. Die Sequenz von Bestätigungen wird gemäß der zur Verfügung stehenden Bandbreite und dem Pufferplatzes, einer Messung einer Sequenznummer angekommener Pakete und Ankunftsbestätigungen zu dem Knoten eingestellt.
  • Das verfrühte Bestätigungsverfahren kann in einem Knoten als Ausführungsbeispiel vorliegen, der zum Betrieb in zwei oder mehreren (vorzugsweise zumindest drei) Betriebsarten in der Lage ist, beispielsweise: der verfrühten Bestätigungsbetriebsart, einer normalen TCP-Betriebsart und einer schnellen TCP-Betriebsart. Die Entscheidung bezüglich der zu verwendenden Betriebsart kann beispielsweise auf der zur Verfügung stehenden, unbenutzten Bandbreite, auf Pufferbelegungsniveaus und auf einer Blockierung basieren. 10 zeigt ein Ablaufdiagramm eines Beispiels eines Entscheidungsvorgangs darüber, welche Betriebsart zu verwenden ist.
  • Die Erfindung ist nicht auf die vorstehend beschriebenen Beispiele beschränkt.
  • Die Anmelderin macht auf die Tatsache aufmerksam, dass die Erfindung jedwedes Merkmal oder jedwede Kombination von Merkmalen, die hier entweder implizit oder explizit offenbart sind, oder jedwede Verallgemeinerung derer enthalten kann.

Claims (24)

  1. Datenkommunikationsknoten (25) zum Betrieb in einem Kommunikationsweg (22) zwischen einem Datagrammübertrager (20) und einem Datagrammempfänger (21) gemäß einem Protokoll, wobei die Datagrammübertragung durch den Übertrager davon abhängig ist, dass er eine Bestätigungsnachricht für ein zuvor übertragenes Datagramm empfängt, wobei der Knoten umfasst: eine Erfassungsvorrichtung (29) zur Erfassung von Kommunikationen in dem Weg, einen Bestätigungserzeuger (36), der zur Erzeugung von Bestätigungsnachrichten für Datagramme und zur Übertragung dieser Nachrichten zu dem Übertrager angepasst ist, und eine Flussunterbrechungsvorrichtung, die zur Unterbrechung von Kommunikationen in dem Weg angepasst ist, dadurch gekennzeichnet, dass der Knoten zum Betrieb in dem zweiten und zumindest in einem der ersten und dritten der nachstehenden Modi angepasst ist: – ein erster Modus, bei dem er die Kommunikationen in dem Weg nicht unterbricht, – ein zweiter Modus, bei dem er eine Bestätigungsnachricht für ein Datagramm auf das letzte an dem Knoten erfasste Datagramm hin folgend überträgt, und – ein dritter Modus, bei dem er die Mitteilung von Bestätigungsnachrichten zu dem Übertrager verzögert.
  2. Datenkommunikationsknoten gemäß Anspruch 1, wobei in dem zweiten und/oder dritten Modus der Knoten die Mitteilung von Bestätigungsnachrichten von dem Empfänger zu dem Übertrager unterbricht.
  3. Datenkommunikationsknoten gemäß Anspruch 1 oder 2, der einen Speicher umfasst, und wobei in dem zweiten und/oder dritten Modus der Knoten in dem Speicher Datagramme speichert, die in einer Übertragung von dem Übertrager zu dem Empfänger erfasst sind.
  4. Datenkommunikationsknoten gemäß Anspruch 3, wobei in dem zweiten und/oder dritten Modus der Knoten die Mitteilung von Datagrammen von dem Übertrager zu dem Empfänger unterbricht.
  5. Datenkommunikationsknoten gemäß Anspruch 3 oder 4, wobei der Knoten in dem zweiten und/oder dritten Modus, bei nicht erfasster Bestätigungsnachricht für ein Datagramm von dem Empfänger innerhalb einer eingestellten Zeitspanne, dieses Datagramm wieder zu dem Empfänger überträgt.
  6. Datenkommunikationsknoten gemäß einem der Ansprüche 3 bis 5, wobei der Knoten in dem zweiten und/oder dritten Modus, bei Empfang einer Bestätigungsnachricht für ein Datagramm, dieses Datagramm aus dem Speicher löscht.
  7. Datenkommunikationsknoten gemäß einem der vorstehenden Ansprüche, der eine Modusbestimmungseinrichtung (37) zur Bestimmung des Betriebsmodus des Knotens umfasst.
  8. Datenkommunikationsknoten gemäß Anspruch 7, wobei die Modusbestimmungseinrichtung zur Bestimmung in der Lage ist, ob Kapazität in dem Kommunikationsweg verfügbar ist, und den Knoten bei Verfügbarkeit von Kapazität zum Betrieb in dem zweiten Modus veranlassen kann.
  9. Datenkommunikationsknoten gemäß Anspruch 7 oder 8, wobei die Modusbestimmungseinrichtung zur Bestimmung in der Lage ist, ob es eine Blockierung in dem Kommunikationsweg gibt und den Knoten bei Vorhandensein einer Blockierung zum Betrieb in dem dritten Modus veranlassen kann.
  10. Datenkommunikationsknoten gemäß Anspruch 9 in Abhängigkeit von Anspruch 8, wobei die Bestimmungseinrichtung bei Nichtverfügbarkeit von Kapazität oder Nichtvorhandensein einer Blockierung in dem Kommunikationsweg den Knoten zum Eintritt in den ersten Modus veranlassen kann.
  11. Datenkommunikationsknoten gemäß einem der vorstehenden Ansprüche, wobei der Knoten zum Betrieb in jedem des ersten, zweiten oder dritten Modus in der Lage ist.
  12. Datenkommunikationsknoten gemäß einem der vorstehenden Ansprüche, wobei das Protokoll ein TCP-Protokoll (TCP, „transmission control protocol") ist.
  13. Datenkommunikationsknoten gemäß einem der vorstehenden Ansprüche, wobei das Protokoll eine Betriebsart bereitstellt, in der der Übertrager kein Datagramm überträgt, bis er eine Bestätigungsnachricht für ein um ein gespeichertes Intervall zuvor übertragenes Datagramm empfangen hat.
  14. Datenkommunikationsknoten gemäß Anspruch 13, wobei in der Betriebsart das Protokoll eine Erhöhung des gespeicherten Intervalls bereitstellt, wenn eine Bestätigungsnachricht empfangen wird.
  15. Datenkommunikationsknoten gemäß Anspruch 13 oder 14, wobei die Betriebsart eine slow-start-Betriebsart (Langsam-Start, „slow start") ist.
  16. Datenkommunikationsknoten gemäß einem der vorstehenden Ansprüche, wobei zumindest ein Teil des Kommunikationswegs eine Funkverbindung darstellt.
  17. Datenkommunikationsknoten gemäß Anspruch 16, wobei die Funkverbindung eine zellulare Funkverbindung ist.
  18. Verfahren für Datenkommunikation über einen Kommunikationsweg (22) zwischen einem Datagrammübertrager (20) und einem Datagrammempfänger (21) gemäß einem Protokoll, wobei die Datagrammübertragung durch den Übertrager davon abhängig ist, dass er eine Bestätigungsnachricht für ein zuvor übertragenes Datagramm empfängt, wobei ein Knoten (25) in dem Kommunikationsweg zwischen dem Übertrager und dem Empfänger lokalisiert ist, dadurch gekennzeichnet, dass das Verfahren umfasst: den die Datagramme zu dem Empfänger übertragenden Übertrager, den die Datagramme erfassenden Knoten, und den Knoten, der eine Bestätigungsnachricht für ein dem neuesten an dem Knoten erfassten Datagramm nochfolgendes Datagramm zu dem Übertrager wiederholt überträgt.
  19. Verfahren gemäß Anspruch 18, wobei das Protokoll ein TCP-Protokoll ist.
  20. Verfahren gemäß Anspruch 18 oder 19, wobei das Protokoll eine Betriebsart bereitstellt, in der der Übertrager kein Datagramm überträgt, bis er eine Bestätigungsnachricht für ein um ein gespeichertes Intervall zuvor übertragenes Datagramm empfangen hat.
  21. Verfahren gemäß Anspruch 20, wobei in der Betriebsart das Protokoll eine Erhöhung des gespeicherten Intervalls bereitstellt, wenn eine Bestätigungsnachricht empfangen wird.
  22. Verfahren gemäß Anspruch 20 oder 21, wobei die Betriebsart eine slow-start-Betriebsart ist.
  23. Verfahren gemäß einem der vorstehenden Ansprüche, wobei zumindest ein Teil des Kommunikationswegs eine Funkverbindung darstellt.
  24. Verfahren gemäß Anspruch 23, wobei die Funkverbindung eine zellulare Funkverbindung ist.
DE60113549T 2000-07-24 2001-07-24 Tcp-flusssteurung Revoked DE60113549T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB0018119.8A GB0018119D0 (en) 2000-07-24 2000-07-24 Flow control
GB0018119 2000-07-24
PCT/IB2001/001664 WO2002009389A2 (en) 2000-07-24 2001-07-24 Tcp flow control

Publications (2)

Publication Number Publication Date
DE60113549D1 DE60113549D1 (de) 2006-02-02
DE60113549T2 true DE60113549T2 (de) 2006-06-22

Family

ID=9896228

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60113549T Revoked DE60113549T2 (de) 2000-07-24 2001-07-24 Tcp-flusssteurung

Country Status (9)

Country Link
US (1) US20030149715A1 (de)
EP (1) EP1303970B1 (de)
AT (1) ATE305200T1 (de)
AU (1) AU2001286147A1 (de)
CA (1) CA2416897C (de)
DE (1) DE60113549T2 (de)
ES (1) ES2249474T3 (de)
GB (1) GB0018119D0 (de)
WO (1) WO2002009389A2 (de)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1238499A1 (de) * 2000-09-28 2002-09-11 Koninklijke Philips Electronics N.V. Netzwerkschnittstellentreiber und -verfahren
US7249193B1 (en) * 2001-08-28 2007-07-24 Emc Corporation SRDF assist
US7543087B2 (en) * 2002-04-22 2009-06-02 Alacritech, Inc. Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device
EP1361721A1 (de) * 2002-05-06 2003-11-12 Alcatel Verfahren zur Übertragung von Datensegmenten und entsprechende Sender und Empfänger
US7542471B2 (en) 2002-10-30 2009-06-02 Citrix Systems, Inc. Method of determining path maximum transmission unit
US7616638B2 (en) 2003-07-29 2009-11-10 Orbital Data Corporation Wavefront detection and disambiguation of acknowledgments
US8270423B2 (en) * 2003-07-29 2012-09-18 Citrix Systems, Inc. Systems and methods of using packet boundaries for reduction in timeout prevention
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
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
US7698453B2 (en) * 2003-07-29 2010-04-13 Oribital Data Corporation Early generation of acknowledgements for flow control
US7656799B2 (en) 2003-07-29 2010-02-02 Citrix Systems, Inc. Flow control system architecture
US8238241B2 (en) 2003-07-29 2012-08-07 Citrix Systems, Inc. Automatic detection and window virtualization for flow control
WO2005020524A1 (ja) * 2003-08-20 2005-03-03 Nec Corporation セッション中継装置及び中継方法
FR2866172B1 (fr) * 2004-02-10 2006-05-05 Renault Sas Passerelle et systeme de transmission de donnees pour reseau de diagnostic de vehicule automobile et procede de transmission de donnees correspondant.
US8077632B2 (en) 2005-01-20 2011-12-13 Citrix Systems, Inc. Automatic LAN/WAN port detection
CN100486174C (zh) * 2005-04-29 2009-05-06 华为技术有限公司 宽带接入终端参数配置方法
WO2007052764A1 (ja) * 2005-11-07 2007-05-10 Nec Corporation セッション中継装置およびセッション中継方法
JP2007288725A (ja) * 2006-04-20 2007-11-01 Sanden Corp 通信機器用の接続装置
US8312120B2 (en) * 2006-08-22 2012-11-13 Citrix Systems, Inc. Systems and methods for providing dynamic spillover of virtual servers based on bandwidth
US8493858B2 (en) 2006-08-22 2013-07-23 Citrix Systems, Inc Systems and methods for providing dynamic connection spillover among virtual servers
US7706266B2 (en) * 2007-03-12 2010-04-27 Citrix Systems, Inc. Systems and methods of providing proxy-based quality of service
US7796510B2 (en) 2007-03-12 2010-09-14 Citrix Systems, Inc. Systems and methods for providing virtual fair queueing of network traffic
US7760642B2 (en) 2007-03-12 2010-07-20 Citrix Systems, Inc. Systems and methods for providing quality of service precedence in TCP congestion control
TWI337021B (en) * 2007-04-13 2011-02-01 Qisda Corp Apparatus and method for communicating with a receiving end via internet
US8201041B2 (en) * 2007-07-03 2012-06-12 Industrial Technology Research Institute Transmission control methods and devices for communication systems
KR101431272B1 (ko) 2008-01-30 2014-08-20 엘지전자 주식회사 외장형 스토리지가 연결 접속된 보안기기에서의 비트레이트 조정 장치 및 방법
FR2926939A1 (fr) * 2008-01-30 2009-07-31 Canon Kk Procede de transmission de donnees avec anticipation des acquittements, dispositif d'entree, produit programme d'ordinateur et moyen de stockage correspondants
US8352558B2 (en) 2009-02-10 2013-01-08 Microsoft Corporation Transport high availability via acknowledge management
US8364812B2 (en) 2010-08-27 2013-01-29 Sandvine Incorporated Ulc Method and system for network data flow management
EP2635980A1 (de) * 2010-09-27 2013-09-11 Telefonaktiebolaget L M Ericsson (PUBL) Verteilte datenbank
US9762434B2 (en) * 2011-08-12 2017-09-12 Rambus Inc. Temporal redundancy
US9444749B2 (en) 2011-10-28 2016-09-13 Telecom Italia S.P.A. Apparatus and method for selectively delaying network data flows
US9935879B2 (en) 2012-12-29 2018-04-03 Netronome Systems, Inc. Efficient intercept of connection-based transport layer connections
GB2520268A (en) * 2013-11-13 2015-05-20 Ibm Injecting lost packets and protocol errors in a simulation environment
GB2524958A (en) * 2014-04-03 2015-10-14 Orbital Multi Media Holdings Corp Data flow control method
US9894552B2 (en) * 2014-10-21 2018-02-13 Saguna Networks Ltd. Regulating data communication between a mobile data client and a remote server
US20160219458A1 (en) * 2015-01-26 2016-07-28 Qualcomm Incorporated Methods and apparatus for radio link control switching
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication 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
EP3417585B1 (de) * 2016-05-10 2021-06-30 Samsung Electronics Co., Ltd. Endgerät und kommunikationsverfahren dafür
KR102654182B1 (ko) * 2019-07-03 2024-04-02 텔레폰악티에볼라겟엘엠에릭슨(펍) 네트워크 트래픽 관리의 개선을 위한 패킷 확인 응답 기술

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2253853A1 (en) * 1996-05-10 1997-12-04 Fujitsu Network Communications, Inc. Method and apparatus for enabling flow control over multiple networks having disparate flow control capability
US6038216A (en) * 1996-11-01 2000-03-14 Packeteer, Inc. Method for explicit data rate control in a packet communication environment without data rate supervision
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
US6359882B1 (en) * 1997-04-01 2002-03-19 Yipes Communications, Inc. Method and apparatus for transmitting data
US6076114A (en) * 1997-04-18 2000-06-13 International Business Machines Corporation Methods, systems and computer program products for reliable data transmission over communications networks
US6105064A (en) * 1997-05-30 2000-08-15 Novell, Inc. System for placing packets on network for transmission from sending endnode to receiving endnode at times which are determined by window size and metering interval
US5978849A (en) * 1997-06-13 1999-11-02 International Business Machines Corporation Systems, methods, and computer program products for establishing TCP connections using information from closed TCP connections in time-wait state
US6167027A (en) * 1997-09-09 2000-12-26 Cisco Technology, Inc. Flow control technique for X.25 traffic in a high speed packet switching network
NO307640B1 (no) * 1998-04-23 2000-05-02 Ericsson Telefon Ab L M Fremgangsmåte til å forbedre sendinger mellom terminaler i et telekommunikasjonssystem
SE513327C2 (sv) * 1998-10-07 2000-08-28 Ericsson Telefon Ab L M System och metod för datakommunikation

Also Published As

Publication number Publication date
EP1303970B1 (de) 2005-09-21
AU2001286147A1 (en) 2002-02-05
WO2002009389A3 (en) 2002-06-27
WO2002009389A2 (en) 2002-01-31
GB0018119D0 (en) 2000-09-13
CA2416897C (en) 2009-04-21
US20030149715A1 (en) 2003-08-07
CA2416897A1 (en) 2002-01-31
DE60113549D1 (de) 2006-02-02
ES2249474T3 (es) 2006-04-01
EP1303970A2 (de) 2003-04-23
ATE305200T1 (de) 2005-10-15

Similar Documents

Publication Publication Date Title
DE60113549T2 (de) Tcp-flusssteurung
DE60036218T2 (de) Verbindungsschichtquittierung und wiederübertragung für ein zellulares telekommunikationssystem
DE19983404B4 (de) Verfahren und Vorrichtung zur Verwendung bei der Einstellung eines TCP Gleitfensters
DE69930992T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen
DE60023019T2 (de) Verfahren und system zur ablösung oder regeneration von quittierungspaketen in adsl kommunikationen
DE60109959T2 (de) Verfahren um die effizienz eines datenstromes in einem kommunikationssystem zu erhöhen
DE69738359T2 (de) System zur Verbesserung des Datendurchsatzes einer TCP/IP Netzwerkverbindung mit langsamen Rückkanal
US7869365B2 (en) System and program storage device for controlling data packet flows by manipulating data packets according to an actual manipulation rate
DE69836007T2 (de) Verfahren und endgerät mit verbesserter verbraucherantwortzeit in einem mobilen netzwerk
DE69932069T2 (de) Arq protokoll mit packetbasierter zuverlässigkeitseinstellung
DE69434763T2 (de) Verfahren und Vorrichtung zur Überlastregelung in einem Kommunikationsnetzwerk
DE69837513T2 (de) Vorrichtung für die sichere Kommunikation über Funk- und Leitungsnetzwerke mittels Transportschichtverbindungen
DE69935554T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und zuverlässigen Übertragen von kleinen Datennachrichten von einem Sendesystem zu einer grossen Anzahl von Empfangssystemen
DE69931215T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen
DE60217361T2 (de) Verfahren und System zur Überlastkontrolle in einem Kommunikationsnetzwerk
DE60201553T2 (de) System und Verfahren zur Fehlerbeseitigung mit negativer Rückquittierung (NACK)
CN102355462A (zh) 一种实现tcp传输的方法及装置
US8416694B2 (en) Network feedback method and device
CN105024940A (zh) 基于链路自适应的异构网络tcp拥塞控制方法
US20040037223A1 (en) Edge-to-edge traffic control for the internet
US6757738B1 (en) Method and apparatus for improving channel utilization
EP1238496B1 (de) Verbesserungen für oder in bezug auf internet zugang
CN101005336A (zh) 一种适合卫星网络的自适应拥塞控制方法及系统
Peng et al. An effective way to improve TCP performance in wireless/mobile networks
DE19543280C2 (de) Kommunikationssystem zum Übertragen von ATM-Zellen mit Hilfe von Datenblöcken über ein drahtloses Medium

Legal Events

Date Code Title Description
8363 Opposition against the patent
8331 Complete revocation