IP-Header

IP-Header

Das IP-Paket oder exakt Internet Protocol Datagram ist das Grundelement der Internet-Datenkommunikation. Es besteht immer aus zwei Teilen: den Kopfdaten, die Informationen über Quelle, Ziel, Status, Fragmentierung etc. enthalten, und den Nutzdaten. Das Protokoll TCP zum Beispiel befindet sich ausschließlich in den Nutzdaten des IP-Pakets – eine Schicht weiter oben im OSI-Modell.

In den Kopfdaten stehen die ausschließlich protokollrelevanten Informationen eines IP-Pakets. Genau wie der Rest des gesamten Internet Protocol ist der Aufbau des Kopfdatenbereiches in der verbreiteten Version 4 des Protokolls (IPv4) im RFC 791 festgelegt. Das neuere Protokoll Version 6 (IPv6) hat einen anderen Kopfdatenbereich.

Inhaltsverzeichnis

Aufbau des Kopfdatenbereiches (IP-Header)

Der IPv4-Kopfdatenbereich umfasst 20 Byte plus bis zu 40 Byte optionale Felder, die Länge des Kopfes darf 60 Byte nicht überschreiten. Der IPv6-Header ist 40 Bytes lang. Optionen werden hier in eigenen Erweiterungsheadern dargestellt.

IPv4
0 4 8 12 16 20 24 28 31
Version IHL TOS Total Length
Identification Flags Fragment Offset
TTL Protocol (IP) Header Checksum
Source Address
Destination Address
Options and Padding (optional)
IPv6
0 4 8 12 16 20 24 28 31
Version Traffic Class Flow Label
Payload Length Next Header Hop Limit
Source Address (128 Bit)
Destination Address (128 Bit)

Erläuterung für IPv4

Im Folgenden werden die Felder für IPv4 beschrieben. IPv6 wird im Abschnitt Header-Format des Artikels IPv6 beschrieben.

Version

4 Bit breit. Die IP-Version. Hierbei sind Version 4 und Version 6 zur Zeit möglich, wobei Version 4 die im Internet meistgenutzte ist.

IHL (IP Header Length)

4 Bit breit. Die gesamte Länge des IP-Kopfdatenbereiches wird in Vielfachen von 32 Bit angegeben. Steht hier also eine 5, so ist der Kopfdatenbereich 5 mal 32 Bit gleich 160 Bit oder 20 Byte lang, was auch die Minimallänge für den IP-Kopfdatenbereich ist (das Options-Feld ist optional) und dadurch anzeigt, wo die Nutzdaten beginnen.

n1 bis nx sind Optionen
Gesamtlänge des Headers = (5 · 32) + (Länge(n1) + ... + Länge(nx) + Padding auf 32 Bit)

TOS (Type of Service)

8 Bit breit. Das Feld kann für die Priorisierung von IP-Datenpaketen gesetzt und ausgewertet werden (Quality of Service).

Früher (RFC 791) wurden die Bits wie folgt interpretiert:

Bits 0-2:  Precedence.
Bit    3:  0 = Normal Delay,      1 = Low Delay.
Bit    4:  0 = Normal Throughput, 1 = High Throughput.
Bit    5:  0 = Normal Reliability, 1 = High Reliability.
Bits 6-7:  Reserved for Future Use.

Seit Dezember 1998 (RFC 2474) gilt folgende Aufteilung:

Bits 0-5:   DSCP (Differentiated Services Code Point)
Bits 6-7:   CU (Currently unused)

Seit September 2001 (RFC 3168) gilt folgende Aufteilung:

Bits 0-5:   DSCP (Differentiated Services Code Point)
Bits 6-7:   ECN (Explicit Congestion Notification – IP-Flusskontrolle)

mehr zu DSCP, vgl. DSCP-Registry von IANA

Die beiden Standards RFC 791 und RFC 2474 sind dann kompatibel, wenn man die ersten 6 Bit auf Null setzt.

Total Length

16 Bit breit. Gibt die Länge des gesamten Pakets (inkl. Kopfdaten) in Bytes an. Daraus ergibt sich eine maximale Paketlänge von 65535 Bytes (64 KB). Alle Hosts müssen Datagramme mit einer Länge von mindestens 576 Bytes verarbeiten können.

Identification

