IP-Paket
Das IP-Paket ist das Grundelement der Internet-Datenkommunikation. Es besteht immer aus zwei Teilen: dem Header (zu Deutsch Kopf), der die Informationen über Quelle, Ziel, Status, Fragmentierung, etc. enthält, und dem Payload (zu Deutsch Nutzlast), was den mit dem Paket transportierten Daten entspricht. Das TCP-Protokoll zum Beispiel befindet sich ausschließlich im Payload des IP-Pakets - eine Schicht weiter oben im OSI-Modell.
Im Header stehen die ausschließlich protokollrelevanten Informationen eines IP-Pakets. Genau wie der Rest des gesamten IP-Protokolls ist der Aufbau des Headers in der verbreiteten Version 4 des Protokolls (IPv4) im RFC 791 festgelegt. Das neuere Protokoll Version 6 (IPv6) hat einen anderen Header.
Aufbau des Headers
Der Aufbau des IP-Headers in der Version 4 sieht folgendermaßen aus:
0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Erläuterung
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 (Internet Header Length)
4 bit breit. Dieser Wert gibt an, wie lange der gesamte IP-Header ist. Die Einheit hierbei sind 32-bit-Werte. Steht hier also eine 5, so ist der Header 5*32bit=160bit/20byte
lang, was auch die Minimallänge für IP Header ist (das Options-Feld ist optional :-).
Type of Service
8 Bit breit. Hierbei stehen die Bits für verschiedene Dinge:
Bits 0-2: Präzedenz Bit 3 : 0/1 normale/hohe Verzögerung Bit 4 : 0/1 normaler/hoher Durchsatz Bit 5 : 0/1 normale/hohe Verlässlichkeit Bits 6&7: reserviert für zukünftige Anwendungen
Dieses Feld kann für die Priorisierung von IP-Datenpaketen gesetzt und ausgewertet werden (Quality of Service).
Total Length
16 bit breit. Gibt die Länge des gesamten Paktes (incl. Header) in bytes an.
Identification
16 bit breit. Die Identification ist eine Art Seriennummer, die dazu dient, Fragmente, die zum Gleichen IP-Paket gehören, zu erkennen und wieder zusammenzusetzen.
Flags
3 bit breit. Einige Kontroll-Schalter mit folgender Bedeutung:
Bit 0 : reserviert, muss 0 sein Bit 1 (DF): 0/1 darf/darf nicht zerlegt (fragmentiert) werden Bit 2 (MF): 0/1 letztes Fragment/weitere Fragmente folgen
Fragment Offset
13 bit breit. Eine Nummer, die bei fragmentierten Paketen besagt, welche Position innerhalb der Fragmente das Paket einnimmt. Der Offset wird angegeben in 64bit/8byte-Schritten, wobei das erste Fragment den Wert null hat.
Time to live
8 bit breit. Ein Wert, der den Lebenszeitraum des Pakets angibt. Hat dieses Feld den Wert null so muss das Paket verworfen werden. Jede Station auf dem Weg des Pakets verringert diesen Wert um die Anzahl Sekunden, wie lange das Paket an dieser Station verweilt, mindestens aber um eins. Das soll verhindern, dass Pakete ewig weitergeleitet werden. Die maximale Lebensdauer eines IP-Pakets beträgt also 255 Sekunden, in der Praxis jedoch viel weniger, da Pakete fast immer weniger als eine Sekunde an einer Station verweilen.
Protocol
8 bit breit. Dieses Feld bezeichnet das Folgeprotokoll. Enthält das IP Paket z.B. ein TCP Paket steht hier eine 0x06
. Diese Werte sind definiert in RFC 790.
Header Checksum
16 bit breit. Eine Prüfsumme ausschließlich für den Header (IP selbst hat keine Mechanismen zur Prüfung der Nutzlast auf Korrektheit). Dieser Wert wird bei jeder Station neu verifiziert und - weil z.B. TTL sich pro Hop verändert - neu berechnet. Der Wert für Checksum wird für die Berechnung auf null gesetzt.
Source Address
32 bit breit. Enthält die Quelladresse des IP-Pakets in network byte order (Big Endian, erstes bit ist das most significant bit).
Destination Adress
Enthält die Zieladresse im gleichen Format wie die Quelladresse.
Options & Padding
Zusatzinformationen. Die Optionen müssen ein vielfaches von 32 bit lang sein. Sind sie das nicht muss mit 0-bits aufgefüllt werden (Padding).
Weblinks
- RFC 791 - Internet Protocol
- RFC 790 - Assigned Numbers
- www.iana.org IANA - Internet Assigned Numbers Authority