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: Telekommunikationsdienste und -protokolle Kommunikationssteuerungsschicht TCP 5. Die Transportschicht im Internet IGMP ICMP UDP IP ARP Transportschicht Vermittlungsschicht RARP Sicherungsschicht • Im Weiteren wird die Transportschicht behandelt. TKDP - 5. Transportschicht im Internet TCP (Transmission Control Protocol): Dienste Verbindungsverwaltung Mehrere Prozesse können gleichzeitig eine TCP-Instanz benutzen FTPServer Port Port 21 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 TCP IP IP NetzNetzzugang zugang 129.13.42.112 129.13.42.115 FTPBenutzer A Port Port 400 400 FTPBenutzer B Port Port 400 400 TCP TCP TCP TCP IP IP NetzNetzzugang zugang IP IP NetzNetzzugang zugang Internet Fehleranzeige TKDP - 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 Multiplexen TCP: Adressierung Verbindungsaufbau zwischen zwei „Sockets” (entspricht CEP im TSAP). Datentransfer über virtuelle Verbindung. Gesicherter Verbindungsabbau (alle Daten müssen quittiert sein). 121 122 TKDP - 5. Transportschicht im Internet 123 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) TKDP - 5. Transportschicht im Internet Verbindungsaufbau Close; FIN ACK; - FIN wait2 Estblshd FIN; ACK FIN; ACK Piggyback Piggyback Acknowledgement Acknowledgement SYN sent 44 bit bit TCP TCP header header length length SYN+ACK; ACK FIN; ACK Closing FIN+ACK; ACK Destination Destination Port Port Sequence Sequence Number Number Send Close; FIN 31 16 Source Source Port Port Close; - Close wait ACK; - Close; FIN Timed wait Last ACK Window Window Paketkopf Urgent Urgent Pointer Pointer Daten Daten ... ... Dieses Bit wird in der Literatur auch durch PSH (Push-Bit) bezeichnet. Closed TKDP - 5. Transportschicht im Internet U U AA EE RR SS FF RR CC O O SS YY II G M TT N NN N G KK M Options Options (0 (0 oder oder mehr mehr 32-bit-Worte) 32-bit-Worte) ACK; - (Timeout; -) 66 bit bit unused unused Checksum Checksum Close Passive FIN wait1 125 TCP-Paketformat: Aufbau 0 SYN; SYN+ACK (gleichzeitig) ACK; - 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 > 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 TKDP - 5. Transportschicht im Internet Close Activ TCP: Verbindungsaufbau 126 TKDP - 5. Transportschicht im Internet 127 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 TKDP - 5. Transportschicht im Internet 128 TCP-Verbindungsaufbau: Verwaistes SYN A B Passive Open Active Open SYN i A beantragt Verbindung +1 ACK i , j N SY D AT A i+ 1, A CK j +1 Beide SYNs müssen bestätigt sein Für den Empfänger gilt die Verbindung erst nach der Bestätigung seines SYNs als aufgebaut TKDP - 5. Transportschicht im Internet RST ,A Active Open Altes SYN kommt an +1 ACK i , j N SY CK j +1 B akzeptiert und bestätigt B Passive Open CK k, A p SY N S RST YN i , AC K k+ 1 +1 ACK i , j N SY D AT A i+ 1, A CK j +1 A verweigert Bs Verbindung TKDP - 5. Transportschicht im Internet 129 TCP-Verbindungsaufbau: Verspätetes SYN/ACK B Passive Open altes S YN i A akzeptiert und beginnt Übertragung 3-Wege-Handshake A A B akzeptiert und bestätigt 130 A beantragt Verbindung Altes SYN/ACK kommt an A bricht „alte” Verbindung ab B akzeptiert und bestätigt neue Verbindung A bestätigt und beginnt Übertragung TKDP - 5. Transportschicht im Internet 131 TCP: Duplikaterkennung Kein Anzeichen für Duplikate Datenpakete können Verbindungsabbau überstehen und irrtümlich einer neuen Verbindung zugeordnet werden Durch einen Systemzusammenbruch kann die Paketnummerierung verloren gehen 2K IN=2048 ACK=2048 W 2K SEQ= 204 8 Voll Sender ist blockiert 6 WIN=0 ACK=409 048 6 WIN=2 ACK=409 Sender kann bis zu 2KB übertragen Uhr-unterstützte Sequenznummer (Clock-based initial sequence number) Sendeverzögerung (Quiet Time) Empfängerpuffer 0 4K Leer 2K SEQ =0 Anwendung schreibt 3KB 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 1K SE Q=4 Anwendung liest 2KB 2K 096 1K TKDP - 5. Transportschicht im Internet 132 TKDP - 5. Transportschicht im Internet 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 Schwelle 32 28 24 Schwelle 20 16 12 8 4 0 0 TKDP - 5. Transportschicht im Internet 134 2 4 6 Anzahl der Übertragungen 8 10 12 14 16 TKDP - 5. Transportschicht im Internet 18 20 22 24 135 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 B FIN i j 1, FIN + i K AC 0 A sendet VerbindungsabbauAnfrage Unzuverlässig, verbindungslos, einfacher und schneller als TCP Demultiplexing der empfangenen Pakete basiert auf der PortNummer Optionale Prüfsumme 16 Source Source Port Port Destination Destination Port Port Message Message Length Length Checksum Checksum j+1 B bestätigt und sendet eigenes Verbindungsabbau-Signal festgelegte, so genannte „well-known” Ports: 13: 53: 123: A bestätigt den Verbindungsabbau von B. Ist dieses Signal bei B angekommen, gilt die Verbindung als abgebaut. TKDP - 5. Transportschicht im Internet Einfacher zu merken Dienste einfacher auf andere Rechner übertragbar Länder Weltweit eindeutig Hierarchische Struktur Gliederung in Domänen us ikmcip1.e-technik.tu-ilmenau.de Rechner Allgemeine Kategorie (vorrangig innerhalb der USA) de se ... tu-ilmenau uk net org gov mil e-technik Benötigt: ac co Land Abteilung Institution Namensraum ist in Zonen aufgeteilt edu Beispiel www 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 TKDP - 5. Transportschicht im Internet 137 DNS-Namensraum Aufbau eines logischen Namens sehr viele Multimedia-Anwendungen nehmen UDP statt TCP wegen Leistungsvorteilen TKDP - 5. Transportschicht im Internet Adressierung erfolgt über logische Namen daytime domain name server network time protocol 136 Anwendungsnahe Adressierung im Internet Paketkopf Daten Daten ... ... ACK 31 138 TKDP - 5. Transportschicht im Internet com Geplante, z.T. z.T. bereits realisierte weitere Zonen (top level domains): • arts • firm • info • nom • rec • shop • web 139 DNS – Resource Records DNS – Beispieldatenbank Fünf-Tupel, der einzelne Ressourcen näher beschreibt: Domain_name Time_to_live Class Type Domain_name cs.vu.nl cs.vu.nl cs.vu.nl cs.vu.nl flits.cs.vu.nl flits.cs.vu.nl flits.cs.vu.nl flits.cs.vu.nl flits.cs.vu.nl www.cs.vu.nl ftp.cs.vu.nl laserjet A (IP-Adresse des Rechners) MX (Mail Exchange) HINFO (CPU und Betriebssystem des Rechners in ASCII) CNAME (Canonical Name) ... Value TKDP - 5. Transportschicht im Internet 140 DNS – Name Servers edu sun yale eng cs eng gov Länderspezifisch mil org acm jack robot Value „Faculteit Wiskunde en Informatica” „Vrije Universiteit Amsterdam” 1. zephyr.cs.vu.nl 2. top.cs.vu.nl Sun Unix 130.37.16.112 192.31.231.165 1. flits.cs.vu.nl 2. zephyr.cs.vu.nl star.cs.vu.nl zephyr.cs.vu.nl 192.31.231.216 „HP Laserjet IIISi” Proprietary 141 net jp ieee ac jill 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 linda pc24 rekursiv: Name yahoo Name Info Info www ai Type TXT TXT MX MX HINFO A A MX MX CNAME CNAME A HINFO TKDP - 5. Transportschicht im Internet com Class IN IN IN IN IN IN IN IN IN IN IN IN IN DNS – Anfragen an Name Server Allgemeine Kategorien int Time_to_live 86400 86400 86400 86400 86400 86400 86400 86400 86400 86400 86400 etc. nicht-rekursiv: Name Info faxe Name Info TKDP - 5. Transportschicht im Internet 142 TKDP - 5. Transportschicht im Internet 143 DNS – Beispiele c http://www.nasa.gov/ Literatur d IP-Adresse für www.nasa.gov ? Endsystem Endsystem DNSDNSName Name Server Server e 198.116.142.34 f http 198.116.142.34 Router Router d MX-Daten für ieee.org ? c mail [email protected] DNSDNSName Name Server Server Endsystem Endsystem f smtp 199.172.136.14 e 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 Router TKDP - 5. Transportschicht im Internet 144 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. TKDP - 5. Transportschicht im Internet 146 TKDP - 5. Transportschicht im Internet 145