- 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
| Anfangsbit | Länge | Beschreibung |
|---|---|---|
| 0 | 4 | Version - Ob IPv4 oder IPv6 |
| 4 | 4 | Header Length - Nach dieser Anzahl * 32 Bits beginnen die Nutzdaten |
| 8 | 8 | Service 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 |
| 16 | 16 | Total Length - So lange ist das IPv4-Datagram (Header + Nutzdaten) in Bytes |
| 32 | 16 | Identification - IPv4 Fragmentierung |
| 48 | 3 | Flags - IPv4 Fragmentierung |
| 51 | 13 | Fragment Offset - IPv4 Fragmentierung |
| 64 | 8 | Time 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. |
| 72 | 8 | Type - Welche Schicht die nächste Schicht ist, z.B. UDP oder TCP |
| 80 | 16 | Header Checksum |
| 96 | 32 | Source IP Address |
| 128 | 32 | Destination IP Address |
| 160 | 32 * n | IP Options und Padding - Flags für IP und danach Padding um immer auf ein Vielfaches von 32 Bit zu kommen |
Der IPv6-Header
| Bits | Beschreibung |
|---|---|
| 1-4 | Version - Wie bei IPv4 |
| 5-11 | Traffic Class - Wie Service Type bei IPv6 |
| 12-31 | Flow Label - Nutzbar für Caching-Tabellen im Router um in Kombination mit Source und Destination schneller Pakete umzuleiten als mit der Routingtabelle |
| 32-47 | Payload Length |
| 48-55 | Next Header - Welche Schicht die nächste ist, ob UDP, TCP oder ein weiterer IPv6-Header |
| 56-63 | Hop 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 auf1- Weitere Flags:
- Flag 0 - Reserviert
- Flag 1 - Segment darf nicht fragmentiert werden. Ansonsten Fehler werfen
- Flag 2 - Letztes Fragment
- Weitere Flags:
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.