Die Internet-Protokollfamilie: Einordnung [Wiederholung] • Die Bezeichnung TCP/IP wird häufig als Synonym für die gesamte Protokollfamilie verwendet • Einordnung der Internetprotokolle in das ISO/OSIReferenzmodell: Die Internet-Protokollwelt Kommunikationssteuerungsschicht TCP IGMP 5. Die Transportschicht im Internet ICMP Transportschicht UDP IP ARP Vermittlungsschicht RARP Sicherungsschicht • Im Weiteren wird die Transportschicht behandelt. Die Internet-Protokollwelt - 5. Transportschicht im Internet TCP (Transmission Control Protocol): Dienste Mehrere Prozesse können gleichzeitig eine TCP-Instanz benutzen FTPServer Port 21 Vollduplex Reihenfolgetreue Flusskontrolle mit Fenstermechanismus Fehlerkontrolle durch Folgenummern (Sequenznummern), Prüfsumme, Quittung, Übertragungswiederholung Unterstützung von Sicherheitsstufen und Prioritäten Zeitbehaftete Daten: Falls Auslieferung in bestimmter Zeit nicht möglich ist, wird der Dienstbenutzer informiert TCP 129.13.42.112 129.13.42.115 FTPBenutzer A Port 400 FTPBenutzer B Port 400 TCP IP Netzzugang TCP IP IP Netzzugang Netzzugang Internet Fehleranzeige Die Internet-Protokollwelt - 5. Transportschicht im Internet Identifikation von TCP-Diensten geschieht über Ports (TSAPs in der OSI-Terminologie) Portnummern bis 255 sind für häufig benutzte Dienste reserviert (z.B. 21 für FTP, 23 für TELNET, 80 für HTTP) Ein Socket besteht aus der Internetadresse eines Rechners und einem Port. Notation: (IP-Adresse:Portnummer) Internet-weit eindeutig Beispiel – Der FTP-Server der TU Ilmenau ist über den Socket 141.24.191.41:21 erreichbar: 141.24.191.41 Datenübertragung Verbindungsaufbau zwischen zwei „Sockets” (entspricht CEP im TSAP). Datentransfer über virtuelle Verbindung. Gesicherter Verbindungsabbau (alle Daten müssen quittiert sein). Multiplexen TCP: Adressierung Verbindungsverwaltung 121 122 Die Internet-Protokollwelt - 5. Transportschicht im Internet 123 1 TCP: fest vereinbarte Port-Nummern (well-known ports) Viele Anwendungen wählen TCP als Protokoll, allerdings muss der richtige Port gewählt werden, um auf der Gegenseite mit der richtigen Anwendung zu kommunizieren. 13: Tageszeit 20: FTP Daten 25: SMTP (Simple Mail Transfer Protocol) 53: DNS (Domain Name Server) 80: HTTP (Hyper Text Transfer Protocol) 119: NNTP (Network News Transfer Protocol) > telnet walapai 13 Trying 129.13.3.121... Connected to walapai. Escape character is '^]'. Mon Aug 4 16:57:19 1997 Connection closed by foreign host Verbindungsaufbau ACK; Close; FIN Die Internet-Protokollwelt - 5. Transportschicht im Internet ACK; - FIN wait2 0 Close; - SYN; SYN+ACK (gleichzeitig) Estblshd FIN+ACK; ACK FIN; ACK Piggyback Acknowledgement SYN sent 4 bit TCP header length FIN; ACK Close wait ACK; - Close; FIN Timed wait (Timeout; -) Destination Port Sequence Number SYN+ACK; ACK Closing 31 16 Source Port Send Close; FIN FIN; ACK 125 TCP-Paketformat: Aufbau Last ACK UA E R S F R C O S Y I G KMT NN Window Paketkopf Urgent Pointer Options (0 oder mehr 32-bit-Worte) Daten ... Dieses Bit wird in der Literatur auch durch PSH (Push-Bit) bezeichnet. ACK; - Closed Die Internet-Protokollwelt - 5. Transportschicht im Internet 6 bit unused Checksum Close Passive FIN wait1 Anmerkung: Die Verbindung wird von den TCP-Instanzen ohne weiteres Eingreifen der Dienstbenutzer aufgebaut (es existiert z.B. kein Primitiv, das T-CONNECT.Rsp entspricht). 124 Close; - Listen SYN rcvd Spezifikation eines speziellen Sockets, von dem er eine eingehende Verbindung erwartet wird ( fully specified passive open) oder Alle Verbindungen annehmen ( unspecified passive open). Geht ein Verbindungsaufbauwunsch ein, wird ein neuer Socket erzeugt, der dann als Verbindungsendpunkt dient. Connect; SYN Closed RST; - Aktiver Modus: Anforderung einer TCP-Verbindung mit dem spezifizierten Socket. Passiver Modus: Ein Benutzer informiert TCP, dass er auf eine eingehende Verbindung wartet. TCP: Verbindungsmanagement SYN; SYN+ACK aktiv (connect) oder passiv (listen/accept) aufgebaut werden. > telnet mailhost 25 Trying 129.13.3.161... Connected to mailhost . Escape character is '^]'. 220 mailhost ESMTP Sendmail 8.8.5/8.8.5; Mon, 4 Aug 1997 17:02:51 +0200 HELP 214-This is Sendmail version 8.8.5 214-Topics: 214- HELO EHLO MAIL RCPT DATA 214- RSET NOOP QUIT HELP VRFY 214- EXPN VERB ETRN DSN 214-For more info use "HELP <topic>". ... 214 End of HELP info Listen; - Verbindungen können nach der Erstellung eines Sockets Die Internet-Protokollwelt - 5. Transportschicht im Internet Close Activ TCP: Verbindungsaufbau 126 Die Internet-Protokollwelt - 5. Transportschicht im Internet 127 2 TCP-Verbindungsaufbau im Detail TCP-Paketformat Source- und Destinationport: identifizieren die Endpunkte der Verbindung. Wie die Hosts ihre Ports zuweisen, bleibt ihnen überlassen (bis auf die standardisierten bis Nummer 255) Sequence number: enthält die Byte-Folgenummer Piggyback acknowledgement: Huckepackverschickung von Quittungen. Die nächste erwartete Folgenummer TCP header length: Anzahl der 32-bit-Wörter im Paketkopf URG: Wird auf 1 gesetzt, falls der Urgent Pointer verwendet wird SYN: Wird beim Verbindungsaufbau verwendet, um CONNECT.Req/Ind anzuzeigen ACK: Unterscheidet bei gesetztem SYN-Bit eine CR-PDU von einer CC-PDU. Signalisiert die Gültigkeit des Acknowledgement-Feldes FIN: Gibt an, dass der Sender keine Daten mehr senden möchte RST: Wird benutzt, um eine Verbindung zurückzusetzen EOM (bzw. PSH): Dieses Bit zeigt das Ende einer Nachricht an Window: Dient zur Flusskontrolle. Anzahl der Bytes, die nach dem höchsten bestätigten Byte gesendet werden dürfen Checksum: Enthält die Prüfsumme über Paketkopf und Daten Urgent Pointer: Relativer Zeiger auf wichtige Daten Das Options-Feld kann Optionen variabler Länge aufnehmen Die Internet-Protokollwelt - 5. Transportschicht im Internet A A beantragt Verbindung B akzeptiert und bestätigt A akzeptiert und beginnt Übertragung 3-Wege-Handshake Beide SYNs müssen bestätigt sein Für den Empfänger gilt die Verbindung erst nach der Bestätigung seines SYNs als aufgebaut 128 TCP-Verbindungsaufbau: Verwaistes SYN Die Internet-Protokollwelt - 5. Transportschicht im Internet 129 TCP-Verbindungsaufbau: Verspätetes SYN/ACK A A B Passive Open Active Open B Passive Open B Passive Open Active Open Altes SYN kommt an A beantragt Verbindung Altes SYN/ACK kommt an B akzeptiert und bestätigt A bricht „alte” Verbindung ab B akzeptiert und bestätigt neue Verbindung A verweigert Bs Verbindung A bestätigt und beginnt Übertragung Die Internet-Protokollwelt - 5. Transportschicht im Internet 130 Die Internet-Protokollwelt - 5. Transportschicht im Internet 131 3 TCP: Duplikaterkennung Kein Anzeichen für Duplikate Empfängerpuffer 0 4K Leer 2K Anwendung schreibt 3KB Datenpakete können Verbindungsabbau überstehen und irrtümlich einer neuen Verbindung zugeordnet werden Durch einen Systemzusammenbruch kann die Paketnummerierung verloren gehen Problemvermeidung: Empfänger Anwendung schreibt 2KB Sequenznummernbereich muss groß genug sein, dass zwei Pakete mit der gleichen Sequenznummer genügend weit auseinander liegen Allerdings: Sender Datenpakete werden zur Duplikaterkennung durchnummeriert Unter Umständen wird ein Datenpaket mehrfach bestätigt TCP: Fenstermanagement Voll Sender ist blockiert Anwendung liest 2KB 2K Sender kann bis zu 2KB übertragen Uhr-unterstützte Sequenznummer (Clock-based initial sequence number) Sendeverzögerung (Quiet Time) 1K Die Internet-Protokollwelt - 5. Transportschicht im Internet 132 TCP: Flusskontrolle / Staukontrolle Flusskontrolle regelt den Datenfluss zwischen den Endsystemen Staukontrolle befasst sich mit Stausituationen in den Zwischensystemen Flusskontrolle in TCP: Fenstermechanismus mit Kreditvergabe 44 Timeout 40 36 ACK-Feld im Paketkopf bestätigt alle niedrigeren Bytefolgenummern Window-Feld gibt an, wieviele Bytes der Empfänger zusätzlich akzeptiert Staukontrolle in TCP: Problem „congestion collapse”: Stau in Zwischensystemen führt oftmals dazu, dass Transportprotokolle nach einem Timeout Pakete wiederholen. Die Stausituation wird verstärkt! TCP: „slow start” und „multiplicative decrease” Mechanismen 133 TCP: Staukontrolle am Beispiel Bei Datenverlust reduziert TCP den Schwellwert, bis zu dem eine Steigerung der Senderate möglich ist, auf die Hälfte des aktuellen Fensterwerts. (multiplicative decrease). Nach einer Stauperiode wird die Fenstergröße um ein Datenpaket erhöht und weiterhin nach jeder empfangenen Quittung (slow start) Der „slow start” Mechanismus verhindert, dass nach einem Stau direkt zu hoher Verkehr auftritt Übertragungsfenster (KB) 2K Die Internet-Protokollwelt - 5. Transportschicht im Internet Schwelle 32 28 24 Schwelle 20 16 12 8 4 0 0 Die Internet-Protokollwelt - 5. Transportschicht im Internet 134 2 4 6 8 10 12 14 16 18 Anzahl der Übertragungen Die Internet-Protokollwelt - 5. Transportschicht im Internet 20 22 24 135 4 TCP: Verbindungsabbau UDP (User Datagram Protocol) Bestätigter und nummerierter Verbindungsabbau Noch ausstehende Datenpakete können erkannt werden, so dass der Verbindungsabbau erst mit Eintreffen des letzten Datenpakets vollzogen werden kann. Close A 0 B A sendet VerbindungsabbauAnfrage Unzuverlässig, verbindungslos, einfacher und schneller als TCP Demultiplexing der empfangenen Pakete basiert auf der PortNummer Optionale Prüfsumme 16 Source Port Destination Port Message Length Checksum festgelegte, so genannte „well-known” Ports: A bestätigt den Verbindungsabbau von B. Ist dieses Signal bei B angekommen, gilt die Verbindung als abgebaut. daytime domain name server network time protocol Die Internet-Protokollwelt - 5. Transportschicht im Internet 137 SCTP-Paketaufbau SCTP ist als Kompromiss zwischen TCP und UDP entwickelt worden: 13: 53: 123: sehr viele Multimedia-Anwendungen nehmen UDP statt TCP wegen Leistungsvorteilen 136 Stream Control Transmission Protocol SCTP Paketkopf Daten ... B bestätigt und sendet eigenes Verbindungsabbau-Signal Die Internet-Protokollwelt - 5. Transportschicht im Internet 31 Verbindungsorientiert: SCTP-Assoziation Nachrichtenbasiert Ermöglicht Flusssteuerung Segmentieren und Blocken IPHeader • • • • SCTP-Assoziation: Zusammengesetzt aus mehreren Streams Ein Stream entspricht einer unidirektionalen gerichteten Verbindung Die Internet-Protokollwelt - 5. Transportschicht im Internet 138 Common Header Source Port Nummer (2 Bytes) Destination Port Nummer (2 Bytes) Verification Tag (4 Bytes) Prüfsumme (4 Bytes) Chunk 1 Chunk 2 Chunk n • Chunk-Header: o Type o Flags o Länge • Chunk-Inhalt Die Internet-Protokollwelt - 5. Transportschicht im Internet 139 5 Anwendungsnahe Adressierung im Internet Adressierung erfolgt über logische Namen Länder Weltweit eindeutig Hierarchische Struktur Gliederung in Domänen us ikmcip1.e-technik.tu-ilmenau.de Rechner de se ... uk net org gov mil tu-ilmenau Institution e-technik Benötigt: edu com Domain_name Time_to_live Class Type A (IP-Adresse des Rechners) MX (Mail Exchange) HINFO (CPU und Betriebssystem des Rechners in ASCII) CNAME (Canonical Name) ... Value Die Internet-Protokollwelt - 5. Transportschicht im Internet Die Internet-Protokollwelt - 5. Transportschicht im Internet 141 DNS – Beispieldatenbank Fünf-Tupel, der einzelne Ressourcen näher beschreibt: ... www 140 DNS – Resource Records Geplante, z.T. bereits realisierte weitere Zonen (top level domains): • arts • firm • info • nom • rec • shop • web nasa ikmcip1 Abbildung logischer Name IP-Adresse Ursprünglich: Datei (hosts.txt), die jede Nacht vom Server geladen wurde Problem: steigende Anzahl der Namen ließ zentrale Datei nicht mehr zu Die Internet-Protokollwelt - 5. Transportschicht im Internet ac co Land Abteilung Allgemeine Kategorie (vorrangig innerhalb der USA) Beispiel Namensraum ist in Zonen aufgeteilt Einfacher zu merken Dienste einfacher auf andere Rechner übertragbar Aufbau eines logischen Namens DNS-Namensraum 142 Domain_name Time_to_live Class Type Value cs.vu.nl 86400 IN TXT „Faculteit Wiskunde en Informatica” cs.vu.nl 86400 IN TXT „Vrije Universiteit Amsterdam” cs.vu.nl 86400 IN MX 1. zephyr.cs.vu.nl cs.vu.nl 86400 IN MX 2. top.cs.vu.nl flits.cs.vu.nl 86400 IN HINFO Sun Unix flits.cs.vu.nl 86400 IN A 130.37.16.112 flits.cs.vu.nl 86400 IN A 192.31.231.165 flits.cs.vu.nl 86400 IN MX 1. flits.cs.vu.nl flits.cs.vu.nl 86400 IN MX 2. zephyr.cs.vu.nl www.cs.vu.nl 86400 IN CNAME star.cs.vu.nl ftp.cs.vu.nl 86400 IN CNAME zephyr.cs.vu.nl laserjet IN A 192.31.231.216 IN HINFO „HP Laserjet IIISi” Proprietary Die Internet-Protokollwelt - 5. Transportschicht im Internet 143 6 DNS – Name Servers DNS – Anfragen an Name Server Allgemeine Kategorien Länderspezifisch int com edu sun yale eng cs gov mil org acm eng jack net jp ieee jill ac us co de tu-bs keio nec cs cs csl ibr ... Jede Zone hat einen primären und beliebig weitere sekundäre Nameserver Anfragen können rekursiv oder nicht-rekursiv beantwortet werden Name yahoo linda robot pc24 Name Info Info www ai rekursiv: etc. nicht-rekursiv: Name Info faxe Name Info Die Internet-Protokollwelt - 5. Transportschicht im Internet 144 DNS – Beispiele http://www.nasa.gov/ Endsystem http 198.116.142.34 Die Internet-Protokollwelt - 5. Transportschicht im Internet Literatur IP-Adresse für www.nasa.gov ? DNSName Server 198.116.142.34 Router MX-Daten für ieee.org ? mail [email protected] Endsystem smtp 199.172.136.14 145 DNSName Server gemini.ieee.org, IP-Adresse 199.172.136.14, SMTP COMER, D.E. (2002). Computernetzwerke und Internets mit Internet-Anwendungen. Pearson Studium / Prentice Hall, München, 3. überarbeitete Auflage. ISBN 3-8273-7023-X. COMER, D.E. (2003): TCP/IP – Konzepte, Protokolle und Architekturen. mitp-Verlag, Bonn, 4. Auflage, 2003. ISBN 3-8266-0995-6. PETERSON, L.; DAVIE, B.S. (2003): Computernetze – Eine systemorientierte Einführung. dpunkt.verlag, Heidelberg, 3. Auflage. ISBN 3-89864-242-9. STEVENS, W.R. (1994). TCP/IP Illustrated, Bd. 1 – The Protocols. Addison-Wesley, Boston; San Francisco; New York. ISBN 0-201-62246-9. Router Die Internet-Protokollwelt - 5. Transportschicht im Internet 146 Die Internet-Protokollwelt - 5. Transportschicht im Internet 147 7 RFCs POSTEL, J.: User Datagram Protocol, August 1980, RFC 768. POSTEL, J.: Transmission Control Protocol – DARPA Internet Program Protocol Specification, September 1981, RFC 793. MOCKAPETRIS, P.V.: DNS encoding of network names and other types. April 1989. RFC 1101. POSTEL, J.: Domain Name System Structure and Delegation, März 1994, RFC1591. FREED, N.: Behavior of and Requirements for Internet Firewalls, Oktober 2000, RFC 2979. RAMAKRISHNAN, K.; FLOYD, S.; BLACK, D.: The Addition of Explicit Congestion Notification (ECN) to IP, September 2001, RFC 3168. ONG, L.; YOAKUM, J.: An Introduction to the Stream Control Transmission Protocol (SCTP), Mai 2002, RFC 3286. Die Internet-Protokollwelt - 5. Transportschicht im Internet 148 8