-
Gebiet der
Erfindung
-
Die Erfindung bezieht sich allgemein
auf das Gebiet der digitalen Datenübertragung über ein Netz. Insbesondere
bezieht sie sich auf eine Vorrichtung und ein Verfahren zur Übertragung
digitaler Daten in Strömen
von Paketen, unter Beachtung garantierter minimaler und/oder maximaler
Bandbreiten-Zuteilungen.
-
Hintergrund
der Erfindung
-
Im Gegensatz zu leitungsgebundenen Transportsystemen
ermöglicht
es ein Transportsystem auf Paketbasis, dass die Zugangsbandbreite
dynamisch zugeteilt wird. Entfernt liegende Knoten können als
logische Ports dargestellt werden, doch gibt es keine Zusage für Bandbreite,
wenn diese nicht benötigt
wird. Die physikalische Zugangsverbindungsstrecke steht vollständig für Verkehr
zu irgendeinem Ziel zur Verfügung.
In einem Paket-Transportsystem werden virtuelle Kanäle oder
Pipes zwischen irgendwelchen zwei Transport-Zugangspunkten vorgesehen.
Für diese
Pipes kann irgendeine minimale Übertragungsrate
garantiert werden, doch ist es sicherlich erforderlich, dass ein
Zugangspunkt eine opportunistische Verwendung von Reserve-Bandbreite
bis zu einem gewissen maximalen Betrag machen kann. Das Frame-Relay-Verfahren
(Übertragungsverfahren
mit Paketen in variabler Länge)
als ein paketbasierter Transport ermöglicht eine effizientere Verwendung
von Bandbreite dadurch, dass eine statistische Multiplexierung von
Datenströmen
ermöglicht
wird, so dass dieses Verfahren unbenutzte Bandbreite ausnutzen kann.
Es gibt jedoch keinen Mechanismus (Protokoll), zur Sicherstellung
einer zuverlässigen Zustellung
der Rahmen, und unter Überlastbedingungen
werden Rahmen verworfen und die Protokolle der höheren Ebene müssen den
Verlust kompensieren. Das Verwerfen von Rahmen hängt nicht von der Auswirkung
auf die Protokolle höherer
Ebene ab, und der Rahmenfluss passt sich nicht direkt an die Netzbedingungen
an. ATM mit einer effektiven Flusssteuerung kann einen verlustlosen,
jedoch dynamischen Transport ergeben. Dieses Übertragungsverfahren ist jedoch
von irgendeinem annehmbaren Kompliziertheitsgrad an den Transport-Vermittlungspunkten
abhängig,
um die Flusssteuerung zu erzielen, deren Effektivität sich in
der praktischen Anwendung noch nicht erwiesen hat. ATM ohne Flusssteuerung
erfordert, dass Zellen unter Überlastbedingungen
verworfen werden, und dieses Verwerfen sollte sich der Paketgrenzen
und der Auswirkung auf Protokolle höherer Ebene, wie zum Beispiel
das TCP-Protokoll, bewusst sein. Diese Fragen stehen erst hinsichtlich
ihres Verständnisses
am Anfang.
-
Auf dem Gebiet der vorliegenden Erfindung ist
es allgemein üblich,
dass eine Schicht unter der Netzschicht als „Transport"-Schicht bezeichnet wird und virtuelle
Kanäle
oder Pipes zwischen Netzebenen-Knoten bereitstellt. Dies steht im
Gegensatz zu dem Schichtenmodell der OSI (Zwischenverbindung offener
Systeme), bei der sich die Transportschicht auf der Netzschicht
befindet, die ihrerseits auf der Datenverbindungsstrecken-Schicht
sitzt. Die Datenverbindungsstrecken-Schicht ergibt ähnliche
Funktionalitäten,
wie die der Transportschicht der vorliegenden Erfindung. In der
gesamten Beschreibung wird die erstere Bezeichnung verwendet.
-
Daher befindet sich in dem TCP/IP-Modell die
IP-Schicht unter der TCP-Schicht. Die IP-Schicht ist die Netzschicht,
in der das IP (Internet-Protokoll) abläuft. Ein Zwischenverbindungsnetz
unterscheidet sich von einem einzigen Netz, weil die verschiedenen Teile
stark unterschiedliche Topologien, Bandbreiten, Verzögerungen,
Paketgrößen und
andere Parameter haben können.
Die TCP-Schicht
ist die Übertragungsschicht,
in der das TCP (Übertragungssteuerprotokoll)
abläuft.
Die TCP-Schicht wurde zur Sicherstellung einer zuverlässigen Übertragung
von Byte-Strom-Daten zwischen zwei Endpunkten eines Verbindungsnetzes
verwendet, das weniger zuverlässig
sein kann. TCP ermöglicht
eine gemeinsame und adaptive Nutzung der verfügbaren Bandbreite einer Übertragungs- Verbindungsstrecke
zwischen zwei Endpunkten. Sie tut dies dadurch, dass sie veranlasst,
dass der Sender graduell die Rate der Aussendung vergrößert, bis
ein Paket verloren geht, worauf er die Rate erheblich verringert
und die graduelle Vergrößerung wiederholt.
Somit neigt TCP dazu, Verbindungen ihren proportionalen Anteil an
der verfügbaren
Bandbreite auf einer Verbindungsstrecke zu geben, obwohl unterschiedliche
Verbindungscharakteristiken, starke Änderungen bei der gemeinsamen Nutzung
ergeben können.
-
In der Internet-Terminologie wird
die Zusammenfassung von Verkehrsströmen durch Einkapseln dieser
Verkehrsströme
in einem einzigen IP-Strom in vielen Fällen als „Tunneling" oder Tunnelverarbeitung bezeichnet.
Die anhängige
US-Patentanmeldung
09/066,888 der Anmelderin vom 28. April 1998, veröffentlicht
als US 2001/0043609, beschreibt eine Erfindung, die TCP erneut in
einem paketbasierten Transport verwendet, um eine TCP-Tunnelbildung
zu schaffen, die zweckmäßigerweise
als eine „TCP-Sammelbündelung" bezeichnet werden
kann. Die Verwendung von TCP ergibt eine zuverlässige Zustellung von Daten
zwischen zwei Transport-Zugangspunkten, während sie es ermöglicht,
dass der Transport eine Elastizität und eine Bandbreiten-Teilung
bietet. Die Aggregation von Verkehrsströmen in TCP-Tunnels verringert
die Größe der Puffer
und Tabellen in den Transport-Vermittlungen. TCP ist gut für die Verwendung
von Warteschlangen geeignet, bei denen die ersten Daten als erste
ausgeleitet werden, und ermöglicht
eine einfache Realisierung an den Vermittlungsknoten. TCP ergibt
weiterhin von Natur aus eine Umänderung
der Folgen von außerhalb
der Reihenfolge ankommenden Paketen, was auftreten kann, wenn die
Vermittlungsknoten die Last über mehrfache
Verbindungsstrecken aufteilen.
-
Es wird erwartet, dass es in zukünftigen
Netzen, insbesondere in denen, die eine TCP-Sammelbündelung
zwischen Aggregationspunkten verwenden, erforderlich sein wird,
eine minimale Senderate für
die Verbindung sicherzustellen, während es gleichzeitig der Verbindung
ermöglicht
wird, eine Überprüfung auf
möglichen
zusätzlichen
Durchsatz durchzuführen,
wenn dieser verfügbar
ist. Diese opportunistische Erfassung von Bandbreite könnte auf irgendein
Maximum begrenzt sein. Die europäische Patentanmeldung
EP 458 033 offenbart ein
Verfahren und eine Vorrichtung zur dynamischen Einstellung der Fenstergröße in einer
Sitzung zwischen einem Sender und einem Empfänger, über eine Verbindungsstrecke
eines Paket-Übertragungsnetzes.
TCP hat jedoch derzeit keine Fähigkeit,
eine garantierte vollständige
Bandbreitenkontrolle zu unterstützen, doch
wird dies in Zukunft wesentlich sein, wenn IP-Netze virtuelle private
Netze mit Betriebsleistungs-Garantien
einführen.
Die vorliegende Erfindung bietet eine gute Lösung für ein derartiges Problem.
-
Es sei bemerkt, dass in einem einem
Betreiber gehörenden
Transportnetz die TCP-Funktionalität in Transport-Zugangspunkten
und nicht in Host-Computern liegen würde, wobei die Veränderlichkeit
von Pfaden niedrig sein wird und die Parameter, wie zum Beispiel
die Umlaufzeit der Verbindung, sehr stabil sind. Diese Merkmale
machen es wesentlich einfacher, Modifikationen an dem TCP-Protokoll für diese
Netze in Betracht zu ziehen.
-
Die Verwendung dieser Erfindung kann
jedoch allgemeiner auf andere TCP-Hosts und andere mit Gleitfenster
arbeitende Protokolle angewandt werden.
-
Viele Datenströme auf heutigen Netzen übertragen
lediglich eine geringe Menge an Information, beispielsweise zehn
oder zwanzig Pakete, und das Ratenanpassungsmerkmal von TCP ist
nicht so bedeutsam, wie das Zuverlässigkeitsmerkmal. Die Schaffung
einer Zuverlässigkeit,
ohne dass TCP-Zeit-Abläufe beim
Verlust eines einzelnen Pakets auftreten, würde sehr stark den Benutzer-Durchsatz
und den Netz-Wirkungsgrad vergrößern.
-
Ziele der
Erfindung
-
Es ist daher ein Ziel der Erfindung,
eine auf Gleitfenster beruhende Flusssteuerung für Punkt-zu-Punkt-Verbindungen
in einem Paket-Netz zu schaffen, die die minimalen und/oder maximalen Bandbreiten,
die für
diese Verbindung zur Verfügung stehen,
beschränkt.
-
Es ist ein weiteres Ziel der Erfindung,
Modifikationen an dem TCP-Protokoll bereitzustellen, um eine Beschränkung der
minimalen und/oder maximalen Bandbreiten zu erreichen, die von der
Verbindung erzielt werden.
-
Es ist weiterhin ein Ziel der Erfindung,
das Fehlen von TCP-Wiederaussendungs-Zeitabläufen für Ströme mit kleinen Fenstern dadurch
sicherzustellen, dass eine minimale Senderate aufrechterhalten wird.
-
Zusammenfassung
der Erfindung
-
Kurz gesagt, ist gemäß einem
Gesichtspunkt die Erfindung auf ein Verfahren zum Senden von Daten
in Paketen über
eine Verbindung mit Hilfe eines Gleitfenster-Algorithmus gerichtet, bei dem ein Datenfluss
in die Verbindung in Abhängigkeit
von quittierten Paketen gesteuert wird, wobei die Verbindung entweder
eine garantierte minimale Bandbreite oder eine maximal zulässige Bandbreite
oder beide beachtet. Das Verfahren umfasst die Schritte der Berechnung
eines Überlastfensters
der Verbindung, das nachfolgend als C-WND bezeichnet wird, die Einstellung
entweder einer garantierten minimalen Bandbreite (GMB) oder einer
maximal zulässigen Bandbreite
(MPB) oder beider, die Berechnung entweder eines garantierten minimalen
Bandbreiten-Fensters, das nachfolgend MIN-WND genannt wird, oder
eines maximal zulässigen
Bandbreiten-Fensters, das nachfolgend als MAX-WND bezeichnet wird,
wobei MIN-WND auf der Grundlage der GMB und MAX-WND auf der Grundlage
der MPB berechnet wird; Bestimmen, ob das MIN-WND oder MAX-WND auf der Verbindung
aufgerufen wird, auf der Grundlage seiner Beziehung zu C-WND, wobei ein
gewähltes
Fenster gleich MIN-WND ist, wenn eine höchste Sequenz-Nummer innerhalb
von C-WND unter die von MIN-WND fällt, während das gewählte Fenster
gleich MAX-WND wird, wenn die höchste
Sequenz-Nummer von C-WND größer als die
von MAX-WND wird, und Ermöglichen
der Übertragung
eines oder mehrerer Datenpakete in die Verbindung, wenn entweder
MIN-WND oder MAX-WND die Übertragung
ermöglicht,
gekennzeichnet durch Vergrößern von
entweder von MIN-WND oder MAX-WND oder beider als Antwort auf jede
Doppelquittierung.
-
Gemäß einem weiteren Gesichtspunkt
ist die Erfindung auf eine Vorrichtung zum Senden von Daten in Paketen über eine
Verbindung mit Hilfe eines Gleitfenster-Algorithmus gerichtet, bei dem ein Datenfluss
in die Verbindung in Abhängigkeit
von quittierten Paketen gesteuert wird, und die Verbindung entweder
eine garantierte minimale Bandbreite und eine maximal zulässige Bandbreite
oder beide beobachtet. Die Vorrichtung umfasst ein Fluss-Steuermodul
zur Steuerung eines Paket-Flusses in die Verbindung in Abhängigkeit
von quittierten Paketen, ein Überlastfenster-Arithmetik-Modul
zur Berechnung eines Überlastfensters
der Verbindung, das nachfolgend als das C-WND bezeichnet wird, ein
Bandbreiten-Überwachungs-Fenster-Arithmetik-Modul
zur Einstellung entweder einer garantierten minimalen Bandbreite
(GMB) oder einer maximalen zulässigen Bandbreite
(MPB) oder beider, und die Berechnung entweder eines garantierten
minimalen Bandbreiten-Fensters, das nachfolgend als MIN-WND bezeichnet
wird, und eines maximal zulässigen
Bandbreiten-Fensters, das nachfolgend mit MAX-WND bezeichnet wird,
oder beider, wobei MIN-WND auf der Grundlage der GMB berechnet wird
und MAX-WND auf
der Grundlage der MPB berechnet wird, ein Steuerlogik-Modul zur
Bestimmung, ob das MIN-WND oder das MAX-WND auf der Verbindung aufgerufen
wird, aufgrund ihrer Beziehung mit C-WND, worin ein gewähltes Fenster
gleich MIN-WND ist,
wenn eine höchste
Sequenz-Nummer innerhalb von C-WND unter die von MIN-WND fällt, während das
gewählte
Fenster gleich MAX-WND wird, wenn die höchste Sequenz-Nummer von C-WND
größer als
die von MAX-WND wird, einen Sender zum Senden einer Serie von Daten-Paketen in
die Verbindung, eine Steuerung, die die Übertragung einer oder mehrerer
Daten-Pakete in die Verbindung ermöglicht, wenn entweder MIN-WND
oder MAX-WND die Übertragung
zulässt,
und dadurch gekennzeichnet, dass sie ein Fenster-Steuermodul zur Einstellung
der Größe von entweder
MIN-WND oder MAX-WND oder von beiden in Abhängigkeit von jeder Doppelquittierung
umfasst.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
eine Erläuterung,
die die Art des Gleitfenster-Algorithmus zeigt,
-
2 zeigt
Quittierungs-Mechanismen,
-
3 zeigt,
dass das Fenster erweitert und bewegt wird, wenn eine nicht-duplizierte ACK (Quittierung)
empfangen wird,
-
4 zeigt
das Fenster, wenn ein Paket verloren geht,
-
5 zeigt
die Art von MIN-WND gemäß einer
Ausführungsform
der Erfindung,
-
6 zeigt
das MIN-WND, wenn eine duplizierte: ACK empfangen wird,
-
7 zeigt
das MIN-WND, wenn eine nicht-duplizierte ACK empfangen wird,
-
8 zeigt
die Art von MAX-WND, gemäß einer
Ausführungsform
der Erfindung,
-
9 zeigt
das MAX-WND, wenn eine duplizierte ACK empfangen wird,
-
10 zeigt
das MAX-WND, wenn eine nicht duplizierte ACK empfangen wird,
-
11–14 zeigen die Beziehungen
verschiedener Fenster,
-
15 ist
ein Blockschaltbild eines TCP-Knotens.
-
Ausführliche
Beschreibung bevorzugter Ausführungsformen
der Erfindung
-
Wenn Dienste mit Bandbreiten-Garantien bereitgestellt
werden, sollte ein Paket-Transportnetz in
der Lage sein, ein leitungsbasiertes Maschenwerk zu emulieren, in
dem eine definierte minimale Bandbreite zwischen irgendeinem Paar
von Knoten zugeteilt werden kann. Eine unbenutzte Bandbreite sollte jedoch
anderen Datenflüssen
in einer dynamisch aufgeteilten Weise verfügbar gemacht werden, so dass ein
Datenfluss opportunistisch sein Minimum übersteigen kann. In manchen
Fällen
ist es weiterhin nützlich,
eine maximale Grenze dafür
zu realisieren, wie viel zusätzliche
Bandbreite ein Paar von Knoten verwenden kann.
-
Das übliche IP-Netz realisiert die
Bandbreiten-Teilung zwischen Host-Maschinen unter Verwendung des
Datenübertragungs-Steuerungs-Protokolls (TCP).
Bei dem TCP prüft
der Sender (die sendende Host-Maschine) dauernd das Netz, um zu
prüfen,
ob mehr Bandbreite zur Verfügung
steht, und verwendet den Verlust eines Pakets, der durch die Sequenz-Nummern
von TCP-Paketen bestimmt wird, als eine Anzeige zur Verringerung
seiner Rate. Irgendwelche verloren gegangenen Pakete werden erneut
gesandt, so dass sich ein zuverlässiger
Verkehrsfluss ergibt. Der Verlust von zu vielen Paketen kann dazu
führen,
dass die TCP-Verbindung in den Zeitüberschreitungs-Zustand eintritt.
Aufeinanderfolgende Zeitüberschreitungen
werden in exponentieller Weise vergrößert, bis schließlich die
Verbindung beendet wird.
-
Die allgemeine Charakteristik von
TCP besteht darin, dass es selbst-taktend ist. Das heißt, der Sender
wartet auf eine Quittierung von dem Empfänger für bereits gesandte Pakete,
bevor weitere Pakete gesandt werden. Wenn der Sender darauf warten würde, dass
jedes einzelne Paket quittiert wird, dann würde die maximale Rate, die
die Verbindung erzielen könnte,
ein Paket pro Umlaufzeit der Verbindung sein. Um die Senderate unter
Beibehaltung der selbst-taktenden Natur des Protokolls zu vergrößern, wird
zugelassen, dass der Sender eine gewisse Anzahl von Paketen sendet,
während
er auf die Quittierung eines früheren
Pakets wartet. Diese Anzahl von Paketen wird als das Fenster bezeichnet.
Der Empfänger
selbst kann die Größe des Fensters
beschränken,
um seinen Pufferbedarf zu begrenzen.
-
Jedes Paket enthält eine Sequenz- oder Folgen-Nummer,
die entsprechend der Anzahl von übertragenen
Bytes ansteigt. Der Empfänger
quittiert Pakete unter Verwendung des Nummerierungsschemas und quittiert
immer das letzte empfangene Paket in einer korrekten Folge. Er kann
jedes Paket einzeln quittieren oder warten, um den Zusatzaufwand
zu verringern (dies wird als verzögerte Quittierung (ACK) bezeichnet).
Er sollte unbedingt eine Quittierung bei jedem zweiten Paket senden.
Wenn ein Paket empfangen wird, das sich nicht in einer richtigen Folge
befindet, sendet der Empfänger
unmittelbar eine Quittierung, doch die Sequenz-Nummer, die er quittiert,
wird die des letzten Pakets sein, das in der richtigen Folge empfangen
wurde. Es sei bemerkt, dass die Sequenz-Nummer in einem Paket dem
letzten Byte in dem Paket entspricht und die Quittierung die nächste erwartete
Byte-Nummer in der Folge enthält
und somit alle Bytes bis zu dieser Nummer quittiert. In allgemeiner
Terminologie wird ein Paket quittiert, wenn der Empfänger berichtet,
dass die nächste erwartete
Byte-Nummer später
als irgendwelche Bytes ist, die in diesem Paket enthalten sind.
-
Die maximale Rate des Sendens auf
einer TCP-Verbindung ist gleich der Fenstergröße dividiert durch die Umlaufzeit
der Verbindung. TCP versucht dauernd, seine Rate durch Vergrößern der
Fenstergröße zu vergrößern. Wenn
ein Paket verloren geht, wird die Fenstergröße verringert und die graduelle Vergrößerung wird
erneut begonnen. Die derzeitige Größe des Fensters wird als das Überlast-Fenster (C-WND)
bezeichnet und kann sich zwischen einem Paket und dem Maximum ändern, das
der Empfänger
bereit ist, zu akzeptieren (R-WND: Empfänger-Fenster).
-
1 zeigt
die Art des Gleitfensters. Das Fenster gibt die ausgesandten, jedoch
noch nicht quittierten Daten sowie die Menge an Daten wieder, die
noch gesandt werden können,
ohne dass auf eine Quittierung gewartet wird. Wenn ein Paket quittiert wird,
bewegt sich das Fenster weiter vorwärts, so dass die linke Seite
gleich der frühesten
nicht quittierten Byte-Nummer ist. Die rechte Seite des Fensters ist
gleich der höchsten
Byte-Sequenz-Nummer, die gesandt werden kann, bevor der Sender auf
weitere Quittierungen warten muss. Es sei bemerkt, dass der Empfänger lediglich
Bytes quittiert, die sich in einer vollständigen Folge befinden. Spätere Bytes,
die empfangen wurden, werden nicht quittiert, bevor nicht alle vorhergehenden
Bytes empfangen wurden.
-
Ein Paket-Verlust wird in einer von
zwei Arten festgestellt. Wenn der Sender keine Bestätigung oder
Quittung innerhalb einer bestimmten Zeit erhält (TCP-Übertragungswiederholungs-Zeitablauf),
so nimmt er an, dass ein Paket verloren gegangen ist, und er wird
seine C-WND-Größe auf ein
Paket reduzieren und außerdem
das verlorene Paket erneut senden. Wenn der Sender mehrfache Quittierungen des
gleichen Pakets feststellt (was als Duplikat-ACK (Quittung) bezeichnet
wird), so kann er entscheiden, dass das Paket verloren gegangen
ist, selbst bevor der Übertragungswiederholungs-Zeitablauf
eintritt. Viele TCP-Realisierungen
schließen
diese schnelle Übertragungswiederholungs-
und Erholungs-Fähigkeit
ein. Die Fenster-Größe wird
auf die Hälfte
verkleinert und das verlorene Paket wird erneut ausgesandt. Die
Vermeidung des Zeitablaufs ergibt eine große Verbesserung des wahrgenommenen
Betriebsverhaltens, ist jedoch nur dann wirksam, wenn das Fenster
groß genug
ist, um es zu ermöglichen, dass
genügend
Duplikat-Quittungen erzeugt werden (üblicherweise drei). Dies ist
schematisch in 2 gezeigt,
in der das Paket 19 verloren geht und der Empfänger den
Empfang der Pakete bis zu 18 quittiert. Mehrfache der quittierten
Pakete zeigen an, dass der Empfänger
immer noch das Paket 19 erwartet. Für Fenster, die kleiner als
ungefähr
5 Pakete sind, ist es nicht möglich,
zu garantieren, dass die schnelle Übertragungswiederholung aufgerufen
wird. Viele Datenflüsse
auf heutigen Netzen übertragen
lediglich eine kleine Informationsmenge, beispielsweise zehn oder
zwanzig Pakete, und sie erzeugen niemals große Fenster. Somit kann der
Verlust eines einzigen Pakets die Verbindung in einen Zeitablauf bringen.
-
Es gibt zwei Operationen an dem C-WND, und
sie sind in den 3 bzw.
4 gezeigt:
-
(a) Erweitere Fenster
(3)
-
Wenn eine nicht duplizierte Quittung
(ACK) empfangen wird, wird C-WND dadurch erweitert, dass die rechte
Kante des Fensters erstreckt und das Fenster nach rechts bewegt
wird, so dass das erste Byte in dem Fenster das früheste nicht
quittierte Byte ist. Der Erweiterungsfaktor ist eine Funktion der TCP-Realisierung.
-
(b) Verkleinere Fenster
(4)
-
Wenn ein Paket-Verlust auftritt,
wird die Grüße des Fensters
dadurch verkleinert, dass die rechte Kante des Fensters zurückbewegt
wird, und das Paket wird erneut ausgesandt.
-
Das Transportsystem muß einen
gewissen minimalen Wert an Bandbreite für den Gesamtverkehr zwischen
irgendeinem Paar von Zugangspunkten bereitstellen. Wie dies weiter
oben erwähnt
wurde, verringert TCP üblicherweise
die Senderate sehr aggressiv, wenn ein Paket verloren geht. Es wird
jedoch in Betracht gezogen, dass TCP so modifiziert wird, dass bewirkt
ist, dass es die Senderate auf irgendeine konfigurierte Anzahl verringert,
statt sie um einen festen Betrag zu verringern, wie zum Beispiel eine
Hälfte.
Die konfigurierte Anzahl stellt sicher, dass die Verbindung immer
mit einer minimalen Rate laufen kann. Es wird weiterhin in manchen
Fällen
in Betracht gezogen, dass TCP auf eine maximale Rate beschränkt werden
kann, die kleiner als die ist, die es normalerweise erreichen würde, so
dass eine Verbindung nicht die gesamte verfügbare Bandbreite belegen würde.
-
Daher muss, wenn die garantierte
minimale Bandbreite bekannt ist und die Umlaufzeit (RTT) zwischen
den Endpunkten bekannt ist oder abgeschätzt wurde, der TCP-Sender-Knoten
lediglich sein Fenster auf dasjenige Fenster verkleinern, das einer
Senderate gleich dieser konfigurierten Anzahl entspricht. Auf diese
Weise führt
das Protokoll immer noch eine Prüfung
auf eine zusätzliche
opportunistische Bandbreite aus, ist jedoch in der Lage, die minimale
Rate aufrechtzuerhalten. In ähnlicher
Weise wird das Senden gesperrt, wenn das TCP-Fenster eine Größe erreicht,
die der maximalen Bandbreite entspricht.
-
Diese Erfindung führt das Konzept von Überlagerungs-Fenstern
ein. Dieses Konzept macht es einfach, die Konstruktionsabsichten
zu verstehen und ermöglicht
die Hinzufügung
der Modifikation, ohne dass wesentliche Änderungen an dem Hauptteil
des üblichen
TCP-Betriebs-Codes durchgeführt werden
müssen.
-
Gemäß einer Ausführungsform
wird das TCP so modifiziert, dass bewirkt wird, dass es seine Senderate
auf irgendwelche konfigurierten minimalen und/oder maximalen Zahlen
festlegt, statt zwischen einem Paket und der Größe des Empfänger-Fensters (R-WND). Diese
Modifikation ist lediglich an dem TCP-Sender erforderlich. Die konfigurierte
minimale Anzahl stellt sicher, dass die Verbindung immer mit einer
minimalen Rate ablaufen kann, und die konfigurierte maximale Anzahl
verhindert, dass die gesamte verfügbare Bandbreite der Verbindung von
einem Knotenpaar belegt wird. Die Modifikation des TCP-Senders verbessert
weiterhin die TCP-Elastizität in der
Hinsicht, dass die Verbindung keine exponentiell zunehmenden Zeitabläufe bei
Paketverlusten erfährt.
Diese verbesserte Elastizität
gegenüber
Paketverlusten wird erzielt, ohne dass das Netz mehr als über die
garantierte minimale Bandbreite für die TCP-Verbindung belastet
wird, oder auf ein Paket pro Umlaufzeit der Verbindung. Genauso wie
die Verwendung einer garantierten minimalen Rate während der
Lebensdauer einer Verbindung, kann diese Modifikation ebenfalls
selektiv aktiviert werden, um einen Zeitablauf zu den Zeiten zu
verhindern, wenn die Fenstergröße der Verbindung
zu klein ist, um eine schnelle Übertragungs-Wiederholung und
Erholung zu ermöglichen.
-
Wie dies weiter oben erwähnt wurde,
kann der Sender bei dem normalen TCP irgendeine Anzahl von Paketen
senden, während
er auf eine Quittung eines früheren
Paketes wartet, und diese Anzahl wird als das Fenster bezeichnet.
Arithmetisch ist zu erkennen, dass die maximale Rate, die eine Verbindung
erzielen kann gleich der Fenstergröße dividiert durch die Umlaufzeit
der Verbindung (RTT) in Sekunden ist. Um eine garantierte minimale
Bandbreite (GMB Bytes pro Sekunde) sicherzustellen, ist es erforderlich,
dass die Verbindung immer zumindest GMB mal RTT-Bytes in irgendeiner
RTT-Periode senden kann, und dass die Verbindung nicht durch verloren
gegangene Pakete gestoppt wird, sondern weiter sendet, sofern nicht
der normale Halteprozeß die Verbindung
beendet.
-
Gemäß einer Ausführungsform
verwendet der TCP-Sender die folgenden Variablen:
-
GMB: Die garantierte minimale Bandbreite
in Bytes pro Sekunde. Dies ist ein neuer konfigurierter Parameter.
-
MPB: Die maximal erlaubte Bandbreite
in Bytes pro Sekunde. Dies ist ein neuer konfigurierter Parameter.
-
RTT: Die geschätzte Umlaufzeit der Verbindung
in Sekunden.
-
R-WND: Die maximale Fenstergröße, die
für den
Empfänger
akzeptabel ist (wie dies von dem Empfänger in Verbindung mit den
Quittungen bekannt gemacht wird).
-
C-WND: Die Größe des Überlast-Fensters, wie sie von
dem vorhandenen TCP-Algorithmus
berechnet wird.
-
MIN-WND: Dies ist ein Gleitfenster
auf der Grundlage der garantierten minimalen Bandbreite. Dies ist
eine neue, berechnete Variable.
-
MAX-WND: Ein Gleitfenster auf der
Grundlage der zulässigen
maximalen Bandbreite. Dies ist eine neue, berechnete Variable.
-
Pkt: Paket-Größe ist die Paket-Nutzinformationsgröße, die
derzeit von der Verbindung verwendet wird, in Bytes.
-
RTO: TCP-Übertragungswiederholungs-Zeitablauf-Wert
ist die Periode in Sekunden, nach der bei Fehlen von Quittungen
nicht-quittierte Pakete erneut ausgesandt werden. (Typischerweise ist
RTO gleich 1 Sekunde oder mehr.)
-
OwT: Außerhalb-des-Fensters-Sende-Zeitgeber,
in Sekunden, definiert die Zeit, nach der ein Paket ausgesandt werden
kann, selbst wenn der Zustand des TCP-Überlastfensters
dies normalerweise nicht erlauben würde. (Ein vorgeschlagener Wert
von OwT ist 0,2 Sekunden.) Dies ist ein neuer konfigurierter Parameter.
-
RsT: Sendewiederholungs-Zeitgeber-Periode,
in Sekunden, hat einen Wert größer als
OwT, RTT, Pkt/GMB, ist jedoch immer kleiner als RTO. Dies ist eine
neue berechnete Variable.
-
Gemäß einer Ausführungsform
der Erfindung wird die garantierte minimale Bandbreite für eine TCP-Verbindung
wie folgt gewonnen.
-
Während
eine Verbindung offen ist, kann der Sender ein Paket in das Netz
senden, wenn dies durch das von dem Empfänger bekanntgemachte Gleitfenster
erlaubt ist, und wenn irgendeine der folgenden Bedingungen erfüllt ist:
-
C1: Das ausgesandte Paket wird durch
das normale TCP-Überlast-Fenster
erlaubt und ist nicht durch MAX-WND verboten.
-
C2: Das ausgesandte Paket wird durch MIN-WND
erlaubt.
-
C3: RsT läuft ab.
-
5 zeigt
die Art von MIN-WND, das sehr ähnlich
zu C-WIND ist, mit der Ausnahme, dass sich die Größe nicht
entsprechend der Überlast ändert, sondern
an den Wert von GMB und RTT gebunden ist.
-
Es gibt zwei Operationen an dem MIN-WND und
diese sind in den 6 und 7 gezeigt:
-
(a) Vergrößere oder
erweitere Fenster (6)
-
Wenn eine Duplikat-Quittung (ACK)
empfangen wird, wird das MIN-WND um 1 Pkt erweitert, indem die rechte
Kante des Fensters weiterbewegt wird.
-
(b) Setze Fenstergröße zurück und bewege
nach rechts (7).
-
Wenn eine kein Duplikat darstellende
Quittung (ACK) empfangen wird, wird MIN-WND auf seine ursprüngliche Größe (GMB*RTT) zurückgesetzt und
nach rechts bewegt, so dass das erste Byte in dem Fenster das erste
nicht-quittierte Byte ist.
-
Wie dies in den Figuren zu erkennen
ist, wird, wenn eine Duplikat-Quittung empfangen wird, das Fenster
um ein Paket vergrößert. Der
Empfang einer Quittung zeigt, dass der Empfänger ein Paket empfangen hat,
selbst wenn dieses nicht in der Folge ist. Die Erweiterung des Fenster
stellt sicher, dass die Verbindung das Senden neuer Pakete fortsetzen kann,
selbst wenn eine Quittung fehlt. Ein neues Paket wird für jede duplizierte
empfangene Quittung ausgesandt. Dies verhindert, dass die Verbindung angehalten
wird, vergrößert jedoch
nicht die Anzahl von Paketen in dem Netz. Sobald jedoch eine nicht-duplizierte
Quittung empfangen wird, wird das Fenster auf die normale Größe zurückgesetzt.
-
In ähnlicher Weise zeigt 8 das Format von MAX-WND,
das identisch zu MIN-WND
ist, mit der Ausnahme, dass die Größe auf der maximal zulässigen Bandbreite
beruht.
-
Ähnlich
wie die bisher beschriebenen Fenster gibt es zwei Operationen an
dem MAX-WND, und diese sind in den 9 und 10 gezeigt:
-
(a) Vergrößere oder
erweitere Fenster (9)
-
Wenn eine Duplikat-Quittung (ACK)
empfangen wird, wird das MAX-WND um 1 Pkt durch Weiterbewegen der
rechten Kante des Fensters vergrößert.
-
(b) Setze Fenstergröße zurück und bewege
Fenster nach rechts (10).
-
Wenn eine nicht duplizierte Quittung
(ACK) empfangen wird, so wird MAX-WND auf seine ursprüngliche
Größe (MPB*RTT)
zurückgesetzt
und nach rechts bewegt, so dass das erste Byte in dem Fenster das
erste nicht-quittierte Byte ist.
-
Die 9 und 10 zeigen daher, dass das Fenster
auch vergrößert wird,
wenn Duplikat-Quittungen empfangen werden, und dass das Fenster
zurückgesetzt
wird, wenn eine nicht duplizierte Quittung festgestellt wird.
-
Die 11 bis 14 zeigen den nicht modifizierten
TCP-Algorithmus und die Überlagerungsverfahren
zur Modifikation des TCP-Algorithmus gemäß Ausführungsformen der Erfindung.
Bei diesen Ausführungsformen
ist das gewählte
Fenster als das maximal annehmbare Fenster nach der Berücksichtigung
der Forderungen der Überlagerungsregeln
definiert. Daher zeigt 11 das
nicht modifizierte TCP, wobei das gewählte Fenster das normale Überlast-Fenster
ist und einen Wert zwischen 1 und R-WND haben kann. 12 zeigt andererseits, wie bei einem
Absinken der höchsten
Sequenz-Nummer in C-WND unter MIN-WND die GMB-Überlagerung erfolgt
und das gewählte
Fenster gleich MIN-WND ist. In ähnlicher Weise
wird in 13, wenn die höchste Sequenz-Nummer
von C-WND größer als die
von MAX-WND wird, die MPB-Überlagerung
wirksam, und die gewählte
Fenstergröße wird
gleich MAX-WND. 14 zeigt,
wie MIN-WND und MAX-WND dem normalen TCP-Algorithmus überlagert
werden, um die vollständige
Bandbreiten-Steuerung zu schaffen.
-
Wenn die Rate des Sendens zwischen
den konfigurierten Grenzen liegt, steuert der normale TCP-Algorithmus
die Rate. Wenn sich die Rate im Sinn einer Verringerung unter das
Minimum ändert, so
kommt das MIN-WND ins Spiel. Wenn die Rate das Maximum erreicht,
so wird MAX-WND wirksam. Der normale TCP-Mechanismus steuert immer
noch die Zuverlässigkeit
und Elastizität
innerhalb der konfigurierten Grenzen. Ein Übersteuerungs-Zeitgeber RsT
stellt sicher, dass selbst dann, wenn keine Quittungen empfangen
werden, eine minimale Rate von Paketen immer noch ausgesandt wird,
um Quittungen und schließlich
die erneute Aussendung ohne Anhalten durch den TCP-Zeitablauf zu
stimulieren.
-
15 zeigt
schematisch in einem Blockschaltbild einen TCP-Knoten gemäß einer
Ausführungsform
der Erfindung. Der Knoten ist mit einem Netz verbunden und schließt einen
Sender und einen Empfänger
eines IP-Moduls 20 ein. Die Kundendaten 22 werden
von einem TCP-Modul 24 verarbeitet, das die Daten zu TCP-Paketen
formt, bevor der Sender sie in das Netz sendet. In der Empfangsrichtung
extrahiert das Modul selbstverständlich
die Kundendaten und überträgt sie zu
dem Endgerät
des Kunden zur Ausgabe. Der Takt 26 erzeugt Taktsignale,
die eine Zeitsteuerung einer Vielzahl von Operationen des Knotens
bewirken. Das Arithmetik-Modul 28 ist in einem getrennten
Kasten gezeigt und führt
soweit beschriebene Berechnungen unter der Steuerung der Steuerlogik 30 aus.
Die Steuerung 32 überwacht
den Gesamtbetrieb des TCP-Moduls.
-
Festlegungen:
-
- A1. Die TCP-Verbindung darf zumindest GMB*RTT
Bytes pro RTT aussenden, mit Ausnahme der Zeit, zu der sie sich
von fehlenden Quittungen erholt.
- A2. Die TCP-Verbindung stoppt das Aussenden nicht für eine Periode,
die länger
als RsT unter allen Umständen
des Paket-Verlustes ist, bevor nicht ein normaler TCP-Zeit-Ablauf
eine Beendigung der Verbindung hervorruft.
- A3. Die Belastung des Netzes durch den Sender ist höchstens
das Maximum von GMB und Pkt/RsT, sofern nicht mehr durch das TCP-Überlast-Fenster
innerhalb der Grenzen von MPB erlaubt wird. (RsT ist immer größer oder
gleich RTT).
- A4. Bei Vorhandensein einer ausreichenden Bandbreite, ist die
TCP-Verbindung in
der Lage, eine maximale Rate von MPB*RTT Bytes pro RTT zu unterhalten,
mit Ausnahme während
der Erholung von fehlenden Quittungen.
-
Es sei bemerkt, dass es eine notwendige
Bedingung ist, dass ein Zugangsprozeß die Anzahl von TCP-Verbindungen
begrenzt, die gemeinsam eine Netz-Verbindungsstrecke nutzen, so dass die
Summe der GMPs für
alle TCP-Verbindungen,
unter Einschluß der
TCP- und IP-Anfangsblock-Zusatzdaten nicht größer als die Verbindungsstrecken-Bandbreite ist.
-
Es sei weiterhin bemerkt, dass selbst
wenn eine garantierte minimale Bandbreite nicht für die gesamte
Dauer eines Datenflusses erwünscht
ist, die Anwendung dieser Modifikation die Betriebsleistung für kurze
Datenflüsse
von weniger als beispielsweise zehn oder zwanzig Paketen dadurch
verbessert, dass ein TCP-Zeitablauf
verhindert wird, der normalerweise nach einem einzigen Paket-Verlust
auftritt. In diesem Fall könnte
die Modifikation aktiviert werden, während sich der Datenfluss in
einem unsicheren Zustand befand, und sie könnte abgeschaltet werden, sobald
eine gewisse Anzahl von Paketen erfolgreich ausgesandt wurde.