4.5 IP-Header IPv4 und IPv6
IPv4 und IPv6 transportieren Daten über Netzgrenzen hinweg. Ihr jeweiliger Header enthält alle Informationen, die Endsysteme und Router für Adressierung, Weiterleitung und Verarbeitung benötigen. Diese Lernseite zeigt die Kapselung eines Transportsegments, erklärt jedes Feld der beiden IP-Header, liest reale Hexadezimalbeispiele und ordnet MTU, Path MTU Discovery sowie Fragmentierung ein.
Kapselung: Jeder Header gehört zu einer Schicht
Anwendungsdaten werden auf dem Weg durch den Protokollstapel schrittweise gekapselt. Ein Transportprotokoll ergänzt beispielsweise einen TCP- oder UDP-Header. IPv4 oder IPv6 ergänzt davor einen IP-Header. Für die Übertragung auf einem Ethernet-Link wird das vollständige IP-Paket anschließend als Nutzlast eines Ethernet-Frames transportiert.
Der Empfänger entfernt und verarbeitet die Header in umgekehrter Reihenfolge. Ein Router beendet dabei nur die lokale Layer-2-Verbindung: Er entfernt den empfangenen Ethernet-Header, verarbeitet den IP-Header und kapselt das Paket für den nächsten Link neu. MAC-Adressen gelten deshalb nur auf dem jeweiligen Link; IP-Adressen identifizieren die Kommunikation über mehrere Netze hinweg.
| Schicht | Protokolldateneinheit | Beispielhafte Bestandteile |
|---|---|---|
| Anwendung | Daten | Anwendungsprotokoll und Nutzdaten |
| Transport | TCP-Segment / UDP-Datagramm | Ports, Sequenzierung oder UDP-Länge |
| Vermittlung | IPv4- oder IPv6-Paket | IP-Quell- und Zieladresse, Weiterleitungsfelder |
| Sicherung | Ethernet-Frame | lokale MAC-Adressen, EtherType und FCS |
| Bitübertragung | Bits beziehungsweise Symbole | physische Übertragung auf dem Medium |
IPv4-Header: variabel zwischen 20 und 60 Byte
Der IPv4-Header wird in 32-Bit-Zeilen dargestellt. Das vier Bit große IHL-Feld enthält die Headerlänge als Anzahl von 32-Bit-Wörtern. Der Mindestwert 5 bedeutet 5 × 4 Byte = 20 Byte. Der Maximalwert 15 bedeutet 60 Byte. Erst nach dieser Länge beginnt die Nutzlast des IPv4-Pakets.
Die ersten vier Bit enthalten im IPv4-Header immer den Wert 4. Ein IPv6-Paket verwendet einen anderen Headeraufbau und ist nicht an einer 6 innerhalb eines IPv4-Headers zu erkennen.
| Feld | Bits | Bedeutung |
|---|---|---|
| Version | 4 | Wert 4 kennzeichnet den IPv4-Header |
| IHL | 4 | Headerlänge in 32-Bit-Wörtern; 5 bis 15 |
| DSCP | 6 | Differentiated Services Code Point für eine konfigurierte Dienstklasse |
| ECN | 2 | Explicit Congestion Notification für signalisierbare Überlast |
| Total Length | 16 | gesamtes IPv4-Paket aus Header und Daten; maximal 65.535 Byte |
| Identification | 16 | unter anderem Zuordnung von Fragmenten eines ursprünglichen Datagramms |
| Flags | 3 | reserviert, DF = Don't Fragment, MF = More Fragments |
| Fragment Offset | 13 | Position eines Fragments in Einheiten von acht Byte |
| TTL | 8 | wird von jedem weiterleitenden Router mindestens um 1 vermindert |
| Protocol | 8 | Typ der enthaltenen Nutzlast, beispielsweise ICMP = 1, TCP = 6 oder UDP = 17 |
| Header Checksum | 16 | Prüfsumme nur über den IPv4-Header; wegen TTL an jedem Router neu berechnet |
| Source Address | 32 | IPv4-Adresse des Absenders |
| Destination Address | 32 | IPv4-Adresse des Ziels |
| Options und Padding | 0 bis 320 | optionale Angaben; Padding richtet den Header auf 32 Bit aus |
DSCP und ECN teilen sich das frühere ToS-Byte
Das historisch als Type of Service bezeichnete Byte wird heute in sechs Bit DSCP und zwei Bit ECN aufgeteilt. DSCP kann Pakete einer administrativ festgelegten Behandlungsklasse zuordnen. Daraus entsteht nur dann eine praktische Priorisierung, wenn die beteiligten Geräte passende QoS-Regeln anwenden; ein gesetzter Wert garantiert für sich allein keine bevorzugte Zustellung.
ECN ermöglicht kompatiblen Endsystemen und Netzgeräten, bevorstehende Überlast zu signalisieren, ohne jedes betroffene Paket allein zu diesem Zweck zu verwerfen. Die Wirkung hängt von der Unterstützung des Transportprotokolls und der Netzinfrastruktur ab.
IPv4-Fragmentierung über drei Felder steuern
Identification, Flags und Fragment Offset gehören zusammen. Ist ein IPv4-Paket größer als die MTU des nächsten Links, darf ein Router es nur fragmentieren, wenn DF nicht gesetzt ist. Alle erzeugten Fragmente tragen eine passende Identification; der Fragment Offset beschreibt die Position, und MF kennzeichnet, dass weitere Fragmente folgen.
Fragmentierung erhöht Aufwand und Fehleranfälligkeit. Fehlt ein Fragment, kann das ursprüngliche Paket nicht vollständig wieder zusammengesetzt werden. Moderne Kommunikation versucht daher, die Path MTU zu ermitteln und passende Paketgrößen bereits am Sender zu verwenden.
| Feld / Wert | Aussage |
|---|---|
| DF = 1 | Paket darf unterwegs nicht fragmentiert werden; bei zu kleiner MTU verwerfen und passende ICMP-Meldung senden |
| MF = 1 | nach diesem Fragment folgen weitere Fragmente |
| MF = 0 | letztes Fragment oder unfragmentiertes Paket |
| Fragment Offset = 0 | Paketbeginn beziehungsweise erstes Fragment |
| Offset > 0 | Position in der ursprünglichen fragmentierbaren Nutzlast, angegeben in 8-Byte-Einheiten |
IPv4-Hexdump schrittweise lesen
Ein Hexdump wird Byte für Byte gelesen. Beim Beispiel beginnt der IPv4-Header nach dem Ethernet-EtherType 0x0800 mit 45 00 00 58 4b ff 40 00 80 06 00 00 c0 a8 b2 31 d4 a2 37 c4. Das erste Byte 0x45 enthält zwei Nibbles: Version 4 und IHL 5. Damit ist der Header 20 Byte lang.
Der Beispielwert der Header Checksum ist 0x0000. In einem lokal aufgezeichneten Paket kann dies durch Checksum Offloading entstehen: Die Netzwerkkarte ergänzt oder prüft die Prüfsumme erst außerhalb des Mitschnittpunkts. Auf dem tatsächlich übertragenen IPv4-Paket muss das Feld korrekt gebildet sein.
| Bytes | Feld | Auswertung |
|---|---|---|
| 45 | Version und IHL | IPv4, 5 × 4 Byte = 20 Byte Header |
| 00 | DSCP und ECN | im Beispiel keine Markierung gesetzt |
| 00 58 | Total Length | 0x0058 = 88 Byte gesamtes IPv4-Paket |
| 4b ff | Identification | 0x4bff |
| 40 00 | Flags und Offset | DF gesetzt, MF nicht gesetzt, Offset 0 |
| 80 | TTL | 0x80 = 128 |
| 06 | Protocol | TCP |
| 00 00 | Header Checksum | im Mitschnitt 0; möglichen Offloading-Effekt beachten |
| c0 a8 b2 31 | Source Address | 192.168.178.49 |
| d4 a2 37 c4 | Destination Address | 212.162.55.196 |
IPv6-Basisheader: fest 40 Byte
IPv6 vereinfacht den Basisheader und macht ihn auf feste 40 Byte. Optionen stehen nicht in einem variablen Basisheader, sondern in Extension Headern. Diese befinden sich zwischen dem IPv6-Basisheader und dem Header des übergeordneten Protokolls.
Die ersten vier Bit enthalten immer 6. Traffic Class verwendet wie bei IPv4 DSCP und ECN. Ein Flow Label kann Pakete desselben Flows kennzeichnen, damit Systeme eine konsistente Behandlung unterstützen können. Es erzwingt jedoch weder einen bestimmten Pfad noch automatisch eine garantierte Dienstgüte.
| Feld | Bits | Bedeutung |
|---|---|---|
| Version | 4 | Wert 6 kennzeichnet den IPv6-Basisheader |
| Traffic Class | 8 | DSCP und ECN analog zur modernen IPv4-Nutzung |
| Flow Label | 20 | Kennzeichnung eines Flows nach den dafür geltenden Regeln |
| Payload Length | 16 | Länge hinter dem 40-Byte-Basisheader einschließlich vorhandener Extension Header |
| Next Header | 8 | Typ des unmittelbar folgenden Headers: Extension Header oder Protokoll der oberen Schicht |
| Hop Limit | 8 | wird von jedem weiterleitenden Knoten um 1 vermindert |
| Source Address | 128 | IPv6-Adresse des Absenders |
| Destination Address | 128 | IPv6-Adresse des aktuellen Ziels; ein Routing Header kann ein späteres Endziel enthalten |
Extension Header bilden eine Headerkette
Das Next-Header-Feld zeigt immer auf den unmittelbar folgenden Header. Folgt direkt TCP, enthält es den Wert 6. Ist zuerst ein Routing-, Fragment- oder anderer Extension Header vorhanden, benennt der IPv6-Basisheader diesen. Der Extension Header besitzt wiederum ein Next-Header-Feld, bis schließlich das Protokoll der oberen Schicht erreicht ist.
IPv6-Router fragmentieren Pakete nicht. Nur der Quellknoten darf bei Bedarf einen Fragment Extension Header erzeugen. Trifft ein Router auf einen Link mit zu kleiner MTU, verwirft er das Paket und sendet ICMPv6 Packet Too Big an die Quelle zurück.
| Beispielkette | Next-Header-Folge |
|---|---|
| IPv6 + TCP | IPv6 Next Header = 6 (TCP) |
| IPv6 + Routing + TCP | IPv6 → Routing Header → TCP |
| IPv6 + Routing + Fragment + UDP | IPv6 → Routing Header → Fragment Header → UDP |
| IPv6 ohne Folgeheader | Next Header = 59 (No Next Header) |
IPv6-Hexdump schrittweise lesen
Im Beispiel beginnt der IPv6-Basisheader nach dem Ethernet-EtherType 0x86dd mit 60 05 e3 1f 00 14 06 ff. Die ersten vier Byte enthalten Version, Traffic Class und Flow Label. Danach folgen Payload Length, Next Header und Hop Limit.
Die beiden 128-Bit-Adressen belegen zusammen 32 der insgesamt 40 Byte des Basisheaders. Beim Ausschreiben werden jeweils zwei aufeinanderfolgende Byte zu einem Hextet zusammengefasst und anschließend nach den IPv6-Regeln gekürzt.
| Bytes | Feld | Auswertung |
|---|---|---|
| 60 05 e3 1f | Version, Traffic Class, Flow Label | Version 6, Traffic Class 0, Flow Label 0x5e31f |
| 00 14 | Payload Length | 0x0014 = 20 Byte hinter dem Basisheader |
| 06 | Next Header | TCP folgt unmittelbar |
| ff | Hop Limit | 0xff = 255 |
| 20 03 00 f4 e7 35 07 00 29 95 3a 19 36 b0 e9 70 | Source Address | 2003:f4:e735:700:2995:3a19:36b0:e970 |
| 2a 01 bc 80 00 05 01 05 00 00 00 00 9b 85 fa 48 | Destination Address | 2a01:bc80:5:105::9b85:fa48 |
IPv4- und IPv6-Header im direkten Vergleich
| Eigenschaft | IPv4 | IPv6 |
|---|---|---|
| Basisheader | variabel 20 bis 60 Byte | fest 40 Byte |
| Adressen | 32 Bit | 128 Bit |
| Paketlänge | Total Length enthält Header und Daten | Payload Length zählt den Bereich nach dem Basisheader |
| Lebensdauer | TTL | Hop Limit |
| Folgeprotokoll | Protocol | Next Header als verkettete Angabe |
| Headerprüfsumme | vorhanden; an jedem Router neu berechnen | keine Prüfsumme im Basisheader |
| Optionale Informationen | Options im variablen Header | separate Extension Header |
| Fragmentierung | Quelle und gegebenenfalls Router, wenn DF nicht gesetzt | nur durch den Quellknoten mit Fragment Header |
MTU, Link MTU und Path MTU
Die Maximum Transmission Unit eines Links gibt an, wie groß ein Netzwerkschichtpaket sein darf, das ohne Fragmentierung in dessen Layer-2-Nutzlast transportiert wird. Bei gewöhnlichem Ethernet beträgt die IP-MTU typischerweise 1500 Byte. Die 14 Byte Ethernet-Header und 4 Byte FCS gehören nicht zu dieser MTU; Präambel und Interpacket Gap ebenfalls nicht.
Die Path MTU ist die kleinste Link MTU auf dem gesamten Weg. Path MTU Discovery versucht, diesen Wert zu ermitteln. IPv4 verwendet dafür üblicherweise DF und ICMP Destination Unreachable, Fragmentation Needed. IPv6-Router senden ICMPv6 Packet Too Big. Werden diese Rückmeldungen fehlerhaft blockiert, können Verbindungen scheinbar beginnen und bei größeren Paketen hängen bleiben.
| Technik / Link | Typischer IP-MTU-Wert | Einordnung |
|---|---|---|
| Ethernet ohne zusätzliche Kapselung | 1500 Byte | weit verbreiteter Standardwert |
| PPPoE über Ethernet | 1492 Byte | klassisch 8 Byte PPPoE-/PPP-Aufwand innerhalb der Ethernet-Nutzlast |
| IPv6 Mindest-Link-MTU | 1280 Byte | jeder IPv6-Link muss die Anforderungen aus RFC 8200 erfüllen |
| Jumbo Frames | häufig etwa 9000 Byte | kein einheitlicher Ethernet-Standardwert; muss auf dem gesamten lokalen Pfad zusammenpassen |
| IPv4 576 Byte | historische Mindestgröße für Reassembly | keine allgemeine ISDN-MTU und nicht als moderner Zielwert missverstehen |
PPPoE und der Unterschied zwischen MTU und Framegröße
Bei Ethernet mit 1500 Byte Nutzlast kann ein vollständiges IP-Paket bis 1500 Byte transportiert werden. Ein ungetaggter Ethernet-MAC-Frame umfasst dann vom Destination-MAC-Feld bis zur FCS typischerweise 1518 Byte. Ein einzelnes 802.1Q-Tag erhöht diese Framegröße auf 1522 Byte, ohne die übliche IP-MTU zwingend zu verändern.
Klassisches PPPoE benötigt innerhalb der Ethernet-Nutzlast acht Byte für PPPoE und PPP. Ohne zusätzliche Verfahren bleiben deshalb 1492 Byte für das IP-Paket. Das ist kein größerer Ethernet-Frame, sondern eine kleinere IP-MTU aufgrund der zusätzlichen Kapselung.
| Beispiel | Layer-2-Nutzlast | Für das IP-Paket verfügbar |
|---|---|---|
| Ethernet, MTU 1500 | 1500 Byte | 1500 Byte |
| PPPoE auf Ethernet | 1500 Byte | typischerweise 1492 Byte nach 8 Byte PPPoE/PPP |
| Ethernet mit 802.1Q | IP-MTU häufig weiterhin 1500 Byte | Tag vergrößert den Layer-2-Frame um 4 Byte |
MTU mit einem Transportbehälter vergleichen
Als Merkhilfe kann ein Transportbehälter dienen: Ein Fahrzeug erlaubt eine begrenzte Gesamtgröße für einen Behälter. Ein Teil davon wird für die äußere Verpackung und Kennzeichnung benötigt; nur der verbleibende Bereich steht für den eigentlichen Inhalt zur Verfügung. Zusätzliche Kapselungen verkleinern den nutzbaren Innenraum, wenn die äußere Maximalgröße gleich bleibt.
Die Analogie hilft beim Verhältnis von Frame, Headern und Nutzdaten, ersetzt aber nicht die Schichtbegriffe. Die Ethernet-MTU bezeichnet die maximal transportierbare Layer-3-PDU, nicht die gesamte Größe einschließlich aller physischen Übertragungsbestandteile.
Header und MTU systematisch prüfen
| Prüfschritt | Leitfrage |
|---|---|
| 1. Startposition | Beginnt die Analyse wirklich am IP-Header oder enthält der Dump davor einen Ethernet-Header? |
| 2. Version | Zeigt das erste Nibble 4 oder 6 und wird der passende Headeraufbau verwendet? |
| 3. Länge | Sind IHL und Total Length bei IPv4 beziehungsweise Payload Length bei IPv6 plausibel? |
| 4. Folgeheader | Verweist Protocol oder die Next-Header-Kette auf das tatsächlich enthaltene Protokoll? |
| 5. Adressen | Wurden jeweils vier beziehungsweise sechzehn Byte korrekt gruppiert und umgerechnet? |
| 6. Weiterleitung | Sind TTL oder Hop Limit ausreichend und werden sie pro Router vermindert? |
| 7. MTU | Passt die Paketgröße zur kleinsten MTU des Pfads und erreichen notwendige ICMP-Meldungen die Quelle? |
| 8. Mitschnitt | Können Checksum-, Segmentierungs- oder Empfangs-Offloading die lokale Darstellung beeinflussen? |
Quellen zur fachlichen Prüfung
- RFC Editor: RFC 791 - Internet Protocol
- RFC Editor: RFC 8200 - Internet Protocol, Version 6 Specification
- RFC Editor: RFC 2474 - Differentiated Services Field
- RFC Editor: RFC 3168 - Explicit Congestion Notification
- RFC Editor: RFC 6864 - Updated Specification of the IPv4 ID Field
- RFC Editor: RFC 1191 - Path MTU Discovery for IPv4
- RFC Editor: RFC 8201 - Path MTU Discovery for IPv6
- RFC Editor: RFC 2516 - PPP over Ethernet
- IANA: Protocol Numbers
PDF-Download nach Anmeldung
Zum Schutz der Unterrichtsunterlagen steht der PDF-Download ausschließlich angemeldeten Nutzern zur Verfügung.
