Netzwerkschicht

Werbung
Informations- und
Kommunikationssysteme
Kapitel 2.4
Netzwerkschicht
Acknowledgement: Folien angelehnt an J.F. Kurose and K.W. Ross
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
1
Kapitel 2.4: Netzwerkschicht
• 
• 
Unsere Ziele:
Verständnis für Prinzipien der Dienste der Netzwerkschicht:
• 
• 
• 
• 
Wie funktioniert ein Router?
Wie arbeitet Routing (Pfadwahl)?
Wie wird mit der Größe von Netzen umgegangen? (Skalierbarkeit)
Immer anhand vom Beispiel Internet
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
2
Kapitel 2.4: Netzwerkschicht
4.1 Einführung
4.2 Virtual Circuit und Datagram
Netze
4.3 IP: Internet Protocol
• 
• 
• 
• 
• 
Format der Datagramme
Adressierung in IPv4
• 
4.4 Routing-Algorithmen
• 
• 
• 
• 
Überblick
Distanzvektor
Link State
Hierarchisches Routing
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
3
Netzwerkschicht
• 
• 
• 
• 
• 
Transportiert Segmente vom
Sender zum Empfänger
Auf Senderseite: Kapselung von
Segmenten in Datagramme
Auf Empfangsseite: Auslieferung
von Segmenten an
Transportschicht
Protokolle der Netzwerkschicht
laufen in jedem Host & Router
Router werten Header aller
weitergeleiteten IP-Pakete aus
application
transport
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
application
transport
network
data link
physical
4
Kernfunktionalität der Netzwerkschicht
• 
• 
Analogie:
Forwarding: Weiterleitung von
Paketen von Eingangs-Link zu
korrektem Ausgangs-Link
Routing: Bestimmen des Weges
auf dem Pakete von Quelle zum
Ziel weitergeleitet werden
• 
! 
Routing: Planen einer
Wanderung
! 
Forwarding: Richtiges Abbiegen
an einer Weggabelung
Routing-Algorithmen
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
5
Zusammenspiel zwischen Routing und Forwarding
Routing-Algorithmus
Lokale Forwardingtabelle
header value output link
0100
0101
0111
1001
3
2
2
1
Ziel im PaketHeader
0111
1
3 2
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
6
Kapitel 2.4: Netzwerkschicht
• 
• 
• 
4.1 Einführung
4.2 Virtual Circuit und Datagram
Netze
4.3 IP: Internet Protocol
• 
• 
Format der Datagramme
Adressierung in IPv4
• 
4.4 Routing-Algorithmen
• 
• 
• 
• 
Überblick
Distanzvektor
Link State
Hierarchisches Routing
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
7
Netzwerkschicht: Verbindungslose und –orientierte Dienste
• 
• 
• 
Datagramm-Netze stellen nur verbindungslose Dienste bereit
VC Netze bieten Verbindungen auf Netzwerkschicht
Ähnlich zu Diensten der Transportschicht, aber:
•  Ebene des Dienstes: Nicht mehr Host-zu-Host
•  Keine Wahlmöglichkeit: Netzwerk stellt nur eine Dienstart bereit
•  Nicht notwendigerweise zuverlässig
•  Implementierung: Im Kern des Netzes
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
8
Virtuelle Kanäle (VC Virtual Channel) Implementierung
• 
Ein VC besteht aus:
•  Pfad von Quelle zum Ziel
•  VC Nummern, eine Nummer für jeden Link entlang des Pfades
•  Einträge in den Forwarding-Tabellen der Router entlang des
Pfades
• 
Pakete, die zu einer Verbindung gehören, enthalten eine spezifische
VC-Nummer.
• 
Die VC-Nummer muss auf jedem Link geändert werden.
•  Die neue VC-Nummer wird aus der Forwarding-Tabelle
entnommen
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
9
Forwarding Table
VC Nummer
22
12
1
Forwarding Table im
Router (links oben):
Eingehendes Interface
1
2
3
1
…
2
32
3
Interface
Nummer
Eing. VC #
12
63
7
97
…
Ausg. Interface
3
1
2
3
Ausg.VC #
22
18
17
87
…
…
Router müssen Verbindungsinformationen vorhalten!
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
10
Virtuelle Verbindungen: Signalisierungsprotokolle
• 
• 
• 
Benötigt für Aufbau, Verwaltung und Abbau einer VC
z.B. verwendet für ATM, Frame-Relay, X.25
Nicht verwendet im heutigen Internet
application
transport
network
data link
physical
5. Datenfluss beginnt
4. Verb. aufgebaut
1. Verb.-aufbau
6. Datenempfang
3. Annahme
2. Eingehende Verb.
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
application
transport
network
data link
physical
11
Datagramm Netze
• 
• 
Kein Verbindungsaufbau auf Netzwerkschicht
Router: speichern keinen Zustand zu Ende-zu-Ende Verbindungen
• 
• 
Es gibt auf Netzwerkschicht kein Verbindungskonzept
Pakete werden anhand der Adresse des Ziel-Hosts weitergeleitet
• 
Pakete zwischen zwei Hosts können bei Weiterleitung verschiedene
Pfade durchlaufen
application
transport
network
data link
physical
1. Datensenden
application
transport
2. Datenempfang
network
data link
physical
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
12
Kapitel 2.4: Netzwerkschicht
• 
• 
• 
4.1 Einführung
4.2 Virtual Circuit und Datagram
Netze
4.3 IP: Internet Protocol
• 
• 
• 
4.4 Routing-Algorithmen
• 
• 
• 
• 
Format der Datagramme
Adressierung in IPv4
Überblick
Distanzvektor
Link State
Hierarchisches Routing
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
13
Die Netzwerkschicht im Internet
Host & Router Funktionen der Netzwerkschicht:
Transportschicht: TCP, UDP
Netzwerkschicht
IP Protokoll
! Adressierung
! Datagramm-Format
! Paketbehandlung
Routing Protokolle
! Wegewahl
! RIP, OSPF, BGP
Forwarding
Table
ICMP Protokoll
! Fehlerbehandlung
! Router-“Signale”
Datensicherungsschicht
Bitübertragungsschicht
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
14
IP Paketformat (I)
Versionsnummer
Headerlänge
(4-Byteblöcke)
Datenklasse
Max. Anzahl verbleibender
Weiterleitungsschritte
(in jedem Router
dekrementiert)
32 Bits
ver IHL type of
service
16-bit Identifier
time to
Proto.
live
Protokoll der
Transportschicht
Wie viel Overhead
entsteht in TCP?
!  20 Byte TCP
!  20 Byte IP
= 40 Bytes +
Steuerungsverkehr
Gesamtlänge
(Bytes)
Größe
flgs
Fragment
Offset
Für Fragmentierung
Prüfsumme
32 Bit Quelladresse
32 Bit Zieladresse
Optionen (falls vorh.)
Daten
(Variable Länge,
z.B. TCP
oder UDP Segment)
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
z.B. Timestamp,
Record Route
Source Route
15
IP Paketformat (II)
• 
• 
• 
• 
• 
• 
• 
• 
Version: die Versionsnummer des IP (z.Zt. 4, irgendwann 6)
IHL: IP Header Länge in 32-Bit Blöcken
Type of Service: Informationen zur Priorität (selten genutzt)
Total Length: Gesamtlänge des Datagramms in Bytes (mit Header)
Identification: Beim Aufteilen von IP-Paketen erhalten alle Teile die
gleiche Nummer um sie korrekt zusammenzusetzen
Flags:
•  DF: Don’t Fragment
•  MF: More Fragments; Paket ist Teil eines größeren fragmentierten
und weitere Teile folgen
Fragment Offset: Position des Fragmentes im Originalpaket (Zähler in
8 Byte-Schritten)
Time to Live: hop count, Heruntergezählt bei jeder Weiterleitung;
Paket wird verworfen wenn 0 erreicht wird
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
16
IP Paketformat (III)
• 
• 
• 
• 
• 
Protocol: gibt an welches Transportprotokoll verwendet wird (meistens
entweder TCP oder UDP)
Header Checksum: Prüfsumme über den IP-Header (nicht über die
Daten, 1‘s complement sum)
Quell- und Zieladressen: identifizieren Sender und Empfänger
Options: bis zu 40 Bytes Länge; genutzt um IP zu erweitern (Beispiele:
Source Routing, Record Route)
IPv4-Adressen:
• 
• 
• 
32 Bits lang (4 Bytes)
Der Wert jedes Bytes wird dezimal in MSB Ordnung angegeben, durch
Punkte separiert (Beispiel: 128.195.1.80)
0.0.0.0 (kleinste) bis 255.255.255.255 (höchste)
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
17
IP Fragmentierung & Zusammensetzen
• 
• 
• 
• 
Netzwerk Links besitzen
unterschiedliche MTU (Max.
Transfer Size)
durch Datensicherungsschicht bestimmte max.
Paketgröße
Je nach Link unterschiedlich
Große IP Datagramme
werden im Netz geteilt
•  u.U. auch mehrfach
•  “Reassembly” erst im
Zielsystem
•  IP Header genutzt um
Pakete zu ordnen und
zusammenzusetzen
Fragmentierung:
ein: 1 großes Datagramm
aus: 3 kleinere
Zusammensetzen
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
18
Kapitel 2.4: Netzwerkschicht
• 
• 
• 
4.1 Einführung
4.2 Virtual Circuit und Datagram
Netze
4.3 IP: Internet Protocol
• 
• 
• 
4.4 Routing-Algorithmen
• 
• 
• 
• 
Format der Datagramme
Adressierung in IPv4
Überblick
Distanzvektor
Link State
Hierarchisches Routing
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
19
Internet Namen und Adressen
Beispiel
Organisation
MAC-Adressen
08:00:20:72:93:18
flach, statisch
IP-Adressen
132.151.1.35
topologisch (meist)
Hostnamen
www.ietf.org
hierarchisch
Hostname
DNS
n-zu-n
IP Adresse
ARP
1-zu-1
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
MAC Adresse
20
IP-Adressklassen (I)
Klasse
32 bits
A
0
B
10
C
110
D
1110
E
11110
Netz
Type of Serv.
Host
Netz
Host
Netz
Host
Multicast Adresse
Reserviert
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
21
IP-Adressklassen (II)
• 
• 
• 
• 
• 
• 
• 
• 
Klasse A: für sehr große Organisationen; bis 16 Mio. Hosts
Klasse B: für große Organisationen; bis 65354 Hosts
Klasse C: für kleine Organisationen; 254 Hosts
Klasse D: Multicast Adressen; Keine Netzwerk/Host Hierarchie
Klasse E: Reserviert
Loopback: 127.xx.yy.zz (127.irgendwas) reserviert für Loopback
Tests; Pakete werden nicht versendet; werden lokal als eingehen
Pakete behandelt; sinnvoll für Komm. auf gleichem Host
Broadcast: 255.255.255.255
Adresshierarchie:
• 
• 
• 
Jede Adresse hat zwei Teile einen Host- und einen Netzteil
Klasse A, Klasse B und Klasse C Adressen unterstützen eigentlich nur 2
Hierarchiestufen
„Subnetze“ erlauben jedoch ein weiteres Aufteilen durch den
Adressbesitzer
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
22
Adressierung in IP
• 
• 
IP-Adresse: Identifiziert Host
oder ein Router Interface
Interface: Verbindung
zwischen Host/Router und
physischem Link
• 
• 
• 
Router haben
typischerweise mehrere
Interfaces
u.U. können auch Hosts
mehrere Interfaces
besitzen
IP-Adressen jeweils für ein
Interface
223.1.1.1
223.1.1.2
223.1.1.4
223.1.1.3
223.1.2.1
223.1.2.9
223.1.2.2
223.1.3.27
223.1.3.2
223.1.3.1
223.1.1.1 = 11011111 00000001 00000001 00000001
223
1
1
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
1
23
Subnetze
• 
IP-Adresse:
• 
• 
• 
Was ist ein Subnetz?
• 
• 
• 
Subnetzteil (höhere Bits)
Hostanteil (niedrige Bits)
Interfaces von Geräten mit
gleichem Subnetzanteil in
der IP-Adresse
Können einander erreichen
ohne einen Router zu
verwenden
223.1.1.1
223.1.1.2
223.1.1.4
223.1.1.3
223.1.2.1
223.1.2.9
223.1.3.27
223.1.2.2
LAN
223.1.3.1
223.1.3.2
Bestimmung
• 
Durch Router separierte
Netze einzeln betrachten
Netzwerk besteht aus 3 Subnetzen
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
24
Subnetze
223.1.1.2
F: Wie viele Subnetze
werden eingerichtet?
223.1.1.1
223.1.1.4
223.1.1.3
223.1.7.0
223.1.9.2
223.1.9.1
223.1.7.1
223.1.8.1
223.1.8.0
223.1.2.6
223.1.2.1
223.1.3.27
223.1.2.2
223.1.3.1
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
223.1.3.2
25
Mehr über IP-Adressen (I)
• 
Nach dem wir wissen was ein “Subnetz” ist, ein weiterer Blick
auf IP-Adressen:
“Klassen-behaftete” Adressierung:
Klasse
A
0 Subnetz
B
10
C
110
D
1110
0.0.0.0 bis
127.255.255.255
Host
Subnetz
128.0.0.0 bis
191.255.255.255
Host
Subnetz
Host
Multicast Adresse
192.0.0.0 bis
223.255.255.255
224.0.0.0 bis
239.255.255.255
32 Bits
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
26
Mehr über IP-Adressen (II)
• 
Adressierung mit Klassen:
Ineffiziente Nutzung des Adressraums, schnelle Erschöpfung
Bsp. Klasse B Netz bietet Raum für 65.534 Hosts, auch wenn nur 2000
Hosts im Netz sind
• 
• 
• 
CIDR: Classless InterDomain Routing
Erlaubt Netzwerkanteile der Adressen beliebiger Längen
Adressformat: a.b.c.d/x, wobei x # Bits des Subnetzanteils
• 
• 
Subnetzanteil
Hostanteil
11001000 00010111 00010000 00000000
200.23.16.0/23
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
27
CIDR: Classless Interdomain Routing
• 
Klassengrenzen werden aufgeweicht →
“Supernetting” (Zusammenfassen von Subnetzen)
• 
• 
“Longest match routing” bei den Adressen
• 
• 
ISPs können mehre zusammenhängende Klasse C Blöcke vergeben
Es werden immer die am Besten passenden Einträge für das Routing
verwendet; Bsp.: 192.175.132.26
Adresse/Maske
Link
192.175.132.0/22
192.175.133.0/24
192.175.128.0/17
1
2
3
Beispiel:
Viele Netze in Europa haben ein gleiches Präfix
→ Nur ein Eintrag in vielen U.S. Routern
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
28
Kapitel 2.4: Netzwerkschicht
• 
• 
• 
4.1 Einführung
4.2 Virtual Circuit und Datagram
Netze
4.3 IP: Internet Protocol
• 
• 
• 
4.4 Routing-Algorithmen
• 
• 
• 
• 
Format der Datagramme
Adressierung in IPv4
Überblick
Distanzvektor
Link State
Hierarchisches Routing
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
29
Erinnerung: Zusammenhang Routing und Weiterleiten
Routing Algorithmus
local forwarding table
header value output link
0100
0101
0111
1001
3
2
2
1
Ziel im eingehenden
Paket
0111
1
3 2
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
30
Überblick über Routing-Algorithmen (I)
• 
Router verwenden Routing-Algorithmen um zu bestimmen auf welche
Ausgabe-Links Pakete gegeben werden:
• 
• 
• 
In verbindungsorientierten Netzen, werden Routing Algorithmen nur
während des Verbindungsaufbaus benötigt
In verbindungslosen Netzen, werden Routing-Algorithmen ausgeführt
wenn ein Paket ankommt (reaktiv) oder periodisch (proaktiv, Resultate
aktualisieren Forwarding Table)
I.d.R. werden sog. Metriken bei der Wegwahl berücksichtigt:
• 
Metriken stellen die „Kosten“ für die Nutzung von Links dar
• 
Erlaubt die Berechnung von „Kosten“ eines Gesamtpfades durch ein
Netzwerk
• 
Metriken können Parameter wie Anzahl der Hops, monetäre Kosten des
Links, Latenz, Füllstand der Warteschlage etc. berücksichtigen
• 
Der “billigste” Pfad in Bezug auf eine Metrik wird als kürzester Pfad
(shortest path) bezeichnet, auch wenn er geographisch oder in Bezug auf
Hops nicht kurz ist
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
31
Überblick über Routing-Algorithmen (II)
• 
Unterschiedliche Routing-Algorithmen:
• 
• 
• 
Nicht-adaptive Routing-Algorithmen: Routing-Entscheidungen basieren
nicht auf Ziel des Paketes und Zustand des Netzes (Beispiel: Fluten)
Adaptive Routing-Algorithmen: Nutzen aktuellen Zustand des Netzes beim
Treffen von Routing-Entscheidungen (Beispiele: Distanzvektor-Verfahren,
Link-State-Routing)
Hierarchisches Routing kann verwendet werden, um Skalierbarkeit in
großen Netzen zu gewährleisten
• 
E.g. Ein Routing-Verfahren innerhalb eines ISP und eins um Wege
zwischen ISPs zu finden
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
32
Fluten
• 
Grundlegende Strategie:
• 
• 
• 
Jedes eingehende Paket wird auf jedem Link außer dem eingehenden
versendet
Problem: Riesige Anzahl duplizierter Pakete
Reduzieren der duplizierten Pakete:
• 
• 
Lösung 1:
•  Nutzen eines Hop Counters im Paket-Header; Router zählen bei
Weiterleitung runter; Paket wird verworfen bei Hop Count=0
•  Hop Counter sollte im Optimum genau der Pfadlänge zwischen Quelle
und Ziel entsprechen
Lösung 2:
•  Jedes Paket erhält eine eindeutige Sequenznummer
•  Jeder Router hält eine Liste mit Sequenznummern von Paketen vor,
die er weitergeleitet hat
•  Pakete, die bereits weitergeleitet wurden, werden verworfen
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
33
Fluten: Mögliche Anwendungen
• 
Militärische Systeme
• 
• 
• 
Verteilte Datenbanken
• 
• 
Große Anzahl von Routern wünschenswert (alle Systeme können
weiterleiten)
Wenn ein Router ausfällt (e.g. durch eine Bombe) erreichen geflutete
Pakete weiterhin ihr Ziel
Simultane Aktualisierung mehrerer Datenbanken mit einer einzigen
Übertragung
Netzwerke mit sehr schnellen Topologieänderungen
• 
Adhoc-Netze
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
34
Adaptive Routing-Algorithmen
• 
Probleme nicht-adaptiver Algorithmen:
Relativ ineffizient
Kein Eingehen auf variierenden Verkehrsflüsse
Adaptive Routing-Algorithmen können darauf eingehen
• 
• 
• 
Drei Typen:
Zentralisiertes Adaptives Routing:
•  Ein zentraler Routing Controller
Isoliertes Adaptives Routing:
•  Basiert auf lokalen Informationen
•  Benötigt keinen Austausch zwischen Routern
Verteiltes Adaptives Routing:
•  Routers tauschen periodisch Informationen aus und berechnen
aktualisierte Informationen für Forwarding Tables
• 
• 
• 
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
35
Zentralisiertes Adaptives Routing
• 
Grundlegende Strategie:
• 
• 
• 
• 
• 
• 
Forwarding Table wird an Netzwerkzustand angepasst
Ein Routing Controller irgendwo im Netzwerk
Periodisch leiten Router Linkinformationen und –zustände an Controller
weiter
Controller bestimmt beste Routen, z.B. mit Algorithmus von Dijkstra
(Details später)
Beste Routen werden den einzelnen Routern mitgeteilt
Probleme:
• 
• 
Robustheit: Wenn Routing Controller ausfällt, wird Routing statisch und
keine weitere Anpassung findet statt
Skalierbarkeit: Controller muss u.U. sehr viele Informationen verarbeiten
und weiterleiten
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
36
Isolierte Adaptive Routing-Algorithmen
• 
Grundlegende Strategie:
Routing-Entscheidungen werden nur auf der Basis lokalen RouterWissens getroffen
• 
• 
Beispiel:
Hot-Potato-Routing
Backward learning
• 
• 
• 
Hot-Potato-Routing:
Wenn ein Paket ankommt leitet der Router es auf den Link mit der
kürzesten Warteschlange weiter
Hot-Potato-Algorithmus kümmert sich nicht um Ziel von Paket und Link
Sehr ineffizient
• 
• 
• 
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
37
Backward Learning Routing
• 
• 
Grundlegende Strategie:
• 
Paket-Headers enthalten Ziel-, Quelladresse und Hop-Counter
• 
→ Nutzen der Information um über das Netz zu lernen
• 
Netzwerkknoten wissen zu nächst nichts über das Netzwerk, lernen aber
das Gesamtnetz im Laufe des Verfahrens kennen
Algorithmus:
• 
• 
• 
• 
• 
Routing ist anfangs zufällig (oder Hot-Potato, Fluten etc.)
Ein Paket mit Hop Count 1 ist von direkten Nachbarn, Linknachbarn
können erlernt werden (Hop Counter werden hier aufwärts gezählt)
Ein Paket mit Hop Count 2 ist zwei Schritte von der Quelle entfernt usw.
Wenn ein Paket ankommt, vergleicht BLR den bekannten Weg zur Quelle
mit dem Hop Count, falls kleiner schicke die nächsten Pakete zur Quelle
über den eingehenden Link
Bemerkung: Um mit ausgefallenen Routen umgehen zu können müssen
aufgebaute Informationen regelmäßig „vergessen“ werden
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
38
Verteiltes Adaptives Routing
Routing-Protokoll
Ziel: Herausfinden von “guten”
Pfaden durch Netzwerk von
Quelle zu Ziel
5
2
A
Abstraktion als Graphen:
•  Graphknoten sind Router
•  Graphkanten sind physische Links
• 
• 
B
2
1
D
3
C
3
1
5
F
1
2
E
Linkkosten: Latenz, €, Auslastung !  “Guter” Pfad:
!  Typisch: Pfad mit minimalen
Pfadkosten: Summe der
Kosten
Linkkosten auf dem Weg
!  Andere Definitionen selten
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
39
Klassifikation Verteilter Adaptiver Routing-Ansätze
Globale oder dezentrale
Information?
Statisch oder dynamisch?
Dezentral:
Statisch:
• 
• 
Router kennt Nachbarn mit physischer Verbindung & Kosten der
Verbindung
!  Routen
Iterativer Aufbau von Routing Tables
durch Austausch mit Nachbarn
!  Routen
•  “Distanzvektor”-Algorithmen
→ RIP & IGRP
→ BGP (“Pfadvektor”)
ändern sich nur langsam
Dynamisch:
! 
! 
ändern sich schnell
Periodische Aktualisierung
u.U. wegen Änderung der
Linkkosten
Global:
• 
Alle Router kennen gesamte
Topologie mit Linkkosten
•  “Link
State” Algorithmen
→ Dijkstra-Algorithmus
→ OSPF Protokoll
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
40
Kapitel 2.4: Netzwerkschicht
• 
• 
• 
4.1 Einführung
4.2 Virtual Circuit und Datagram
Netze
4.3 IP: Internet Protocol
• 
• 
• 
4.4 Routing-Algorithmen
• 
• 
• 
• 
Format der Datagramme
Adressierung in IPv4
Überblick
Distanzvektor
Link State
Hierarchisches Routing
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
41
Algorithmus für Distanzvektor-Routing
Iterativ:
! 
! 
Wiederholt sich bis kein
Knoten Infos austauscht
Selbstterminierend i.e.
kein Stoppsignal
Asynchron:
! 
Knoten müssen
Informationen nicht in
festen Schritten
austauschen
Verteilt:
! 
Jeder Knoten kommuniziert ausschließlich mit
seinen direkten
Nachbarn
Struktur der Distanztabelle
Jeder Knoten hat eine
!  Zeile für jedes mgl. Ziel
!  Spalte für jeden direkten
Nachbarknoten
!  Beispiel: In Knoten X, für Ziel Y
über Nachbarn Z:
! 
X
D (Y,Z)
Distanz von X zu
= Y, über Z
Z
= c(X,Z) + minw{D (Y,w)}
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
42
Beispiel für Distanztabelle
1
B
7
A
E
A
B
D
A
1
14
5
B
7
8
5
C
6
9
4
D
4
11
2
D
2
E
D
Ziel
D (C,D) = c(E,D) + minw {D (C,w)}
= 2+2 = 4
E
D ()
2
8
1
Kosten zum Ziel über
E
C
D
D (A,D) = c(E,D) + minw {D (A,w)}
= 2+3 = 5 Schleife!
E
B
D (A,B) = c(E,B) + minw{D (A,w)}
= 8+6 = 14
Schleife!
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
43
Ableiten eines Forwarding Table aus Distanztabelle
Kosten zum Ziel über
E
Genutzter Link,
Kosten
B
D
A
1
14
5
A
A,1
B
7
8
5
B
D,5
C
6
9
4
C
D,4
D
4
11
2
D
D,4
Distanztabelle
Ziel
A
Ziel
D ()
Forwarding Table
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
44
Überblick über Distanzvektor-Routing
Iterativ, asynchron:
Jede Berechnung ausgelöst
durch:
! 
! 
Änderung lokaler Link-Kosten
Nachricht von Nachbarn,
dessen kürzester Pfad sich
geändert hat
Verteilt:
Nachbarn informieren sich nur
wenn ein kürzester Pfad sich
geändert hat
!  Nachbarn benachrichtigen
dann ihre Nachbarn, falls
nötig
Jeder Knoten:
wartet bis (Änderung der
Link-Kosten oder Nachricht)
berechnet Distanztabelle
Falls kürzester Pfad sich
geändert hat, Nachbarn
benachrichtigen
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
45
Distanzvektor-Routing: Initialisierung
In allen Knoten, X:
1 Initialisierung:
2 Für alle benachbarten Knoten v:
X
3
D (*,v) = unendlich
// * bedeutet "für alle Zeilen“
X
4
D (v,v) = c(X,v)
5 Für alle Ziele y
X
6
Sende minW D (y,w) zu jedem Nachbar // w für alle Nachbarn von X
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
46
Distanzvektor-Routing: Hauptschleife
8 loop
9 wait (bis Linkkosten geändert werden oder
10
Aktualisierung von Nachbar V kommt)
11
12 if (c(X,V) wird um Wert d geändert)
13 // Ändern aller Kosten von Zielen über V um d
14 // Anmerkung: d kann negativ oder positiv sein!
15 for all Ziele y: DX(y,V) = D X(y,V) + d
16
17 else if (Aktualisierung von V für Ziel Y)
18 // Kürzester Pfad von V zu Y hat sich geändert
19 // V hat einen neue Wert für minW DV (Y,w) gesendet
20 // dieser neue Wert "newval“ wird verwendet
21 DX(y,V) = c(X,V) + newval
22
23 if falls sich neues minW DX (Y,w) für irgendein Y ergibt
24
Sende neuen Wert min WDX(Y,w) an alle Nachbarn
25
26 forever
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
47
Distanzvektor-Routing: Beispiel (I)
2
X
Y
7
1
Z
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
48
Distanzvektor-Routing: Beispiel (II)
2
X
Y
1
7
Z
Z
X
D (Y,Z) = c(X,Z) + minw{D (Y,w)}
= 7+1 = 8
Y
X
D (Z,Y) = c(X,Y) + minw {D (Z,w)}
= 2+1 = 3
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
49
Distanzvektor: Reaktion auf Kostenänderungen (I)
Link-Kostenänderungen:
!  Knoten
detektiert lokale
Kostenänderung
!  Aktualisiert Kostentabelle (Zeile 15)
!  Bei Veränderung des kürzesten Pfads
Nachbarn informieren (Zeilen 23,24)
1
4
X
“Good
news
travels
fast”
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
Y
50
1
Z
Algorithmus
“terminiert”
50
Distanzvektor: Reaktion auf Kostenänderungen (II)
Link-Kostenänderungen:
60
“Good news travels fast”
!  “Bad news travels slow” – Führt
auf “Count to Infinity” Problem!
! 
Y
Y
Y
4
X
1
Z
50
Y
Algorithmus
läuft weiter
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
51
Distanzvektor: Poisoned Reverse
Wenn Z zu X über Y weiterleitet:
!  Z informiert Y die Distanz über Z ist
unendlich (sodass Y nicht zu X via Z
weiterleitet)
!  Lösung für Count-to-Infinity?
Y
Y
60
Y
4
X
Y
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
50
1
Z
Algorithmus
terminiert
Y
52
Kapitel 2.4: Netzwerkschicht
• 
• 
• 
4.1 Einführung
4.2 Virtual Circuit und Datagram
Netze
4.3 IP: Internet Protocol
• 
• 
Format der Datagramme
Adressierung in IPv4
• 
4.4 Routing-Algorithmen
• 
• 
• 
• 
Überblick
Distanzvektor
Link State
Hierarchisches Routing
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
53
Link-State Routing
• 
Link State Routing basiert meistens auf dem Dijkstra’s Algorithmus:
• 
Netzwerktopologie, Linkkosten sind allen Knoten bekannt:
•  Verbreitung via “link state broadcast” ⩰ Fluten
•  Alle Knoten haben das gleiche Wissen
• 
Input: Graph (V, E) mit
•  V Set von Knoten (nodes)
•  E Set von Kanten (links)
•  Kosten c(v, w) des Links (v, w) falls Kante existiert (d.h. (v, w) in E )
•  c(v, w) = unendlichfalls Kante nicht existiert
• 
Ziel: Berechnung des kürzesten Pfades von einem Knoten s (“source”)
zu allen anderen Knoten v:
•  Wird zur Ermittlung des Forwarding Table für Knoten s verwendet
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
54
Dijkstra’s Algorithmus zur Berechnung kürzester Pfade (I)
• 
Grundidee des Algorithmus:
• 
Am Anfang enthält Menge N nur den Quellknoten s.
• 
In jedem Schritt des Verfahrens wird ein weiterer Knoten in dieses Menge
eingefügt, zu dem der kürzeste Pfad zu diesem Zeitpunkt bekannt ist.
• 
Anfangs wird der kürzeste Pfad zu allen Knoten v auf „unendlich“
initialisiert (Ausnahme der Quellknoten s)
• 
In jedem Schritt:
•  Wähle den Knoten v aus, der vom Quellknoten s mit den geringsten
Kosten erreicht werden kann, wenn der Weg nur über Knoten führt,
die im Set N enthalten sind.
•  Füge Knoten v in N hinzu
•  Ändere die Kosten für alle direkten Nachbarn w von Knoten v, falls
sich über Knoten v ein kürzerer Pfad als der bisher bekannte ergibt.
•  Falls sich die Kosten für einen Nachbarknoten w ändern, dann notiere
auch den Vorgängerknoten v, über den eine kürzere Route gefunden
wurde.
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
55
Dijkstra’s Algorithmus zur Berechnung kürzester Pfade (II)
• 
Der Algorithmus verwaltet für jeden Knoten v:
• 
• 
• 
• 
Den zur Zeit bekannten kürzesten Pfad vom Quellknoten s zum Knoten v
mit der Distanz d(v)
Den Vorgängerknoten p(v) von Knoten v auf dem zur Zeit bekannten
kürzesten Pfad vom Quellknoten s zum Knoten v
Eine Liste mit allen Knoten, für die der kürzeste Pfad bereits bekannt ist
Bemerkungen:
• 
• 
• 
• 
Wenn die Distanz d(v) endlich ist, so existiert ein Pfad vom Quellknoten s
zum Knoten v mit der Distanz d(v)
Für den Knoten v mit der kleinsten Distanz ist es der kürzeste Pfad
•  Das bedeutet, dass für Knoten v der kürzeste Pfad bekannt ist
Dieser Knoten v wird nun in das Set N übernommen, in dem sich alle
Knoten befinden, für die der kürzeste Pfad bekannt ist
Der kürzeste Pfad wird für alle Nachbarknoten von v aktualisiert, die noch
nicht in N enthalten sind
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
56
Dijkstra’s Algorithmus zur Berechnung kürzester Pfade (III)
• 
Aktualisierungsprozedur:
• 
Angenommen Knoten v wurde in Menge N übernommen :
•  Es wird sein Nachbarknoten w betrachtet, der noch nicht in N ist
•  d(v) ist die kürzeste Distanz zu Knoten v
•  d(w) ist die kürzeste bekannte Distanz zu Knoten w
•  c(v, w) sind die Kosten von v nach w
if ( d(v) + c(v, w) < d(w)) {
d(w) = d(v) + c(v, w);
p(w) = v; }
• 
Begründung der Vorgehensweise:
• 
• 
• 
• 
• 
Wenn die Distanzen d(w) und d(v) endlich sind,
existiert ein kürzester Pfad von s nach v mit der Distanz d(v)
Und auch ein Pfad von s über v nach w mit der Distanz d(v) + c(v, w)
Es existiert auch ein Pfad von s nach w mit der Distanz d(w)
Die kürzeste Distanz von s nach w kann nicht größer sein als d(w) oder
d(v) + c(v, w)
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
57
Dijkstra s Algorithm in Pseudocode
Berechnet kürzeste Pfade von einem Knoten zu allen anderen
1 Initialization (für Knoten s):
2 N = {s} /* Menge von Knoten mit bekanntem bill. Pfad */
3 forall Knoten v
4
if v verbunden mit s
5
then { d(v) = c(s,v); p(v) = s; }
6
else d(v) = unendlich;
7
8 Loop
9
finde v welcher nicht in N ist, sodass d(v) minimal
10 füge v zu N hinzu
11 forall w mit verbunden v und nicht in N /* aktual. d(w) */
12
{ if (d(v) + c(v, w) < d(w))
{ d(w) = d(v) + c(v, w); p(w) = v; } }
13 /* neue Kosten zu w entweder alte Kosten oder kürzester
14
Pfad zu v plus Kosten von v zu w */
15 until all nodes in N
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
58
Beispiel für Dijkstra-Algorithmus (I)
Schritt
0
start N
A
d(B),p(B) d(C),p(C) d(D),p(D) d(E),p(E) d(F),p(F)
2,A
1,A unendlich unendlich
5,A
5
2
B
A
3
2
1
D
C
3
1
5
F
1
E
2
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
59
Beispiel für Dijkstra-Algorithmus (II)
Schritt
0
1
start N
A
AD
d(B),p(B) d(C),p(C) d(D),p(D) d(E),p(E) d(F),p(F)
2,A
1,A unendlich unendlich
5,A
2,A
4,D
2,D unendlich
5
2
A
B
2
1
D
3
C
3
1
5
F
1
E
2
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
60
Beispiel für Dijkstra-Algorithmus (III)
Schritt
0
1
2
start N
A
AD
ADE
d(B),p(B) d(C),p(C) d(D),p(D) d(E),p(E) d(F),p(F)
2,A
1,A unendlich unendlich
5,A
2,A
4,D
2,D unendlich
2,A
3,E
4,E
5
2
B
A
3
2
1
D
C
3
1
5
F
1
E
2
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
61
Beispiel für Dijkstra-Algorithmus (IV)
Schritt
0
1
2
3
start N
A
AD
ADE
ADEB
d(B),p(B) d(C),p(C) d(D),p(D) d(E),p(E) d(F),p(F)
2,A
1,A unendlich unendlich
5,A
2,A
4,D
2,D unendlich
2,A
3,E
4,E
3,E
4,E
5
2
A
B
2
1
D
3
C
3
1
5
F
1
E
2
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
62
Beispiel für Dijkstra-Algorithmus (V)
Schritt
0
1
2
3
4
start N
A
AD
ADE
ADEB
ADEBC
d(B),p(B) d(C),p(C) d(D),p(D) d(E),p(E) d(F),p(F)
2,A
1,A unendlich unendlich
5,A
2,A
4,D
2,D unendlich
2,A
3,E
4,E
3,E
4,E
4,E
5
2
B
A
3
2
1
D
C
3
1
5
F
1
E
2
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
63
Beispiel für Dijkstra-Algorithmus (VI)
Schritt
0
1
2
3
4
5
start N
A
AD
ADE
ADEB
ADEBC
ADEBCF
d(B),p(B) d(C),p(C) d(D),p(D) d(E),p(E) d(F),p(F)
2,A
1,A unendlich unendlich
5,A
2,A
4,D
2,D unendlich
2,A
3,E
4,E
3,E
4,E
4,E
5
2
A
B
2
1
D
3
C
3
1
5
F
1
E
2
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
64
Link-State-Routing (mit Dijkstra-Algorithmus)
• 
Jeder Router bestimmt Link-Kosten (Latenz, Hop-Count, etc.)
zwischen sich und angrenzenden Routern
• 
Router erstellen Pakete mit allen Distanzen zu Nachbarn
• 
Enthält unter Anderem Seq.-Nummer und Altersinformationen
• 
Router verteilen diese Pakete mittels „Fluten“
• 
Pakete deren Sequenznummer bereits bekannt ist, werden verworfen
• 
Altersinformationen geben an, wie lange Informationen gültig sind
• 
Sobald ein Router alle relevanten Pakete des Netzes erhalten hat,
kann er die Gesamttopologie rekonstruieren und Dijsktra‘s Algorithmus
verwenden
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
65
Vergleich zw. Link-State- und Distanzvektor-Verfahren
Nachrichtenkomplexität
!  LS:
bei n Knoten, E Links,
O(n E) Nachrichten pro
Periode
!  DV: Austausch nur zwischen
Nachbarn
!  Konvergenzzeit variiert
•
Konvergenzgeschwindigkeit
!  LS:
O(n2) Algorithmus benötigt
O(n E) Nachrichten
!  u.U. Oszillationen
!  DV: Konvergenzzeit variiert
!  u.U. Routing-Schleifen
!  Count-to-unendlich-Problem
•
Robustheit: Was passiert wenn
Router ausfallen/sich falsch
verhalten?
LS:
! 
! 
Knoten können ungültige LinkKosten annoncieren
Jeder Knoten berechnet eigne
Tablle
DV:
! 
! 
Knoten können ungültige
Pfad-Kosten annoncieren
Tabelle von Einzelknoten
werden von anderen
verwendet:
■  Fehler propagieren durch
das Netz
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
66
Kapitel 2.4: Netzwerkschicht
• 
• 
• 
4.1 Einführung
4.2 Virtual Circuit und Datagram
Netze
4.3 IP: Internet Protocol
• 
• 
Format der Datagramme
Adressierung in IPv4
• 
4.4 Routing-Algorithmen
• 
• 
• 
• 
Überblick
Distanzvektor
Link State
Hierarchisches Routing
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
67
Hierarchisches Routing
Bisherige Betrachtungen idealisiert:
!  Alle Router wurden identisch angenommen
!  Netzwerk wurde als “flach” angenommen
… die Praxis sieht anders aus
Größe (50 Millionen Ziele!):
!  Einzelne Ziele können nicht
vollständig in Tabelle
vorgehalten werden
!  Austausch von RoutingInformationen würde Links
überlasten
Administrative Autonomie:
!  Internet = Netz von Netzen
!  Jeder Netzwerk-Administrator
möchte Routing im eigenen
Netz kontrollieren
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
68
Hierarchisches Routing: Autonome Systeme
Gateway-Router
Aggregation von Routern in
„Regionen“ sogenannte
“Autonome Systeme” (AS)
!  Router im gleichen AS
verwenden gleiches RoutingProtokoll
! 
! 
! 
!  Spezielle
Router in AS
!  Nutzen Intra-AS Routing mit
anderen Routern im AS
!  Zusätzlich verantwortlich um
Ziele außerhalb des AS
anzusprechen
!  Verwenden Inter-AS
Routing-Protokoll mit
anderen GatewayRoutern
“Intra-AS” Routing Protokoll
Router in unterschiedlichen AS
können unterschiedliche „IntraAS“ Protokolle verwenden
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
69
Inter-AS- und Intra-AS-Routing
C.b
Gateways:
B.a
a
b
A.c
C
A
b
c
a
B
a
d
Nutzen Inter-AS
Routing unter
einander
!  Nutzen Intra-AS
Routing mit
Routern im
gleichen AS
! 
A.a
b
c
network layer
Inter-AS, Intra-AS
Routing in
Gateway A.c
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
link layer
physical layer
70
Routing im Internet
• 
Globales Internet verbindet Autonome Systeme (AS) miteinander:
• 
• 
• 
• 
Stub AS: kleine Firmen, Behörden etc. (nur ein Link zum Internet)
Multihomed AS: große Firmen, Tier-3-Provider (Mehre Links, aber kein
Transit)
Transit AS: große Provider
Routing auf zwei Ebenen:
• 
• 
Intra-AS: Administrator trifft Auswahl für Routing-Verfahren
•  Routing Information Protocol (RIP): Distanzvektor
•  Open Shortest Path First (OSPF): Link State
•  Interior Gateway Routing Protocol (IGRP): Distanzvektor (Cisco
proprietär)
Inter-AS: nur ein Standard!
•  Border Gateway Protocol (BGP): Pfadvektor
(Distanzvektor, aber mit Pfadinformationen zur Schleifenvermeidung)
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
71
Warum ein Unterschied zwischen Intra- und Inter-Domain?
• 
Policy:
•  Inter-AS: Administrator wollen kontrollieren wer wie viel Verkehr
durch das Netz gibt
•  Intra-AS: Ein Admin, keine Policy-Fragen
• 
Größe:
•  Hierarchisches Routing verringert Tabellengrößen und
Aktualisierungsverkehr (immer noch 350,000 Präfixe!)
• 
Performanz:
•  Intra-AS: Fokus auf Performanz
•  Inter-AS: Policy-Entscheidungen gehen vor!
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
72
Netzwerkschicht: Zusammenfassung
Was behandelt wurde:
•  Dienste der Netzwerkschicht
•  IPv4
•  Routing-Algorithmen & Hierarchisches Routing
Schlussfolgerungen:
• 
• 
Routing in großen Netzen erfordert nicht nur einfache Algorithmen für
generalisierte Graphen
•  Zusätzlich: hierarchische Netzwerkstruktur etc.
•  Optimales Routing nur „Nebenaspekt“
Netzwerkstruktur muss in Adressstruktur berücksichtigt werden
•  Flache Adressen würden zu großen Overhead bedeuten
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
73
Weiterführende Literatur
[Car03]
[CLR90]
[KR04]
[Sar04]
[Ste95]
[Sud04]
G. Carle. Internet-Protokolle und -Komponenten. Vorlesungsfolien, Universität
Tübingen, 2003. http://net.informatik.uni-tuebingen.de/teaching/ipuk/index.php
T. Cormen, C. Leiserson, R. Rivest. Introduction to Algorithms. MIT Press, MA,
USA, 1990.
J. F. Kurose, K. W. Ross. Computer Networking: A Top-Down Approach
Featuring the Internet. 3rd edition, Addison Wesley, 2004.
S. Sarkar. Algorithms in Networking - Lecture 1. Course slides of course
TCOM 799, School of Engineering & Applied Science, University of
Pennsylvania, PA, USA, 2004.
M. Steenstrup. Routing in Communication Networks. Prentice Hall, 1995.
T. Suda. Computer Networks. Course slides, Department of Information and
Computer Science, University of California, Irvine, USA, 2004.
http://www.ics.uci.edu/~ics243a
Informations- und Kommunikationssysteme (SS 2014): 04 - Netzwerkschicht
74
Herunterladen