16 Bit breit. Dieses und die beiden folgenden Felder Flags und Fragment Offset steuern die Reassembly (Zusammensetzen von zuvor fragmentierten IP-Datenpaketen). Eindeutige Kennung eines Datagramms. Anhand dieses Feldes und der 'Source Address' kann der Empfänger die Zusammengehörigkeit von Fragmenten detektieren und sie wieder reassemblieren.

Flags

3 Bit breit. Ein Kontroll-Schalter mit folgender Bedeutung:

Bit 0                      : reserviert, muss 0 sein
Bit 1 (DF (Don't Fragment)): 0/1 darf/darf nicht zerlegt (fragmentiert) werden
Bit 2 (MF (More Fragments)): 0/1 letztes Fragment/weitere Fragmente folgen

Fragment Offset

13 Bit breit. Eine Nummer, die bei fragmentierten Paketen besagt, ab welcher Position innerhalb des Paketes das Fragment anfängt. Die Nummerierung bezieht sich auf Daten-Blöcke von 64 Bit bzw. 8 Byte Größe und ist unabhängig von der Fragmentierung. Ein Paket kann daher falls notwendig mehrmals hintereinander in immer kleinere Fragmente zerteilt werden. Dabei muss nur die Nummer des ersten enthaltenen Datenblocks (Offset) und das Total-Length-Feld an die Länge des Fragments angepasst werden. Das erste Fragment, oder ein nicht fragmentiertes Paket, enthält als Offset den Wert Null. Ist ein Paket mit 800 Byte Nutzdaten (Offset-Nummerierung von 0 bis 99) in zwei Fragmente zerteilt ist der Offset des zweiten Fragments die Nummer 50. Da der Offset keinerlei Hinweis enthält wie groß das ursprüngliche Paket ist, muss das allerletzte Fragment das MF-Flag auf Null setzen.

Time to Live

8 Bit breit. Ein Wert, der die Lebensdauer des Pakets angibt. Hat dieses Feld den Wert null, so wird das Paket verworfen. Jede Station (Router) auf dem Weg des Pakets verringert diesen Wert um eins. Dies soll verhindern, dass Pakete ewig weitergeleitet werden (beispielsweise wenn das Paket fälschlicherweise im Kreis geleitet wird und somit das Netz überlasten würde).

Der Standard von 1981 sieht vor, dass jede Station den TTL-Wert um die Anzahl Sekunden verringert, wie lange das Paket an der Station verweilt, mindestens jedoch um eins. Heute wird es de facto als Hop-Count implementiert.

Protocol

8 Bit breit. Dieses Feld bezeichnet das Folgeprotokoll, zu dem die im betreffenden IPv4-Paket transportierten Nutzdaten gehören. Enthält das IP-Paket z. B. ein TCP-Paket, steht hier der Wert 6, für ein UDP-Paket 17. Diese Werte werden seit RFC 3232 von der IANA in einer Online-Datenbank für Protokoll-Nummern definiert.

Im IPv6-Header gibt es dieses Feld ebenfalls, allerdings heißt es dort Next Header. Die zulässigen Werte sind die gleichen wie bei IPv4.

Header Checksum

16 Bit breit. Eine Prüfsumme sichert ausschließlich den Kopfdatenbereich. IP selbst hat keine Mechanismen zur Prüfung der Nutzlast auf Korrektheit, dies wird im TCP/IP-Referenzmodell durch die Transportschicht sichergestellt. Dieser Wert wird bei jeder Station neu verifiziert und – weil sich die TTL pro Hop verändert – neu berechnet. Dabei werden alle 16-Bit-Halbwörter des Kopfdatenbereichs nach den Regeln des Einerkomplements addiert (Übertrag auf das LSB addieren) und von der Summe das Einerkomplement gebildet. Das Ergebnis sollte 11111111 sein, denn sonst ist ein Fehler im Header. Vorteil dabei ist, dass sich die Checksumme pro Hop nur um eins erhöht. Die Berechnung kann daher schnell in der Hardware ausgeführt werden. Bei einem zuverlässigeren Prüfverfahren wie CRC müsste dagegen die Prüfsumme bei jedem Hop komplett neu berechnet werden. Trotzdem kostet das Prüfen der Checksumme verhältnismäßig viel Zeit. Moderne Router überprüfen die Header Checksum aus Performancegründen nicht und inkrementieren sie nur. Diese Umstände haben dazu geführt, dass dieses Feld bei IPv6 nicht mehr existiert.

Source Address

32 Bit breit. Enthält die Quelladresse des IP-Pakets in network byte order (Byte Order, erstes Byte ist das most significant Byte).

Destination Address

Enthält die Zieladresse im gleichen Format wie die Quelladresse.

Options und Padding

Zusatzinformationen. Die Optionen müssen ein Vielfaches von 32 Bit lang sein. Sind sie das nicht, wird mit 0-Bits aufgefüllt (Padding). Aufgrund der Größenbeschränkung des Feldes Internet Header Length können die Optionen maximal 40 Byte lang sein.

  • Strict Routing: Option gibt den kompletten Pfad an, welches das Paket durchlaufen muss
  • Free Routing: Option gibt eine Liste von Routern an, die vom Paket nicht verfehlt werden dürfen
  • Record Route: Lässt die komplette Route aufzeichnen (Heute reicht die Größe des Option-Feldes meist nicht mehr dafür aus)
  • Time Stamp: Zeitstempel
  • Security: Bezeichnet, wie geheim das Paket ist

Siehe auch

Weblinks


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Header — (von engl. head = Kopf) ist ein englisches Wort mit der Bedeutung Kopf, Kopfdaten, Einleitung, Vorspann. In der Informationstechnik werden Nutzdaten ergänzende Zusatzinformationen – so genannte Metadaten – am Anfang eines Datenblocks häufig als… …   Deutsch Wikipedia

  • Header checksum — refers to the basic protection used in the header of IP packets against data corruption. This checksum is calculated only for the header bytes and is 16 bit long and is a part of the IP packet header. This checksum is calculated by word aligning… …   Wikipedia

  • Header-Injection — ist eine Klasse von Sicherheitslücken in Webanwendungen, welche auftreten, wenn die Header eines Protokolls dynamisch unter Hinzunahme von unzureichend geprüften Benutzereingaben generiert werden. Header Injection in HTTP kann z. B. zu HTTP… …   Deutsch Wikipedia

  • Header (informatique) — En technologie de l information, le header renvoie aux données contenues au début d un bloc de contenu à stocker ou transmettre. En transmission de données, les données qui suivent le header sont souvent appelées charge utile ou body. Sommaire 1… …   Wikipédia en Français

  • Header — may refer to:* Header (information technology), supplemental data at the beginning of a data block * Header file, a text file used in computer programming (especially in C or C++) * Page header, in printing or typography the material separated… …   Wikipedia

  • Header Check Sequence — Header Sequence Number is basically a CRC of the MAC header. It shall be the remainder of the division (modulo 2) by the generator polynomial multiplied by the content of the header excluding the HCS field.The HCS can be a byte long (as in Wimax) …   Wikipedia

  • Header-Datei —   [dt. »Kopfdatei«], eine Datei, die in verschiedenen Programmiersprachen, z. B. in C bzw. C++, Definitionen und Deklarationen enthält, die zur Kompilierung und Ausführung des Programms benötigt werden. Eine Header Datei legt beispielsweise fest …   Universal-Lexikon

  • Header Error Check — ist ein Prüfverfahren bei der Übertragungstechnik Asynchronous Transfer Mode (ATM), mit dem festgestellt wird, ob eine ATM Zelle richtig empfangen wurde. Dazu enthält der Kopf der ATM Zelle (Header) im fünften und letzten Byte eine… …   Deutsch Wikipedia

  • Header — Head er (h[e^]d [ e]r), n. 1. One who, or that which, heads nails, rivets, etc., esp. a machine for heading. [1913 Webster] 2. One who heads a movement, a party, or a mob; head; chief; leader. [R.] [1913 Webster] 3. (Arch.) (a) A brick or stone… …   The Collaborative International Dictionary of English

  • Header File —   [engl.], Header Datei …   Universal-Lexikon

  • header — head‧er [ˈhedə ǁ ər] noun [countable] the line of information at the top of a computer screen or a printed page compare footer * * * header UK US /ˈhedər/ noun [C] ► IT a line of text, such as a title or a page number, that appears at the top of… …   Financial and business terms

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”