Peer-to-Peer-Netzwerke: Algorithmen und Methoden
Bestatigung des Segments den Sender, wird die RTO- Variable auf ihren Anfangswert zuruckgesetzt.
Mit diesem Mechanismus wird verhindert, dass bei einem Verbindungsverlust die Router mit Paketen bombardiert werden, die sowieso nicht ausgeliefert werden konnen. Ist der Verbindungsverlust nur kurzfristig, wird die TCP-Verbindung gehalten, ohne dass unnotig viele Pakete verschickt werden.
Der Algorithmus von Nagle
Eine weitere Technik, um die Paketanzahl auf Verbindungen mit geringern Datenfluss (wie z.B. in Telnet-Sitzungen) zu verringern, ist der Algorithmus von Nagle. Der Algorithmus verhindert den Versand von zu kleinen TCP-Paketen (kleiner als die SegmentgroBe), solange noch Bestatigungen von verschickten TCP-Paketen ausste- hen. Diese Daten werden gesammelt, bis sie die vereinbarte SegmentgroBe erreichen oder bis die ausstehenden Bestatigungen eingetroffen sind.
Nagles Algorithmus fuhrt so zu einer Selbsttaktung. Fur schnelle Verbindungen werden mehr kleinere TCP-Pakete verschickt, wahrend fur langsame Verbindungen die Paketanzahl verringert wird. Nagles Algorithmus lasst sich deaktiveren, was in bestimmten Situationen Sinn ergibt (wenn z.B. die Bewegungen einer Computer- Maus ubertragen werden mussen).
Schatzung der Umlaufzeit
Ein Paketverlust lasst in mehr als 99% aller Fable den Schluss zu, dass es zu einem Datenstau (Congestion) auf einem Router gekommen ist [27]. Diese Router puffern nur Behr wenige Nachrichten and wenn these kleinen Puffer voll sind, dann werden zusatzlich eintreffende Pakete geloscht. Hier stellt sich die Frage, woher man weiB, dass ein Paket verloren ist and nicht etwa nur das ACK-Segment verzogert worden ist. Es gibt keine sichere Methode, Letzteres auszuschlieBen. TCP unterhalt hierfur eine Stoppuhr, die die Zeitdauer zwischen Paket and Bestatigung uberpruft. Dies ist die so genannte Umlaufzeit (RTT.• Round Trip Time). Dauert es wesentlich Langer als die Umlaufzeit, bis ein Paket bestatigt wird, so gilt das Paket als verloren. Die Umlaufzeit unterliegt gewissen Schwankungen. Wichtig ist, sie nicht zu unterschatzen, damit Pakete, die etwas Langer brauchen, nicht als verloren gemeldet werden. Ursprunglich [26] wurde der Retransmission Timeout Value (RTO) folgendermaBen bestimmt.
Zuerst wird, sobald ein neuer Messwert M fur RTT verfugbar ist, ein geglatteter Schatzwert von RTT berechnet:
wobei a = 0, 9 gewahlt wird. Mit Hilfe von R bestimmt sich RTO als
RTO = 3R ,
wobei /.3 als Varianzfaktor mit /3 = 2 empfohlen wird.
In [27] wird beschrieben, dass dieser Mechanismus nicht in der Lage ist, mit den enormen Umlaufzeitschwankungen fertig zu werden, was unnotigen Wiederver- sand von Daten verursacht. Daher wird folgende Methode vorgeschlagen: Wie zuvor wird mitjeder neuen Messung der Umlaufzeit M folgende Berechnung durchgefuhrt (nach geeigneter Initialisierung von A and D):
Hierbei werden die Werte g = 1/8 and h = 1/4 verwendet. In A wird eine geglattete Abschatzung fur RTT gespeichert, wahrend D die durchschnittliche Abweichung der Umlaufzeit RTT vom Schatzwert geglattet darstellt. Bei der Beschreibung dieser Berechnung standen eine Menge praktischer Fragestellungen im Vordergrund. Zum Beispiel sind alle Konstanten Zweier-Potenzen. Die Standardabweichung wurde nicht verwendet, weil sonst eine Quadratwurzel berechnet werden musste.
Diese Aktualisierung darf nicht angewendet werden, wenn Pakete mehrfach Ubertragen worden sind, weil moglicherweise zwei Bestatigungen fur ein Paket existieren and somit ein falscher Zeitraum Al der Berechnung zugrunde liegen wurde [28]. Dann wird der durch exponentielles Zuruckweichen gewahlte Wert von RTO fur das nachste Paket noch einmal zugrunde gelegt.
Fenster
Die Datenratenanpassung von TCP basiert auf der Methode der gleitenden Fenster (Sliding Windows). Ein Parameter hierfUr ist die FenstergroBe (WND: Window Size), mit der der Empfanger die Datenmenge des Senders steuern kann, wie in Abbildung 2.13 gezeigt wird.
Abb. 2.13. Datenratensteuerung durch Fenster.
Wenn zum Beispiel die Eingangswarteschlange eines Empfangers voll ist, weil der Empfanger langsamer arbeitet als der Sender, dann wird mit dem nachsten Bestatigungspaket die FenstergroBe auf Null gesetzt. Der Sender darf dann kein weiteres Datenpaket senden, weil noch die Bestatigungen fur die versandten TCP-Pakete ausstehen. Hat der Empfanger seine Warteschlange entsprechend abgearbeitet, wird er eine weitere Bestatigung schicken, die sich von der ersten nur durch die erhohte
Weitere Kostenlose Bücher