Zum Hauptinhalt springen

2. Übersicht

2.1. Beziehung zu anderen Protokollen

Das Internet-Protokoll bildet auf der einen Seite eine Schnittstelle zu den höherstufigen Host-to-Host-Protokollen und auf der anderen Seite zum lokalen Netzwerkprotokoll. In diesem Zusammenhang kann ein „lokales Netzwerk" ein kleines Netzwerk in einem Gebäude oder ein großes Netzwerk wie das ARPANET sein.

Protokollstapel

+-------------+
|| Anwendung |
+-------------+
|| TCP | TCP/UDP/ICMP
+-------------+
|| IP | Internet-Protokoll (dieses Dokument)
+-------------+
|| Lokales Netz| Ethernet, WiFi, usw.
+-------------+

Beziehungsdiagramm

+------+ +-----+ +-----+     +-----+
||Telnet| | FTP | | ... | |Voice|
+------+ +-----+ +-----+ +-----+
| | | |
+-----+ +-----+ +-----+
| TCP | | UDP | | ... |
+-----+ +-----+ +-----+
| | |
+-------------------------------+
| Internet-Protokoll & ICMP |
+-------------------------------+
|
+-------------------------------+
| Lokales Netzwerkprotokoll |
+-------------------------------+

Schlüsselprotokolle

  • TCP (Transmission Control Protocol): Bietet zuverlässige, geordnete, fehlergeprüfte Datenübertragung
  • UDP (User Datagram Protocol): Bietet verbindungslosen Datagrammdienst
  • ICMP (Internet Control Message Protocol): Wird für Fehlerberichterstattung und Diagnosen verwendet
  • Lokale Netzwerkprotokolle: Ethernet, Token Ring, ARPANET, usw.

2.2. Betriebsmodell

Das Betriebsmodell für die Übertragung eines Datagramms von einem Anwendungsprogramm zu einem anderen wird durch das folgende Szenario veranschaulicht:

Übertragungsszenario

Anwendung A (Host 1) → IP-Modul → Gateway → IP-Modul → Anwendung B (Host 2)

Detaillierter Ablauf

  1. Anwendung sendet Daten

    • Anwendung A bereitet zu sendende Daten vor
    • Übergibt Daten an TCP oder UDP
  2. TCP/UDP-Verarbeitung

    • Fügt Transportschicht-Header hinzu
    • Übergibt Segment/Datagramm an IP
  3. IP-Modul (Quell-Host)

    • Fügt IP-Header mit Adressen hinzu
    • Bestimmt Routing (direkt oder über Gateway)
    • Fragmentiert bei Bedarf
    • Übergibt an lokales Netzwerk
  4. Lokale Netzwerkübertragung

    • Kapselt in Netzwerk-Frame
    • Überträgt zum nächsten Hop
  5. Gateway-Verarbeitung (falls erforderlich)

    • Empfängt IP-Datagramm
    • Prüft Zieladresse
    • Bestimmt nächsten Hop
    • Dekrementiert TTL
    • Kann (may) weiter fragmentieren
    • Leitet zum nächsten Netzwerk weiter
  6. IP-Modul (Ziel-Host)

    • Empfängt IP-Datagramm
    • Prüft, ob Ziel übereinstimmt
    • Reassembliert, falls fragmentiert
    • Übergibt an Protokoll oberer Schicht
  7. TCP/UDP-Verarbeitung

    • Verarbeitet Transport-Header
    • Liefert Daten an Anwendung
  8. Anwendung empfängt Daten

    • Anwendung B empfängt die Daten

Beispiel für Datagramm-Reise

Host A            Gateway 1         Gateway 2         Host B
| | | |
| 1. Datagramm senden | | |
|------------------->| | |
| | 2. Routen & weiterleiten | |
| |------------------->| |
| | | 3. Routen & weiterleiten |
| | |------------------->|
| | | | 4. Zustellen
| | | |

2.3. Funktionsbeschreibung

