Einführung

Das IP-Protokoll ist eines der wichtigsten Protokolle. Im TCP/IP Referenzmodell ist dieses auf der Internetschicht (Internet Layer) im OSI Modell auf Schicht 3 angesiedelt.

Zwischenzeitich kann man es in der Presse lesen und auch die Experten läuten das Ende von IPv4 ein. Fakt ist, dass es bald keine IPv4 Adressen mehr vergeben werden können, dass bedeutet aber nicht, dass IPv4 bereits tot ist. Der Adressraum von IPv4 bietet laut Definition 232 also ca. 4.3 Milliarden IP-Adressen platz. Heutzutage können Kühlschränke, Kaffeemaschinen, Telefone usw. an das Netz angeschlossen werden und dies war am Anfang des Internets nicht absehbar. Diese Knappheit erkannte man bereits 1996 und verabschiedete 1998 ein neues Protokoll – IPv6. Das IPv6 bietet nun einen Adressraum von 2128 Adressen. Dies entspricht der gigantischen Zahl von ca. 3,4 * 1038 Adressen. Man kümmerte sich aber nicht nur um die Vergrößerung den Adressbereichs, sondern baute neue Elemente mit in das Protokoll ein.

  • zustandlose automatische Konfiguration
  • Implementierung von IPSec für die Verschlüsselung, Authentifizierung von IP-Paketen
  • Quality of Service
  • Multicast, Unicast und Anycast
  • Vereinfachung des Headers, was die Router entlasten soll

Nachfolgend eine kleine Übersicht.

IPv4 Header

Der IPv4 Header ist mindestens 20 Byte lang und kann mit dem optionalen Feld (max. 40 Byte) eine maximale Länge von 60 Byte erreichen.

Name Größe Beschreibung
Version 4 Bit Gibt die eingesetzte Version des IP-Protokolls wieder.
Headerlänge 4 Bit Die Internet Header Length (IHL) gibt die Länge des Headerbereiches an. Dabei wird die Länge mit 32 (=Bit) multipliziert. Die Minimallänge eines Header-IP-Paketes ist 160 Bit (=20 Byte) und maximal 480 Bit (=60 Byte). Somit kann die Headerlänger nur den Inhalt 5 bis 15 beinhalten.
Dienstart 8 Bit Type of Service (TOS) gibt die Priorisierung des Paketes an.
Bit 0 – 5      DSCP (Differentiated Services Code Point)
Bit 6 – 8      CN (Explicit Congestion Notification)
= Flusskontrolle
Gesamtlänge 16 Bit Gibt die Gesamtlänge (Total Length) des IP-Paketes (inkl. Headerdaten) in Byte (max. 65535 Byte) an.
Identifikation 16 Bit In Verbindung mit den 2 nachfolgenden Feldern wird die Zusammensetzung der zuvor fragmentierten Pakete gesteuert. Eindeutige Kennung des Paketes. In Verbindung mit der Quell-IP-Adresse kann der Empfänger die Fragmente erkennen und wieder zusammensetzen.
Flags 3 Bit Kontroll-Feld für die Fragmentierung
Bit 0 =   0 (immer)
Bit 1 =   0 Paket darf zerlegt (fragmentiert) werden
1 Paket darf nicht zerlegt werden.
Bit 2 =   0 letztes Fragment
1 weiteres Fragment folgt
Fragment Offset 13 Bit Gibt die Position innerhalb eines Paket an, die besagt, wo das Fragment anfängt.
Lebensdauer 8 Bit Gibt die Lebensdauer eines Paketes an. Jeder HOP verringert den Wert um 1. Hiermit soll verhindert werden, dass ein Paket ewig durch das Netz schwirrt.
Protokoll 8 Bit Gibt das Protokoll an, welches das Paket enthält. Alle Protokolle können bei der IANA unter http://www.iana.org/assignments/protocol-numbers nachgeschlagen werden.
Header-Prüfsumme 16 Bit Eine Prüfsumme für den Headerbereich. Jeder Hop (z.B. Router) errechnet sich durch die Herabsenkung der Lebensdauer diese neu. Das Prüfen der Summe kostet leider Zeit. Daher sind die Routerhersteller dazu  übergegangen die Prüfsumme nur zu inkrementieren also um einen festen Wert zu erhöhen. Vor diesem Hintergrund ist dieses Feld bei IPv6 herausgefallen.
Quell-IP-Adresse 32 Bit Enthält die Quell-IP-Adresse (Source Address) des Senders
Ziel-IP-Adresse 32 Bit Enthält de Ziel-IP-Adresse (Destination Adress) des Empfängers
Optionen variabel Enthält weitere Optionen des IP-Paketes. Die Optionen müssen ein Vielfaches von 32 (Bit) sein. Wird diese Länge nicht erreicht, so werden diese mit Nullen aufgefüllt (Padding). Das Paket kann max. 40 Byte lang sein.

