Anwendungsnahe Adressierung im Internet Telekommunikationsdienste und –protokolle — Die Internet-Protokollsuite (II) — S Domain Name Service S Transmission Control Protocol S User Datagram Protocol S Firewalls Adressierung erfolgt über logische Namen S Einfacher zu merken S Dienste einfacher auf andere Rechner übertragbar Aufbau eines logischen Namens S Weltweit eindeutig S Hierarchische Struktur S Gliederung in Domänen Beispiel S ikmcip1.e-technik.tu-ilmenau.de Rechner Land Abteilung Institution Benötigt: S Abbildung logischer Name → IP-Adresse S Ursprünglich: Datei (hosts.txt), die jede Nacht vom Server geladen wurde S Problem: steigende Anzahl der Namen ließ zentrale Datei nicht mehr zu TKDP-SS01-1-2 DNS-Namensraum DNS – Resource Records S Namensraum ist in Zonen aufgeteilt Fünf-Tupel, der einzelne Ressourcen näher beschreibt: S Domain_name S Time_to_live S Class S Type • A (IP-Adresse des Rechners) • MX (Mail Exchange) • HINFO (CPU und Betriebssystem des Rechners in ASCII) • CNAME (Canonical Name) • ... S Value Länder us de tu-ilmenau e-technik ikmcip1 Allgemeine Kategorie (vorrangig innerhalb der USA) se ... uk net org gov mil ac co www nasa ... edu com Geplante, z.T. bereits realisierte weitere Zonen (top level domains): • arts • firm • info • nom • rec • shop • web TKDP-SS01-1-3 TKDP-SS01-1-4 DNS - Beispieldatenbank " " " " " 555 " #% DNS - Name Servers ! "# $ #% &# ' #!$ ( ) *+# ( , -. / &0 ' )112))), ' )3,1),1))4 ( ) " ( , *+# '(6 # '(6 *+# ' )3,1),1),) -. -7 8#% /$ 7## # '9 < 9# ! 9 9 8=!#*"+ #9 9 % % % ! #: ! ;: + 555 :# , "0 TKDP-SS01-1-5 DNS: Nameserver TKDP-SS01-1-6 DNS: Beispiele S Jede Zone hat einen primären und beliebig weitere sekundäre Nameserver S Anfragen können rekursiv oder nicht-rekursiv beantwortet werden • rekursiv: Name Name @ IP-Adresse für www.nasa.gov ? ? http://www.nasa.gov/ Endsystem B http 198.116.142.34 etc. DNS-Name Server A 198.116.142.34 Info Router Info • @ MX-Daten für ieee.org ? ? mail [email protected] nicht-rekursiv: Name Endsystem Info B smtp 199.172.136.14 Name Info DNS-Name Server A gemini.ieee.org, IP-Adresse 199.172.136.14, SMTP Router TKDP-SS01-1-7 TKDP-SS01-1-8 TCP (Transmission Control Protocol): Dienste Die Internet-Protokollfamilie: Wiederholung Die Bezeichnung TCP/IP wird häufig als Synonym für die gesamte Protokollfamilie verwendet Einordnung der Internetprotokolle in das ISO/OSI-Referenzmodell: Kommunikationssteuerungsschicht TCP IGMP Transportschicht UDP ICMP IP ARP Vermittlungsschicht RARP Sicherungsschicht Im Weiteren wird die Transportschicht behandelt S Verbindungsverwaltung Verbindungsaufbau zwischen zwei „Sockets“ (entspricht CEP im TSAP). • Datentransfer über virtuelle Verbindung. • Gesicherter Verbindungsabbau (alle Daten müssen quittiert sein). S Multiplexen • Mehrere Prozesse können gleichzeitig eine TCP-Instanz benutzen S Datenübertragung • 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 S Fehleranzeige • TKDP-SS01-1-9 TKDP-SS01-1-10 TCP: fest vereinbarte Port-Nummern (well-known ports) TCP: Adressierung 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. > telnet walapai 13 S Identifikation von TCP-Diensten geschieht über Ports (TSAPs in der OSI-Terminologie) S 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) S Ein Socket besteht aus der Internetadresse eines Rechners und einem Port. Notation: (IP-Adresse:Portnummer) → Internet-weit eindeutig S Beispiel: Der FTP-Server der TU Ilmenau ist über den Socket 141.24.191.41:21 erreichbar S 13: Tageszeit S 20: FTP Daten S 25: SMTP (Simple Mail Transfer Protocol) S 53: DNS FTP-Server Benutzer A (Domain Name Server) Benutzer B Port 21 Port 400 Port 400 TCP IP TCP IP TCP IP S 80: HTTP (Hyper Text Transfer Protocol) S 119: NNTP (Network News Transfer Protocol) TKDP-SS01-1-11 Trying 129.13.3.121... Connected to walapai. Escape character is '^]'. Mon Aug 4 16:57:19 1997 Connection closed by foreign host > 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 TKDP-SS01-1-12 TCP: Verbindungsaufbau TCP: Verbindungsmanagement Connect; SYN Verbindungen können nach der Erstellung eines Sockets S aktiv (connect) oder S passiv (listen/accept) aufgebaut werden. S Aktiver Modus: Anforderung einer TCP-Verbindung mit dem spezifizierten Socket. S Passiver Modus: Ein Benutzer informiert TCP, dass er auf eine eingehende Verbindung wartet. • 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. S 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). Verbindungsaufbau Closed Listen; - Close; SYN; SYN+ACK RST; - Estblshd Close Activ Close; FIN FIN; ACK FIN wait2 FIN; ACK Timed wait (Timeout; -) 31 Destination Destination Port Port Piggyback Piggyback Acknowledgement Acknowledgement U UA A EE R R SS FF R RC CO O SS Y Y II G GK KM M TT N NN N Checksum Checksum Close; FIN Last ACK ACK; - TKDP-SS01-1-14 TCP-Paketformat 16 66 bit bit unused unused Close wait Closed Sequence Sequence Number Number 44 bit bit TCP TCP header header length length Closing FIN+ACK; ACK; ACK SYN+ACK; ACK FIN; ACK Close Passive FIN wait1 ACK; - SYN sent ACK; - Close; FIN TCP-Paketformat: Aufbau Source Source Port Port Send SYN; SYN+ACK (gleichzeitig) SYN rcvd TKDP-SS01-1-13 0 Close; - Listen Window Window Paketkopf Urgent Urgent Pointer Pointer Options Options (0 (0 oder oder mehr mehr 32-bit-Worte) 32-bit-Worte) Daten Daten ... ... Dieses Bit wird in der Literatur auch durch PSH (Push-Bit) bezeichnet. TKDP-SS01-1-15 - 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-SS01-1-16 TCP-Verbindungsaufbau Verwaistes SYN TCP-Verbindungsaufbau im Detail A Active Open B Passive Open SYN i A A beantragt Verbindung 1 CK i+ A , j SYN B akzeptiert und bestätigt DAT A i+ 1, AC K j+ 1 A akzeptiert und beginnt Übertragung B Passive Open altes S Y Altes SYN kommt an Ni 1 CK i+ A , j SYN RST , AC K j+ 1 B akzeptiert und bestätigt A verweigert Bs Verbindung S 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 TKDP-SS01-1-17 TCP-Verbindungsaufbau: Verspätetes SYN/ACK A Active Open TKDP-SS01-1-18 TCP: Duplikaterkennung B Passive Open p CK A k, N SY S RST YN i , AC K p+ 1 1 CK i+ A , j SYN DAT A i+ 1, AC K j+ 1 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-SS01-1-19 Datenpakete werden zur Duplikaterkennung durchnummeriert Unter Umständen wird ein Datenpaket mehrfach bestätigt Î Kein Anzeichen für Duplikate Sequenznummernbereich muss groß genug sein, dass zwei Pakete mit der gleichen Sequenznummer genügend weit auseinander liegen Allerdings: Datenpakete können Verbindungsabbau überstehen und irrtümlich einer neuen Verbindung zugeordnet werden Durch einen Systemzusammenbruch kann die Paketnummerierung verloren gehen Problemvermeidung: Uhr-unterstützte Sequenznummer (Clock-based initial sequence number) Sendeverzögerung (Quiet Time) TKDP-SS01-1-20 TCP: Fenstermanagement TCP: Flusskontrolle / Staukontrolle Sender S Flusskontrolle regelt den Datenfluss zwischen den Endsystemen Empfänger Anwendung schreibt 2KB 2K SEQ =0 S Flusskontrolle in TCP: Fenstermechanismus mit Kreditvergabe 2K IN=2048 ACK=2048 W Anwendung schreibt 3KB S Staukontrolle befasst sich mit Stausituationen in den Zwischensystemen Empfängerpuffer 0 4K Leer 0 96 WIN= ACK=40 0 2 48 96 WIN= ACK=40 1K SE Q=409 Window-Feld gibt an, wieviele Bytes der Empfänger zusätzlich akzeptiert Stau in Zwischensystemen führt oftmals dazu, dass Transportprotokolle nach einem Timeout Pakete wiederholen. ⇒ Die Stausituation wird verstärkt! Voll Sender kann bis zu 2KB übertragen ACK-Feld im Paketkopf bestätigt alle niedrigeren Bytefolgenummern • S Staukontrolle in TCP: Problem „congestion collapse“: 2K SEQ= 2048 Sender ist blockiert • Anwendung liest 2KB S TCP: „slow start“ und „multiplicative decrease“ Mechanismen 2K 6 1K 2K • 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 TKDP-SS01-1-21 TCP: Staukontrolle am Beispiel TKDP-SS01-1-22 TCP: Verbindungsabbau 44 Bestätigter und nummerierter Verbindungsabbau S Noch ausstehende Datenpakete können erkannt werden, so dass der Verbindungsabbau erst mit Eintreffen des letzten Datenpakets vollzogen werden kann. Timeout 40 36 Schwelle Übertragungsfenster (KB) 32 A B Close 28 FIN i 24 Schwelle 20 i, ACK 16 FIN j 12 ACK j 8 4 0 0 2 4 6 8 10 12 14 Anzahl der Übertragungen 16 18 20 22 A sendet VerbindungsabbauAnfrage B bestätigt und sendet eigenes Verbindungsabbau-Signal A bestätigt den Verbindungsabbau von B. Ist dieses Signal bei B angekommen, gilt die Verbindung als abgebaut. 24 TKDP-SS01-1-23 TKDP-SS01-1-24 UDP (User Datagram Protocol) Firewall zum Schutz des WWW-Servers S Unzuverlässig, verbindungslos, einfacher und schneller als TCP WWW-Server HTTP TCP IP LLC MAC PHY S Demultiplexing der empfangenen Pakete basiert auf der Port-Nummer S Optionale Prüfsumme 0 16 31 Source Source Port Port Destination Destination Port Port Message Message Length Length Checksum Checksum Paketkopf Notebook WWW-Browser HTTP TCP IP LLC MAC (WLAN) PHY (Code...) Daten Daten ... ... S festgelegte, sogenannte „well-known“ Ports: 13: daytime 53: domain name server 123: network time protocol • • • S sehr viele Multimedia-Anwendungen nehmen UDP statt TCP wegen Leistungsvorteilen Funk TKDP-SS01-1-25 Firewalls im Internet Firmen, Behörden, Privatpersonen, Universitäten sind von den Protokollen TCP/IP her gleichberechtigt an das Internet angebunden ⇒ Das interne Netz von unerwünschten Zugriffen von außen schützen: S am sichersten ist nur die physikalische Trennung zwischen Rechnern am Internet und firmeninternen Rechnern S Firewalls sind meist Router, die Pakete anhand der IP-Adresse und Port- Nummer herausfiltern können (zusätzliche Vermerke in einer Log-Datei möglich) • Beispiel: Ausfiltern von Paketen mit dem Port 80 verhindert den Zugriff auf normale WWW-Server; werden z.B. 129.13.x.y Adressen gefiltert, kann kein Rechner der Telematik auf etwas zugreifen! S Außer Paketfilter sind oft noch Anwendungsgateways und Adressübersetzung integriert • Umsetzung zwischen verschiedenen mail-Systemen • dynamische Abbildung einer IP-Adresse auf viele verschiedene interne Endsysteme TKDP-SS01-1-27 Router Router Funk Coax Router Router Glasfaser Router Router Router Router Firewall Glasfaser Bridge LLC MAC (WLAN) MAC (Ethernet) PHY (Code...) PHY Router IP LLC MAC (Ethernet) PHY LLC MAC (FDDI) PHY UTP5 – Twisted Pair TKDP-SS01-1-26