Der Aufbau von IP-Datagrammen
Das Internet Protokoll (IP) packt den Datenstrom, den es aus der
Transportschicht bekommt wiederum in Pakete, die aber diesmal mit den
logischen IP-Adressen versehen sind statt mit den physikalischen
Netzadressen. Die interne Struktur eines solchen Datagramms (Paketes) ist in
der folgenden Graphik dargestellt.
Der Aufbau eines IP-Datagramms entspricht also nicht dem Frame System,
sondern stellt nur einen Header (Kopfteil) zur Verfügung. Nach dem Header
folgen nur noch Daten, keine Frame-Ende-Zeichen o.ä.
Die einzelnen Felder sollen kurz noch dargestellt werden:
- Version - 4 Bit
- Dieses Feld enthält die Versionsnummer des IP. Aktuelle Version
ist 4, bald kommt 6...
- Internet Header Length (IHL) - 4 Bit
- Gibt die Länge des Headers in 32 Bit Worten an. Damit kann ermittelt
werden, ob Optionen gesetzt sind. Normalerweise (ohne Optionen) hat dieses
Feld den Wert 5.
- TOS (Type of Service - Diensttyp) - 8 Bit
- Enthält Flags, die zur Steuerung der Zuverlässigkeit des Netzes dienen.
Sie werden automatisch erstellt.
- Gesamtlänge - 16 Bit
- Enthält die Gesamtlänge des Datagramms (incl. Kopf) in Byte. Aus der
Breite dieses Feldes (16 Bit) ergibt sich so eine maximale Größe von
Datagrammen von 65535 Byte. Dieser Wert liegt weit über dem maximalen Wert
der einzelnen Netzsysteme, daher reichen 16 Bit aus.
- Kennung - 16 Bit
- Jedes IP-Datagramm muß eine eigene Kennung haben, um beim
Wiederzusammenbau richtig eingeordnet zu werden.
- Flags - 3 Bit
- Flags zur Steuerung der Fragmentierung.
- Fragment-Offset - 13 Bit
- Unter Fragmentierung von Datagrammen ist zu verstehen, daß einzelne
Datagramme, die durch Gateways in unterschiedliche Netze geroutet werden,
dort oft unterschiedlichen Größenbestimmungen unterliegen. IP fragmentiert
solche Datagramme und baut sie wieder zusammen. Dieses Feld enthält die
Information, an welcher Stelle das Fragment ursprünglich war.
- Lebensdauer - 8 Bit
- In Netzen wie dem Internet, in denen viele Datagramme auf
unterschiedlchsten Wegen versuchen zum Ziel zu kommen, muß eine maximale
Lebensdauer haben, sonst werden sie unendlich oft geroutet. Dieses Feld
enthält eine Zahl, die vom Sender eingetragen wurde. Jeder Gateway muß diese
Zahl um eins herunterzählen, wenn er ein Datagramm routet. Ist der Wert
Null, so darf kein Router das Datagramm mehr weiterleiten. Übliche
Startwerte sind 32 oder 4 (nur lokale Netze setzen so niedrige Lebensdauer
an)
- Protokoll - 8 Bit
- Dieses Feld gibt an, von welchem Protokoll der Transportschicht dieses
Datagramm kommt. Das ist wichtig für den Empfänger, weil ja mehrere
Netzanwendungen gleichzeitig laufen können. Nur durch diese Information kann
das Empfänger IP das Datagramm an das richtige Transportschichtprotokoll
weiterleiten. Übliche Werte sind:
- 17 - UDP
- 6 - TCP
- 1 - ICMP
- Kopf-Prüfsumme - 16 Bit
- Prüfsumme über den Inhalt des Headers, nicht der Daten. Sicherung der
Daten wird von der Transportschicht überprüft.
- Sender IP-Adresse - 32 Bit
- 32 Bit IP-Adresse des Senders
- Empfänger IP-Adresse - 32 Bit
- 32 Bit IP-Adresse des Empfängers
- Optionen - <= 32 Bit
- Hier können verschiedene Optionen gesetzt werden, die mit Debugging
(Fehlersuche) oder Routenprüfung zu tun haben.
- Füllzeichen
- Füllt den Bereich zwischen den jeweils gesetzten Optionen und dem Ende
des 32 Bit Wortes auf.