Split-tcp: Difference between revisions
No edit summary |
mNo edit summary |
||
(5 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
=== Einführung === |
=== Einführung === |
||
Ein Konzept mit dem Datenübertragungsraten bei mobilen wireless Ad-Hoc Netzwerken verbessert werden sollen. "Split-TCP" oder "TCP with proxies" wurde an der Universität von Kalifornien Riverside entwickelt und beschreibt die Möglichkeit mit einem neuen "Split-TCP" Protokoll die Effizienz bei mehreren gleichzeitigen Verbindungen zu verbessern und Problemen wie Verbindungsunterdrückung oder unnötigen Aufwand beim Finden einer neuen Route vorzubeugen besonders bei mobilen Netzwerkknoten. Es versteht sich als Weiterentwicklung von TCP. Grob gesehen funktioniert es so wie bei herkömmlichen Proxys. Das sind Zwischenstationen von denen IP-Pakete weiter zum Empfänger gesendet werden. |
|||
Ein Konzept mit dem Datenübertragungsraten bei mobilen wireless Ad-Hoc Netzwerken verbessert |
|||
werden sollen. "Split-TCP" oder "TCP with proxies" wurde an der Universität von Kalifornien |
|||
Riverside entwickelt und beschreibt die Möglichkeit mit einem neuen "Split-TCP" Protokoll die |
|||
Effizienz bei mehreren gleichzeitigen Verbindungen zu verbessern und Problemen wie |
|||
Verbindungsunterdrückung oder unnötigen Aufwand beim Finden einer neuen Route vorzubeugen |
|||
besonders bei mobilen Netzwerkknoten. Es versteht sich als Weiterentwicklung von TCP. Grob |
|||
gesehen funktioniert es so wie bei herkömmlichen Proxys. Das sind Zwischenstationen von denen |
|||
IP-Pakete weiter zum Empfänger gesendet werden. |
|||
=== Funktionsweise === |
=== Funktionsweise === |
||
Das Protokoll schreibt vor, das nach einer bestimmten Anzahl von Hops (Verbindungsknoten im |
Das Protokoll schreibt vor, das nach einer bestimmten Anzahl von Hops (Verbindungsknoten im Ad-Hoc Netzwerk) ein Proxy sich um die Weitergabe des IP-Paketes kümmert. Der Transport Layer hat jetzt zwei getrennte Aufgaben: Stau Kontrolle und End-To-End-Flusskontrolle. |
||
Ad-Hoc Netzwerk) ein Proxy sich um die Weitergabe des IP-Paketes kümmert. Der Transport Layer |
|||
hat jetzt zwei getrennte Aufgaben: Stau Kontrolle und End-To-End-Flusskontrolle. |
|||
Die Staukontrolle ist Teil der End-to-End-Kontrolle. Die Datenrate muss somit angepasst sein. |
Die Staukontrolle ist Teil der End-to-End-Kontrolle. Die Datenrate muss somit angepasst sein. |
||
Line 45: | Line 27: | ||
# local congestion window speichert aufgestaute Packete |
# local congestion window speichert aufgestaute Packete |
||
Die Bestätigung (ACK) von Quelle zum Ziel ist eine End-2-End Kontrolle, die es so bei dem |
Die Bestätigung (ACK) von Quelle zum Ziel ist eine End-2-End Kontrolle, die es so bei dem herkömmlichen TCP auch gibt. LACK Bestätigungen sind für die Stau Kontrolle. |
||
herkömmlichen TCP auch gibt. LACK Bestätigungen sind für die Stau Kontrolle. |
|||
=== Probleme von TCP (herkömmlich) === |
=== Probleme von TCP (herkömmlich) === |
||
link capture effect: |
link capture effect: |
||
Die Knoten können die Bandbreite von Verbindungen "unfair" aufteilen. Wenn mehrere Verbindung |
Die Knoten können die Bandbreite von Verbindungen "unfair" aufteilen. Wenn mehrere Verbindung durch einen Knoten gehen, wird die bevorzugt die: |
||
durch einen Knoten gehen, wird die bevorzugt die: |
|||
* sich zuerst aufgebaut hat |
* sich zuerst aufgebaut hat |
||
* mehr Datenpakete durchschickt |
* mehr Datenpakete durchschickt |
||
* kürzeren Weg zur Quelle hat |
* kürzeren Weg zur Quelle hat |
||
Die Wirkung ist eine Unterdrückung von einer 2. Verbindung, die z.B. quer zur 1. Verbindung |
Die Wirkung ist eine Unterdrückung von einer 2. Verbindung, die z.B. quer zur 1. Verbindung läuft. Die 2. Verbindung bleibt solange unterbrochen, bis die 1. weniger Datenpackete durchschickt. |
||
läuft. Die 2. Verbindung bleibt solange unterbrochen, bis die 1. weniger Datenpackete |
|||
durchschickt. |
|||
=== Ursachen === |
=== Ursachen === |
||
# Mobilität von Knoten: Einzelne Knoten verlieren (auch für kurze Momente) die Verbindung. |
# Mobilität von Knoten: Einzelne Knoten verlieren (auch für kurze Momente) die Verbindung. Dadurch sind lange TCP Sessions häufiger betroffen. |
||
Dadurch sind lange TCP Sessions häufiger betroffen. |
|||
# Das MAC-Protokoll erzwingt die unfaire Aufteilung |
# Das MAC-Protokoll erzwingt die unfaire Aufteilung |
||
=== Effizienz von Split-TCP === |
=== Effizienz von Split-TCP === |
||
Es wird ein einer Studie von [1] gezeigt, dass es eine Verbesserung der Performance von rund |
Es wird ein einer Studie von [1] gezeigt, dass es eine Verbesserung der Performance von rund 10-20 % gibt je nach Auslastung des Netzes und weiteren Faktoren. |
||
10-20 % gibt je nach Auslastung des Netzes und weiteren Faktoren. |
|||
== Experiment == |
== Experiment == |
||
Line 82: | Line 52: | ||
=== eine TCP Verbindung === |
=== eine TCP Verbindung === |
||
{| |
|||
[[Image:P1vergleich.jpg]] zeigt die Gesamtzahl empfangener Pakete im Zeitverlauf. Bei 50 s gab |
|||
|[[Image:P1vergleich.jpg]] |
|||
es eine kurze Verbindungsunterbrechung beim 2. Knoten. Bei Split-TCP sind die gespeicherten |
|zeigt die Gesamtzahl empfangener Pakete im Zeitverlauf. Bei 50 s gab es eine kurze Verbindungsunterbrechung beim 2. Knoten. Bei Split-TCP sind die gespeicherten Pakete vom Proxy und die neuen nach der Unterbrechung sofort übertragen worden. |
||
|} |
|||
Pakete vom Proxy und die neuen nach der Unterbrechung sofort übertragen worden. |
|||
=== konkurrierende TCP Verbindungen === |
=== konkurrierende TCP Verbindungen === |
||
{| |
|||
[[Image:P2vergleich.jpg]] zeigt Gesamtzahl empfangener Pakete im Zeitverlauf. Bei 250 s gab es |
|||
|[[Image:P2vergleich.jpg]] |
|||
einen "link capture effect". Dadurch wartet die 1. Verbindung auf die 2. Verbingung. |
|zeigt Gesamtzahl empfangener Pakete im Zeitverlauf. Bei 250 s gab es einen "link capture effect". Dadurch wartet die 1. Verbindung auf die 2. Verbingung. |
||
|} |
|||
== Referenz == |
== Referenz == |
||
* [1] "Departmentof Computer Science and Engineering, University of California, Riverside, |
* [1] "Departmentof Computer Science and Engineering, University of California, Riverside, CA,92521" |
||
Riverside, CA,92521" |
|||
* [[BerlinRoofNet|Berlin Roof Net]] |
* [[BerlinRoofNet|Berlin Roof Net]] |
Latest revision as of 17:42, 25 December 2006
Split-TCP
Einführung
Ein Konzept mit dem Datenübertragungsraten bei mobilen wireless Ad-Hoc Netzwerken verbessert werden sollen. "Split-TCP" oder "TCP with proxies" wurde an der Universität von Kalifornien Riverside entwickelt und beschreibt die Möglichkeit mit einem neuen "Split-TCP" Protokoll die Effizienz bei mehreren gleichzeitigen Verbindungen zu verbessern und Problemen wie Verbindungsunterdrückung oder unnötigen Aufwand beim Finden einer neuen Route vorzubeugen besonders bei mobilen Netzwerkknoten. Es versteht sich als Weiterentwicklung von TCP. Grob gesehen funktioniert es so wie bei herkömmlichen Proxys. Das sind Zwischenstationen von denen IP-Pakete weiter zum Empfänger gesendet werden.
Funktionsweise
Das Protokoll schreibt vor, das nach einer bestimmten Anzahl von Hops (Verbindungsknoten im Ad-Hoc Netzwerk) ein Proxy sich um die Weitergabe des IP-Paketes kümmert. Der Transport Layer hat jetzt zwei getrennte Aufgaben: Stau Kontrolle und End-To-End-Flusskontrolle.
Die Staukontrolle ist Teil der End-to-End-Kontrolle. Die Datenrate muss somit angepasst sein.
Die Regeln
- Paket wird über normale Hops wie beim TCP Protokoll weitergeleitet.
- Ein Hop wird zum Proxy, wenn IP-Paket schon bestimmte Anzahl Hops durchlief
- Ein Proxy ist nur für eine Verbindung Proxy, sonst gleichzeitig normaler Knoten (Hop)
- Ein Proxy schickt lokale Bestätigung (LACK) zurück an vorhergehenden Proxy oder Quelle.
- Der Proxy ist selbst dann für Weitergabe des Datenpaketes verantwortlich
- Die lokale Bestätigung (LACK) wird nur zum Nachbarproxy versendet, nicht weiter.
- Es wird noch eine Bestätigung (ACK) auf die gleiche Weise vom Ziel zur Quelle zurückversendet
- Das nächste Datenpacket wird mit gleicher Datenrate wie ankommendes LACK gesendet
Regeln zum Puffer
- Datenpakete, von allen Verbindungen speichern, die noch nicht bestätigt sind.
- Bestätigungen ACK speichern und dann Kopien der Datenpakete löschen
- local congestion window speichert aufgestaute Packete
Die Bestätigung (ACK) von Quelle zum Ziel ist eine End-2-End Kontrolle, die es so bei dem herkömmlichen TCP auch gibt. LACK Bestätigungen sind für die Stau Kontrolle.
Probleme von TCP (herkömmlich)
link capture effect: Die Knoten können die Bandbreite von Verbindungen "unfair" aufteilen. Wenn mehrere Verbindung durch einen Knoten gehen, wird die bevorzugt die:
- sich zuerst aufgebaut hat
- mehr Datenpakete durchschickt
- kürzeren Weg zur Quelle hat
Die Wirkung ist eine Unterdrückung von einer 2. Verbindung, die z.B. quer zur 1. Verbindung läuft. Die 2. Verbindung bleibt solange unterbrochen, bis die 1. weniger Datenpackete durchschickt.
Ursachen
- Mobilität von Knoten: Einzelne Knoten verlieren (auch für kurze Momente) die Verbindung. Dadurch sind lange TCP Sessions häufiger betroffen.
- Das MAC-Protokoll erzwingt die unfaire Aufteilung
Effizienz von Split-TCP
Es wird ein einer Studie von [1] gezeigt, dass es eine Verbesserung der Performance von rund 10-20 % gibt je nach Auslastung des Netzes und weiteren Faktoren.
Experiment
Versuchsbedingungen:
- 50 Knoten auf 1 km x 1 km Fläche
- zufällige Wegewahl und Geschwindigkeit 0-10 m/s
- 3 bis 5 simultane Verbindungen
eine TCP Verbindung
konkurrierende TCP Verbindungen
zeigt Gesamtzahl empfangener Pakete im Zeitverlauf. Bei 250 s gab es einen "link capture effect". Dadurch wartet die 1. Verbindung auf die 2. Verbingung. |
Referenz
- [1] "Departmentof Computer Science and Engineering, University of California, Riverside, CA,92521"
- Berlin Roof Net