Split TCP

From
Jump to navigation Jump to search

Motivation

Steigende Leitungslängen führen zu steigenden Verbindungsabrüchen, durch höhere Wahrscheinlichkeit das sich ein Knoten aus der Reichweite eines Anderen bewegt. Das heisst, kürzere Verbindungen werden bevorteilt. Einerseits durch geringere Wahrscheinlichkeit eines Linkabbruchs, andererseits durch Möglichkeiten ihre Übertragungsgeschwindigkeit zu erhöhen (dadurch das sie zB ihre Übertragungsfenster schneller anpassen können). Weiterhin existiert durch das MAC-Layer der unschöne Effekt das bei zwei hochintensiven Verbindungen die leicht zeitversetzt starten, die erste die Leitung mehr oder weniger blockiert, bis Sie mit Ihrer Übertragung fertig ist. Dies auch bei längeren Verbindungen, da dort wiederum die kürzere von beiden zuerst zum Zuge kommt und ebenfalls den Kanal blockiert.

Die offensichtliche Lösung ist also die langen Verbindungen in mehrere Kurze zu zerteilen.

Überblick

Split1.PNG

Lange Verbindungen werden also nun in eigene lokale Gebiete geteilt. Dies geschieht indem wir einfach zB alle X Hops einen Knoten zum Proxy machen.Dadurch bilden sich immer zwischen zwei Proxies eine "Zone". Haben wir einmal eine Zone durchquert, brauchen wir, falls etwas passiert nicht mehr den kompletten Weg zurück gehen.

Kommt nun ein Paket bei solch einem Proxy an, wird es zwischengespeichert, ein Lokales Acknowledgement (LACK) an den Sender (letzter Proxy oder Quelle) geschickt und das Paket im Verhältnis zu der Rate der eingehenden LACKs weitergeschickt (an den nächsten Proxy oder das Ziel).

Dabei behält die Quelle jedoch die entsprechenden Pakete im Puffer bis Sie ein entsprechendes ACK vom Ziel bekommt. Damit bleibt die ursprüngliche Funktionalität erhalten.

Durch diese Herangehensweise wird nun quasi erreicht das wir eine Trennung zwischen Überlaufsteuerung und der Punkt-zu-Punkt-Verlässlichkeit erzeugen. Entsprechend dazu führen wir auch gleich zwei Sendefenster ein: das Überlaufsfenster und das PunktZuPunkt-Fenster. Das erstere ändert sich mit eintreffen der LACKs und letzteres mit den eintreffenden ACKs.

Weiterhin wird nun die Erscheinung des MAC-Captuer Effekts verringert. Durch die Teilung können nun immer nur einzelne Bereiche gleichzeitig blockiert sein, aber nicht komplette Leitungen, so dass konkurierende Übertragungen auch zum Zuge kommen.

Experimentelle Ergebnisse

Variation of total packets received of a typical connection with time in a mobile ad hoc network
Individual throughputs of competing TCP sessions: Regular
Individual throughputs of competing TCP sessions: Split TCP

Fazit

Quellen