Kommunikationssysteme SS 2006

Werbung
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
Herunterladen