prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom ISO/OSI Referenzmodell (Schicht 4) TCP/IP Referenzmodell (Schicht 3) Transport Layer
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 2 vom ISO / OSI Referenzmodell – TCP/IP Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 3 vom Einordnung Transmission Control Protocol, User Datagram Protocol
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 4 vom 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)
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 5 vom 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
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 6 vom Übertragung eins Bytestroms TCP (Transmission Control Protocol) Quelle: Hansen Neumann S. 620
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 7 vom WWW Server unter TCP www-Server, Standard port: 80 www-Client, port: 1027 www-Client, port: 1029 Listen Mode, passive open Active open
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 8 vom Portkommunikation: Server Port: 80, Client Port >1023
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 9 vom Aufbau von TCP-Paketen Quelle: Hansen Neumann S. 621
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 10 vom TCP Header Transmission_Control_Protocol
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 11 vom Felder des TCP Headers (wikipedia) Source Port –Gibt die Portnummer auf der Senderseite an.Portnummer Destination Port –Gibt die Portnummer auf der Empfängerseite an.Portnummer 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.SequenznummerOktetts 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.SequenznummerACK-Flag 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.Oktetts Checksum –Die Prüfsumme dient zur Erkennung von Übertragungsfehlern und wird über den Header und die Daten berechnet.Prüfsumme 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.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 12 vom Felder des TCP Headers (wikipedia) Control-FlagsFlags 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.PointerSoftwareinterrupt –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.BuffersTelnet –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.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 13 vom Drei Wege Handshake - Verbindungsaufbau Transmission_Control_Protocol
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 14 vom Drei Wege Handshake - Verbindungsabbau Transmission_Control_Protocol
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 15 vom Nutzdatensegmentierung, Fragmentierung Transmission_Control_Protocol MSS Maximum Segment Size MTU Maximum Transmission Unit (Übertragung ohne Fragementierung in Oktett)
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 16 vom Maximum Segment Size (MSS) Maximum Segment Size aus Wikipedia, der freien Enzyklopädie Wechseln zu: Navigation, SucheNavigationSuche 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.OktettsTCPIPv4IPTCP-HeaderMaximum Transmission UnitFragmentierung
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 17 vom Sgmentierung, Fragementierung TCP Segment: typischerweise 1500 Bytes ( Bit) IP theoretisch bis Bytes (64 kB) Header TCP und IPC jeweils 20 Bytes Nutzdaten: 1460 Bytes Beispiel für PPP (8 Bytes) Nutzdaten: 1452 Bytes
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 18 vom Beispiel für einen Datentransfer
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 19 vom Flussteuerung Transmission_Control_Protocol
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 20 vom Aufbau des Pseudo Headers in TCP
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 21 vom Verwaltung von TCP Verbidnungen als endlicher Automat
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 22 vom UDP User Datagram Protocol
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 23 vom TCP / IP Header
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 24 vom UDP Pseudo Header
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 25 vom
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 26 vom UDP Datagramm
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 27 vom Transport Layer Security (TLS), Secure Socket Layer (SSL) Quelle: Hansen Neumann S. 718
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 28 vom Transport Layer Security (TLS), Secure Socket Layer (SSL) Quelle: Hansen Neumann S. 718
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 29 vom Transport Layer Security (TLS), Secure Socket Layer (SSL) Quelle: Hansen Neumann S. 718
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 30 vom Dynamische Adressumsetzung mit NATP Quelle: Hansen Neumann S. 622