TCP Performance in AdHoc Networks
Motivation: Warum überhaupt TCP ?
Nun, TCP ist eine Schicht des TCP/IP-Stacks ist der Standard-Protokoll-Stack im Internet. Will also ein Rechner über das Internet mit anderen Rechnern kommunizieren, so muss er den TCP/IP-Stack implementieren.
Was ist TCP ?
TCP ist die Abkürzung für Transmission Transport Protocol und stellt im TCP/IP-Stack die Transportschicht dar. Damit stellt TCP Dienste für das Senden und Empfangen von Daten bereit. Der Zweck ist hier konkret einen verlässlichen Byte-Strom in einem unzuverlässigen Netzwerk bereitzustellen.
Folgende Mechanismen sind essentielle Bestandteile von TCP
- Segmentierung und Assemblierung
- Meist gibt es mindestens eine Schicht, welche die maximale Größe eines Pakets begrenzt, so besitzen z.B. Ethernet-Pakete eine maximale Größe von 1500 Bytes.
- Fehlerbehandlung
- Um einen verlässlichen Byte-Strom zu etablieren ist es natürlich essentiell, aufgetretene Fehler zu entdecken und diese ggf. zu korrigieren. Hierfür werden die TCP-Pakete nummeriert und deren Empfang bestätigt. Erhält der Sender nach einer bestimmten Zeit keine Bestätigung, so sendet er das betreffende Paket erneut.
- Flusskontrolle
- Um zu verhindern, dass der Sender den Empfänger überlastet, erhält ersterer eine Sendekredit, welcher angibt wieviele Pakte ein Sender ohne das Warten auf Bestätigungen versenden darf.
- Staukontrolle
- Um nun auch zu verhindern, dass das gesamte Netzwerk überlastet wird, schließlich teilt man sich hier ein Übertragungsmedium, gibt die Staukontrolle. Hierfür besitzt der Sender ein zusätzlich Fenster ähnlich dem Sendekredit. Es werden nur soviele Pakete auf einmal gesendet, wie es das Minimum von Sendekredit und Überlastungsfenster erlauben.
unwichtiger Kram von Micha
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Nochmehr Kram vonMicha
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
Explicit Link Failure Notification (ELFN)
Eines der Hauptprobleme bei Mobilität in drahtlosen Netzwerken ist das gestörte Links als vermeintlicher Stau im Netzwerk angesehen werden. Eine sehr simple Lösung wäre demnach dem Absender einfach kenntlich zu machen, dass ein fehlerhafter Link vorliegt. Genau dies macht die hier vorgestellte Erweiterung. Dazu nehmen wir die eh vorhandenen DSR-Routing Nachrichten und packen in Ihren Payload noch eine ebensolche angesprochene Notiz. Daraufhin kommt nichtmehr die Überlaststeuerung zu tragen, sondern der Absender geht in einen Warte-Modus - er "freezed". In bestimmten zeitlichen Abständen schickt er nun eine Anfrage ins Netz um zu schauen, ob die Verbindung wieder steht. Sollte dies der Fall sein, kann es mehr oder weniger normal weitergehen.
Simulation
Hier nun ein paar Graphen mit ELFN im Einsatz. Die ersten beiden Diagramme zeigen jeweils pro Bewegungsmuster den erreichten Durchsatz im Vergleich zum optimalen Durchsatz (gestrichelte Gerade). Zum Vergleich sind jeweils die Ergebnisse ohne ELFN in rot abgetragen.
Das dritte Diagramm konzentriert sich nur auf verschiedene Zeitintervalle in denen Anfragen ins Netz geschickt werden.