• Gemeinsame “Sprache” aller Internet-Hosts
  • Definiert im Wesentlichen:
    • Paketkopfaufbau (Header)
    • Adressierung
    • Fragmentierung
    • Verschiedene Dienste
  • Paketvermittelnd
  • Verbindungslos, d.h. Pakete werden unabhängig voneinander vermittelt (Datagram Routing)
  • Ungesichert, Pakete können
    • Verloren gehen
    • Einander überholen
    • Dupliziert werden
    • Verändert werden
  • Die Dienstgüte ist “Best Effort”
  • Verkapselung: Jede Schicht fügt den Daten, die sie von der darüberliegenden Schicht zur Übermittlung bekommt, eigene Protokollinformationen und Header zu

Der IPv4-Header

AnfangsbitLängeBeschreibung
04Version - Ob IPv4 oder IPv6
44Header Length - Nach dieser Anzahl * 32 Bits beginnen die Nutzdaten
88Service Type - Nach welcher Metrik das Paket versendet werden soll, z.B. am schnellsten, am kostengünstigsten, am verlässlichsten - Im globalen Internet nicht mehr verwendet, aber kleinere Firmen oder ISP verwenden es manchmal, z.B. Telekom
1616Total Length - So lange ist das IPv4-Datagram (Header + Nutzdaten) in Bytes
3216Identification - IPv4 Fragmentierung
483Flags - IPv4 Fragmentierung
5113Fragment Offset - IPv4 Fragmentierung
648Time to live (TTL) - Jeder Router muss bei der Weiterleitung diesen Zähler um die Anzahl an gebrauchter Sekunden, aber mindestens 1 verringern. Ein Router darf nur dann ein Paket weiterleiten, wenn er diesen Wert nicht auf 0 setzt.
728Type - Welche Schicht die nächste Schicht ist, z.B. UDP oder TCP
8016Header Checksum
9632Source IP Address
12832Destination IP Address
16032 * nIP Options und Padding - Flags für IP und danach Padding um immer auf ein Vielfaches von 32 Bit zu kommen

Der IPv6-Header

BitsBeschreibung
1-4Version - Wie bei IPv4
5-11Traffic Class - Wie Service Type bei IPv6
12-31Flow Label - Nutzbar für Caching-Tabellen im Router um in Kombination mit Source und Destination schneller Pakete umzuleiten als mit der Routingtabelle
32-47Payload Length
48-55Next Header - Welche Schicht die nächste ist, ob UDP, TCP oder ein weiterer IPv6-Header
56-63Hop Limit
Source Adress
Destination Adress

IPv6 Next Header

  • Nicht immer benötigte Informationen sind in Extension Headers enthalten
  • Diese können bei Bedarf angehängt werden
  • Jeder Header enthält ein Feld “Next Header”, der den Typ des darauffolgenden Headers angibt (bis zum Transportschicht-Header, z.B. UDP)

IPv4 Fragmentierung

  • Unterschiedliche Netzwerktechnologien haben unterschiedlich lange maximale Paketlängen
  • Maximum Transmission Unit (MTU) Definiert die maximale Nutzdatenlänge eines Pakets
    • Ethernet: MTU = 1500 Bytes
    • IP-Datagramme müssen auf dem Weg über Netzwerke mit unterschiedlichen MTUs aufgeteilt - fragmentiert - werden
  • Ein Router zerteilt, aber fügt nie zusammen
    • Es könnten schließlich zwischen den Teilen sich die Routingtabellen ändern
  • Ein Großes Paket kann in kleinere Pakete zerteilt werden, jedes wird dann mit seinem eigenen IP-Header verschickt.
  • Damit das Ursprüngliche Paket korrekt zusammengebaut werden kann, wird in Fragment Offset die Position des Fragments gespeichert. Dabei wird die Länge durch 8 geteilt, weil Pakete nur ein vielfaches von 8 sein können und so Platz gespart wird.
  • Das letzte Fragment setzt Flag-Bit 2 auf 0, um zu kommunizieren, dass keine weiteren Fragmente folgen. Alle Anderen setzen es auf 1
    • Weitere Flags:
      • Flag 0 - Reserviert
      • Flag 1 - Segment darf nicht fragmentiert werden. Ansonsten Fehler werfen
      • Flag 2 - Letztes Fragment

IPv6 Fragmentierung

  • Bei IPv6 fragmentieren Router nicht, nur der Sender
  • Falls das Paket für den Router zu groß ist, liefern ICMP eine Fehlernachricht an den Sender
  • Realisiert durch IPV6 Header “Next Header: Fragment”, Header ähnlich wie bei IPv4

Multicast

  • Adressierung an eine Gruppe von Teilnehmern
  • Nützlich bei Videostreaming, z.B. WM-Livestream
  • Spezieller Adressbereich
    • IPv4: 224.0.0.0 bis 239.255.255.255
    • IPv6: ff00::/8

IP-Optionen

  • IPv4
    • Strict Routing - Kompletter Pfad muss angegeben werden
    • Free Routing - Zwischenzeitlich über einen oder mehrere bestimmte Router
    • Record Route - Lässt Route aufzeichnen
    • Timestamp
    • Security - wie “bösartig” ein Paket ist
  • IPv6
    • Fragment
    • Mobility - Falls sich das Netz während Übertragung ändert

Adressauflösung

Problem: Rechner kennen nur IP-Adressen, aber nicht die Hardwareadressen dahinter -> Lösung: ARP

ARP “verbindet/verklebt” die Bitübertragungsschicht mit der IP-Schicht

  • Jeder Rechner verwaltet eine ARP-Tabelle
  • Sucht ob ein Eintrag für IP-Adresse vorhanden ist, falls nein:
  • Computer macht einen Broadcast an alle Nutzer des lokalen Netzwerks: “Wer hat die gesuchte IP-Adresse?”
  • Der gesuchte Rechner antwortet mit seiner Hardwareadresse, falls keine Antwort nach einer Zeit kommt, Fehlermeldung an übergeordneten Layer

IPv6 Adressuaflösung

  • Neighbor Discovery
  • Wie ARP, nur mit Optimierungen:
  • Kein Broadcast, sondern spezieller Multicast
  • Kann alle Router finden

Internet Control Message Protocol (ICMP)

  • Teil von IP, oben im Schichtenmodell
  • Austausch von Fehlermeldungen und Zustandsinformationen
  • Ziel nicht erreichbar
  • Echo-Anfrage und Antwort (Ping)
  • Port nicht erreichbar
  • TTL überschritten

tracert

C:\Users\semmi>tracert samuelkroiss.de
 
Routenverfolgung zu samuelkroiss.de [89.238.73.31]
über maximal 30 Hops:
 
  1     1 ms    <1 ms    <1 ms  192.168.2.1
  2     2 ms     1 ms     1 ms  hotspot.internet-for-guests.com [172.30.3.254]
  3     2 ms     2 ms     2 ms  hotspot.internet-for-guests.com [91.106.123.185]
  4     7 ms     6 ms     6 ms  cr1.ffm.r-kom.net [185.39.20.105]
  5     6 ms     6 ms     6 ms  decix-j1.inexio.net [80.81.192.137]
  6    12 ms    11 ms    11 ms  inexio2.cr3.network.manitu.net [89.238.127.51]
  7    11 ms    11 ms    11 ms  ngcobalt331.manitu.net [89.238.73.31]
 
Ablaufverfolgung beendet.