TCP Transmission Control Protocol

Werbung
TCP
Transmission Control Protocol
●
Wiederholung
●
TCP-Ports
●
Segmentierung
●
TCP Header
●
Verbindungsaufbau-/abbau, 3 - WayHandShake
●
Timeout & Retransmission
●
MTU maximum transfer Unit
TCP
Sicher Verbunden?
●
Individuelle Leitung der IP-Datagramme durch das Netzwerk
●
Kein zuverlässiger Transport
●
Falsche Reihenfolge oder kommen gar nicht erst an
TCP
●
●
●
●
●
bis Internetebene einschließlich nur
unzuverlässige Übertragung
auf Transportebene ist zuverlässige
Übertragung eine Möglichkeit
diese wird durch TCP hergestellt
auf Transportebene außerdem angesiedelt:
Zuordnung einer Verbindung zu Prozessen
geschieht über Portnummer
Pakete
●
Quell-IP-Adresse
●
Quell-Port
●
Ziel-IP-Adresse
●
Ziel-Port
●
●
●
die TCP-Pakete werden vom IP-Protokoll
als zusammenhanglose IP-Pakete
(Datengramme) übertragen
TCP-Instanz des Zielrechners setzt die
empfangenen IP-Pakete in der richtigen
Reihenfolge in die ursprünglichen Daten
(Nachricht) zurück
TCP ist im RFC 793( RFC 1122, RFC 1323)
definiert
Schichten
Ports
●
●
●
●
auch bei TCP werden den aktiven
Anwendungsprozessen Ports zugeordnet
sie werden den Anwendungsprozessen nach
Bedarf (auch dynamisch) zugeordnet
bei TCP werden für eine Portnummer 16 Bit
verwendet
also bis zu 65535 TCP-Ports je Rechner
möglich
Ports
●
●
●
wie bei UDP auch bei TCP einige
Portnummern reserviert
0 bis 1023 sind weltweit eindeutig für
Standarddienste (sog. well known services)
reserviert
im Bereich von 1024 bis 65535 können sie im
Rechner den Anwendungsprozessen frei
zugeteilt werden
Segmentierung
●
den Anwendungen bietet TCP Daten als
Datenstrom (data stream) an
●
Datenstrom prinzipiell unendlich lang
●
Daten sind jedoch so nicht verschickbar
●
●
tiefere Ebenen bieten nur das Verschicken von
Datenpaketen begrenzter Größe an
daher: einteilen in Datenblöcke (Segmente)
Segmentierung
●
Segmentierung des Datenstroms in TCPDatenpakete
●
jedes Segment/Paket erhält TCP-Header
●
Segmente werden durchnummeriert
Header
●
●
●
●
●
●
Quellport (16 Bit): Der Quellport ist die Portnummer des
Absenders.
Zielport (16 Bit): Dies ist entsprechend die Portnummer des
Empfängers.
Sequenznummer (32 Bit): Sequenznummer des Pakets
Bestätigungsnummer (32 Bit): bei gesetztem ACK-Bit von
Bedeutung.
Offset (4 Bit): Anzahl der 32-Bit-Wörter, aus denen der
Header besteht; gibt entsprechend den Beginn der Nutzdaten im
Paket an.
Reserviert (6 Bit): Reserviert für zukünftige Anwendungen;
muss 0 sein.
Header
●
●
●
●
Flags (6 Bit): Verschiedene Statusbits; im Einzelnen:
URG: Urgent Data wird versandt; der Inhalt des Urgent-Zeigers
muss beachtet werden.
ACK: Acknowledgement – das Bestätigungsfeld muss
berücksichtigt werden.
PSH: Push-Funktion – Pufferung des Pakets wird verhindert;
es wird unmittelbar gesendet.
●
RST: Reset – Verbindung zurücksetzen
●
SYN: Sequenznummern synchronisieren
●
FIN: Ende der Sequenz; keine weiteren Daten vom Absender
Header
●
●
●
●
Fenster (16 Bit): Die Anzahl von Datenbytes, die der Absender des
Pakets zu empfangen bereit ist; basiert unter anderem auf der IPMTU der verwendeten Schnittstelle.
Prüfsumme (16 Bit): Anhand dieser einfacheren
Plausibilitätskontrolle kann die Korrektheit der übertragenen Daten
überprüft werden.
Urgent-Zeiger (16 Bit): Ein Zeiger auf das Byte der aktuellen
Sequenz, das Urgent Data enthält. Wird nur ausgewertet, wenn das
URG-Flag gesetzt ist.
Optionen (variable Länge): Enthält verschiedene hersteller- und
implementierungsabhängige Zusatzinformationen; stets ein
Vielfaches von 8 Bit lang.
Verbindungsaufbau
●
●
●
TCP verhindert den gleichzeitigen
Verbindungsaufbau zwischen zwei Stationen
d.h. nur eine Station kann den Aufbau initiieren
außerdem ist es nicht möglich, einen
mehrfachen Aufbau einer Verbindung
Verbindungsaufbau
●
●
●
●
Drei-Wege-Handshake - „Drei spezielle
Datenpakete ohne Nutzdateninhalt“
der Verbindungsaufbau zwischen zwei
Rechnern erfolgt mit Three Way Handshake
Synchronisation der Kommunikationspartner
der Anwendungsprozeß im Quellrechner
kommuniziert über einen wahlfreien Port, der
dynamisch (aber nur im Quellrechner!)
zugewiesen wird
3 - WayHandShake
Verbindungsabbau
●
●
●
●
●
Abbau der Verbindung kann von jeder Seite
eingeleitet werden
Paket mit gesetztem FIN-Flag
die beiden logischen Verbindungen werden
nacheinander abgebaut
und verhindert hierbei den Verlust von noch
unquittierten Daten
dann wird Port freigegeben und steht für
spätere Verbindungen zur Verfügung
Verbindungsabbau
Flow Control
●
Hier ein bischen Text
flow control - Sliding Window
Timeout & Retransmission
●
●
●
●
der Datenaustausch zwischen zwei Stationen
erfolgt nach dem Verbindungsaufbau
gehen Daten bei der Übertragung verloren,
wird nach Ablauf eines Timeouts die
Wiederholung der fehlerhaften Segmente
gestartet
durch die Sequenznummer werden doppelt
übertragene Pakete erkannt
Maximum Retransmit erreicht?! - Verbindung
zu unsicher!
MTU
●
●
●
●
Maximum Transmission Unit (MTU)
maximale Segmentgröße wird zwischen Quelle
und Ziel vor dem Verschicken der ersten Daten
ausgehandelt
Round Trip Time ->RTT
Zeit vom Versenden eines Packets bis zur
Bestätigung - dient der Synchonisation
Herunterladen