- Lernen
- Informatik & Informationswissenschaften
- Informatik
- Computernetzwerke – Internetprotokolle, TCP/IP und Routing
- Vermittlungsschicht Datenebene
Die Vermittlungsschicht: Datenebene
MittelEinheit 5 von 8 in Kurs: Computernetzwerke – Internetprotokolle, TCP/IP und Routing
Was du lernst
- Unterscheide die beiden Aufgaben der Vermittlungsschicht, Weiterleitung und Routing, verfolge ein Paket durch die Bestandteile eines Routers und erkläre, wo Pakete warten, verworfen und für die Übertragung eingeplant werden.
- Unterscheide Weiterleitung und Routing sowie Datenebene und SteuerungsebeneDefiniere die Aufgabe der Vermittlungsschicht, Weiterleitung, Routing, Weiterleitungstabellen und die beiden Ebenen und beschreibe den Best-Effort-Dienst der Vermittlungsschicht des Internets.
- Verfolge ein Paket durch die Ports und das Koppelnetz eines RoutersBenenne die Bestandteile eines Routers, erkläre, wie ein Eingangsport die Ausgangsverbindung durch längsten Präfixabgleich findet, und vergleiche die Verfahren, mit denen ein Koppelnetz Pakete zwischen Ports überträgt.
- Erkläre, wo Pakete warten und wie Router Pakete verwerfen und ihre Übertragung planenErkläre Warteschlangen an Ein- und Ausgängen, Head-of-Line-Blocking und Pufferdimensionierung und vergleiche Verwerfungsregeln sowie FIFO, Prioritätsscheduling, Round-Robin-Verfahren und Weighted Fair Queuing.
- Unterscheide Weiterleitung und Routing sowie Datenebene und Steuerungsebene
- Entschlüssle jedes Feld des IPv4-Headers, prüfe eine Headerprüfsumme und zerlege ein Datagramm in Fragmente, die zur maximalen Übertragungseinheit einer Verbindung passen.
- Entschlüssle die Felder eines IPv4-HeadersBenenne jedes IPv4-Headerfeld mit Größe und Zweck, entschlüssle einen Header anhand seiner Bytes und berechne und überprüfe die Headerprüfsumme.
- Fragmentiere ein Datagramm entsprechend der MTU einer VerbindungErkläre die maximale Übertragungseinheit, zerlege ein IPv4-Datagramm mit korrekten Längen, Offsets und Flags in Fragmente und erkläre die Zusammensetzung und Path MTU Discovery.
- Entschlüssle die Felder eines IPv4-Headers
- Vollziehe nach, wie ein Host seine Adresse und Einstellungen automatisch erhält und wie ein NAT-Router vielen Geräten mit privaten Adressen ermöglicht, eine öffentliche IPv4-Adresse gemeinsam zu nutzen.
- Vollziehe nach, wie DHCP einen Host konfiguriertBeschreibe die Einstellungen, die ein Host benötigt, den DHCP-Austausch mit vier Nachrichten und den zugehörigen Adressen und Ports, DHCP-Leases und ihre Erneuerung sowie die Rolle von DHCP-Relays.
- Verfolge die Adress- und Portübersetzung in einem NAT-RouterErkläre, wie die Netzwerkadressübersetzung einem privaten Netz die gemeinsame Nutzung einer öffentlichen Adresse ermöglicht, verfolge eine Übersetzungstabelle und wäge ab, welche Probleme NAT verursacht und welche es löst.
- Vollziehe nach, wie DHCP einen Host konfiguriert
- Lies den IPv6-Header, erkläre, was sich gegenüber IPv4 geändert hat und warum, und erkläre, wie Dual Stack, Tunneling und Protokollübersetzung die Koexistenz beider Protokolle ermöglichen.
- Lies den IPv6-Header und erkläre die ÄnderungenBenenne die Felder des festen IPv6-Headers, verfolge eine Kette von Erweiterungsheadern und erkläre, warum IPv6 auf Headerprüfsumme, Fragmentierung durch Router und Optionen im Header verzichtet.
- Erkläre Dual Stack, Tunneling und ProtokollübersetzungErkläre, warum IPv4 und IPv6 jahrelang nebeneinander bestehen müssen, wie Dual Stack, Tunneling und NAT64 mit DNS64 sie verbinden und welche Kosten jedes Verfahren verursacht.
- Lies den IPv6-Header und erkläre die Änderungen
- Schreibe Regeln mit Abgleichbedingungen und Aktionen, die ein Gerät als Router, Switch, Firewall oder Lastverteiler arbeiten lassen, erkläre ihre Nutzung in softwaredefinierten Netzwerken und wäge Middleboxes gegen die Entwurfsprinzipien des Internets ab.
- Schreibe Flow-Tabelleneinträge mit Abgleichbedingungen und AktionenBeschreibe Flow-Tabellen mit ihren Abgleichfeldern, Prioritäten, Aktionen und Zählern und entscheide, zu welchem Eintrag ein ankommendes Paket passt.
- Lege mit Flow-Tabellen das Netzwerkverhalten in SDN festErstelle aus Flow-Tabelleneinträgen über mehrere Switches hinweg Weiterleitungspfade, Firewalls, Vermittlung und Lastverteilung und erkläre, wie SDN die Steuerung trennt und zentralisiert.
- Bewerte Middleboxes anhand der Entwurfsprinzipien des InternetsDefiniere Middleboxes und ihre wichtigsten Arten, erkläre das IP-Sanduhrmodell und das Ende-zu-Ende-Argument und wäge die Vorteile von Middleboxes gegen die von ihnen verursachten Probleme ab.
- Schreibe Flow-Tabelleneinträge mit Abgleichbedingungen und Aktionen
Vermittlungsschicht Datenebene einfach erklärt
1Verfolge ein Paket durch einen Router
Ein Paket durchquert ein Netz mithilfe vieler kleiner lokaler Entscheidungen. Um eine davon zu verstehen, unterscheide die Logik, die eine Weiterleitungstabelle erstellt, von der Hardware, die sie anwendet. Verfolge dann das Paket von einem Eingangsport durch das Koppelnetz zu einer Ausgangsverbindung. Selbst wenn jede Tabellenabfrage korrekt ist, können konkurrierende Pakete Warteschlangen, Verzögerungen und Verluste verursachen. Koppelnetz, Puffer und Scheduler bestimmen, was bei dieser Konkurrenz geschieht.
1.1 Unterscheide Weiterleitung und Routing
Die Vermittlungsschicht überträgt Datagramme zwischen Hosts über einen Pfad aus Routern. Der sendende Host verpackt ein Transportsegment in ein Datagramm. Jeder Router liest den Header der Vermittlungsschicht und leitet das Datagramm in Richtung seines Ziels weiter. Am empfangenden Host übergibt die Vermittlungsschicht das Segment an TCP, UDP oder ein anderes Protokoll der höheren Schicht.
Eine lokale Entscheidung und ein netzweiter Plan
Weiterleitung überträgt ein ankommendes Paket an einem Router von einer Eingangs- zu einer Ausgangsverbindung. Sie kann ein Paket auch verwerfen oder Kopien an mehrere Verbindungen senden. Die Entscheidung fällt für jedes Paket, meist in Hardware und auf einer Zeitskala von Nanosekunden.
Routing bestimmt Pfade durch das Netz. Routingsoftware tauscht Informationen aus und berechnet Routen, typischerweise auf einer viel längeren Zeitskala, etwa in Sekunden. Die Planung einer Autofahrt ähnelt dem Routing; die Wahl der vorgesehenen Ausfahrt an einem Autobahnkreuz ähnelt der Weiterleitung. Der Router führt seinen Routingalgorithmus nicht für jedes ankommende Paket erneut aus.
Angenommen, ein Weiterleitungseintrag ordnet 10.20.0.0/16 der Schnittstelle 2 zu. Kommt ein Datagramm für 10.20.7.1 an, wählt die Tabellenabfrage Schnittstelle 2. Bei der Bearbeitung des einzelnen Pakets wird eine bestehende Entscheidung angewendet. Ein Verbindungsausfall kann später dazu führen, dass der Routingprozess den Eintrag ersetzt.
Die beiden Ebenen und ihre Tabellen
Die Datenebene führt diese lokalen Paketoperationen aus. Die Steuerungsebene bestimmt Routen und stellt die Tabellen bereit. Herkömmliche Router führen jeweils eine Routingkomponente aus, tauschen Routingnachrichten aus und berechnen ihre eigenen Tabellen. In softwaredefinierten Netzwerken installiert ein logisch zentralisierter Controller Einträge aus der Ferne; Switches bearbeiten Pakete weiterhin lokal.
Die Routing Information Base (RIB) speichert Routen, die der Steuerungsebene bekannt geworden sind. Die Forwarding Information Base (FIB) ist die aus diesen Routen abgeleitete Nachschlagestruktur für die Datenebene. Befehle nennen manchmal beide Strukturen „Routingtabelle“, sodass ihre Aufgabe wichtiger ist als die informelle Bezeichnung.
Ein Router ist eine Art Paketvermittler, ein Gerät, das Pakete anhand von Headerfeldern überträgt. Ein Switch der Sicherungsschicht wählt normalerweise anhand einer Ziel-MAC-Adresse. Ein Router wählt normalerweise anhand einer Ziel-IP-Adresse. Die Verarbeitung auf der Vermittlungsschicht findet sowohl in Hosts als auch in Routern statt; die Kommunikation auf Anwendungs- und Transportschicht erfolgt zwischen den Endhosts.
Was IP zusagt
Das Dienstmodell eines Netzes legt seine Zustellungsgarantien fest. Mögliche Garantien sind die Zustellung innerhalb einer Frist, die Ankunft in der richtigen Reihenfolge, eine Mindestbandbreite oder eine zuverlässige Zustellung. IP im Internet bietet einen Best-Effort-Dienst: keine dieser Garantien und keine eingebaute Sicherheitsgarantie. Ein Datagramm kann verloren gehen, verzögert oder dupliziert werden oder in anderer Reihenfolge ankommen. IP überträgt es nicht erneut.
IP ist außerdem verbindungslos. Jedes Datagramm trägt die Informationen, anhand derer es weitergeleitet wird; die Vermittlungsschicht baut nicht zuerst eine Ende-zu-Ende-Verbindung auf. Pakete einer Kommunikation können unterschiedliche Pfade nehmen.
Nützliche Anwendungen funktionieren dennoch, weil andere Teile des Systems das bereitstellen, was sie benötigen. TCP erkennt Verluste und stellt an den Endpunkten die Bytereihenfolge wieder her. Die Überlastkontrolle passt Senderaten an, Betreiber erweitern Kapazitäten und nahe gelegene Inhaltsserver verkürzen Pfade. Eine erfolgreiche TCP-Übertragung bedeutet daher nicht, dass IP selbst die Zustellung garantiert hat.
Wichtige Erkenntnisse
- Weiterleitung wendet eine Tabelle an einem Router an; Routing bestimmt netzweite Pfade.
- Die Steuerungsebene erstellt Tabellen und die Datenebene bearbeitet Pakete.
- Die RIB speichert Routeninformationen; die FIB unterstützt Tabellenabfragen zur Weiterleitung.
- IP bietet verbindungslose Best-Effort-Übertragung ohne erneutes Senden.
1.2 Wähle einen Ausgang und durchquere das Koppelnetz
Der Datenpfad eines Routers hat eine Eingangsseite, eine interne Verbindung und eine Ausgangsseite. Seine Steuerungssoftware liefert die Informationen, die diese Komponenten anwenden.
Die vier Bestandteile
Ein Eingangsport empfängt Bits, entfernt die eingehende Rahmung der Sicherungsschicht und ermittelt den Ausgangsport. Das Koppelnetz überträgt das Paket intern. Ein Ausgangsport puffert Pakete, erstellt den ausgehenden Datenrahmen und überträgt ihn. Der Routingprozessor führt Steuerungs- und Verwaltungssoftware aus oder kommuniziert mit einem SDN-Controller. Eingangs- und Ausgangsfunktionen einer bidirektionalen Verbindung teilen sich üblicherweise eine Leitungskarte.
Bei 10 Gb/s enthält ein Paket mit 64 Byte insgesamt 512 Bit und beansprucht 51,2 ns, sodass etwa 19,5 Millionen Pakete pro Sekunde ankommen. Bei 100 Gb/s beträgt der entsprechende Abstand 5,12 ns. Diese Rechnungen, die nur das Paket berücksichtigen, zeigen, warum schnelle Hardwareabfragen nötig sind. Eine Kopie der Weiterleitungstabelle auf jeder Leitungskarte ermöglicht den Ports zu arbeiten, ohne für jedes Paket einen zentralen Prozessor zu fragen.
Längster Präfixabgleich
Eine IP-Tabelle fasst Ziele in Präfixen zusammen. Ein Ziel kann zu mehreren Einträgen passen; der längste Präfixabgleich wählt den passenden Eintrag mit der größten Präfixlänge.
| Präfix | Ausgangsschnittstelle |
|---|---|
| 10.0.0.0/8 | 0 |
| 10.20.0.0/16 | 1 |
| 10.20.30.0/24 | 2 |
| 0.0.0.0/0 | 3 |
10.20.30.77 passt zu allen vier Einträgen, daher wählt /24 Schnittstelle 2. Für 10.20.31.5 gewinnt /16 und wählt Schnittstelle 1. Für 10.99.1.1 wählt /8 Schnittstelle 0. Nur die Standardroute /0 passt zu 172.16.0.1 und ergibt Schnittstelle 3. Die Tabellenreihenfolge entscheidet nicht über das Ergebnis.
Präfixe können innerhalb eines Oktetts enden. 192.168.8.0/21 deckt die Werte 8–15 im dritten Oktett ab; 192.168.12.0/22 deckt 12–15 ab. Daher nimmt 192.168.12.9 /22, während 192.168.9.200 /21 nimmt. Vergleiche die Präfixbits, nicht die Anzahl übereinstimmender durch Punkte getrennter Gruppen. Überlappung ermöglicht eine breite aggregierte Route neben einer Ausnahme mit spezifischerem Präfix.
Ein ternärer inhaltsadressierbarer Speicher (TCAM) vergleicht Einträge einschließlich Platzhalterbits parallel und kann innerhalb seiner Hardwarekapazität in etwa einem Taktzyklus einen passenden Eintrag liefern. Die Eingangsverarbeitung prüft außerdem IP-Version, IPv4-Prüfsumme und TTL, aktualisiert TTL und Prüfsumme und führt Zähler.
Drei Wege für das Paket
Vermittlung über Speicher kopiert ein Paket in einen gemeinsam genutzten Speicher und wieder heraus. Jedes Paket beansprucht zwei Speicherübertragungen, sodass ein Speichersystem mit B Übertragungen pro Sekunde vor Berücksichtigung weiterer Kosten eine Obergrenze von B/2 Paketen pro Sekunde hat.
Vermittlung über einen Bus sendet das Paket mit einer Ausgangskennung über einen gemeinsam genutzten Bus. Jeweils ein Paket überquert den Bus; dessen Bandbreite begrenzt den Gesamtdurchsatz.
Ein Verbindungsnetz wie ein Kreuzschienenverteiler kann Pakete gleichzeitig zu unterschiedlichen Ausgängen übertragen. Ein Kreuzschienenverteiler für N Eingänge und N Ausgänge nutzt 2N Busse. Konkurrieren zwei Pakete um denselben Ausgang, muss weiterhin entschieden werden, welches zuerst übertragen wird. Große Router kombinieren mehrere Stufen, Zellen fester Größe und parallele Koppelnetzebenen; für N Eingänge ist eine Koppelnetzrate vom N-Fachen der Übertragungsrate die ideale Gesamtkapazität.
Wichtige Erkenntnisse
- Eingangsports führen lokale Tabellenabfragen durch, bevor das Koppelnetz Pakete zu Ausgängen überträgt.
- Der längste Präfixabgleich wählt das spezifischste passende Zielpräfix.
- Die Standardroute /0 gilt nur, wenn kein längeres Präfix passt.
- Tabellenkopien auf Leitungskarten und Hardwareabfragen ermöglichen hohe Paketraten.
- Koppelnetze mit Speicher oder gemeinsam genutztem Bus begrenzen die gesamte Übertragungsrate.
- Ein Kreuzschienenverteiler bedient unterschiedliche Ausgänge parallel, aber die Konkurrenz um einen Ausgang bleibt bestehen.
1.3 Erkläre Warteschlangen, Verwerfen und Paketplanung
Eine korrekte Weiterleitungsentscheidung garantiert keine sofortige Übertragung. Ein Paket kann auf das Koppelnetz oder seine Ausgangsverbindung warten, und begrenzte Puffer können voll werden.
Wo die Warteschlange entsteht
Warteschlangen am Eingang entstehen, wenn das Koppelnetz Pakete nicht so schnell aufnehmen kann, wie die Eingänge sie liefern. Bei einer FIFO-Warteschlange pro Eingang hält Head-of-Line-Blocking (HOL-Blocking) ein Paket hinter einem früheren Paket fest, das auf einen belegten Ausgang wartet, selbst wenn der Ausgang des späteren Pakets frei ist. Für große Switches mit gleichmäßig zufälligem Verkehr liegt die Durchsatzgrenze dieser Anordnung bei etwa 58,6 % der Übertragungsrate. Separate virtuelle Ausgangswarteschlangen an jedem Eingang beseitigen diese Art der Blockierung.
Warteschlangen am Ausgang entstehen, wenn Pakete für einen Ausgang schneller ankommen, als dessen Übertragungsrate zulässt. Treffen während einer Paketübertragungszeit drei gleich große Pakete an einem Ausgang ein, kann eines gesendet werden und zwei warten. Ein schnelles Koppelnetz macht die Ausgangsverbindung nicht schneller.
Wie viel Puffer?
Die klassische Dimensionierungsregel lautet , mit RTT in Sekunden und Kapazität C in Bit pro Sekunde. Eine RTT von 250 ms und eine Verbindung mit 10 Gb/s ergeben 2,5 Gb oder 312,5 MB. Bei N langlebigen, nicht synchronisierten TCP-Datenströmen ergibt die alternative Regel für 10.000 Datenströme 25 Mb oder 3,125 MB. Dies sind Dimensionierungsregeln für unterschiedliche Verkehrsbedingungen, keine austauschbaren Garantien für jede Warteschlange.
Große Puffer können Bufferbloat verursachen. Fast 1 MB, das auf einer Verbindung mit 10 Mb/s vor einem aufgenommenen Paket wartet, benötigt etwa 0,8 s zur Übertragung: Rechne die Bytes in 8.000.000 Bit um und dividiere dann durch die Rate. Bei Tail Drop wird stattdessen ein neues Paket verworfen, das an einem vollständig gefüllten Puffer ankommt.
Verwerfen und Paketplanung unterscheiden sich
Das Puffermanagement entscheidet, welche Pakete verworfen oder markiert werden. Tail Drop weist neu ankommende Pakete bei vollem Puffer ab. Prioritätsbasiertes Verwerfen entfernt zuerst Verkehr niedrigerer Priorität. Aktives Warteschlangenmanagement greift früher ein: RED erhöht seine Verwerfungs- oder Markierungswahrscheinlichkeit, wenn die durchschnittliche Warteschlangenlänge steigt. Mit ECN kann ein Router Überlastung in einem dafür geeigneten IP-Paket markieren, sodass die Endpunkte die Last verringern können, ohne dass dieses Paket verloren geht.
Die Paketplanung wählt das nächste zu übertragende Paket:
- FIFO bedient Pakete in ihrer Ankunftsreihenfolge.
- Striktes Prioritätsscheduling bedient die nicht leere Klasse mit der höchsten Priorität, üblicherweise nach FIFO innerhalb jeder Klasse. Ein nichtpräemptiver Scheduler sendet das bereits begonnene Paket zu Ende. Wird Paket 1 mit niedriger Priorität gerade übertragen, wenn 2 mit hoher, 3 mit niedriger und 4 mit hoher Priorität ankommen, ist die Sendereihenfolge 1, 2, 4, 3.
- Das Round-Robin-Verfahren gibt jeder nicht leeren Klasse einen Paketsendeplatz und überspringt leere Warteschlangen. Enthält A die Pakete a1, a2, a3 und B das Paket b1, ist die Sendereihenfolge a1, b1, a2, a3. Ein arbeitserhaltender Scheduler überträgt immer, wenn irgendein Paket wartet.
- Weighted Fair Queuing (WFQ) berücksichtigt Paketlängen, um eine gewichtete Bedienung Bit für Bit anzunähern. Eine Klasse, in der ständig Pakete warten, erhält ungefähr ihr Gewicht geteilt durch die Summe der Gewichte aktiver Klassen, multipliziert mit der Übertragungsrate. Die Gewichte 5:3:2 auf 100 Mb/s ergeben 50, 30 und 20 Mb/s, wenn alle Klassen aktiv sind. Wird die dritte leer, erhalten die anderen 62,5 und 37,5 Mb/s. Gewichte bestimmen Anteile, keine festen Obergrenzen; zählt man nur Paketsendeplätze, ergeben sich bei unterschiedlichen Paketgrößen andere Bandbreitenanteile.
Diese Mechanismen ermöglichen Betreibern, Verkehr zu bevorzugen, zu verlangsamen oder zu blockieren. Ob Anbieter rechtmäßige Inhalte oder Anwendungen unterschiedlich behandeln dürfen, ist die politische Frage der Netzneutralität. Ihre rechtlichen Regeln hängen von Land und Zeitpunkt ab.
Wichtige Erkenntnisse
- HOL-Blocking kann Verkehr für einen ansonsten freien Ausgang verzögern.
- Ausgangswarteschlangen entstehen, wenn Pakete schneller ankommen, als die ausgehende Verbindung sie übertragen kann.
- Die Pufferdimensionierung hängt von RTT, Kapazität und Verkehrsverhalten ab.
- Bei Bufferbloat stehen geringeren Verlusten übermäßig lange Wartezeiten gegenüber.
- Das Puffermanagement wählt Pakete zum Verwerfen oder Markieren; die Paketplanung wählt die zu sendenden Pakete.
- Nichtpräemptives Prioritätsscheduling sendet das aktuelle Paket zu Ende, bevor es die Klasse wechselt.
- WFQ teilt Bandbreite nach Gewicht auf und berücksichtigt dabei die Paketlänge.
2Lies IPv4-Header und -Fragmente
Ein IPv4-Header sagt einem Router, wie er ein Datagramm behandeln soll, und dem Ziel, wie es dessen Nutzlast interpretieren soll. Beim Lesen musst du Bitfelder, Bytezahlen und Wortzahlen auseinanderhalten. Derselbe Header trägt auch die Informationen, die benötigt werden, wenn ein Datagramm für eine kleinere Verbindung zerlegt werden muss. Gehe von der Gesamtgröße zur Nutzlast über und verfolge dann die Teile anhand von Offsets und Flags bis zur Zusammensetzung am Ziel.
2.1 Entschlüssle und prüfe einen IPv4-Header
Ein IPv4-Datagramm besteht aus einem Header, gefolgt von einer Nutzlast, üblicherweise einem Transportsegment. Der übliche Header umfasst 20 Byte; Optionen können ihn auf 60 Byte erweitern. Die Gesamtlänge ist eine 16-Bit-Bytezahl und erlaubt bis zu 65.535 Byte. Ethernet überträgt üblicherweise IP-Pakete bis zu 1.500 Byte.
Lies die Felder in ihrer Übertragungsreihenfolge
| Feld | Bit | Bedeutung |
|---|---|---|
| Version; IHL | 4; 4 | IP-Version; Headerlänge in 32-Bit-Wörtern |
| Diensttyp | 8 | Sechs DSCP-Bits und zwei ECN-Bits |
| Gesamtlänge | 16 | Header und Nutzlast in Byte |
| Identifikation | 16 | Ordnet Fragmente einem ursprünglichen Datagramm zu |
| Flags; Fragmentoffset | 3; 13 | Steuerung der Fragmentierung; Position in der Nutzlast in 8-Byte-Einheiten |
| TTL; Protokoll | 8; 8 | Verbleibende Lebensdauer; Protokoll der Nutzlast |
| Headerprüfsumme | 16 | Fehlerprüfung für den IPv4-Header |
| Quelle; Ziel | Je 32 | Ende-zu-Ende-IPv4-Adressen |
Optionen folgen auf diese Felder, wenn IHL größer als 5 ist. Da jedes IHL-Wort vier Byte umfasst, bedeutet IHL 5 gleich 20 Byte und IHL 15 gleich 60 Byte. Subtrahiere diese Headergröße von der Gesamtlänge, um die Nutzlastgröße zu bestimmen.
DSCP unterstützt die Verkehrsklassifizierung und ECN überträgt Überlastinformationen. Jeder Router verringert die TTL um mindestens 1. Läuft sie ab, verwirft er das Datagramm und sendet normalerweise eine ICMP-Zeitüberschreitungsmeldung. Die TTL beginnt häufig bei 64, 128 oder 255. Protokoll bezeichnet TCP (6), UDP (17), ICMP (1) oder gekapseltes IPv6 (41); es bezeichnet keinen Anwendungsport.
Entschlüssle einen vollständigen Header
Betrachte diese hexadezimalen Bytes:
45 00 00 34 1C 46 40 00 40 06 32 2C C0 00 02 0A C6 33 64 14
45 ergibt Version 4 und IHL 5. Die Gesamtlänge 0034 beträgt 52 Byte, sodass 32 Nutzlastbytes bleiben. Die Identifikation 1C46 ist 7238. Das Flags-/Offset-Wort 4000 setzt DF, löscht MF und ergibt Offset 0. TTL 40 ist 64, Protokoll 06 bedeutet TCP und die Prüfsumme ist 322C. Die Quellbytes ergeben 192.0.2.10 und die Zielbytes 198.51.100.20.
Berechne die Headerprüfsumme
Setze das Prüfsummenfeld auf null und addiere die 16-Bit-Wörter in Einerkomplementarithmetik. Addiere jeden Übertrag oberhalb von Bit 16 am unteren Ende zurück und invertiere dann die Bits.
Für diesen Header lauten die Wörter 4500 0034 1C46 4000 4006 0000 C000 020A C633 6414. Ihre gewöhnliche Summe ist 0x2CDD1. Das Zurückaddieren ergibt 0xCDD1 + 0x0002 = 0xCDD3; die Invertierung ergibt 0x322C. Die Überprüfung bezieht die gespeicherte Prüfsumme ein und ergibt 0xFFFF, wenn kein Fehler erkannt wird. Eine Verringerung der TTL von 64 auf 63 ändert 4006 zu 3F06, sodass die aktualisierte Prüfsumme 0x332C lautet.
Die Prüfsumme schützt nur den IP-Header. TCP prüft sein Segment und einen Pseudoheader mit IP-Adressen separat Ende zu Ende. Die UDP-Prüfsumme ist über IPv4 optional; null bedeutet, dass sie weggelassen wurde. Bei IP- und TCP-Headern von je 20 Byte trägt ein Datagramm mit 1.500 Byte insgesamt 1.460 Byte Anwendungsdaten, sodass der gemeinsame Headeranteil etwa 2,7 % beträgt.
Die normale Weiterleitung erhält Quell- und Ziel-IP-Adresse, während sie die Adressierung der Sicherungsschicht auf jeder Verbindung ersetzt. NAT ist eine Ausnahme, die IP-Adressen neu schreibt. IPv4-Optionen wie die Routenaufzeichnung machen den Header variabel und erfordern oft eine langsamere Verarbeitung.
Wichtige Erkenntnisse
- IHL zählt Vier-Byte-Wörter; die Gesamtlänge zählt die Bytes von Header und Nutzlast.
- TTL begrenzt die Umlaufdauer und Protokoll bezeichnet das Protokoll der Nutzlast.
- Die IPv4-Prüfsumme deckt den Header ab und ändert sich, wenn sich die TTL ändert.
- Bei der Einerkomplementaddition werden Überträge vor der abschließenden Invertierung zurückaddiert.
- Die gewöhnliche Weiterleitung erhält die IP-Endpunktadressen, während sich die Adressierung der Sicherungsschicht ändert.
2.2 Zerlege IPv4-Datagramme und setze ihre Nutzlast wieder zusammen
Die maximale Übertragungseinheit (MTU) einer Verbindung begrenzt die Größe des IP-Datagramms, das sie übertragen kann. Ist ein IPv4-Paket für die nächste Verbindung zu groß, kann ein Router es fragmentieren, sofern DF nicht gesetzt ist. Jedes Fragment benötigt einen eigenen IP-Header, daher steht nicht die gesamte MTU für Daten zur Verfügung.
Bestimme die Fragmentgrößen
Für ein Datagramm ohne Optionen:
- Subtrahiere die Headerlänge von der ursprünglichen Gesamtlänge.
- Subtrahiere einen Header von der MTU, um den Platz pro Fragment zu bestimmen.
- Runde diesen Platz für jedes Fragment außer dem letzten auf ein Vielfaches von 8 ab.
- Zerlege die Nutzlast und lege einen möglichen Rest in das letzte Fragment.
- Dividiere die Nutzlastbytes vor jedem Teil durch 8, um seinen Offset zu erhalten.
- Addiere für die Gesamtlänge zu jedem Teil einen Header; setze MF bei allen Teilen außer dem letzten.
Die Fragmente haben denselben Wert für die Identifikation. Zusammen mit Quelle, Ziel und Protokoll identifiziert er ihr ursprüngliches Datagramm. MF bedeutet, dass in der Reihenfolge der Nutzlast weitere Fragmente folgen. Der Offset misst die Position innerhalb der ursprünglichen Nutzlast, niemals innerhalb des ursprünglichen Headers.
Ein Datagramm mit 4.000 Byte
Bei einem Header von 20 Byte und MTU 1.500 beträgt die Nutzlast 3.980 Byte. Für Daten stehen 1.480 Byte zur Verfügung, bereits durch 8 teilbar.
| Fragment | Datenbytes | Byte insgesamt | Offset | MF |
|---|---|---|---|---|
| Erstes | 1.480 | 1.500 | 0 | 1 |
| Zweites | 1.480 | 1.500 | 185 | 1 |
| Drittes | 1.020 | 1.040 | 370 | 0 |
Der zweite Offset ist 1.480 dividiert durch 8. Der dritte ist 2.960 dividiert durch 8. Die Nutzlast umfasst weiterhin insgesamt 3.980 Byte, aber durch drei Header beträgt die übertragene Gesamtgröße 4.040 Byte.
Bei einem Datagramm mit 2.400 Byte, einem Header von 20 Byte und MTU 1.000 wird der Platz von 980 Byte auf 976 abgerundet. Die Datenteile umfassen 976, 976 und 428 Byte. Die Gesamtlängen sind 996, 996 und 448; die Offsets sind 0, 122 und 244; die MF-Werte sind 1, 1 und 0. Würde man jedes Fragment außer dem letzten auf insgesamt 1.000 Byte füllen, verstieße dies gegen die Ausrichtungsregel für Offsets.
Setze am Ziel zusammen
Nur der Zielhost setzt das ursprüngliche Datagramm wieder zusammen. Fragmente können in anderer Reihenfolge ankommen oder auf einer kleineren Verbindung erneut fragmentiert werden. Das Ziel ordnet die Daten anhand des Offsets ein und erkennt die Endposition am Fragment mit MF 0. Kommt dieses letzte Fragment zuerst an, ist die Zusammensetzung noch nicht abgeschlossen: Jedes frühere Byte muss ebenfalls vorliegen. Fehlende Fragmente führen schließlich zu einer Zeitüberschreitung bei der Zusammensetzung.
Fragmentierung fügt Header hinzu und macht Verluste kostspieliger: Ein fehlendes Fragment verhindert die Zustellung des gesamten Transportsegments. Portnummern stehen im ersten Fragment, was das Filtern und NAT bei späteren Fragmenten erschwert. Überlappende Fragmente können auch Sicherheitsprobleme verursachen.
Ermittle die Schranke des Pfades
Ist Don't Fragment (DF) gesetzt, wird ein zu großes IPv4-Datagramm verworfen. Der Router sendet eine ICMP-Meldung „Ziel nicht erreichbar“, Typ 3, Code 4, zurück. Sie meldet, dass Fragmentierung nötig ist, und gibt die MTU der nächsten Verbindung an. Path MTU Discovery nutzt diese Rückmeldung, um die Paketgröße zu verringern. Wird die Rückmeldung blockiert, kann ein Blackhole entstehen, in dem kleine Pakete funktionieren, große aber verschwinden.
Für TCP über eine MTU von 1.500 mit IP- und TCP-Headern von je 20 Byte beträgt die MSS für Daten 1.460 Byte. IPv6-Router fragmentieren nie: Sie senden eine ICMPv6-Paket-zu-groß-Meldung zurück, damit die Quelle ihre Paketgröße verringern oder selbst fragmentieren kann.
Wichtige Erkenntnisse
- Die Gesamtlänge eines Fragments schließt seinen eigenen IP-Header ein.
- Die Datenlängen aller Fragmente außer dem letzten müssen Vielfache von 8 Byte sein.
- Offsets zählen 8-Byte-Einheiten innerhalb der ursprünglichen Nutzlast.
- Alle Fragmente haben denselben Identifikationswert; nur das letzte Fragment hat MF 0.
- Das Ziel setzt die Nutzlast wieder zusammen und benötigt dazu alle Teile.
- DF führt dazu, dass ein zu großes IPv4-Paket verworfen und die MTU zurückgemeldet wird.
3Konfiguriere Hosts und teile IPv4-Adressen
Ein neuer Host benötigt Einstellungen, bevor er nutzbaren IP-Verkehr austauschen kann. DHCP stellt diese Einstellungen bereit und verwaltet, wie lange die Adresse zugewiesen bleibt. In vielen IPv4-Netzen übersetzt NAT anschließend die private Adresse und den Transportport des Hosts für die Kommunikation außerhalb des Netzes. Verfolge zuerst den Konfigurationsaustausch und danach anhand einer Übersetzungstabelle die sich ändernden Paketfelder in beide Richtungen.
3.1 Verfolge einen DHCP-Lease von der Suche bis zur Erneuerung
Ein Host benötigt eine IP-Adresse, eine Subnetzmaske oder Präfixlänge, ein Standardgateway und DNS-Serveradressen. Das Dynamic Host Configuration Protocol (DHCP) stellt diese Einstellungen automatisch bereit. In einem kleinen Netz fungiert oft der Router als Server; ein größeres Netz kann einen dedizierten Server für mehrere Subnetze nutzen.
Discover, Offer, Request, ACK
DHCP nutzt UDP mit Serverport 67 und Clientport 68. Ein neuer Client hat noch keine Adresse und kennt keinen Server, daher erfolgt der anfängliche Austausch per Broadcast.
- Discover: Der Client sendet von 0.0.0.0:68 an 255.255.255.255:67. Eine Transaktions-ID ordnet Antworten diesem Austausch zu, und die Nachricht enthält die MAC-Adresse des Clients.
- Offer: Ein Server schlägt eine Adresse, eine Lease-Dauer und Einstellungen vor. Mehr als ein Server kann antworten.
- Request: Der Client sendet seine gewählte Adresse und die Serverkennung als Broadcast. Die anderen Server, die ein Angebot gemacht haben, sehen, dass sie nicht ausgewählt wurden.
- ACK: Der gewählte Server bestätigt den Lease. Der Client kann die Konfiguration abschließen und die Adresse nutzen.
Beispielsweise tritt ein Laptop einem Netz bei, dessen DHCP-Server 192.168.1.1 ist. Angeboten wird 192.168.1.101 mit der Maske 255.255.255.0, dem Gateway 192.168.1.1, dem DNS-Server 192.168.1.1 und einem Lease von 86.400 s. Nachdem der Laptop seine Request-Nachricht als Broadcast gesendet und das ACK empfangen hat, verfügt er über einen Lease von 24 Stunden und die Einstellungen für lokalen und externen Verkehr.
Ein Offer allein ist noch keine abgeschlossene Zuweisung. Ein NAK lehnt eine nicht mehr gültige Anfrage ab, etwa eine, die zu einem falschen Netz gehört, und der Client muss die Adressbeschaffung neu beginnen.
Behalte die Adresse oder gib sie auf
Ein DHCP-Lease ermöglicht die Wiederverwendung, nachdem ein Host das Netz verlassen hat. Mit den Standardzeitgebern beginnt die Erneuerung nach der Hälfte der Lease-Dauer: Der Client sendet eine Request-Nachricht als Unicast an den ursprünglichen Server. Scheitert die Erneuerung, sendet er nach 87,5 % der Dauer eine Request-Nachricht als Broadcast, sodass jeder geeignete Server den Lease verlängern kann. Ein Lease von 24 Stunden hat daher standardmäßig Erneuerungs- und Rebinding-Zeitpunkte von 12 und 21 Stunden nach der Zuweisung.
Läuft der Lease ohne Verlängerung ab, muss der Client die Nutzung dieser Adresse einstellen. Ein Client kann beim Verlassen Release senden; Decline meldet dagegen, dass die angebotene Adresse bereits genutzt wird. Die bei einem späteren Besuch zugewiesene Adresse kann anders sein, weil DHCP einen wiederverwendbaren Pool verwaltet und keine dauerhaften Besitzrechte vergibt.
Erreiche einen Server in einem anderen Subnetz
Router leiten den begrenzten Broadcast des Clients nicht als gewöhnlichen Verkehr weiter. Ein DHCP-Relay im Subnetz des Clients leitet die Nachricht an einen konfigurierten entfernten Server weiter. Sein Gateway-Adressfeld bezeichnet das Subnetz des Clients, sodass der Server den richtigen Pool wählen kann. Antworten gelangen über das Relay zurück zum Client.
Relay und Standardgateway haben unterschiedliche Aufgaben, auch wenn derselbe Router beide bereitstellt. Das Relay bringt den Konfigurationsaustausch zu einem entfernten Server; das Standardgateway überträgt den Verkehr des konfigurierten Hosts in Richtung anderer Netze. Ebenso löst der DNS-Server Namen auf und muss nicht der DHCP-Server sein.
Auch mit einer gültigen Adresse kann ein Host externe Ziele möglicherweise nicht erreichen, wenn das Standardgateway falsch ist. IPv6 hat eigene Konfigurationsverfahren, darunter SLAAC anhand von Routerankündigungen und DHCPv6.
Wichtige Erkenntnisse
- DHCP stellt Adresse, Maske, Gateway, DNS-Einstellungen und Lease-Dauer bereit.
- Die erstmalige Zuweisung nutzt Discover, Offer, Request und ACK über die UDP-Ports 68 und 67.
- Die erste Request-Nachricht als Broadcast bezeichnet das gewählte Angebot.
- Erneuerung und Rebinding beginnen standardmäßig nach 50 % beziehungsweise 87,5 % der Lease-Dauer.
- Ein Relay ermöglicht einem Server, Clients in einem anderen Subnetz zu konfigurieren.
3.2 Verfolge eine NAT-Zuordnung in beide Richtungen
Private IPv4-Adressen können in unabhängigen Netzen wiederverwendet werden. Die privaten Blöcke sind 10.0.0.0/8, 172.16.0.0/12 und 192.168.0.0/16. Sie werden im öffentlichen Internet nicht global geroutet. Die Netzwerkadressübersetzung (NAT) ermöglicht Geräten mit privaten Adressen, über eine öffentliche Adresse an der Netzgrenze zu kommunizieren.
Halte die Zuordnung fest, bevor du die Antwort verfolgst
Heimrouter führen häufig eine Netzwerkadress- und Portübersetzung (NAPT) durch. Der Router ändert die Quelladresse und den Quelltransportport eines ausgehenden Pakets und speichert das private und das öffentliche Paar. Das Zielpaar eines zurückkehrenden Pakets wird zurückübersetzt. Es gibt auch Eins-zu-eins-NAT, das Adressen ohne Änderung der Ports abbildet.
Ein Laptop unter 192.168.1.101:50123 verbindet sich mit 203.0.113.80:443. Sein NAT-Router hat die öffentliche Adresse 198.51.100.7 und weist Port 40001 zu:
| Richtung | Quelle | Ziel |
|---|---|---|
| Vor der ausgehenden Übersetzung | 192.168.1.101:50123 | 203.0.113.80:443 |
| Nach der ausgehenden Übersetzung | 198.51.100.7:40001 | 203.0.113.80:443 |
| Antwort vor der eingehenden Übersetzung | 203.0.113.80:443 | 198.51.100.7:40001 |
| Antwort nach der eingehenden Übersetzung | 203.0.113.80:443 | 192.168.1.101:50123 |
Die Tabelle enthält 198.51.100.7:40001 ↔ 192.168.1.101:50123. Nutzt ein Smartphone unter 192.168.1.102 denselben privaten Port, um diesen Server zu kontaktieren, kann der Router den öffentlichen Port 40002 zuweisen. Der öffentliche Port unterscheidet den Rückverkehr; der private Port allein könnte das nicht.
Das Neuschreiben der IPv4-Adresse ändert die Headerprüfsumme. TCP und UDP mit Prüfsumme decken IP-Adressen über ihre Pseudoheader ebenfalls ab, sodass ihre Prüfsummen angepasst werden müssen. NAPT schreibt außerdem einen Transportport neu. Der Server sieht normalerweise die übersetzte öffentliche Quelle, nicht die private.
Zuordnungen haben eine Lebensdauer
Ausgehender Verkehr erzeugt üblicherweise dynamische Zuordnungen. Ein unaufgefordert eingehendes Paket ohne passende Zuordnung wird in dieser Grundkonfiguration verworfen. Um einen internen Dienst erreichbar zu machen, kann ein statischer Portweiterleitungseintrag installiert werden, oder ein Host kann über UPnP oder das Port Control Protocol eine Zuordnung anfordern. STUN hilft einem Host, seine öffentliche Zuordnung zu ermitteln; TURN leitet Verkehr weiter, wenn keine direkte Kommunikation hergestellt werden kann.
Inaktive Zuordnungen laufen ab. Die Verhaltensanforderungen für UDP sehen ein Zeitlimit von mindestens zwei Minuten vor, wobei fünf oder mehr empfohlen werden. Nachrichten zur Aufrechterhaltung der Verbindung können eine Zuordnung erhalten. Das 16-Bit-Portfeld bietet 65.536 Zahlenwerte pro Protokoll, aber reservierte Ports und das Zuordnungsverhalten bedeuten, dass diese Zahl keine genaue Garantie für gleichzeitige Verbindungen ist.
Was NAT löst und was es kostet
Die gemeinsame Nutzung einer öffentlichen Adresse hat die Nutzung von IPv4 verlängert. Anbieter können auch Carrier-Grade NAT einsetzen und Kunden dabei häufig Adressen aus dem gemeinsam genutzten Block 100.64.0.0/10 zuweisen. Eine Heimverbindung kann dann sowohl das Heim-NAT als auch ein NAT des Anbieters passieren.
Die Übersetzung verringert die direkte Ende-zu-Ende-Erreichbarkeit und erschwert Protokolle, die Adressen im Nachrichtentext tragen, etwa SIP oder FTP im aktiven Modus. NAT greift auch in Transportfelder ein. IPv6 begegnet dem zugrunde liegenden Mangel mit einem größeren Adressraum.
Dass NAT eingehenden Verkehr ohne passende Zuordnung abweist, ist keine Inhaltsprüfung. Ein Schadprogramm kann über denselben Zuordnungsmechanismus wie ein legitimer Client eine ausgehende Verbindung öffnen. Die Firewallrichtlinie bleibt eine separate Sicherheitsfunktion.
Wichtige Erkenntnisse
- NAPT ermöglicht die gemeinsame Nutzung öffentlicher IPv4-Adressen durch Übersetzung von Adress-Port-Paaren.
- Bei ausgehenden Paketen ändern sich Quellfelder, bei Antworten Zielfelder.
- Zuordnungen unterscheiden Hosts auch dann, wenn ihre privaten Quellports gleich sind.
- Bei der Übersetzung müssen betroffene IP- und Transportprüfsummen aktualisiert werden.
- Der Ablauf von Zuordnungen und fehlende eingehende Zuordnungen erschweren die Erreichbarkeit.
- NAT spart Adressen, untersucht den Verkehr aber nicht auf Bedrohungen.
4Lies IPv6 und verbinde Netze über IPv4
IPv6 verändert sowohl den Adressraum als auch die Verarbeitung jedes Pakets. Sein fester Header verlagert optionale Informationen in separate Header, und bei zu großen Paketen erhält die Quelle eine Rückmeldung zur Korrektur. Die Einführung muss außerdem bestehende IPv4-Systeme berücksichtigen. Unterscheide den Betrieb zweier Protokolle, die Übertragung des einen innerhalb des anderen und die Übersetzung zwischen ihnen: Diese Verfahren lösen unterschiedliche Kommunikationsprobleme und wirken sich unterschiedlich auf die Paketgröße aus.
4.1 Lies den festen IPv6-Header und seine Erweiterungen
IPv4 hat 32-Bit-Adressen, ungefähr 4,3 Milliarden mögliche Werte. Die IANA vergab ihre letzten IPv4-Blöcke aus dem zentralen Pool im Februar 2011. IPv6 erweitert Adressen auf 128 Bit, etwa 3,4 × 10³⁸ Werte, und vereinfacht die routinemäßige Headerverarbeitung. RFC 8200 legt sein grundlegendes Paketformat fest.
Ein fester Header mit 40 Byte
| Feld | Bit | Zweck |
|---|---|---|
| Version | 4 | Der Wert 6 bezeichnet IPv6 |
| Verkehrsklasse | 8 | Verkehrsbehandlung mit DSCP und ECN |
| Flow-Label | 20 | Markiert Pakete, die zu einem Datenstrom gehören |
| Nutzlastlänge | 16 | Bytes nach dem festen Header |
| Nächster Header | 8 | Typ des unmittelbar folgenden Headers |
| Hop-Limit | 8 | Verbleibende Weiterleitungs-Hops |
| Quelladresse | 128 | IPv6-Adresse des Senders |
| Zieladresse | 128 | IPv6-Adresse des Empfängers |
Die Felder umfassen zusammen 320 Bit oder 40 Byte. Das Hop-Limit übernimmt die Rolle der IPv4-TTL: Jeder weiterleitende Router verringert es um 1 und verwirft das Paket, wenn es abläuft. Das Flow-Label kann Routern und Lastverteilern helfen, einen Datenstrom einheitlich zu behandeln, etwa indem sie einen gleichbleibenden Pfad wählen. Es garantiert keine Bandbreite.
Die Nutzlastlänge schließt den festen Header aus, aber Erweiterungsheader ein. Ein TCP-Segment mit 1.000 Byte ohne Erweiterungen ergibt daher die Nutzlastlänge 1.000 und eine Gesamtgröße von 1.040 Byte. Die IPv4-Gesamtlänge schließt dagegen ihren Header ein.
Verfolge die Kette der Felder „Nächster Header“
„Nächster Header“ bezeichnet entweder ein Protokoll der höheren Schicht oder eine Erweiterung. Zu den Werten gehören TCP 6, UDP 17 und ICMPv6 58; zu den Erweiterungstypen gehören Hop-by-Hop Options 0, Routing 43, Fragment 44 und Destination Options 60. Das eigene Feld „Nächster Header“ einer Erweiterung bezeichnet das, was auf sie folgt.
Bei einem von der Quelle erzeugten Fragment mit 600 Byte eines TCP-Segments ergibt ein Fragment-Header mit 8 Byte die Nutzlastlänge 608. Der feste Header gibt für „Nächster Header“ den Wert 44 an; der Fragment-Header gibt 6 an. Die Gesamtgröße des Fragments beträgt 648 Byte. Würdest du nur das erste Feld „Nächster Header“ lesen, würdest du eine Erweiterung mit dem Transportprotokoll verwechseln.
Was IPv6 aus der routinemäßigen Weiterleitung entfernt
IPv6 hat keine Prüfsumme im festen Header, sodass eine Änderung des Hop-Limits keine Aktualisierung einer Prüfsumme des Vermittlungsschicht-Headers erfordert. Fehlerprüfungen auf Sicherungs- und Transportschicht bleiben wichtig. UDP-Prüfsummen sind über IPv6 normalerweise verpflichtend, mit einer eng begrenzten Ausnahme für bestimmte Tunnel; über IPv4 sind sie optional.
IPv6-Router fragmentieren nie. Ein zu großes Paket wird verworfen und löst eine ICMPv6-Paket-zu-groß-Meldung aus; die Quelle verringert dann die Größe oder nutzt einen Fragment-Header. Jede IPv6-Verbindung muss eine IPv6-MTU von mindestens 1.280 Byte unterstützen, gegebenenfalls mit Anpassung auf einer niedrigeren Schicht. Fragmentierung an der Quelle ist weiterhin möglich.
Optionen wandern in Erweiterungsheader, sodass die Länge des Basisheaders fest bleibt. Die beiden Adressen belegen 32 der 40 Byte oder 80 %. Bei einer Gesamtgröße von 1.500 Byte macht der IPv6-Header mit 40 Byte etwa 2,7 % aus, gegenüber etwa 1,3 % für den üblichen IPv4-Header mit 20 Byte.
Adressschreibweise und lokaler Betrieb
Schreibe Adressen als acht hexadezimale Gruppen. Entferne führende Nullen in einer Gruppe und fasse eine Folge von Nullgruppen mit „::“ zusammen. So wird 2001:0db8:0000:0000:0000:0000:0000:0001 zu 2001:db8::1; 2001:db8::/32 ist für Dokumentation reserviert.
Hosts können SLAAC mit Routerankündigungen oder DHCPv6 nutzen. IPv6 hat Multicast statt Broadcast. ICMPv6 überträgt Neighbor Discovery, das die lokale Adressauflösung von ARP ersetzt, sowie wichtige Fehlerrückmeldungen. Der größere Adressraum macht NAT zur gemeinsamen Adressnutzung im Allgemeinen unnötig.
Wichtige Erkenntnisse
- Der feste IPv6-Header umfasst 40 Byte und hat Quell- und Zieladressen mit je 128 Bit.
- Die Nutzlastlänge schließt den festen Header aus, aber Erweiterungen ein.
- „Nächster Header“ verknüpft Erweiterungen miteinander und mit dem Protokoll der höheren Schicht.
- IPv6 verzichtet auf die IP-Headerprüfsumme und die Fragmentierung durch Router.
- Die Quelle kann fragmentieren; eine IPv6-Verbindung muss eine MTU von mindestens 1.280 Byte unterstützen.
- SLAAC, DHCPv6, Multicast und Neighbor Discovery unterstützen den Betrieb von IPv6-Hosts.
4.2 Wähle Dual Stack, Tunneling oder Protokollübersetzung
Ein Host, der nur IPv4 beherrscht, kann nicht direkt IP-Pakete mit einem Host austauschen, der nur IPv6 beherrscht. Jedes weiterleitende Gerät muss das Paket verstehen, das es verarbeitet. Daher erfordert der Ersatz eines Protokolls der Vermittlungsschicht eine koordinierte Änderung in einem riesigen bestehenden Netz. IPv4 und IPv6 bestehen folglich nebeneinander. Das kleine ARPANET konnte am 1. Januar 1983 auf TCP/IP umgestellt werden; das Internet kann einen solchen allgemeinen „Stichtag“ nicht wiederholen.
Betreibe beide mit Dual Stack
Ein Dual-Stack-Host oder -Router implementiert beide IP-Versionen und hat Adressen für beide. DNS kann A-Einträge für IPv4 und AAAA-Einträge für IPv6 zurückgeben. Der Client kann sich dann mit einer Version verbinden, die beide Endpunkte unterstützen.
Happy Eyeballs vermeidet lange Verzögerungen bei einem defekten Pfad, indem es Verbindungsversuche über verfügbare Adressen und Adressfamilien zeitlich überlappen lässt. Üblicherweise beginnt es mit IPv6 und lässt IPv4 kurz darauf folgen. Genutzt wird die Verbindung, die zustande kommt. Dual Stack übersetzt keine Pakete; eine einzelne Verbindung nutzt eine IP-Version.
Übertrage IPv6 durch einen IPv4-Abschnitt
Ein Tunnel verpackt ein vollständiges IPv6-Datagramm in einer IPv4-Nutzlast. Der äußere IPv4-Header bezeichnet Tunneleingang und -ausgang, und Protokoll 41 bezeichnet gekapseltes IPv6. Router, die nur IPv4 beherrschen, können das Paket anhand dieses äußeren Headers übertragen, ohne den inneren zu interpretieren.
Angenommen, Host A, 2001:db8:1::10, sendet an Host F, 2001:db8:2::20. Router B, 192.0.2.1, ist der Tunneleingang; Router E, 198.51.100.2, ist der Ausgang. Die Router C und D dazwischen verarbeiten nur IPv4.
B leitet das IPv6-Paket weiter, verringert dabei sein Hop-Limit und fügt den äußeren Header von B nach E hinzu. C und D verringern beim Weiterleiten die äußere IPv4-TTL. E entfernt den äußeren Header, verringert das innere Hop-Limit bei der Weiterleitung in Richtung F und sendet das IPv6-Paket weiter. Ein anfängliches Hop-Limit von 64 erreicht F als 62. Der Tunnel wirkt wie eine IPv6-Verbindung; seine internen IPv4-Router verbrauchen nicht jeweils einen IPv6-Hop. Die innere Quelle und das innere Ziel bleiben A und F.
Die äußere Hülle benötigt Platz. Bei einem äußeren IPv4-Header mit 20 Byte und einer zugrunde liegenden MTU von 1.500 bleiben höchstens 1.480 Byte für das gesamte innere IPv6-Datagramm. Tunneling wird auch in VPNs und Mobilfunknetzen genutzt.
Übersetze für inkompatible Endpunkte
NAT64 wandelt zwischen IPv6- und IPv4-Headern um und speichert dabei den Übersetzungszustand. DNS64 kann aus der Adresse eines IPv4-Servers ein IPv6-Ziel erzeugen, häufig unter Verwendung von 64:ff9b::/96. Bei 192.0.2.33 lauten die letzten vier Bytes hexadezimal C0 00 02 21, was 64:ff9b::c000:221 ergibt.
Ein reiner IPv6-Client sendet an diese erzeugte Adresse. NAT64 sendet das entsprechende IPv4-Paket an den Server und übersetzt anschließend die Antwort zurück. DNS64 stellt das nutzbare Ziel bereit; NAT64 führt die Paketumwandlung aus. Einige reine IPv6-Mobilfunkzugangsnetze nutzen diese Anordnung.
Eine Übersetzung kann nicht jedes Merkmal erhalten: IPv4 hat keine direkte Entsprechung für das IPv6-Flow-Label oder dessen Erweiterungsheaderstruktur. Ein Tunnel erhält ein Paket innerhalb einer Hülle, während eine Übersetzung seine Protokolldarstellung verändert.
Die Einführung verläuft je nach Netz und Land weiterhin unterschiedlich. Erhält ein Host IPv6, wird er dadurch nicht direkt mit IPv4 kompatibel; zur Kommunikation mit einem reinen IPv4-Dienst benötigt er weiterhin IPv4-Unterstützung oder einen Übersetzungspfad.
Wichtige Erkenntnisse
- Dual Stack implementiert beide Protokolle, ohne Pakete umzuwandeln.
- Ein Tunnel kapselt IPv6 in IPv4; im äußeren Header steht Protokoll 41.
- IPv4-Router innerhalb des Tunnels verringern nur die äußere TTL.
- Eine Tunnelhülle mit 20 Byte verringert die verfügbare innere MTU um 20 Byte.
- DNS64 erzeugt eine Adresse und NAT64 übersetzt Pakete für reine IPv4-Dienste.
5Programmiere Weiterleitung und bewerte Middleboxes
Die Zielabfrage ist eine Möglichkeit zu entscheiden, was mit einem Paket geschieht. Eine Flow-Tabelle kann mehrere Headerfelder abgleichen und Aktionen zum Weiterleiten, Verwerfen oder Neuschreiben wählen. SDN koordiniert diese lokalen Entscheidungen über ein Netz hinweg. Sobald Geräte Verkehr auch übersetzen, filtern oder verteilen, stellt sich eine Architekturfrage: Welche Funktionen gehören in das Netz, und welche benötigen weiterhin das Wissen, das nur an den Endpunkten verfügbar ist?
5.1 Wende Abgleichbedingungen, Prioritäten und Aktionen von Flow-Tabellen an
Verallgemeinerte Weiterleitung erweitert die zielbasierte Tabellenabfrage zu einem umfassenderen Modell aus Abgleich und Aktion. Ein Switch vergleicht Paketheaderfelder mit Einträgen und führt die gewählte Aktion aus. Dasselbe Gerät kann abhängig von den installierten Regeln als IP-Router, Ethernet-Switch, Firewall, Übersetzer oder Lastverteiler arbeiten.
Lies einen Eintrag
Ein Eintrag legt Abgleichfelder, Priorität und Aktionen fest. Er hat außerdem Zähler, etwa für passende Pakete und Bytes sowie die seit der Installation verstrichene Zeit. Ein Inaktivitätszeitlimit entfernt einen Eintrag nach einer Zeit ohne passende Pakete; ein absolutes Zeitlimit entfernt ihn nach einer festen Zeit seit der Installation, selbst wenn der Verkehr anhält.
OpenFlow 1.0 stellt zwölf Abgleichfelder bereit: Eingangsport; Quell-MAC, Ziel-MAC, EtherType, VLAN-ID und VLAN-Priorität; Quell-IP, Ziel-IP, IP-Protokoll und IP-Diensttyp-DSCP-Bits; sowie Quell- und Zielport der Transportschicht. Diese umfassen mehrere Schichten. TTL ist in dieser Version kein unterstütztes Abgleichfeld. Spätere Versionen unterstützen zusätzliche Felder, darunter IPv6-Felder.
Ein Platzhalter akzeptiert jeden Wert in seinem Feld. Beispielsweise bezeichnet das Ziel 10.2.. den Bereich 10.2.0.0/16. Sind alle Felder Platzhalter, passt der Eintrag zu jedem Paket. Eine Regel für TCP-Port 22 benötigt außerdem den passenden IP-/TCP-Protokollabgleich, damit das Transportportfeld die beabsichtigte Bedeutung hat.
Löse überlappende Übereinstimmungen auf
Bei überlappenden Platzhalterregeln gewinnt die größte explizite Priorität. Die Spezifität allein bestimmt nicht den Gewinner. OpenFlow 1.0 hat eine zusätzliche Regel: Ein vollständig exakter Eintrag ohne Platzhalterfelder hat Vorrang vor Platzhaltereinträgen. Eine Regel, die eine exakte IP-Adresse abgleicht und andere Felder als Platzhalter belässt, ist weiterhin ein Platzhaltereintrag.
Betrachte zwei Einträge, bei denen alle nicht genannten Felder Platzhalter sind:
| Abgleich | Priorität | Aktion |
|---|---|---|
| IPv4, TCP, Zielport 22 | 100 | Verwerfen |
| IPv4, Ziel 10.2.0.0/16 | 10 | Über Port 3 weiterleiten |
Ein TCP-Paket für 10.2.0.5:22 passt zu beiden und wird verworfen. Ein TCP-Paket für 10.2.0.5:443 passt nur zum Weiterleitungseintrag. Das unterscheidet sich vom längsten Präfixabgleich: Der Gewinner ergibt sich aus der zugewiesenen Priorität, nicht aus der Länge des Zielpräfixes.
Führe eine Aktion aus
Die Weiterleitung kann einen Ausgang, mehrere Ausgänge zum Kopieren oder die Zustellung an den Controller wählen. Eine leere Aktionsliste verwirft das Paket. Änderungsaktionen schreiben unterstützte Headerfelder neu, etwa eine Ziel-IP-Adresse und einen Transportport, bevor das Paket weitergesendet wird.
Bei einem Table Miss passt kein Eintrag. In OpenFlow 1.0 sendet der Switch das Paket an den Controller; allgemeinere Flow-Tabellenentwürfe können für diesen Fall das Verwerfen oder eine Anfrage an den Controller konfigurieren. Der Controller kann einen Eintrag installieren, sodass spätere Pakete auf dem schnellen lokalen Pfad bleiben.
Der Flow-Abgleich liest Header. Die Untersuchung von Anwendungsnutzlasten ist Deep Packet Inspection, eine separate Funktion, die der gewöhnliche OpenFlow-Abgleich nicht bietet. Ebenso ist OpenFlow ein Protokoll zur Switch-Steuerung, während SDN die umfassendere Architektur ist, die Steuerung und Weiterleitung trennt. Sprachen für programmierbare Datenebenen wie P4 können festlegen, welche Header ein Gerät analysiert, und erweitern so die Programmierbarkeit über eine feste Liste von Abgleichfeldern hinaus.
Wichtige Erkenntnisse
- Flow-Einträge verbinden Abgleichbedingungen, Prioritäten, Aktionen, Zähler und Zeitlimits.
- OpenFlow 1.0 gleicht eine feste Auswahl von Feldern über mehrere Schichten hinweg ab.
- Die Priorität von Platzhaltereinträgen ist explizit; ein vollständig exakter OpenFlow-1.0-Eintrag hat Vorrang.
- Weiterleiten, Verwerfen, Zustellung an den Controller und Headeränderung setzen unterschiedliches Verhalten um.
- Die Behandlung eines Table Miss muss von einem ausdrücklichen Verwerfungseintrag unterschieden werden.
- Der Headerabgleich untersucht keine Anwendungsnutzlasten.
5.2 Koordiniere lokale Regeln zu einem SDN-Netz
Ein Switch kann eine Regel korrekt anwenden, während ein Paket weiter entlang des Pfades dennoch scheitert. Software-defined Networking (SDN) nutzt einen Controller und Netzwerkanwendungen, um das Weiterleitungsverhalten mehrerer Switches zu koordinieren.
Trenne die Aufgaben
SDN verbindet datenstrombasierte Weiterleitung, die Trennung von Daten- und Steuerungsebene, Steuerungsfunktionen außerhalb der Switches und Softwareschnittstellen zur Programmierung des Netzes. Eine Southbound-Schnittstelle wie OpenFlow überträgt Anweisungen zwischen Controller und Switches. Eine Northbound-Schnittstelle ermöglicht Netzwerkanwendungen, Verhalten beim Controller anzufordern.
Der Controller ist logisch zentralisiert: Er stellt ein koordiniertes Steuerungssystem dar. Produktivsysteme können diese Steuerung für Skalierbarkeit und Zuverlässigkeit auf mehreren physischen Servern replizieren. Ein Paket, das bereits von einem Flow-Eintrag abgedeckt ist, wird im Switch ohne Umlauf zum Controller bearbeitet.
Erstelle einen Pfad Switch für Switch
Verkehr aus 10.1.0.0/16 an s1 muss 10.3.0.0/16 über s2 und s3 erreichen. Wenn die anderen Felder Platzhalter sind, lauten die relevanten Pfadeinträge:
- Auf s1: Eingang 1, Quelle 10.1.0.0/16, Ziel 10.3.0.0/16 → Ausgang 4 in Richtung s2.
- Auf s2: Eingang 2, Quelle 10.1.0.0/16, Ziel 10.3.0.0/16 → Ausgang 3 in Richtung s3.
- Auf s3: Ziel 10.3.0.6 → Ausgang 1 in Richtung dieses Hosts.
Jeder Ausgang muss zu einer Verbindung führen, deren empfangender Switch einen passenden Eintrag hat. Ein fehlender Eintrag kann ein Blackhole erzeugen; unvereinbare Einträge können Pakete in eine Schleife schicken. Der Abgleich von Quelle und Ziel ermöglicht es Verkehr aus unterschiedlichen Quellnetzen, verschiedene Pfade zum selben Ziel zu nehmen. Eine reine Zielabfrage kann diese Unterscheidung nicht treffen.
Nutze denselben Mechanismus für mehrere Aufgaben
Eine Firewall kann Quelle 10.3.0.0/16 mit Priorität 200 weiterleiten und allen Verkehr mit Priorität 100 verwerfen. Füge einen Eintrag zum Verwerfen von IPv4/TCP-Zielport 22 mit Priorität 300 hinzu, um SSH auch aus dem erlaubten Quellnetz zu blockieren. Dies sind Platzhalterregeln, sodass ihre expliziten Prioritäten bei Überlappung entscheiden. Würde man die Prioritäten umkehren, könnte die allgemeinere Erlaubnis die beabsichtigte SSH-Blockierung aushebeln.
Ein Ethernet-Weiterleitungseintrag kann Ziel-MAC 22:A7:23:11:E1:02 abgleichen und unabhängig von IP-Adressen Ausgangsport 3 wählen. Ein Paar von Lastverteilungsregeln kann Verkehr zum Ziel 10.4.0.0/16 aus Quelle 10.1.0.0/16 über Port 3 und aus 10.2.0.0/16 über Port 4 senden, sofern beide Pfade dieses Ziel erreichen. Das Neuschreiben von Adresse und Port vor der Weiterleitung kann NAT-Verhalten umsetzen.
Trenne lokale und netzweite Korrektheit
Die Prüfung eines Switches belegt nur dessen Abgleich und Aktion. Um einen Pfad zu prüfen, verfolge den tatsächlichen Header und Eingangsport des Pakets durch jeden Switch, einschließlich aller Headeränderungen. Prüfe auch die Rückrichtung, wenn die Anwendung Antworten benötigt: Das Installieren eines Hinwegs installiert nicht automatisch den Rückweg.
SDN wird in Rechenzentren, Netzen zwischen Rechenzentren wie Googles B4 und Mobilfunk-Kernnetzen eingesetzt. Softwaresteuerung und handelsübliche standardisierte Switches ermöglichen Betreibern, Verhalten zu ändern, ohne vom Funktionszyklus eines Spezialgeräts eines einzelnen Herstellers abzuhängen. Die Routenberechnung gehört zur Steuerungsebene; der Abgleich der installierten Einträge bleibt Aufgabe der Datenebene.
Wichtige Erkenntnisse
- SDN koordiniert datenstrombasierte Weiterleitung durch separate Steuerungssoftware.
- Southbound-Schnittstellen erreichen Switches; Northbound-Schnittstellen erreichen Anwendungen.
- Logische Zentralisierung kann durch replizierte Controller-Server umgesetzt werden.
- Jeder Hop benötigt einen passenden Eintrag für das tatsächlich ankommende Paket.
- Quellabhängige Pfade, Filtern, Vermitteln und Neuschreiben nutzen dasselbe Modell aus Abgleich und Aktion.
5.3 Wäge Middleboxes gegen den Ende-zu-Ende-Entwurf ab
Eine Middlebox ist ein Gerät auf dem Kommunikationspfad, das mehr tut als die standardmäßige Weiterleitungsaufgabe eines gewöhnlichen IP-Routers. RFC 3234 nennt Funktionen wie Übersetzung, Filterung und Verkehrsoptimierung. Ein einzelnes Heimgateway kann Routing, NAT und eine Firewall verbinden.
Warum Betreiber Funktionen auf dem Pfad einsetzen
NAT ermöglicht die gemeinsame Nutzung von Adressen. Sicherheitsgeräte, darunter Firewalls und Systeme zur Angriffserkennung, blockieren oder markieren Verkehr anhand von Headern oder Inhalten. Zu Geräten zur Leistungsverbesserung gehören Lastverteiler, Caches, Server zur Inhaltsauslieferung und WAN-Optimierer. Ein Paket kann auf einem Weg mehreren solchen Funktionen begegnen.
Ein Lastverteiler stellt Clients eine Dienstadresse bereit und verteilt Verbindungen auf Server. Bei einer gewöhnlichen zustandsbehafteten Verbindung müssen Pakete denselben Backend-Server erreichen. Ein Hash des 5-Tupels, also von Quelladresse, Zieladresse, Quellport, Zielport und Protokoll, kann diese Auswahl einheitlich machen. Für jedes Paket einen anderen Backend-Server zu wählen, würde eine Verbindung unterbrechen, deren Zustand nur auf dem ausgewählten Server vorhanden ist.
Diese Funktionen nutzten früher häufig geschlossene Spezialgeräte. Heute können sie auf handelsüblichen Switches, unter SDN-Steuerung oder als Netzwerkfunktionsvirtualisierung (NFV) laufen: als Softwareimplementierungen von Funktionen wie NAT oder Firewalls auf gewöhnlichen Servern. NFV beschreibt, wie die Funktion implementiert ist; SDN beschreibt, wie die Steuerung organisiert ist.
Das IP-Sanduhrmodell
Das Internet hat viele Anwendungen und Transportprotokolle oberhalb von IP und viele Verbindungs- und physikalische Technologien darunter. IP bildet ihre gemeinsame schmale Taille. Eine neue Anwendung benötigt nicht für jede Verbindungstechnologie eine andere Vermittlungsschicht, und eine neue Verbindung benötigt keine separate Unterstützung für jede Anwendung.
Die in RFC 1958 beschriebene Architekturtradition stellt Konnektivität in den Mittelpunkt, nutzt IP als gemeinsamen Mechanismus und legt einen großen Teil der Intelligenz an die Endpunkte. Middleboxes ergänzen Funktionen innerhalb dieses gemeinsamen Pfades, verbreitern die Taille und machen Kommunikation von Verhalten abhängig, das über gewöhnliche IP-Weiterleitung hinausgeht.
Wende das Ende-zu-Ende-Argument an
Das Ende-zu-Ende-Argument, erstmals 1981 von Saltzer, Reed und Clark vorgestellt, fragt, wo eine Funktion vollständig und korrekt implementiert werden kann. Erfordert dies Anwendungswissen, das nur an den Endpunkten verfügbar ist, bleibt die Implementierung an den Endpunkten nötig, selbst wenn das Netz eine teilweise Umsetzung bereitstellt.
Für eine zuverlässige Dateiübertragung reicht eine fehlerfreie Zustellung auf den einzelnen Verbindungen nicht aus. Ein Speicherfehler im Router, ein Softwarefehler oder ein Festplattenproblem kann die Datei weiterhin verändern. Die empfangende Anwendung muss die gesamte empfangene Datei prüfen, etwa mit einer vereinbarten Prüfsumme, und bei einem abweichenden Ergebnis eine Korrektur anfordern. Lokale Übertragungswiederholungen auf einer störanfälligen WLAN-Verbindung können dennoch die Leistung verbessern, indem sie häufige Fehler schnell beheben. Sie ersetzen die Prüfung der Datei nicht.
Die Kosten der Abhängigkeit von heutigen Protokollen
Middleboxes können den Adressverbrauch senken, die Durchsetzung von Sicherheitsrichtlinien verbessern und die Zustellung beschleunigen. Sie können auch direkte Kommunikation einschränken und Protokollverkrustung verursachen: Geräte setzen ein vertrautes Protokollformat voraus und weisen unbekanntes Verhalten ab oder verändern es. Ein neues Transportprotokoll kann scheitern, selbst wenn die Software an den Endpunkten es unterstützt.
QUIC nutzt UDP, um das verbreitete Verhalten installierter NATs und Firewalls zu passieren, und verschlüsselt die meisten Transportinformationen, sodass Geräte dazwischen weniger Gelegenheit haben, von deren Details abhängig zu werden. Der Entwurf wägt Einsetzbarkeit gegen Entwicklungsspielraum ab. Das heutige Internet enthält programmierbare Switches, Inhaltsauslieferungssysteme und große Rechenzentren; der Ende-zu-Ende-Entwurf bleibt eine Orientierung dafür, welche Endpunktprüfungen in diesem komplexeren Netz unverzichtbar sind.
Wichtige Erkenntnisse
- Middleboxes fügen dem Datenpfad Übersetzungs-, Sicherheits- oder Leistungsfunktionen hinzu.
- Eine zustandsbehaftete Verbindung benötigt eine einheitliche Auswahl des Backend-Servers.
- Die schmale Taille von IP ermöglicht die unabhängige Entwicklung der Technologien darüber und darunter.
- Ende-zu-Ende-Korrektheit kann trotz zuverlässiger Verbindungen Prüfungen an den Endpunkten erfordern.
- Lokale Wiederherstellung kann die Leistung verbessern, ohne die Prüfung an den Endpunkten zu ersetzen.
- Middleboxes können durch Protokollverkrustung die Einführung neuer Protokolle erschweren.
Vermittlungsschicht Datenebene: Beispiele
1Verfolge ein Paket von der Tabellenabfrage bis zum Senden
15 Schritte
- 1EinführungBeginne mit einem ankommenden Paket
Ein Router hat gelernt, wie er ein Netz erreicht, aber mehrere Pakete kommen gleichzeitig an. Um vorherzusagen, was geschieht, verfolge drei Entscheidungen: Die Tabelle wählt einen Ausgang, das Koppelnetz überträgt das Paket und der Scheduler wählt ein Paket zum Senden.
Diese Entscheidungen können unabhängig voneinander gelingen: Der richtige Ausgang kann bekannt sein, auch wenn das Paket auf eine Ressource warten muss.
- 2AnalogieUnterscheide den Plan von der nächsten Ausfahrt
Die Planung einer Autofahrt ähnelt dem Routing: Ein Weg über viele Straßen wird festgelegt. Die Wahl der vorgesehenen Ausfahrt an einem Autobahnkreuz ähnelt der Weiterleitung: Der Plan wird lokal umgesetzt.
Bei einem Router stellt die Steuerungsebene die Weiterleitungstabelle bereit und die Datenebene wendet sie auf Pakete an. Ein neues Paket benötigt eine Tabellenabfrage; eine ausgefallene Verbindung kann erfordern, dass die Steuerungsebene den Plan überarbeitet.
- 3HerausforderungOrdne die Aufgaben nach einem Verbindungsausfall zu
Ein Router erfährt, dass eine Verbindung ausgefallen ist, ändert seine Tabelle und sendet dann ein ankommendes Paket über eine andere Schnittstelle. Welcher Teil ist Aufgabe der Steuerungsebene und welcher Aufgabe der Datenebene?
---reveal---
Das Ändern der Weiterleitungsinformationen ist Aufgabe der Steuerungsebene. Das Anwenden des neuen Eintrags auf das ankommende Paket ist Weiterleitung auf der Datenebene. Das Paket selbst löst nicht an jedem Hop eine vollständige Routenberechnung aus.
- 4KernaussageUnterscheide IP-Zustellung und TCP-Wiederherstellung
IP bietet Best-Effort-Übertragung. Ein Datagramm kann verschwinden oder in anderer Reihenfolge ankommen, und IP überträgt es nicht erneut.
TCP erkennt Verluste, sendet fehlende Daten erneut und stellt an den Endpunkten die Bytereihenfolge wieder her. Dass eine Datei vollständig ankommt, belegt daher nicht, dass die Vermittlungsschicht jedes Paket garantiert hat. Die Anwendung profitiert davon, dass mehrere Schichten unterschiedliche Aufgaben erfüllen.
- 5ErklärungBetritt den Router
Ein Eingangsport empfängt den Datenrahmen, entnimmt das IP-Datagramm und ermittelt anhand seiner lokalen Weiterleitungsinformationen einen Ausgang. Das Koppelnetz verbindet diesen Eingang mit dem gewählten Ausgang.
Der Ausgangsport kann das Datagramm puffern, die ausgehende Rahmung der Sicherungsschicht hinzufügen und es übertragen. Ein separater Routingprozessor übernimmt Steuerung und Verwaltung; er wird nicht bei jeder gewöhnlichen Hardwareabfrage konsultiert.
- 6BeispielFinde jedes passende Präfix
Die Tabelle enthält 10.0.0.0/8 → Ausgang 0, 10.44.0.0/16 → Ausgang 1, 10.44.16.0/20 → Ausgang 2 und /0 → Ausgang 3. Das Ziel ist 10.44.23.9.
Es passt zu /8 und /16. Auch /20 passt, weil sein Bereich im dritten Oktett 16–31 umfasst. Die Standardroute passt zu jeder Adresse. Zuerst werden alle Kandidaten gefunden, bevor der längste ausgewählt wird.
- 7BeispielWähle das spezifischste passende Präfix
Von den passenden Präfixen ist /20 am längsten, daher verlässt das Paket den Router über Ausgang 2. Weder die erste passende Zeile noch die größte Ausgangsnummer entscheidet das Ergebnis.
Für das Ziel 10.44.40.9 passt /20 nicht mehr, sodass /16 Ausgang 1 wählt. Eine Weiterleitungsausnahme gilt nur innerhalb ihres eigenen Bitpräfixes; außerhalb davon bleibt der allgemeinere Eintrag nützlich.
- 8HerausforderungNutze ein Präfix, das innerhalb eines Oktetts endet
Die Tabelle enthält außerdem 10.44.24.0/21 → Ausgang 4. Wohin gehen Pakete für 10.44.26.8 und 10.44.19.8?
---reveal---
Das Präfix /21 deckt die Werte 24–31 im dritten Oktett ab, daher nimmt 10.44.26.8 Ausgang 4. Die Adresse 10.44.19.8 passt weiterhin zu /20, aber nicht zu /21, und nimmt daher Ausgang 2. Vergleiche die Präfixbits, bevor du die Präfixlängen vergleichst.
- 9VerbindungErkenne die Bedeutung des Koppelnetzes
Ein gemeinsam genutzter Bus überträgt jeweils ein Paket, selbst wenn zwei Pakete zu unterschiedlichen Ausgängen wollen. Ein Kreuzschienenverteiler kann gleichzeitig verschiedene Eingänge mit verschiedenen Ausgängen verbinden.
Diese Parallelität hat eine Grenze: Zwei Pakete, die denselben Ausgang anfordern, konkurrieren weiterhin. Die Tabellenabfrage wählt ein Ziel für das Paket; sie reserviert nicht genug Ausgangskapazität, um alle gleichzeitig ankommenden Pakete zu übertragen.
- 10ErklärungFinde ein blockiertes Paket
In einer FIFO-Eingangswarteschlange wartet das vorderste Paket auf den belegten Ausgang A. Das nächste Paket will zum freien Ausgang B, kann aber das vordere Paket nicht passieren. Das ist Head-of-Line-Blocking.
Separate virtuelle Ausgangswarteschlangen ermöglichen dem Eingang, ein Paket für B anzubieten, ohne zuerst sein Paket für A zu senden. Eine Ausgangswarteschlange ist ein anderes Problem: Pakete erreichen einen Ausgang bereits schneller, als seine Verbindung sie senden kann.
- 11BeispielBerechne die Verzögerung aus wartenden Bytes
Vor einem aufgenommenen Paket warten 600.000 Byte auf einer Verbindung mit 12 Mb/s. Rechne die Warteschlange zuerst in Bits um: 4.800.000 Bit. Division durch 12.000.000 Bit pro Sekunde ergibt 0,4 s, bevor die Übertragung beginnen kann.
Ein großer Puffer kann daher eine spürbare Verzögerung verursachen, ohne voll zu sein. Wird Tail Drop eingesetzt und ist der Puffer vollständig gefüllt, wird ein neu ankommendes Paket verworfen, statt sich in die Warteschlange einzureihen.
- 12HerausforderungWende nichtpräemptives Prioritätsscheduling an
Paket K mit niedriger Priorität wird bereits übertragen. M mit hoher Priorität kommt an, dann N mit niedriger und dann P mit hoher Priorität. Wie lautet die Sendereihenfolge?
---reveal---
K wird zuerst fertig übertragen, weil die Bedienung nichtpräemptiv ist. M und P folgen in ihrer FIFO-Reihenfolge innerhalb der hohen Priorität, danach N. Die Priorität ändert die nächste Auswahl; sie unterbricht nicht die Bits eines Pakets, das bereits übertragen wird.
- 13KernaussageTeile Bits auf, nicht nur Paketsendeplätze
Das Round-Robin-Verfahren gibt nicht leeren Klassen Paketsendeplätze. Bei ungleichen Paketlängen müssen gleiche Sendeplätze nicht gleiche Bandbreite bedeuten.
WFQ berücksichtigt die Länge, um eine gewichtete Bedienung Bit für Bit anzunähern. Die Gewichte 2:1 auf einer Verbindung mit 90 Mb/s ergeben etwa 60 und 30 Mb/s, wenn in beiden Klassen ständig Pakete warten. Wird eine Klasse leer, lässt ein arbeitserhaltender Scheduler die andere die verfügbare Kapazität nutzen.
- 14HerausforderungVerbinde Weiterleitung und Warteschlangen
Eine /24-Abfrage wählt korrekt Ausgang 5. Drei gleich große Pakete erreichen diesen Ausgang während einer Paketübertragungszeit; die Verbindung sendet eines. Würde der Austausch der Weiterleitungstabelle oder ein schnelleres Koppelnetz die verbleibende Warteschlange beseitigen?
---reveal---
Nein. Zwei Pakete warten weiterhin, weil die Ausgangsverbindung in dieser Zeit nur eines übertragen kann. Die Tabellenabfrage hat bestimmt, wohin sie gehen; ein schnelleres Koppelnetz kann die Übertragungsrate dieser ausgehenden Verbindung nicht erhöhen.
- 15ZusammenfassungErmittle die Stufe, die die Zustellung begrenzt
Frag dich, was eine Verzögerung erkennen lässt. Ein falscher Ausgang weist auf Weiterleitungsinformationen oder den Abgleich hin. Ein freier Ausgang, der wegen eines Pakets am Anfang einer Eingangswarteschlange ungenutzt bleibt, weist auf HOL-Blocking hin. Mehrere ankommende Pakete für eine belegte Verbindung weisen auf Konkurrenz um den Ausgang hin.
Eine Verwerfungsregel entscheidet, was gepuffert bleibt, während ein Scheduler entscheidet, welches gespeicherte Paket als Nächstes gesendet wird. Diese Beobachtungen zeigen unterschiedliche Ursachen, selbst wenn die Anwendung dasselbe Symptom sieht: ein verspätetes oder fehlendes Paket.
2Entschlüssle einen Header und fragmentiere seine Nutzlast
12 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungLies die Zähleinheiten vor dem Rechnen
- 2BeispielEntschlüssle das erste Byte und die Größe
- 3ErklärungErkenne, welche Felder sich ändern
- 4BeispielAddiere einen Prüfsummenübertrag zurück
- 5HerausforderungUnterscheide Headerdaten und Anwendungsdaten
- 6BeispielBestimme den Platz für Fragmentdaten
- 7BeispielZerlege die Nutzlast und füge Header hinzu
- 8BeispielOrdne Fragmente in der ursprünglichen Nutzlast ein
- 9HerausforderungSetze Fragmente unabhängig von ihrer Ankunftsreihenfolge zusammen
- 10TippRunde ab, wenn die MTU nicht genau passt
- 11HerausforderungVerbinde Headerinterpretation und MTU-Behandlung
- 12ZusammenfassungPrüfe die Fragmentierung anhand der Bytebereiche
3Tritt einem Netz bei und verfolge eine übersetzte Verbindung
11 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungBeginne, bevor der Host eine Adresse hat
- 2BeispielFinde einen DHCP-Server
- 3BeispielWähle und bestätige das Angebot
- 4HerausforderungBerechne die Zeitpunkte des Leases
- 5BeispielErstelle die ausgehende Übersetzung
- 6BeispielWende die Zuordnung auf die Antwort an
- 7HerausforderungHalte gleiche private Ports auseinander
- 8KernaussageUnterscheide Zuordnung und Sicherheitsrichtlinie
- 9VerbindungErkenne eine zweite Übersetzungsgrenze
- 10HerausforderungBeziehe eine neu zugewiesene Adresse auf den bestehenden NAT-Zustand
- 11ZusammenfassungBetrachte die beiden Arten von Zustand getrennt
4Verfolge IPv6 über einen Pfad mit gemischten Versionen
12 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungWähle den passenden Kompatibilitätsmechanismus
- 2ErklärungLies den festen Header
- 3BeispielVerfolge eine Erweiterung bis zu TCP
- 4HerausforderungReagiere auf eine kleinere IPv6-Verbindung
- 5VerbindungVerstehe die fehlende Prüfsumme
- 6ErklärungNutze Dual Stack für zwei verfügbare Adressfamilien
- 7BeispielVerpacke das Paket für einen IPv4-Abschnitt
- 8BeispielVerfolge die beiden Lebensdauerfelder
- 9HerausforderungLass Platz für die Hülle
- 10BeispielÜbersetze für einen reinen IPv4-Server
- 11HerausforderungVerbinde das Lesen von Paketen mit der Tunnelkapazität
- 12ZusammenfassungBenenne den Geltungsbereich jedes Headers
5Mache aus Flow-Regeln einen funktionierenden Pfad
14 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungErzeuge Verhalten aus lokalen Entscheidungen
- 2ErklärungLies Abgleichbedingung und Aktion
- 3BeispielLöse zwei passende Platzhaltereinträge auf
- 4HerausforderungUnterscheide exakt und teilweise festgelegt
- 5TippUnterscheide Dauer und Inaktivität
- 6ErklärungVerlagere die Steuerung aus den Switches
- 7BeispielInstalliere die erste Verbindung eines Pfades
- 8BeispielVervollständige die mittleren und letzten Entscheidungen
- 9HerausforderungUntersuche einen Rückweg
- 10VerbindungErkenne die Arbeit einer Middlebox
- 11ErklärungErhalte eine gemeinsame Taille für viele Technologien
- 12HerausforderungEntscheide, wohin die vollständige Prüfung gehört
- 13HerausforderungVerbinde einen korrekten Pfad mit einem korrekten Ergebnis
- 14ZusammenfassungNutze Belege auf der richtigen Ebene
Vermittlungsschicht Datenebene: Übungsaufgaben
Set 1: Erkläre Konfiguration, Warteschlangen und Koexistenz10 Übungsfragen
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Frage 4 von 10
Antwort zeigenAntwort ausblenden
0x0001 zu 0xBEEF addierst; das ergibt 0xBEF0. Das Invertieren aller 16 Bits ergibt 0x410F, die zu speichernde Prüfsumme. Das ähnliche Ergebnis 0x4110 entsteht, wenn man das untere Wort invertiert, bevor man den zyklischen Übertrag berücksichtigt.Frage 5 von 10
Antwort zeigenAntwort ausblenden
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Set 2: Lies Pakete und verfolge lokale Entscheidungen10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 3: Verfolge Paketänderungen entlang des Pfades10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 4: Untersuche Verhalten und kombiniere Paketregeln10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Hängst du bei deiner eigenen Aufgabe fest? Hausaufgabenhilfe
Schlüsselbegriffe
A
Absolutes Zeitlimit
Aktives Warteschlangenmanagement
Ausgangsport
B
Best-Effort-Dienst
Blackhole
Bufferbloat
C
Carrier-Grade NAT
D
Datagramm
Datenebene
DHCP
DHCP-Lease
DHCP-Relay
DNS64
Don't-Fragment-Flag
DSCP
Dual Stack
E
ECN
Eingangsport
Ende-zu-Ende-Argument
Erweiterungsheader
F
Flow-Label
Flow-Priorität
Flow-Tabelle
Forwarding Information Base
Fragment
Fragmentoffset
G
Gesamtlänge
H
Happy Eyeballs
Head-of-Line-Blocking
Headerprüfsumme
Hop-Limit
I
Identifikation
Inaktivitätszeitlimit
IP-Headerlänge
IP-Sanduhrmodell
K
Kapselung
Koppelnetz
Kreuzschienenverteiler
L
Längster Präfixabgleich
Lastverteiler
Lease-Erneuerung
Lebensdauer (TTL)
Logische Zentralisierung
M
Maximale Übertragungseinheit
Middlebox
More-Fragments-Flag
N
Nächster Header
NAPT
NAT64
Neighbor Discovery
Netzwerkfunktionsvirtualisierung
Nichtpräemptives Prioritätsscheduling
Northbound-Schnittstelle
Nutzlastlänge
P
Path MTU Discovery
Platzhalter
Portweiterleitung
Private IPv4-Adresse
Protokollfeld
Protokollverkrustung
R
Rebinding
Round-Robin-Verfahren
Routing
Routingprozessor
S
SLAAC
Software-defined Networking
Southbound-Schnittstelle
Standardgateway
Standardroute
Steuerungsebene
STUN
T
Table Miss
Tail Drop
TCAM
Tunneling
TURN
Ü
Übersetzungstabelle
V
Verallgemeinerte Weiterleitung
Virtuelle Ausgangswarteschlange
W
Weighted Fair Queuing
Weiterleitung
Z
Zyklischer Übertrag
0x1FFFF ergibt nach dem Zurückaddieren 0x0001, da der erste Schritt einen weiteren Übertrag erzeugt, der erneut zurückaddiert wird.#
5-Tupel
Über diese Einheit
Erstelle deine eigenen Lernmaterialien
Mach aus deinen Notizen, Folien und Dokumenten Lernleitfäden, Übungsfragen, Karteikarten und 6 weitere Tools.