Der Zweck des Internet-Protokolls besteht darin, Datagramme durch eine Reihe miteinander verbundener Netzwerke zu bewegen. Dies geschieht durch Weitergabe der Datagramme von einem Internet-Modul zum anderen, bis das Ziel erreicht ist.

Hauptfunktionen

1. Adressierung (Addressing)

  • Jedes Datagramm enthält Quell- und Zieladressen
  • 32-Bit-Adressen identifizieren Hosts eindeutig
  • Netzwerk- und Hostanteile ermöglichen hierarchisches Routing

2. Routing

  • Auswahl des Pfades durch miteinander verbundene Netzwerke
  • Basierend auf Zieladresse und Routing-Tabellen
  • Kann (can) direkte Zustellung oder indirekt über Gateways sein

3. Fragmentierung und Reassemblierung (Fragmentation and Reassembly)

  • Große Datagramme werden in kleinere Fragmente aufgeteilt
  • Erforderlich, wenn MTU (Maximum Transmission Unit) variiert
  • Fragmente werden nur am endgültigen Ziel reassembliert

4. Diensttyp (Type of Service)

  • Gibt gewünschte Dienstqualität an
  • Parameter: Priorität (precedence), Verzögerung (delay), Durchsatz (throughput), Zuverlässigkeit (reliability)
  • Wird von Gateways für Routing-Entscheidungen verwendet

5. Lebensdauer (Time to Live)

  • Begrenzt die Lebensdauer des Datagramms im Internet
  • Verhindert Endlosschleifen
  • Wird bei jedem Hop dekrementiert

6. Optionen

  • Sicherheitsparameter
  • Quellrouting (Source Routing)
  • Routenaufzeichnung (Route Recording)
  • Zeitstempel (Timestamps)

7. Header-Prüfsumme (Header Checksum)

  • Schützt die Integrität des Headers
  • Wird bei jedem Hop neu berechnet (aufgrund von TTL-Änderungen)
  • Schützt nicht die Datennutzlast

Verantwortlichkeiten des Internet-Moduls

Die Internet-Module (insbesondere in Gateways) bestimmen, dass Datagramme korrekt formatiert sind, gültige Adressen haben und zu ihren Zielen geroutet werden. Zu den Hauptverantwortlichkeiten gehören:

  • Fehlererkennung (Error Detection): Header-Prüfsumme validieren
  • TTL-Verwaltung: TTL dekrementieren und prüfen
  • Fragmentierung: Datagramme bei Bedarf aufteilen
  • Reassemblierung (Reassembly): Ursprüngliches Datagramm am Ziel rekonstruieren
  • Optionsverarbeitung: IP-Optionen behandeln
  • ICMP-Generierung: Fehler über ICMP melden

Adressierungsschema

Klasse A: 0NNNNNNN.HHHHHHHH.HHHHHHHH.HHHHHHHH
- 0.0.0.0 bis 127.255.255.255
- 128 Netzwerke, 16.777.216 Hosts jeweils

Klasse B: 10NNNNNN.NNNNNNNN.HHHHHHHH.HHHHHHHH
- 128.0.0.0 bis 191.255.255.255
- 16.384 Netzwerke, 65.536 Hosts jeweils

Klasse C: 110NNNNN.NNNNNNNN.NNNNNNNN.HHHHHHHH
- 192.0.0.0 bis 223.255.255.255
- 2.097.152 Netzwerke, 256 Hosts jeweils

Klasse D: 1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
- 224.0.0.0 bis 239.255.255.255
- Multicast

Klasse E: 1111XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
- 240.0.0.0 bis 255.255.255.255
- Reserviert für zukünftige Verwendung

2.4. Gateways

Gateways implementieren das Internet-Protokoll, um Datagramme zwischen Netzwerken weiterzuleiten. Ein Gateway ist mit zwei oder mehr Netzwerken verbunden und empfängt Datagramme von einem Netzwerk und leitet sie an ein anderes Netzwerk weiter.

