IP – Das Internet Protokoll

Overview IP (Internet Protocol)

IP operiert auf Layer 3 des OSI Modells.

Es ist zuständig für die Adressierung in IP basierten Netzwerken.
Genau wie es für das Telefonnetz die Telefonnummern gibt, sind IP Adressen die eindeutigen Adressen eines jedes IP Systems.

Funktionen von IP:

  • Adressierung von Netzknoten.
  • Fragmentation von Paketen, um Daten über verschiedene OSI Layer 2 Technologien mit unterschiedlichen MTUs (Maximum Transfer Unit) transportieren zu können.
  • Endliche Lebensdauer für Pakete garantieren, um unendliche Routing Loops zu verhindern.
  • Integritätsprüfung für Pakete anhand einer Checksumme.
  • Weiterleitung an die nächst höhere Schicht/ an das nächst höhere Protokoll.
  • Kennzeichnung der Dienstgüte von Paketen, um QoS (Quality of Service) bereitzustellen.

Definition der Funktion von IP

Fragmentierung im IP-Protokoll

Jede Layer 2 Technologie, ob Ethernet, PPPoE oder ISDN haben unterschiedliche Eigenschaften. Einer dieser Eigenschaften ist die MTU, die Maximum Transfer Unit. Sie gibt an, wie viel Byte groß ein zu versendendes Paket sein darf (ohne den Frame Header).

Beispiele für MTUs:

Layer 2 Protokoll / Technologie Maximum Transfer Unit in Bytes
Ethernet 1500
PPPoE 1492
ISDN 576

IP Paket Weg durch das Internet

Ein Paket wird auf dem Weg zu seinem Ziel über unterschiedliche Technologien übertragen. All diese Technologien haben eine eigene MTU. Daher muss das Paket auf die passende Größe fragmentiert werden, um es über die einzelnen Abschnitte übertragen zu können. Jeder Router auf dem Weg zum Ziel hat dabei eigenständig die Möglichkeit das Paket zu fragmentieren. Nachdem das Paket übertragen wurde, muss es vom Empfänger wieder reassembliert (zusammengesetzt) werden:

  • Für die Reassemblierung der Pakete muss der Empfänger sämtliche Fragmente der Nachricht erhalten haben. Es werden alle Fragmente gepuffert, bis das More Fragments Bit im Flag Field nicht mehr gesetzt ist. Das Flag signalisiert, dass keine weiteren Fragmente mehr folgen.
  • Durch das Fragment-Offset im IP-Header kann der Empfänger die empfangenen Pakete in der richtigen Reihenfolge reassemblieren. Eine Nachricht kann eventuell über verschiedene Router auf dem Weg durchs Internet wandern. Daher können Pakete in einer anderen Reihenfolge beim Empfänger eintreffen, als sie vom Absender losgeschickt worden sind.
  • Will der Absender nicht, dass die Pakete auf dem Weg fragmentiert werden, kann das mit dem Don’t Fragment (DF) Flag im IP Header verhindert werden. Das kann z.B. dann der Fall sein, wenn ein Empfänger nicht in der Lage ist Pakete zu reassemblieren.
  • Durch einen Timer beim Empfänger wird gewährleistet, dass unvollständig übermittelte Datenpakete (nicht alle Fragmente sind in einer vorgegebenen Zeit angekommen) verworfen werden und damit nicht auf Dauer unnötig den Pufferspeicher belasten. Der Timer, der in IP auf Unix-Systemen das Wiederzusammensetzen überwacht, ist z.B. meist auf 30 Sekunden eingestellt.

IP Header Felder

  • Version (4 Bit)
    Versionsnummer des IP-Headers. Mögliche Werte wären 4 (für IPv4) und 6 (für IPv6)
  • IP-Header Length, IHL (4 Bit)
    Gibt die Länge des IP Headers in Byte an. Somit kann der Datenbeginn des nächsten Headers ermittelt werden.
  • Type of Service, TOS (8 Bit)
    Legt die Dienstgüte des IP-Paketes fest. Durch den QoS (Quality of Service) Parameter können bestimmte Typen von Paketen bevorzugt gegenüber anderen behandelt werden. Durch den TOS Parameter kann z.B. eine geringere Verzögerung, höherer Datendurchsatz oder eine gleichmäßige Übertragung gefordert werden).
  • Total Lengt (16 Bit)
    Gibt die totale Länge eines Paketes inkl. des Paketheaders in Byte an. Da das Feld 16 Bit lang ist, kann ein Paket maximal 65535 Byte lang sein. (16 Bits auf 1 gesetzt ergibt dezimal 65535)
  • Identification (16 Bit)
    Identifikation eines jeden Pakets. Anahand der Identification und des Source Address kann ein Empfänger eine Sammlung von Paketen zu dem richtigen Originalstream reassemblieren.
  • Flags (3 Bit)
    1. Bit ist reserviert und muss immer auf 0 gesetzt sein.
    2. Bit ist das Don’t Fragment-Bit (DF): 0 = darf fragmentiert werden, 1= darf nicht fragmentiert werden.
    3. Bit ist das More Fragment-Bit: 0 = no more fragments, 1 = more fragments
  • Fragment-Offset (12 Bit)
    Nummerierung der Fragmente. Wird zur Reassemblierung in der richtigen Reihenfolge benötigt.
  • Time to live, TTL (8 Bit)
    Lebensdauer der Pakete. Die TTL ist ein Wert von oftmals 255. Bei jeder Weiterleitung durch einen Router (Layer 3 Device) wird die TTL um 1 dekrementiert. Das sorgt für eine Endlichkeit von Routing Loops.
    Ein Routingloop sieht grob gesehen wie folgt aus:
    Routing Loop in einem IP Netzwerk
  • Protocol (8 Bit)
    Gibt an, welches Protokoll der nächst höheren Schicht (also Layer 4) folgt. (Für TCP wäre es z.B binär 0000 0110 bzw. hex 0x06)
  • Header Checksum (16 Bit)
    Prüfsumme des IP-Headers zur Sicherung der Integrität der Header-Informationen.
  • Source Address / Destination Address (2x 32 Bit)
    Enthält die Quell- und Ziel-IP Adresse des Pakets. Anhand der IP Adresse treffen Router entscheidungen, welchen Weg ein IP Paket durch das Netzwerk geht.
  • Options and Padding (32 Bit)
    Optionen zum Testen von Netzwerken und Fehlersuche.
    Ein Paket muss immer komplette 32 Bit-Zeilen füllen. Mit dem Padding können solche Zeilen aufgefüllt werden.

Habe ich etwas vergessen?

Schreibt mir in die Kommentare oder lasst mich wissen, was euch zu dem Thema noch so interessiert.
Ich lese mir eure Kommentare gerne durch. 🙂

Zeige Kommentare