330 likes | 567 Views
ISO/OSI Referenzmodell (Schicht 4) TCP/IP Referenzmodell (Schicht 3) Transport Layer. ISO / OSI Referenzmodell – TCP/IP. Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer.
E N D
ISO/OSI Referenzmodell (Schicht 4) TCP/IP Referenzmodell (Schicht 3) Transport Layer
ISO / OSI Referenzmodell – TCP/IP • Application Layer • Presentation Layer • Session Layer • Transport Layer • Network Layer • Data Link Layer • Physical Layer
Einordnung Transmission Control Protocol, User Datagram Protocol http://de.wikipedia.org/wiki/Transmission_Control_Protocol
Transport Schicht in TCP/IP • Transmission Control Protocol (TCP) • User Datagram Protocol (UDP) • Sockets • NATP Network Adress Translation Protocol • Netzwerksicherheit: Transport Layer Security (TLS) und Secure Socket Layer (SSL)
TCP und UDP Allgemeines • UDP Verbindungslos • TCP - Ende-zu-Ende Beziehung • Virtueller Kanal zwischen Sender und Empfänger über Ports • Kombination aus port und IP Adresse • Port: 16 bit (65 535) • Ports: 0 … 32 von der IANA reserviert • Portnummer aber nicht bindend (Vereinbarung zwischen Server und Clients) • Port Scan • Dieses Paar wird auch als Socket oder Programmschnittstelle bezeichnet • Setz meist auf IP auf • Transportmedium im www, Webbrowser (port: 80) und Web Server • Vollduplex • TCP Software: Winsock.dll, wsock32.dll, bei Linux im Kernel
Übertragung eins Bytestroms TCP (Transmission Control Protocol) Quelle: Hansen Neumann S. 620
WWW Server unter TCP Listen Mode, passive open Active open www-Client, 143.93.49.23port: 1027 www-Server, 143.93.49.10Standard port: 80 www-Client, 143.93.49.53port: 1029
Portkommunikation: Server Port: 80, Client Port >1023 http://de.wikipedia.org/wiki/Transmission_Control_Protocol
Aufbau von TCP-Paketen Quelle: Hansen Neumann S. 621
TCP Header http://de.wikipedia.org/wiki/Transmission_Control_Protocol
Felder des TCP Headers (wikipedia) • Source Port • Gibt die Portnummer auf der Senderseite an. • Destination Port • Gibt die Portnummer auf der Empfängerseite an. • Sequence Number • Sequenznummer des ersten Daten-Oktetts (Byte) dieses TCP-Paketes oder die Initialisierungs-Sequenznummer falls das SYN-Flag gesetzt ist. Nach der Datenübertragung dient sie zur Sortierung der TCP-Segmente, da diese in unterschiedlicher Reihenfolge beim Empfänger ankommen können. • Acknowledgment Number (Quittierungsnummer) • Sie gibt die Sequenznummer an, die der Sender dieses TCP-Segmentes als nächstes erwartet. Sie ist nur gültig, falls das ACK-Flag gesetzt ist. • Data Offset • Länge des TCP-Headers in 32-Bit-Blöcken – ohne die Nutzdaten (Payload). Hiermit wird die Startadresse der Nutzdaten angezeigt. • Reserved • Das Reserved-Feld wird nicht verwendet und muss null sein. • Window • Ist die Anzahl der Daten-Oktetts (Bytes), beginnend bei dem durch das Acknowledgmentfeld indizierten Daten-Oktett, die der Sender dieses TCP-Paketes bereit ist zu empfangen. • Checksum • Die Prüfsumme dient zur Erkennung von Übertragungsfehlern und wird über den Header und die Daten berechnet. • Urgent Pointer • Zusammen mit der Sequenz-Nummer gibt dieser Wert die genaue Position der Daten im Datenstrom an. Der Wert ist nur gültig, wenn das URG-Flag gesetzt ist. • Options • Das Options-Feld ist unterschiedlich groß und enthält Zusatzinformationen. Die Optionen müssen ein Vielfaches von 32 Bit lang sein. Sind sie das nicht, muss mit Null-Bits aufgefüllt werden (Padding). Dieses Feld ermöglicht, Verbindungsdaten auszuhandeln, die nicht im TCP-Header enthalten sind, wie zum Beispiel die Maximalgröße des Nutzdatenfeldes.
Felder des TCP Headers (wikipedia) • Control-Flags • sind zweiwertige Variablen, mit den möglichen Zuständen gesetzt und nicht gesetzt, welche zur Kennzeichnung bestimmter für die Kommunikation und Weiterverarbeitung der Daten wichtiger Zustände benötigt werden. Im folgenden werden die Flags des TCP-Headers und die von ihrem Zustand abhängigen auszuführenden Aktionen beschrieben. • URG • Ist das Urgent-Flag (Urgent = Dringend) gesetzt, so werden die Daten, auf die das Urgent Pointer-Feld zeigt, sofort von der Anwendung bearbeitet. Dabei unterbricht die Anwendung alle anderen Aufgaben. Dieses Verfahren ist fern verwandt mit einem Softwareinterrupt. Dieses Flag kann zum Beispiel verwendet werden, um eine Anwendung auf dem Empfänger abzubrechen. • ACK • Das Acknowledgment-Flag hat in Verbindung mit dem Acknowledgment-Feld folgende Aufgaben. Einmal dient es, in Verbindung mit dem ACK- und SYN-Flag, zur Bestätigung beim Drei-Wege-Handshake und zweitens zur Bestätigung von TCP-Segmenten beim Datentransfer. Das Acknowledgment-Feld ist nicht gültig, wenn das Flag nicht gesetzt ist. • PSH • Das Push-Flag hat die Aufgabe, die Daten unter Umgehung des Buffers, eines Speichers für die Zwischenlagerung von Daten, sofort an die Anwendung weiterzuleiten. Hilfreich ist dies, wenn man zum Beispiel bei einer Telnet-Sitzung einen Befehl an den Empfänger senden will. Würde dieser Befehl erst im Buffer zwischengespeichert werden, so würde dieser (stark) verzögert abgearbeitet werden. • RST • Das Reset-Flag wird verwendet, wenn eine Verbindung abgebrochen werden soll. Dies geschieht zum Beispiel bei technischen Problemen oder zur Abweisung von unerwünschten Verbindungen. • SYN • Pakete mit gesetztem SYN-Flag initiieren eine Verbindung, d. h. beginnen den Drei-Wege-Handshake. Der Server antwortet normalerweise entweder mit SYN+ACK, wenn er bereit ist, die Verbindung anzunehmen, andernfalls mit RST. Dient der Synchronisation von Sequenznummern beim Verbindungsaufbau (daher die Bezeichnung SYN). • FIN • Dieses Finish-Flag dient zur Freigabe der Verbindung und zeigt an, dass keine Daten mehr vom Sender kommen. Die FIN- und SYN-Flags haben Sequenznummern, damit diese in der richtigen Reihenfolge abgearbeitet werden.
Drei Wege Handshake - Verbindungsaufbau http://de.wikipedia.org/wiki/Transmission_Control_Protocol
Drei Wege Handshake - Verbindungsabbau http://de.wikipedia.org/wiki/Transmission_Control_Protocol
Nutzdatensegmentierung, Fragmentierung MSS Maximum Segment SizeMTU Maximum Transmission Unit (Übertragung ohneFragementierungin Oktett) http://de.wikipedia.org/wiki/Transmission_Control_Protocol
Maximum Segment Size (MSS) • Maximum Segment Size • aus Wikipedia, der freien Enzyklopädie • Wechseln zu: Navigation, Suche • Die Maximum Segment Size (MSS) definiert die maximale Anzahl von Oktetts, die als Nutzdaten in einem TCP Segment versendet werden können. Während des Verbindungsaufbaus einigen sich die beiden Gegenstellen auf den kleineren der beiden MSS-Werte. Da bei IPv4 der IP- und TCP-Header zusammen mindestens 40 Oktetts groß sind, muss die MSS dort um mindestens 40 Oktetts kleiner sein als die Maximum Transmission Unit (MTU), um eine Fragmentierung der IP-Pakete zu vermeiden. http://de.wikipedia.org/wiki/Transmission_Control_Protocol
Sgmentierung, Fragementierung • TCP Segment: typischerweise 1500 Bytes (12 000 Bit) • IP theoretisch bis 65535 Bytes (64 kB) • Header TCP und IPC jeweils 20 Bytes • Nutzdaten: 1460 Bytes • Beispiel für PPP (8 Bytes) • Nutzdaten: 1452 Bytes
Beispiel für einen Datentransfer http://de.wikipedia.org/wiki/Transmission_Control_Protocol
Flussteuerung http://de.wikipedia.org/wiki/Transmission_Control_Protocol
Aufbau des Pseudo Headers in TCP http://de.wikipedia.org/wiki/Transmission_Control_Protocol
Verwaltung von TCP Verbidnungen als endlicher Automat http://de.wikipedia.org/wiki/Transmission_Control_Protocol
UDP User Datagram Protocol http://de.wikipedia.org/wiki/Transmission_Control_Protocol
TCP / IP Header http://de.wikipedia.org/wiki/Transmission_Control_Protocol
UDP Pseudo Header http://de.wikipedia.org/wiki/Transmission_Control_Protocol
UDP Datagramm http://de.wikipedia.org/wiki/Transmission_Control_Protocol
Transport Layer Security (TLS), Secure Socket Layer (SSL) Quelle: Hansen Neumann S. 718
Transport Layer Security (TLS), Secure Socket Layer (SSL) Quelle: Hansen Neumann S. 718
Transport Layer Security (TLS), Secure Socket Layer (SSL) Quelle: Hansen Neumann S. 718
Dynamische Adressumsetzung mit NATP Quelle: Hansen Neumann S. 622