Kommunikationssysteme SS 2006 IP Datagramme und Datagramm Weiterleitung & IP Einkapselung, Fragmentierung und Wiederherstellung & ICMP (Kap. 20,21,23) Christoph Lindemann 7-1 Zeitplan (1) Nr. Datum Vorlesung 01 12.04.2006 Einführung in Rechnernetze, Übertragungsmedien & Pakete, Rahmen und Fehlererkennung 02 19.04.2006 LAN Technologien und Netzwerktopologien, Hardwareadressierung und Identifikation des Rahmentyps 03 26.04.2006 LAN Verkabelung, physikalische Topologien und Interfacehardware, LAN Erweiterungen 04 03.05.2006 WAN Technologien und Routing, Netzbesitzer, Service Paradigmen und Leistungsaspekte 05 10.05.2006 Protokolle und Schichten, Internetworking: Konzepte, Architekturen und Protokolle 06 17.05.2006 IP Adressen und Binden von Protokolladressen 7-2 Zeitplan (2) Nr. Datum Vorlesung 07 24.05.2006 IP Datagramme und Datagramm Weiterleitung, IP Einkapselung, Fragmentierung und Wiederherstellung, ICMP 08 31.05.2006 Zuverlässiger Datentransport mit TCP, Internet Routing - 07.06.2006 Keine Vorlesung (Pfingstpause) 09 14.06.2006 Client-Server Interaktion, Socket-Schnittstelle, Beispiel einer Client-Server Interaktion 10 21.06.2006 Domain Name System, E-Mail, Datentransfer und entfernter Zugriff 11 28.06.2006 WWW Browsing, dynamische und aktive Webdokumente 12 05.07.2006 RPC und Middleware, Netzwerksicherheit und Initialisierung (Konfiguration) 7-3 Einführung Grundlegender Internetkommunikationsservice Format der Pakete Verarbeitung der Pakete von Routern Weiterleitung Zustellung 7-4 Verbindungsloser Service End-zu-End Zustelldienst ist verbindungslos Erweiterung der LAN Abstrahierung Universelle Adressierung Datenlieferung in Paketen (Frames), jedes mit einem Header Kombiniert Sammlung physischer Netzwerke in ein einzelnes virtuelles Netzwerk Transportprotokolle nutzen diesen verbindungslosen Service, um verbindungslose Datenlieferung anzubieten (UDP) sowie verbindungsorientierte Datenlieferung (TCP) 7-5 Virtuelle Pakete Pakete dienen dem gleichen Zweck im Internet wie Frames im LAN Jedes besitzt einen Header Router (ehemals Gateways) leiten zwischen physischen Netzwerken weiter Pakete haben ein uniformes, hardwareunabhängiges Format Beinhaltet Header und Daten Kann nicht das Format einer bestimmten Hardware nutzen Eingekapselt in Hardwareframes für Lieferung durch jedes physikalische Netzwerk 7-6 IP Datagrammformate Formal wird die Einheit der IP Datenlieferung Datagramm genannt Beinhaltet Header- und Datenbereich Datagramme können unterschiedliche Größe haben Headerbereich gewöhnlich fest (20 Oktetts), kann aber Optionen haben Datenbereich kann zwischen 1 und 65535 Oktetts (216 – 1) haben Gewöhnlich ist der Datenbereich um einiges größer als der Header 7-7 Datagrammweiterleitung Header beinhaltet alle notwendigen Informationen, um das Datagramm zum Zielcomputer zu liefern Zieladresse Quelladresse Identifikation Andere Lieferinformationen Router prüft Header jedes Datagramms und leitet Datagramm auf dem Pfad zum Ziel weiter 7-8 Routing Beispiel Animation 7-9 Routingtabelle Aus Effizienzgründen werden Informationen über Weiterleitung in Routingtabelle gespeichert Initialisiert bei Systeminitialisierung Muss bei Netzwerktopologieänderungen aktualisiert werden Enthält Liste der Zielnetzwerke und nächsten Hop für jedes Ziel 7-10 Default Routen Routingtabelle wird klein gehalten durch Listung der Zielnetzwerke statt Hosts Kann durch Default Route weiter reduziert werden Eintrag wird genutzt, wenn Zielnetzwerk nicht explizit in Routingtabelle gelistet ist z.B. Uni Leipzig nutzt Default Route für alle Netzwerke außerhalb des Campus 7-11 Routingtabellen und Adressmasken In der Praxis werden zusätzliche Informationen in der Routingtabelle gehalten Ziel gespeichert als Netzwerkadresse Nächster Hop als IP Adresse des Routers gespeichert Adressmaske legt fest, wie viele Bits der Adresse im Präfix stehen Präfix definiert, welcher Teil der Adresse das Netzwerk identifiziert z.B. Klasse A Maske ist 255.0.0.0 Genutzt für Subnetting 7-12 Adressmasken Um Zielnetzwerk zu identifizieren, wende Adressmaske auf Zieladresse an und vergleiche mit Netzwerkadresse in der Routingtabelle Boolesches UND kann genutzt werden if ((Mask[i] & D) == Dest[i]) forward to NextHop[i] Betrachte 128.1.15.26 7-13 Weiterleitung, Zieladresse und Next- Hop Zieladresse in IP Datagramm ist immer endgültige Zieladresse Router schaut nach Next- Hop Adresse und leitet Paket weiter Netzwerkschicht nimmt zwei Parameter: IP Datagramm Next- Hop Adresse Next- Hop Adresse taucht nie in IP Datagramm auf 7-14 Best-Effort Zustellung IP stellt zu LAN gleichwertigen Service zur Verfügung Keine Garantie, dass folgende Fehler nicht auftreten: Duplizierte Datagramme Verzögerte oder Out-of-Order Zustellung Datagramm-Verlust Zuverlässige Zustellung wird durch Transportschicht realisiert Netzwerkschicht – IP – kann Fehler erkennen und melden, ohne sie jedoch zu beheben Netzwerkschicht fokussiert auf Datagrammzustellung Anwendungsschicht ist nicht daran interessiert, zwischen Zustellungsproblemen in zwischenliegenden Routern zu unterscheiden 7-15 IP Datagramm Header Format 7-16 IP Datagramm Header Felder VERS – IP-Version (4 oder 6) H. LEN – Header-Länge (in Einheiten von 32 bits) SERVICE TYPE – Senderwunsch nach geringer Latenz, hoher Zuverlässigkeit (selten benutzt) TOTAL LENGTH – Anzahl Oktetts im Datagramm IDENT, FLAGS, FRAGMENT OFFSET – benutzt bei Fragmentierung TTL - Time to Live; wird in jedem Router dekrementiert; Datagramm wird verworfen wenn TTL = 0 TYPE - Protokolltyp; z.B. TCP, UDP HEADER CHECKSUM – Einerkomplement der Einerkomplementsumme des Headers SOURCE, DEST IP ADDRESS – IP-Adressen des Originalabsenders und des Endziels 7-17 IP Datagramm Optionen Verschiedene Optionen können zum IP Header hinzugefügt werden Route aufzeichnen Quellroute (Source Route) Zeitstempel Header ohne Optionen hat H. LEN Feldwert 5; Daten beginnen direkt nach DESTINATION IP ADDRESS Optionen werden zwischen DESTINATION IP ADDRESS und Daten in vielfachen von 32-bit hinzugefügt Header mit 96-bit Optionen hat H. LEN Feldwert von 8 7-18 Zusammenfassung Basiseinheit für Zustellung in TCP/IP ist IP Datagramm Router nutzen Zieladresse in IP Datagramm, um Next-Hop herauszufinden Weiterleitungsinformationen sind in Routingtabelle gespeichert IP Datagrammheader besitzt 40 Oktetts fester Feldinformationen und möglicherweise Optionen 7-19 IP Einkapselung, Fragmentierung und Wiederherstellung (Kap. 21) 7-20 Datagrammübertragung und Rahmen IP Internetschicht Konstruiert Datagramm Findet Next Hop Übergibt an Netzwerkschnittstellenschicht Netzwerkschnittstellenschicht Bindet Next Hopadresse an Hardwareadresse Bereitet Datagramm für Übertragung vor Aber ... Hardwarerahmen versteht kein IP; wie wird Datagramm übertragen? 7-21 Einkapselung Netzwerkschnittstellenschicht kapselt IP Datagramm als Datenbereich in Hardwarerahmen Hardware ignoriert IP Datagrammformat Standards für Einkapselung beschreiben Details Standard definiert Datentyp für IP Datagramm, wie für andere (z.B. ARP) Empfangender Protokollstack interpretiert Datenbereich basierend auf Rahmentyp 7-22 Einkapselung über mehrere Hops Für jeden Router auf dem Pfad von der Quelle zum Ziel: Entkapselt eingehendes Datagramm aus Rahmen Verarbeitet Datagramm – bestimmt Next Hop Kapselt Datagramm in ausgehenden Rahmen ein Datagramm kann bei jedem Hop in anderes Hardwareformat eingekapselt werden Datagramm selbst ist (fast!) unverändert 7-23 Einkapselung über mehrere Hops 7-24 Interneteinkapselung Beispiel Animation 7-25 MTU Jede Hardwaretechnologiespezifikation beinhaltet die Definition der Maximalgrößer des Datenbereichs eines Rahmens Maximum Transmission Unit (MTU) genannt Jedes eingekapselte Datagramm in einem Hardware Rahmen muss kleiner als die MTU für diese Hardware sein 7-26 MTU und Datagrammübertragung IP Datagramm kann größer sein als die meisten Hardware MTUs IP: 216-1 Ethernet: 1500 Token Ring: 2048 oder 4096 Quelle kann einfach IP Datagrammgröße begrenzen, um kleiner als lokale MTU zu sein Lokale MTU muss TCP für TCP Segmente mitgeteilt werden Was ist mit UDP? 7-27 MTU und heterogene Netzwerke Ein Internet kann Netzwerke mit unterschiedlichen MTUs haben Angenommen, Downstream-Netzwerk hat kleinere MTU, als lokales Netzwerk 7-28 Fragmentierung Eine Technik – begrenzt Datagrammgröße auf die kleinste MTU aller Netzwerke IP nutzt Fragmentierung – Datagramme können in Teile gespalten werden, um in Netzwerke mit kleiner MTU zu passen Router erkennt Datagramm, das größer als Netzwerk MTU ist Teilt es in Stücke Jedes Teil kleiner als ausgehender Netzwerk MTU 7-29 Fragmentierung Details Jedes Fragment ist ein unabhängiges Datagramm Beinhaltet alle Header Felder Bit im Header signalisiert, dass Datagramm Fragment ist Andere Felder haben Informationen für Wiederherstellung des ursprünglichen Datagramms FRAGMENT OFFSET liefert Originalposition des Fragments Router nutzt lokale MTU, um Größe jedes Fragments zu berechnen Packt Datenteil des originalen Datagramms in jedes Fragment Packt andere Informationen in den Header 7-30 Datagramm Wiederherstellung Rekonstruktion des ursprünglichen Datagramms wird Wiederherstellung (Reassembly) genannt Letztendliches Ziel führt Wiederherstellung aus 7-31 Datagramm Wiederherstellung Fragmente können in falscher Reihenfolge ankommen; Headerbit identifiziert Fragment, welches letzten Teil des original Datagramms enthält Fragment 3 als letztes Fragment identifiziert 7-32 Fragmentidentifikation Wie werden Fragmente mit ursprünglichem Datagramm in Verbindung gebracht? IDENT Feld in jedem Fragment gleicht IDENT Feld im originalen Datagramm Fragmente verschiedener Datagramme können in falscher Reihenfolge ankommen und werden immer noch richtig sortiert 7-33 Fragmentverlust IP kann Fragmente verlieren Was passiert mit original Datagramm? Ziel wirft gesamtes ursprüngliches Datagramm weg Wie erkennt Ziel verlorene Fragmente? Setzt Timer mit jedem Fragment Wenn Timer ausläuft, bevor alle Fragmente ankommen, wird Fragmentverlust angenommen Quelle (Anwendungsschichtprotokoll) muss noch einmal übertragen 7-34 Ein Fragment fragmentieren Fragment kann untergeordnetes Netzwerk passiert mit noch kleinerem MTU Router fragmentiert die Fragmente, so dass sie passen Resultierende Unterfragmente sehen aus wie Originalfragmente (bis auf die Größe) Keine Notwendigkeit der hierarchischen Wiederherstellung; Unterfragmente enthalten Position im Originaldatagramm 7-35 Zusammenfassung IP nutzt Einkapselung,um Datagramme in Hardwarerahmen zu übertragen Netzwerktechnologie hat ein MTU IP nutz Fragmentierung um Datagramme zu transportieren, die größer als Netzwerk MTU sind 7-36 ICMP (Kap. 23) 7-37 Einführung IP bietet Best-Effort-Zustelldienst Zustellungsprobleme können ignoriert werden; Datagrammme können verworfen werden Internet Control Message Protocol (ICMP) bietet Fehlerberichtsmechanismen 7-38 Fehlererkennung Internetschicht kann eine Vielzahl von Fehlern erkennen: Checksumme (nur Header!) TTL abgelaufen Keine Route zum Zielnetzwerk Keine Zustellung zum Zielhost möglich (z.B. Keine ARP Antworten) Internetschicht verwirft Datagramme mit Problemen Einige – z.B. Checksummenfehler – können keine Fehlernachrichten auslösen 7-39 Fehlerberichterstattung Einige Fehler können berichtet werden Router sendet Nachricht zurück an Quelle des Datagramms Nachricht enthält Informationen über das Problem Eingekapselt in IP Datagramm 7-40 Nachrichtentypen Internet Control Message Protocol (ICMP) definiert Fehler- und Informationsnachrichten Fehlernachrichten: Source quench Zeit abgelaufen Ziel unerreichbar Umleitung Fragmentierung notwendig Informationsnachrichten Echo Anfrage / Antwort Adressmaskierung Anfrage / Antwort Routererkennung 7-41 ICMP Nachrichtentransport ICMP in IP eingekaspelt Aber ... wie kann das funktionieren? ICMP Nachrichten werden als Antwort auf eingehende Datagramme mit Problemen gesendet ICMP Nachrichten werden NICHT für ICMP Nachrichten gesendet 7-42 ICMP und Erreichbarkeit Ein Internethost A ist erreichbar von einem anderen Host B, wenn Datagramm von A zu B zugestellt werden kann Ping Programm testet Erreichbarkeit – sendet Datagramm von B nach A, dass A an B zurücksendet Nutzt ICMP Echo-Anfrage und -Antwort Nachrichten Internetschicht beinhaltet Code zum Antworten auf eingehende ICMP Echoanfragenachrichten 7-43 ICMP und Internetrouten Liste aller Router auf Pfad von A nach B wird Route von A nach B genannt traceroute nutzt UDP zu nichtexistenten Port und TTL Feld, um Route via expandierender Ringsuche zu finden Sendet ICMP echo Nachrichten mit ansteigendem TTL Router die TTL zu 0 runterzählen senden ICMP time exceeded Nachricht mit Routeradresse als Quelladresse Erstes mit TTL 1 geht zum ersten Router, der es verwirft und time exceeded Nachricht schickt Nächstes mit TTL 2 geht durch den ersten Router zum Zweiten Weitergeführt, bis Nachricht vom Zielrouter empfangen wird traceroute muss mit variierenden Netzwerkverzögerungen klarkommen Muss auch bei dynamische veränderlichen Routen funktionieren 7-44 ICMP und Pfad-MTUErkundung Fragmentierung sollte vermieden werden Wie kann Quelle ausgehende Datagramme konfigurieren um Fragmentierung zu vermeiden? Source findet Pfad MTU heraus – kleinste Netzwerk MTU auf dem Pfad von Quelle zum Ziel Quelle testet Pfad mit IP Datagrammen mit “don't fragment “ Flag Router antwortet mit ICMP fragmentation required Nachricht Quelle sendet kleinere Proben, bis Ziel erreicht 7-45 ICMP und Routererkennung Router kann ausfallen, verursacht “Schwarzes Loch” oder Isolation von Hosts vom Internet ICMP router discovery genutzt um neue Router zu finden Host kann Anfrage nach Routerankündigungen broadcasten, um Defaultroute automatisch zu konfigurieren Host kann Anfrage broadcasten, wenn Router ausfällt Router kann Existenzankündigung broadcasten, wenn er das erste mal verbunden ist 7-46 ICMP Umleitung Defaultroute kann extra Hop verursachen Router der Datagramm an selbe Schnittstelle weiterleitet sendet ICMP redirect Host installiert neue Route mit korrektem Router als Next Hop 7-47 Zusammenfassung Internetschicht bietet Best-Effort- Zustelldienst Kann für einige Fehler Nachrichten melden ICMP stellt Fehlernachrichtenservice zur Verfügung 7-48