Die Funktionalität der Netzwerkschicht besteht damit im Wesentlichen aus zwei Teilen:
1. Wegewahl (Routing):
Zusammentragen von Kenntnissen über mögliche Übertragungswege und Berechnen der
Routing-Tabellen
Verwendung von speziellen Routing-Protokollen und -Algorithmen
Einige Beispiele:
RIP(RoutingInformationProtocol) – OSPF(OpenShortestPathFirst) – BGP(BorderGatewayProtocol)
2. Weiterleitung (Forwarding):
auf Grundlage von Routing-Tabellen (Forwarding-Tabellen) Entscheidungen über den nächsten Schritt, den ein Paket nimmt
Switching Fabric
Das „Netzwerk“ im Inneren des Routers nennt man Switching Fabric
Switching Fabrics können sehr unterschiedlich strukturiert sein Möglich sind zum Beispiel ein gemeinsam genutzter Speicher. . .
. . . oder ein Bus, der alle Eingänge und Ausgänge verbindet
Netzmaske und CIDR
Die Adresse eines Netzwerks gibt man an, indem man alle Bits, die zum Host-Teil gehören auf 0 setzt:
IP-Adresse 131.77.20.57 in einem /16-Netz ⇒ Netzwerkadresse: 131.77.0.0 IP-Adresse 77.113.52.154 in einem /25-Netz ⇒ Netzwerkadresse: 77.113.52.128
Broadcast-Adresse
Wenn man alle Bits des Host-Teils auf 1 setzt, erhält man die sogenannte Broadcast-Adresse des Subnetzes
obige Beispiele: 131.77.255.255 bzw. 77.113.52.255
Pakete an diese Adresse sollen an alle Hosts in diesem Subnetz zugestellt werden
Diese beiden Adressen werden nicht für Netzwerkschnittstellen verwendet
Anzahl an Adressen für Netzwerkschnittstellen
Broadcast und Netzwerkadresse werden nicht für Netzwerkschnittstellen verwendet
In einem Netzwerk mit i Bit für den Host-Teil (also 32 − i Bit für den Netzwerkteil) stehen deshalb
2i − 2 Adressen für Schnittstellen zur Verfügung
Welche Netzmaske gehört zu einem Netz der Größe /18?
/18 entspricht einer Netzmaske, in der die ersten 18 Bits gesetzt sind
. . . also 11111111 11111111 11000000 00000000
. . . also 255.255.192.0
Welche Netzwerkadresse gehört in einem /18-Netz zur IP-Adresse 160.254.145.32?
Bitweises logisches UND mit der (binären) Netzmaske:
Was wäre die Broadcast-Adresse dieses /18-Netzes, in dem die IP-Adresse 160.254.145.32 liegt?
Adressbereichsunterteilung
Routingtabellen
nochmal gucken
Longest Prefix Matching und Routenaggregation
Durch geschickte Verteilung von Adressbereichen lassen sich oft mehrere (hoffentlich: viele!) Einträge in Routingtabellen zusammenfassen
Man nennt das Routenaggregation Die Longest-Prefix-Matching-Regel hilft dabei, noch mehr Routen effizient zusammenfassen zu
können: allgemeingültige Regel (kurzes Präfix, großer Adressbereich) . . . und davon dann einzelne Ausnahmen (längere Präfixe, Teilbereiche) mit anderem Routing
In dem meisten Systemen sind auch mehrere Einträge mit gleichem Präfix in einer Routingtabelle zulässig
dann entscheidet ein Prioritätswert, welcher Eintrag genutzt wird oft „Metrik“ genannt: höherer Wert = niedrigere Priorität
IPv4-Datagramm-Aufbau
Version: Version des IP-Protokolls (bei IPv4: 4) Headerlänge: in 4-Byte-Worten (für Optionen – genau wie bei TCP)
DSCP: Differentiated Services Code Point – kann verwendet werden, um unterschiedliche Pakete von Routern unterschiedlich behandeln zu lassen
ECN: Zwei Flags für die explizite Signalisierung von Überlast (im Zusammenspiel mit zugehörigen Flags im TCP-Header; experimentell)
Gesamtlänge: Länge des Datagramms in Byte Identifikation, Don’t Fragment (DF), More Fragments (MF), Fragment-Offset:
später mehr, wenn es um Fragmentierung geht
Time to Live (TTL): verbleibende Restlebensdauer des Datagramms jeder Router verringert den Wert um 1
wird 0 erreicht, muss das Datagramm verworfen werden typischer Anfangswert heute: 32 Funktion: Schutz vor endlosem Weiterleiten aufgrund von Routingschleifen
Transportprotokoll-Nummer: Kennen wir schon: Benötigt der Empfänger, um zu entscheiden, an welches Protokoll der nächsthöheren Schicht der Paketinhalt weitergegeben werden soll
6 = TCP 17 = UDP 1 = ICMP
Header-Prüfsumme: Wie schon bei UDP und TCP: Zum Erkennen von Übertragungsfehlern da sich der IP-Header während der Weiterleitung ändert (TTL!), muss die Prüfsumme jedesmal neu
berechnet werden
Maximum Transmission Unit (MTU)
Die maximal mögliche Datagrammgröße eines gegebenen Netzwerklinks
Wunschvorstellung: Festlegung einer gemeinsamen MTU für alle möglichen (auch zukünftigen) Sicherungsschichten – offensichtlich unrealistisch
In der Praxis: Jede Sicherungsschicht definiert ihre eigene MTU (z. B. Ethernet 1500 Byte, IBM Token Ring 4500 Byte, FDDI 4470 Byte,. . . )
Lösung zum MTU Problem: Fragmentierung
Für diesen Zweck mehrere Felder im IPv4-Header:
Identifikation: vom Sender vergebene „Paketnummer“, damit der Empfänger mehrere Fragmente eines Paketes als zusammengehörig erkennen kann
Don’t Fragment Flag: Wenn gesetzt, darf das Datagramm nicht fragmentiert werden wenn es nicht in die MTU passt: verwerfen und Fehlermeldung an den Absender
More Fragments Flag: Wenn gesetzt, dann ist dies nicht das letzte Segment des Datagramms; es folgen weitere Fragmente
Fragment Offset (13-Bit-Zahl): relative Lage des Anfangs der hier enthaltenen Daten im Gesamtdatagramm, in 8-Byte-Einheiten (!)
Maximalwert einer 13-Bit-Zahl: 213 − 1 = 8191 8192 · 8 Byte = 65536 Byte
Beispiel:
Pfad-MTU-Ermittlung
Um die maximal mögliche MTU entlang der Route (die Pfad-MTU) zu ermitteln, gehen die meisten Betriebssysteme heute so vor (RFC 1191):
1. sendeeinIP-PaketmitgesetztemDon’t-Fragment-FlagundeinergewähltenMTU 2. wenn das Paket zu groß war, kommt ein ICMP Destination Unreachable mit Statuscode
„Fragmentation Needed“ zurück 3. danndieGrößenachuntenanpassen
Häufiges Problem: Firewalls, die für die MTU-Ermittlung notwendige ICMP-Fehlermeldungen herausfiltern
Zuletzt geändertvor 5 Monaten