Was sind die Protokollstapel des Internets?
Anwendungsschicht:
Unterstützung von Netzwerkanwendungen
FTP
SMTP
HTTP
Transportschicht:
Datentransfer zwischen Prozessen
TCP
UDP
Netzwerkschicht (auch Vermittlungsschicht):
Weiterleiten der Daten von einem Sender zu einem Empfänger
IP
Routing-Protokolle
Sicherungsschicht:
Datentransfer zwischen benachbarten Netzwerksystemen
PPP
Ethernet
Bitübertragungsschicht:
Bits auf der Leitung
Was ist die Netzwerkschicht?
Netzwerkschicht:
Auch: Vermittlungsschicht oder Network Layer
Daten von der nächsthöheren Schicht (Transportschicht) des Senders entgegennehmen
In Datagramme verpacken
Durch das Netzwerk leiten
Auspacken des Vermittlungspakets beim Empfänger
Ausliefern der Daten an die nächsthöhere Schicht (Transportschicht) des Empfängers
Netzwerkschicht existiert in jedem Host und Router!
Was sind die 2 Funktionen der Netzwerkschicht?
Weiterleiten von Paketen (Forwarding):
Router nimmt Paket auf einer Eingangsleitung entgegen
Router bestimmt die Ausgangsleitung anhand lokaler Informationen (z.B. Routing-Tabelle)
Router legt das Paket auf die Ausgangsleitung
Wegewahl (Routing):
Router kommunizieren miteinander, um geeignete Wege durch das Netzwerk zu bestimmen
Als Ergebnis erhalten sie Informationen, wie welches System im Netzwerk zu erreichen ist (z.B. wird eine Routingtabelle mit Einträgen gefüllt)
Analogie:
Routing = Planen einer Strecke für eine Autofahrt
Weiterleitung = Verhalten an einer Autobahnkreuzung
Was sind Datagrammnetzwerke?
Kein Verbindungsaufbau auf der Netzwerkschicht
Router halten keinen Zustand für Ende-zu-Ende-Verbindungen
Auf Netzwerkebene gibt es das Konzept einer “Verbindung” nicht
Pakete werden unter Verwendung einer Zieladresse weitergeleitet
Pakete für dasselbe Sender-Empfänger-Paar können unterschiedliche Pfade nehmen
Wie funktionieren Hosts und Router?
Was ist das IP-Datagrammformat?
Was ist das IP-Fragmentierung?
Links haben eine Maximalgröße für Rahmen
Diese nennt man Maximum Transmission Unit (MTU)
Verschiedene Links haben unterschiedliche MTUs
IP-Datagramme müssen unter Umständen aufgeteilt werden
Aufteilung (Fragmentierung) erfolgt in den Routern
Zusammensetzen (Reassembly) erfolgt beim Empfänger
IP-Header enthält die notwendigen Informationen hierzu
Praktisch:
Endsystem/Anwendung muss sich keine Gedanken über die Größe von MTUs verschiedener Links auf dem Weg vom Sender zum Empfänger machen
Entspricht dem Prinzip einer geschichteten Architektur
Aber:
Aufwand in den Routern
Wenn ein Fragment verloren geht, ist das ganze Datagramm verloren
Daher: Fragmentation considered harmful!
Lösung:
Bestimmen der kleinsten MTU des Weges (Path MTU)
Setze DF (Don't-Fragment-Bit) im Header des IP-Paketes
Wenn fragmentiert werden soll, wird das Paket verworfen und der Sender per ICMP benachrichtigt
Sender wählt dann kleinere MTU
Wiederholen, bis akzeptable MTU gefunden wurde
Was ist IP-Adressierung?
IP-Adresse: 32-Bit-Kennung für das Interface (Schnittstelle) eines Endsystems oder eines Routers
Interface: Verbindung zwischen dem System und dem Link
Wird normalerweise durch eine Netzwerkkarte bereitgestellt
Router haben typischerweise mehrere Interfaces
Endsysteme können ebenfalls mehrere Interfaces haben
Jedes Interface besitzt eine IP-Adresse
Aus welchen 2 Bestandteilen besteht eine IP-Adresse?
IP-Adresse
netID: die oberen Bits der Adresse, identifiziert ein Netzwerk
hostID: die unteren Bits der Adresse, identifiziert ein Interface eines Systems
Was ist ein (Sub-)Netzwerk?
(Sub-)Netzwerk
Alle Interfaces mit derselben netid formen ein Netzwerk
Alle Interfaces eines Netzwerkes können sich direkt (ohne einen Router zu durchqueren) erreichen
Was sind Adressklassen?
Früher wurden IP-Adressen in Adressklassen aufgeteilt
Die Klasse bestimmte das Verhältnis der Längen netid/hostid
Dies nennt man „classfull“ addressing oder auch klassenbasierte Adressierung
Was sind reservierte Adressen?
Was ist Netz-Adressierung?
Netz-Adressierung
Reservierte Adressen
Host-ID = 0; kennzeichnet das Netz als Ganzes
Netz-ID = 0; interpretiert als „dieses Netz“
Netz-ID = 0 und Host-ID = 0; „Ausgangsadresse“ beim Bootvorgang
Netz-ID = 127; Software-Loopback-Tests
Host-ID = 255; Broadcast-Adresse
Net-ID und Host-ID = 255.255.255.255; lokale Broadcast-Adresse
„Private“ IP-Netze Für kleinere „private“ LAN wurde aus jeder dieser Adress-Klassen bestimmte Bereiche ausgeklammert.
Adressen aus diesen Bereichen werden niemals öffentlich vergeben
Adressen aus diesen Bereichen werden niemals im Internet geroutet
10.0.0.0 bis 10.255.255.255 (ca. 16 Mill. Hosts) 172.16.0.0 bis 172.31.255.255 (ca. 16 x 65.000) 192.168.0.0 bis 192.168.255.255 (ca. 256 x 256)
Wie werden bei der klassenbasierten Adressierung Adressen verteilt?
Welches Problem entsteht?
Verteilung der Adressen:
Durch zentrale Organisationen (z.B. IANA)
Netzweise (also z.B. Klasse-B-Netz für ein Unternehmen)
Relativ chaotisch:
Zuteilung der numerisch nächsten netid an den nächsten Nachfrager
Probleme:
Verschwendung von IP-Adressen:
Das Unternehmen könnte 2 16, also mehr als 65.000 Adressen vergeben
Nur ein Bruchteil davon wird genutzt
Routing-Tabellen werden schnell sehr groß:
Ein Eintrag für jede netid
Keine Möglichkeit, Einträge zusammenzufassen
Routing-Tabellen müssen mit hoher Frequenz aufgefrischt werden
Immer, wenn ein Netzwerk hinzukommt, wegfällt oder sich verändert, muss dies im ganzen Internet bekanntgegeben werden
Idee:
Die Aufteilung nach netid/hostid wird immer explizit per Subnetzmaske durchgeführt
Keine explizite Unterscheidung zwischen netid und subnetid
Schreibweise:
a.b.c.d/x, wobei x die Länge der netid (hier auch Präfix oder englisch prefix) bestimmt
Alternative Schreibweise zur Subnetzmaske
192.48.96.0/23
Wie bekommt ein Host seine IP-Adresse?
Durch manuelle Konfiguration:
Subnetzmaske
Weitere Parameter
DHCP:
Dynamic Host Configuration Protocol:
dynamisches Beziehen der Adresse von einem Server
“Plug-and-Play”
Was ist DHCP?
Dynamic Host Configuration Protocol (DHCP)
Ziele von DHCP
Automatische Vergabe von Adressen und Parametern
Keine Konfiguration der Endsysteme notwendig
Unterstützung von mobilen Benutzern
Prinzipieller Ablauf
Endsystem schickt eine DHCP-Discover-Nachricht per IP-Broadcast (Adresse 255.255.255.255)
DHCP-Server antwortet mit einer DHCP-Offer-Nachricht
Endsystem beantragt eine IP-Adresse: DHCP-Request-Nachricht
DHCP-Server vergibt Adresse: DHCP-Ack-Nachricht
Wie bekommen Endsysteme ihre IP-Adresse (und andere Parameter der Netzwerkschicht, wie z.B. die Subnetzmaske)?
Manuelle Konfiguration ist Fehleranfällig
->Lösung: Automatische Zuweisung mithilfe des Dynamic Host Configuration Protocol (DHCP), RFC 2131
DHCP kann zudem:
Verschiedene Arten der Adresszuweisung (vorkonfiguriert, permanent, temporär)
Verlängerung und Rückgabe der Adresse durch den Client
Konfigurieren von Parametern
Was ist die Motivation bei einem Network Address Translation (NAT)?
Motivation:
Häufig hat man nur eine IP-Adresse, aber mehrere Endsysteme
Diese ist meist nur temporär (per DHCP) zugewiesen
Man möchte bei einem Provider-Wechsel nicht die IP-Adressen der Endsysteme verändern
IP-Adressen im eigenen Netzwerk sollen aus Sicherheitsgründen nicht vom Internet aus sichtbar sein
Interne IP-Adressen sollen veränderbar sein, ohne dass der Rest des Internets darüber informiert werden muss
Was ist die Idee bei einem Network Address Translation (NAT)?
Vergebe lokale (weltweit nicht eindeutige) Adressen an die Systeme im eigenen Netzwerk
Router zur Anbindung an das Internet übersetzt diese Adressen in eine gültige, weltweit eindeutige IP-Adresse
Dazu wird die Adressierung auf der Transportschicht gebraucht (missbraucht): Ports
Alle Datagramme, die das lokale Netz verlassen, haben die gleiche NAT-IPAdresse als Absender: 138.76.29.7
Unterscheidung durch Portnummern
Datagramme mit Sender oder Empfänger in diesem Netzwerk haben 10.0.0/24 als Adresse für diesen Sender/Empfänger
Wie wird Network Address Translation (NAT) implementiert?
Implementierung:
Ein NAT-Router muss Folgendes tun
Ausgehende Datagramme: ersetze (Sender-IP-Adresse, Portnummer) im Absenderfeld für jedes ins Internet geleitete Datagramm durch (NAT-IP-Adresse, neue Portnummer)
Kommunikationspartner wird die Antworten an (NAT-IP-Adresse, neue Portnummer) schicken
Speichere in einer NAT-Tabelle die Abbildung zwischen (Sender-IPAdresse, Portnummer) und (NAT-IP-Adresse, neue Portnummer)
Ankommende Datagramme: ersetze (NAT-IP-Adresse, neue Portnummer) im Empfängerfeld durch (Sender-IP-Adresse, Portnummer) aus der NAT-Tabelle
Was ist das Internet Control Message Protocol (ICMP)?
ICMP
Wird von Hosts und Routern verwendet, um Informationen über das Netzwerk selbst zu verbreiten
Fehlermeldungen: Host, Netzwerk, Port, Protokoll nicht erreichbar
Echo-Anforderung und Antwort (von ping genutzt)
Gehört zur Netzwerkschicht, wird aber in IP-Datagrammen transportiert
ICMP-Nachricht: Type, Code und die ersten 8 Byte des IPDatagramms, welches die Nachricht ausgelöst hat
Was ist das IPv6?
Ursprüngliche Motivation:
32-Bit-Adressen sind komplett zugeteilt
NAT hat dies ein wenig herausgezögert, aber das grundlegende Problem nicht gelöst
Beispiel: Was passiert, wenn jedes Handy eine feste IP-Adresse bekommen soll?
Weitere Motivation:
Vereinfachtes Header-Format für eine schnellere Verarbeitung in den Routern
Header soll Dienstgütemechanismen (Quality of Service, QoS) unterstützen
IPv6-Datagrammformat:
Header fester Länge (40 Byte)
keine Fragmentierung in den Routern
Was sind Protokolle in IPv6?
Was sind Probleme mit den Protokollen von IPv6?
Seit dem Jahr 2000 gibt es die IPv6
Änderungen gegenüber IPv4
Adressgröße von 32 Bits auf 128 Bits erhöht
Adresse: (123:15:44:66:144:33:12:123:0:15:44:0:144:33:12:123) bzw. mehr üblich im Hex-Format (7B0F:2C42:9021:C7B:F:2C00: 9021:C7B)
Header-Format vollständig geändert
-> Statt einem Header mehrere Header möglich.
Unterstützung vieler neuer Dienstarten
Einbau von Sicherheitsmechanismen
Erweiterbarkeit des Protokolls
Probleme
Adresswachstum im Internet
Kommerzialisierung
Sicherheit
Multimedia
128 Bit statt 32 Bit für Adressierung = 3,4 * 1038 Adressen
Wesentlich sicherer bzgl. DoS, IP-Spoofing, ...
QoS
Was ist ein IPv6-Header?
Verkehrsklasse:
Priorisierung von Datagrammen
Flow Label:
Identifikation von zusammengehörigen Flüssen von Datagrammen
Bsp: ein Voice-over-IP-Telefonat
Nächster Header:
An welches Protokoll sollen die Daten im Datenteil übergeben werden?
Bsp: TCP!
Was sind Unterschiede zwischen IPv4 und IPv6?
Checksumme:
entfernt, um die Verarbeitung in den Routern zu erleichtern
Optionen:
als separate Header, die auf den IPHeader folgen
Werden durch das “Nächster Header”-Feld angezeigt
Einfachere Behandlung in Hosts und Routern
ICMPv6:
neue Version von ICMP
Zusätzliche Pakettypen, z.B. “Packet Too Big”
Funktionen zur Verwaltung von Multicast-Gruppen (später mehr)
Last changeda year ago