Gateway-Funktionen

1. Routing

  • Routing-Tabellen pflegen
  • Nächsten Hop für jedes Datagramm bestimmen
  • Kann (may) Routing-Protokolle verwenden (RIP, OSPF, usw.)

2. Fragmentierung

  • Muss (may) Datagramme fragmentieren
  • Tritt auf, wenn das nächste Netzwerk kleinere MTU hat
  • Reassembliert NICHT (nur das Ziel tut dies)

3. TTL-Verwaltung

  • TTL um mindestens 1 dekrementieren
  • Datagramm verwerfen, wenn TTL 0 erreicht
  • ICMP Time Exceeded-Nachricht an Quelle senden

4. Fehlerbehandlung (Error Handling)

  • Verschiedene Fehlerbedingungen erkennen
  • ICMP-Fehlermeldungen generieren
  • Fehler an Quelle weiterleiten

5. Optionsverarbeitung (Option Processing)

  • IP-Optionen verarbeiten
  • Zeitstempel hinzufügen, falls angefordert
  • Quellrouting behandeln

Gateway-Architektur

Netzwerk A           Gateway            Netzwerk B
+---------+ +----------+ +---------+
|| | | | | |
|| Host A |---------| Router |---------| Host B |
|| | | | | |
+---------+ +----------+ +---------+
| | |
| | |
IP-Modul IP-Modul IP-Modul
Lokales Netz A Beide Netze Lokales Netz B

Gateway-Verarbeitungsschritte

1. Datagramm von Netzwerkschnittstelle empfangen
2. Header-Prüfsumme verifizieren
3. Prüfen, ob Ziel lokal ist
- Ja: An Host zustellen
- Nein: Mit Weiterleitung fortfahren
4. TTL dekrementieren
- Wenn TTL = 0: Verwerfen, ICMP senden
5. Routing-Tabelle für nächsten Hop nachschlagen
6. Prüfen, ob Fragmentierung erforderlich ist
- Wenn DF-Flag gesetzt und Fragmentierung erforderlich:
Verwerfen, ICMP senden
- Andernfalls: Bei Bedarf fragmentieren
7. Header-Prüfsumme neu berechnen
8. An nächste Netzwerkschnittstelle weiterleiten

Beispiel für Routing-Tabelle

|| Zielnetzwerk | Nächster Hop | Schnittstelle | Metrik | ||--------------|--------------|---------------|--------| || 10.0.0.0/8 | Direkt | eth0 | 0 | || 192.168.1.0/24 | Direkt | eth1 | 0 | || 0.0.0.0/0 | 10.0.0.1 | eth0 | 10 |

Gateway-Verantwortlichkeiten

  • Darf NICHT (must not) Fragmente reassemblieren (nur endgültiges Ziel tut dies)
  • Muss (must) bei Bedarf fragmentieren
  • Muss (must) TTL dekrementieren
  • Muss (must) Header-Prüfsumme nach jeder Änderung neu berechnen
  • Sollte (should) ICMP für Fehlerberichterstattung implementieren
  • Kann (may) Diensttyp für Routing-Entscheidungen verwenden

Zusammenfassung

Das Internet-Protokoll bietet einen verbindungslosen Best-Effort-Datagramm-Zustellungsdienst. Es arbeitet zwischen den höherstufigen Host-to-Host-Protokollen (wie TCP) und den zugrunde liegenden Netzwerkprotokollen. Zu den Hauptmerkmalen gehören:

  • Universelle Adressierung über miteinander verbundene Netzwerke hinweg
  • Routing durch Gateways
  • Fragmentierung für unterschiedliche Netzwerk-MTUs
  • Einfacher, zustandsloser Betrieb
  • Keine Zuverlässigkeitsgarantien (werden von oberen Schichten behandelt)

Dieses Design ermöglicht es dem Internet, skalierbar, flexibel und robust zu sein und verschiedene Netzwerke und Anwendungen zu unterstützen.