IPv6 Header

Im Vergleich zu IPv4, die einen variablen Header haben, besitzt IPv6 eine feste Länge von 40 Bytes. Allerdings besteht die Möglichkeit weitere Informationen in einem erweiterten Header unterzubringen.

Name Größe Beschreibung
Version 4 Bit Gibt die eingesetzte Version des IP-Protokolls wieder.
Traffic Class 8 Bit Mit diesem Feld werden Prioritäten gesteuert (Qos = Quality of Service).
Flow Label 20 Bit Wird ebenfalls für QoS oder Echtzeitanwendungen verwendet.
Payload Length 16 Bit Länge des Pakets ohne Header, aber inklusive des erweiterter Header
Next Header 8 Bit Gibt den nachfolgenden Header an. Dabei kann es sich um den erweiterten Header oder der eines höheren Protokoll sein. Alle Protokolle können bei der IANA unter http://www.iana.org/assignments/protocol-numbers nachgeschlagen werden.
Hop Limit 8 Bit Gibt die Anzahl der Hops an. Jeder Router verringert den Hop um eins. Vergleichbar ist dies mit dem unter dem IPv4-Protokoll  bekannte Time to Live (TTL)
Quell-IP-Adresse 128 Bit Enthält die Quell-IP-Adresse (Source Address) des Senders
Ziel-IP-Adresse 128 Bit Enthält de Ziel-IP-Adresse (Destination Adress) des Empfängers

Erweiterte IPv6-Header

Aktuell sind sechs erweiterte Header im RFC definiert. Die Größe ist immer ein Vielfaches von 64 Bit. Es werden keine Prüfsummen berechnet. Die Prüfung erfolgt ausschließlich über die Fehlerkorrektur der Schicht 2 und 4. Jeder erweiterter IPv6 Header  muss einen Next Header Eintrag haben.

Typ Größe Beschreibung
0 variabel Hop-By-Hop-OptionEnthält Optionen die von IPv6 Geräten beachtet werden müssen (RFC 2460, RFC 2675)
43 variabel RoutingDieser Wert wird zur Beeinflussung des Routings verwendet (RFC 2460, RFC 3775, RFC 5095)
44 64 Bit FragmentWird für die Fragmentierung verwendet (RFC 2460)
50 variabel ESP – Encapsulation Security PayloadEnthält die benötigten IPSec Verschlüsselungsdaten (RFC 4303)
51 variabel AH – Authentication HeaderEnthält Daten zur Prüfung der Vertraulichkeit (RFC 4302)
59 leer No Next HeaderPlatzhalter, um das Ende eines Paketes anzuzeigen (RFC 2460)
60 variabel Destination OptionsEnthält Optionen, die vom Zielgerät des Paketes beachtet werden müssen (RFC 2460). Dieser Typ kann nur einmal in jedem Paket vorkommen.

Die Reihenfolge der Abarbeitung lautet wie folgt:

  • IPv6 Header
  • Typ 0, Hop-By-Hop Options
  • (Typ 60, Destination Options, wenn ein Routing Header folgt)
  • Typ 43, Routing, Fragment
  • Typ 51, Authentication Header
  • Typ 50, Encapsulating Security Payload
  • Typ 60, Destination Options (für den Zielhost)
  • Upper Layer Protocol Header.

IPv4 und IPv6 im Vergleich

weiterführende Links: