next up previous contents
Next: Transmission Control Protocol (TCP) Up: TCP/IP Previous: TCP/IP

Internet Protokoll (IP)

IP ist ein verbindungsloses, ungesichertes Protokoll der Vermittlungsschicht. Hauptaufgaben von IP sind die Adressierung von Rechnern und das Fragmentieren bzw. Defragmentieren von Datenpaketen. IP versucht, Pakete so gut wie möglich dem nächsten Rechner im Netzwerk zu übermitteln. Ist dieser nicht der Zielrechner des Pakets, schickt die dortige IP-Implementierung das Paket weiter, dient also der Vermittlung. Das Paket durchläuft auf seinem Weg meist mehrere Vermittlungen bis es den Zielrechner erreicht. Jeder Rechner im Netz muss deshalb IP verstehen. Wegweiser in IP-Netzen, die an Kreuzungen von Netzen die Daten richtig weiterleiten, werden Router genannt.
Derzeit existieren folgende Versionen von IP: Dabei sind IPv6 bzw. IPng nicht kompatible Weiterentwicklungen von IPv4. Deshalb wird im Folgenden zuerst das derzeit gebräuchliche IPv4 dargestellt.

  
Abbildung 2.11: IPv4-Protokollkopf

Quelle: [4], Seite 12

Abbildung 2.11 zeigt den von IPv4 verwendeten Protokollkopf. Die einzelnen Felder haben folgende Bedeutung:
  
Abbildung 2.12: Internet-Adresstypen

Quelle: [32], Seite 38

Eine Internet-Adresse besteht immer aus der Netz-Identifikation und der Host-Identifikation. Bei IPv4 existieren vier verschiedene Typen von Internet-Adressen, die jeweils eine verschiedene Anzahl von Bits für die Netz-ID und die Host-ID verwenden (siehe Abbildung 2.12). Alle Rechner eines Netzwerks haben die gleiche Netzwerk-ID. Die Host-ID identifiziert eindeutig einen bestimmten Rechner innerhalb des Netzwerks. Vorsicht ist bei Host-IDs geboten, die alle Bits auf 1 oder 0 gesetzt haben, da diese Bit-Kombinationen für spezielle Funktionen reserviert sind.
Als Beispiel dient folgende Internet-Adresse (dargestellt in der üblichen ,, dotted decimal notation``):
192.44.3.200| (10)= 1100000000.00101100.00000011.11001000| (2)
Da die ersten beiden Bits gesetzt sind, handelt es sich hierbei um eine Klasse C Internet-Adresse (siehe Abbildung 2.12). Daher lautet die Netz-ID dieses Beispiels 192.44.3 und die Host-ID 200.

  
Abbildung 2.13: Beispiel eines Netzwerks - Verbund mehrerer TCP/IP-Netze mittels Router


Soll mit Hilfe von IP ein Paket an einen Rechner gesendet werden, der die gleiche Netz-ID besitzt, ist das Routing sehr einfach. Das Pakete wird von einem Rechner des Netzwerks zum nächsten weitergeleitet bis der Zielrechner erreicht wird. Ist der Empfänger ein Rechner mit einer anderen Netz-ID, schickt IP das Paket an einen Router (oft auch Gateway genannt), der für die Weiterleitung zuständig ist. Ein Router hat mindestens zwei Netzwerkschnittstellen über die er an verschiedene IP-Teilnetze angeschlossen ist. Jeder Router hat eine sog. Routing-Tabelle, in der Netz-IDs Netzwerkschnittstellen zugeordnet werden. Ist die Netz-ID nicht vorhanden, wird das Paket zum Vorgabe-Router geleitet, der ausführlichere Tabellen hat. Drei Netzwerke mit unterschiedlichen Netz-IDs, die mit Hilfe von zwei Routern verbunden sind, zeigt Abbildung 2.13.

  
Abbildung 2.14: Fragmentierung eines IP-Pakets

Quelle: [32], Seite 43

Die Fragmentierung des IP-Protokolls dient dazu, Pakete über Netzwerke mit unterschiedlichen Paketgrößen zu verschicken. Die Pakete können in einem Netzwerk über verschiede Wege versendet werden. Aufgrund der unterschiedlichen Paketlaufzeiten müssen die Pakete nicht in der korrekten Reihenfolge empfangen werden. Die richtige Reihenfolge kann nur bei einer Punkt-zu-Punkt-Verbindung gewährleistet werden.
Jedes Fragment einer Nachricht erhält einen eigenen IP-Protokoll-Kopf (siehe Abbildung 2.14). Das Identifikationsfeld enthält in jedem neuen IP-Kopf eines Fragments die gleiche Kennung. Damit wird eine spätere Zuordnung gewährleistet. Die Lage der einzelnen Fragmente innerhalb der Gesamtnachricht wird durch das Fragmentabstandsfeld gekennzeichnet. Das MF-Bit zeigt an, dass noch weiter Pakete folgen. Durch das Setzen des DF-Bits kann ein Absender verhindern, dass ein Paket zerteilt wird.
Folgendes Beispiel (aus [32], Seite 43) dient der Anschaulichkeit:
Ausgangssituation:
Maximale Paketlänge des Netzwerks: 128 Bytes
Anzahl der zu versendenden Datenbytes: 300 Bytes
Identifikation des Paketes: 2354
DM-Bit: nicht gesetzt
Keine Optionen

Resultat nach Fragmentierung:
Fragment1: Paketlänge=124, Abstand=00, MF-Bit=1, ID = 2354
Fragment2: Paketlänge=124, Abstand=13, MF-Bit=1, ID = 2354
Fragment3: Paketlänge=112, Abstand=26, MF-Bit=0, ID = 2354

Dabei wird der Fragmentabstand in Einheiten von 8 Byte angegeben. Daher müssen sämtliche Pakete mit Ausnahme des jeweils letzten eine ganzzahlig durch 8 teilbare Länge haben. Für das Beispiel ergibt sich also:

\begin{displaymath}Abstand = trunc(\frac{ max. Paketl\uml {a}nge - Kopf }{8 Bytes}) = trunc(\frac{128
Bytes - 20 Bytes}{8 Bytes}) = 13
\end{displaymath}


\begin{displaymath}Paketl\uml {a}nge = Abstand \ast 8 Bytes + Kopf = 13 \ast 8 Bytes + 20 Bytes = 124
\end{displaymath}

Das weiterentwickelte Internetprotokoll Version 6 besitzt folgende Unterschiede und Erweiterungen zu Version 4:
1.
Erweiterte Adressierung. Die Adressbreite wird von 32 auf 128 Bit vergrößert. Damit stehen weit mehr Adressen und eine umfangreichere Adresshierarchie zur Verfügung.
2.
Vereinfachtes Kopfformat.
3.
Verbesserte Unterstützung für Erweiterungen und Optionen.
4.
Datenflussorientiertes Markieren. Diese neue Funktionalität von IPv6 dient zum Markieren von Paketen, für die der Absender ein bestimmtes Verarbeitungsverfahren vorgesehen hat. Ein Beispiel hierfür ist ein Echtzeitdienst, in dem zeitkritische Daten besonders behandelt werden.
5.
Authentifizierung und Verschlüsselung. Dient dem Bedarf nach Sicherheit und Datenintegrität im Internet.

next up previous contents
Next: Transmission Control Protocol (TCP) Up: TCP/IP Previous: TCP/IP
Thorsten Thormaehlen
2000-03-27