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
-
Anwendung sendet Daten
- Anwendung A bereitet zu sendende Daten vor
- Übergibt Daten an TCP oder UDP
-
TCP/UDP-Verarbeitung
- Fügt Transportschicht-Header hinzu
- Übergibt Segment/Datagramm an IP
-
IP-Modul (Quell-Host)
- Fügt IP-Header mit Adressen hinzu
- Bestimmt Routing (direkt oder über Gateway)
- Fragmentiert bei Bedarf
- Übergibt an lokales Netzwerk
-
Lokale Netzwerkübertragung
- Kapselt in Netzwerk-Frame
- Überträgt zum nächsten Hop
-
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
-
IP-Modul (Ziel-Host)
- Empfängt IP-Datagramm
- Prüft, ob Ziel übereinstimmt
- Reassembliert, falls fragmentiert
- Übergibt an Protokoll oberer Schicht
-
TCP/UDP-Verarbeitung
- Verarbeitet Transport-Header
- Liefert Daten an Anwendung
-
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.