Peer-to-Peer-Netzwerke: Algorithmen und Methoden
In jeder Kommunikationsrichtung wird jedes Byte durchnummeriert (mit Umbruch bei 232 - 1 auf 0), and das erste Byte des Segments bestimmt die Sequenznummer des gesamten TCP-Pakets.
Acknowledgment Number
Mit der 32 Bit Bestatigungsnummer wird dem Sender einer Flussrichtung die Nummer des vom Empfanger als nachstes erwarteten Datenbytes mitgeteilt. Dieses Feld wird erst mit gesetztem Acknowledgment-Flag gultig.
Mit der Bestatigungsnummer wird jedes Paket bestatigt, fur das die Sequenznummer plus Paketlange kleiner ist als these Bestatigungsnummer. Dadurch ist es insbesondere nicht (unmittelbar) moglich, einzelne Pakete zu bestatigen, die nach einem fehlenden Paket empfangen worden sind. Erscheint also ein bestimmtes Paket nicht in einem Datenstrom, so mussten eigentlich alle Pakete, die danach noch ubermittelt worden sind, mit dem fehlenden Paket (das durch die Bestatigungsnummer beschrieben wird) erneut verschickt werden. Der Fast- Retransmit-Algorithmus umgeht dieses Problem, wie wir spater sehen werden.
Abb. 2.9. TCP-Header-Definition aus RFC 793 [26].
Data Offset
Das Data Offset-Feld gibt die Lange des TCP-Headers in 32 Bit Blocken an and liefert somit die Startadresse der Nutzdaten des TCP-Segments.
Reserved
Das Reserved-Feld wird zurzeit nicht verwendet.
Flag-Bits
Die Flag-Bits sind binare Variablen zur Kennzeichnung bestimmter fur die Kommunikation and Weiterverarbeitung der Daten wichtiger Zustande. Die sechs Flags haben folgende Bedeutung:
URG
Das Urgent-Flag aktiviert den Urgent Pointer. Mit diesem Mechanismus wird der Empfanger uber die Dringlichkeit von Daten informiert. Das Flag wird zumeist in Telnet and Remote Login-Verbindungen benutzt (Dieses Flag beschleunigt nicht etwa den Datenfluss, sondern spielt eine Rolle im interaktiven Zusammenspiel der gegenlaufigen Datenflusse).
ACK
Das Acknowledgement-Number-Flag aktiviert die Bestatigungsnummer.
PSH
Ein gesetztes Push-Flag zeigt dem Empfanger an, dass er die Daten so schnell wie moglich an die Anwendungsschicht weitergeben soil.
RST
Das Reset-Flag wird gesetzt, um anzuzeigen, dass ein empfangenes Segment einer TCP-Verbindung nicht korrekt zugeordnet werden konnte. Dies geschieht beispielsweise, wenn ein UDP-Paket an einem TCP-Port ankommt oder ein Port an einem Rechner nicht verwendet wird.
SYN
Mit dem Synchronize-Flag werden Sequenznummern beim Verbindungsaufbau synchronisiert.
FIN
Das Finish-Flag zeigt an, dass der Sender einer Flussrichtung aufhort, Daten zu senden. In der Gegenrichtung kann weiter ubertragen werden.
Window
Das Window-Feld gibt an, wie viele Bytes mit noch nicht eingegangener Bestatigung maximal in einer Flussrichtung versendet werden durfen. Die variierende FenstergroBe wird von TCP verwendet um die Datenrate anzupassen. Eine geringe FenstergroBe verursacht eine geringe Datenrate. Eine groBes Fenster hingegen ermoglicht hohen Datendurchsatz, kann diesen jedoch nicht erzwingen.
Checksum
Die Pri fsumme dient zur Erkennung von Ubertragungsfehlern and wird uber den Header and die Daten berechnet.
Urgent-Pointer
Zusammen mit der Sequenz-Nummer gibt der Urgent-Pointer die genaue Position der Urgent-Daten im Datenstrom an.
Options
Das Options-Feld soil eine Moglichkeit bieten Funktionen bereitzustellen, die im normalen TCP-Protokollkopf nicht vorgesehen sind. In TCP Sind drei Optionen definiert: End of Option List, No-Operation and Maximum Segment Size. Die wichtigste dieser drei Optionen ist die Maximale SegmentgroBe. Mit dieser Option kann ein Host die maximale Anzahl Nutzdaten ubermitteln, die er annehmen will bzw. annehmen kann.
Padding
Das Padding-Feld wird lediglich verwendet um sicherzustellen, dass der Header an einer 32-Bit Grenze endet and die Daten an einer 32-Bit Grenze beginnen.
Data
Im Data-Feld stehen die eigentlichen Anwendungsdaten. Dieses Feld ist optional, and tatsachlich gibt es bei Verbindungsaufbau, Beendigung and gelegentlich bei Bestatigungen TCP-Pakete ohne dieses Datenfeld. Die Lange dieses Daten- felds ergibt sich aus der Gesamtlange desjenigen Segments, das im Header des umgebenden IP-Datagramms mitgeteilt wird.
Verbindungsaufbau
Zumeist handelt es sich bei TCP-Verbindungen um eine Client-Server-Verbindung. Naturlich wird TCP auch in Peer-to-Peer-Netzwerken eingesetzt. Dann ubernimmt ein Peer die Rolle des Clients and ein Peer die Rolle des Servers. Nach dem Verbindungsaufbau verhalt sich TCP absolut symmetrisch.
Eine TCP-Verbindung wird durch drei Segmente aufgebaut, wie in Abbildung 2.10
Weitere Kostenlose Bücher