IP-Datagramm: Aufbau, Felder und Funktionsweise

Eingeordnet in Informatik

Geschrieben am in Deutsch mit einer Größe von 4,13 KB

IP-Datagramm-Format

Ein IP-Datagramm ist die Dateneinheit, die im Internet Protokoll (IP) zur Übertragung von Informationen zwischen Ursprung und Ziel verwendet wird. Während der Reise durch das Netzwerk kann es unterschiedliche physikalische Netze durchlaufen, z. B. Punkt-zu-Punkt-Verbindungen, ATM, Ethernet, Token Ring usw. Jedes Datagramm muss bei jedem Router einen Abschnitt zurücklegen, verlässt den Router über die physikalische Verbindung des nächsten Netzes und überträgt dabei seine Nutzdaten.

Der IP-Header enthält außerdem ein Feld, in dem angegeben wird, zu welchem Protokoll der höheren Schicht die Nutzdaten gehören.

Aufbau des IP-Headers

Version (4 Bit)

Dieses Feld gibt die verwendete Protokollversion an. Derzeit wird meist IPv4 (Version 4) verwendet; die Spezifikation für IPv6 (Version 6) ist ebenfalls standardisiert.

IHL – Internet Header Length (4 Bit)

Gibt die Länge des Headers in Vielfachen von 32 Bit an. Die minimale Headerlänge beträgt 5 Wörter, also 160 Bit = 20 Byte.

Type of Service (8 Bit)

Dieses Feld wird in zwei Teile gegliedert:

  • Priorität (3 Bit): Der Wert 0 steht für die geringste, der Wert 7 für die höchste Priorität.
  • Dienstbits (D, T, R): Die folgenden 3 Bits geben an, wie Router das Datagramm behandeln sollen:
    • D-Bit (Delay): Anforderung einer kurzen Verzögerung (schnelle Übertragung).
    • T-Bit (Throughput): Anforderung eines hohen Durchsatzes.
    • R-Bit (Reliability): Anforderung einer hohen Zuverlässigkeit, um Verlust oder Beschädigung des Datagramms zu minimieren.

Die letzten 2 Bits sind nicht verwendet.

Gesamtlänge (16 Bit)

Gibt die Gesamtlänge des Datagramms in Byte an. Mit 16 Bit beträgt die maximal mögliche Länge 65.535 Byte.

Identifikation (16 Bit)

Eine Sequenznummer, die zusammen mit Ursprungs- und Zieladresse das Datagramm eindeutig identifiziert. Wird ein Datagramm fragmentiert, erhalten alle Fragmente dieselbe Identifikation.

Flags (3 Bit)

Von den 3 Bits werden derzeit nur 2 verwendet:

  • MF – More Fragments: Zeigt an, dass weitere Fragmente folgen. Ist das Bit nicht gesetzt, handelt es sich um das letzte Fragment.
  • DF – Don't Fragment: Verbietet die Fragmentierung des Datagramms. Ist dieses Bit gesetzt und das Datagramm passt nicht in die Route, wird es verworfen.

Fragment Offset (13 Bit)

Gibt die Position des aktuellen Fragments innerhalb des ursprünglichen Datagramms an, gemessen in Einheiten zu 64 Bit. Bei allen Fragmenten außer dem letzten muss die Datenlänge ein Vielfaches von 64 Bit sein. Ein nicht fragmentiertes Paket hat einen Offset-Wert von 0.

TTL – Time to Live (8 Bit)

Gibt die maximale Anzahl an Routern an, die das Datagramm passieren darf (typischerweise 30 als Standardwert). Jeder Router verringert den Wert um 1. Erreicht der Wert 0, wird das Datagramm verworfen und an den Ursprung eine ICMP-Nachricht vom Typ Time Exceeded gesendet.

Protokoll (8 Bit)

Gibt an, welches Protokoll der höheren Schicht die Nutzdaten verwendet, z. B. 1 für ICMP, 2 für IGMP, 6 für TCP und 17 für UDP.

Header-Prüfsumme (16 Bit)

Prüfsumme zur Fehlererkennung im Header des Datagramms. Die Fehlerprüfung der Nutzdaten erfolgt durch die Protokolle der höheren Schichten.

Ursprungsadresse (32 Bit)

Die IP-Adresse des Absenders.

Zieladresse (32 Bit)

Die IP-Adresse des Empfängers.

IP-Optionen

Dieses Feld ist optional und ermöglicht zusätzliche Optionen, die der Absender festlegen kann, etwa für Tests und Netzwerkdiagnose.

Padding

Belegen die IP-Optionen nicht ein Vielfaches von 32 Bit, wird der Header mit zusätzlichen Nullbits (Padding) auf ein Vielfaches von 32 Bit aufgefüllt. Die Länge des Headers muss stets ein Vielfaches von 32 Bit sein.

Verwandte Einträge: