Zurück zum Inhaltsverzeichnis des Manuskripts verteilte Systeme

5.3 Internet Protocol version 4 (IPv4)

5.3.1 IPv4-Eigenschaften

Datagrammdienst

Bei der Entwicklung des Internet in der Mitte der siebziger Jahre des letzten Jahrhunderts ist festgelegt worden, dass für die physikalische Übertragung der Daten nur solche physikalischen Netzwerke einzusetzen sind, die Datenpakete übertragen. Dafür wurde ein Vermittlungsprotokoll erarbeitet, das mit Hilfe dieser Netzwerke Datenpakete vermittelt. Wegen seiner zentralen Bedeutung für das Internet wurde es Internet Protocol genannt und mit IP abgekürzt. Es entstand in mehreren aufeinander folgenden Versionen, von denen lediglich die Versionen 4 und 6 verbreitet worden sind. Es war die Version 4, die mit IP bezeichnet worden ist. Diesem historischen Sprachgebrauch wird hier gefolgt und die Bezeichnung IP benutzt, wenn eigentlich IPv4 gemeint ist. Die von IP erzeugten und vermittelten Datenpakete enthalten Adressinformationen. Das heißt, es handelt es sich um Datagramme. IP ist ein Datagrammdienst. Da auch andere Protokolle, UDP ist dafür ein Beispiel, mit Datagrammen arbeiten, wird zur Verdeutlichung manchmal von IP-Datagrammen oder von IP-Paketen gesprochen.

Protokollcharakteristika

Der durch IP realisierte Datagrammdienst ist verbindungslos und unzuverlässig. Das Protokoll folgt konzeptionell dem Paradigma (dem grundlegenden Leitkonzept) der bestmöglichen Paketzustellung. Dass IP verbindungslos arbeitet, bedeutet, dass die IP-Pakete unabhängig voneinander vermittelt werden. Weder wird die Korrektheit noch die Vollständigkeit noch die Einhaltung einer Reihenfolge der Datagramme garantiert. Es gibt keine Zustellgarantie, insbesondere nicht für einen bestimmten Zeitrahmen. Wird ein Datagramm beim Empfang als fehlerhaft erkannt, dann wird es verworfen und der Absender mittels einer ICMP-Nachricht vom Auftreten des Fehlers verständigt.

Eingangs- und Ausgangsdaten

Mit der Ausnahme von ICMP-Datenpaketen, die in einem eigenen Abschnitt (5.5 Internet Control Message Protocol) behandelt werden, erhält auf der sendenden Seite die lokale IP-Station von einer Anwendung entweder über TCP eine Folge von Segmenten oder über UDP eine Folge von Benutzerdatagrammen. Eingangsdaten sind in jedem Fall Datenpakete. Aus jedem solchen Paket erzeugt die sendende IP-Station IP-Datagramme, möglicherweise mehrere. Diese übergibt sie mit Hilfe eines DoD-Netzzugangsprotokolls der physikalischen Übertragung. Auf der Empfängerseite entnimmt das dortige Netzzugangsprotokoll dem dortigen lokalen physikalischen Netzwerk Datenpakete und übergibt sie an die empfangende IP-Station. Diese setzt die Datagramme zu Segmenten bzw. zu Benutzerdatagrammen zusammen, die sie dann an die dortige TCP- bzw. UDP-Station weitergibt. Die folgende Grafik, eine Ergänzung einer Grafik aus dem Abschnitt 5.2 (DoD-Vermittlungsprotokolle), soll diesen Sachverhalt anschaulich machen:

Datenfluss

Protokollstapel

Die folgende Grafik zeigt die Aufeinanderfolge einiger bereits vorgestellter Internetprotokolle. Man spricht von einem Protokollstapel (Protocol Stack). Die gezeigte Stapelung orientiert sich dabei am DoD- und am ISO/OSI-Kommunikationsmodell. Mit aufgeführt ist auch eine Anwendung (ping), die unmittelbar ICMP verwendet und im Abschnitt 5.5 (Internet Control Message Protocol) beschrieben wird. Die noch leere DoD-Schicht 1 wird im nächsten Kapitel (6 Netzzugang) mit Inhalt gefüllt werden.

Protokollstapel

Hostadressierung

Das Internet ist ein durch Router gegliedertes logisches Netzwerk. Als logische Hostadressen wurden die sogenannten IP-Adressen entwickelt. Das sind 32 Bits (4 Bytes) große Zahlen. Sie haben, was bisher noch nicht herausgestellt worden ist, wesentlich mehr Aufgaben, als nur die Identifizierung eines einzelnen Rechners. Der Abschnitt 5.3.3 (IPv4-Adressen) beschäftigt sich mit diesen Aufgaben. IP-Adressen sind für menschliche Benutzer etwas unhandlich. Deshalb wurde eine zweite Art logischer Adressen entwickelt, nämlich Domänennamen. Das sind leicht lesbare Zeichenketten, die bereits im Abschnitt 3.3 (Domain Name System) vorgestellt wurden. Das DNS bildet Domänennamen auf IP-Adressen ab und umgekehrt. Der Dienst ist notwendig, weil alle Internetprotokolle intern mit IP-Adressen arbeiten.

Fragementierung und Reassemblierung

Wie jedes Vermittlungsprotokoll muss auch IP beim Senden von Daten die Transporteinheiten physikalischer Netze berücksichtigen. Auf der sendenden Seite müssen die von TCP oder UDP kommenden Datenpakete in IP-Datagramme umgesetzt werden, die physikalisch transportiert werden können. Ist ein solches Quellpaket zu groß für einen physikalischen Transport, dann muss es auf mehrere IP-Pakete aufgeteilt werden. Diesen Vorgang nennt man Fragmentierung des Quellpakets. Dabei hat eine sendende IP-Station, das könnte auch die eines Routers sein, lediglich Kenntnis über die minimale und maximale Transporteinheit des physikalischen Netzes, dem das Datagramm direkt übergeben werden soll. Das heißt, dass auf dem Weg zu einem Zielrechner möglicherweise unterwegs erkannt wird, dass Quellpakete feiner fragmentieren müssen. Wer dieses Fragmentieren durchführt, wird durch das Vermittlungsprotokoll festgelegt: Bei IPv4 sind es die Router, bei IPv6 die Quellrechner. Für die Steuerung der Fragmentierung und Reassemblierung befinden sich im IP-Protokollkopf (Man vergleiche dazu den Abschnitt 5.3.2 (IPv4-Protokollkopf).) die drei Felder

Beim Senden gibt die zugehörige IP-Station jedem von TCP bzw. von UDP kommenden Quellpaket eine eindeutige Kennung, die in dem Identifikation-Feld des Protokollkopfs festgehalten wird. Der Fragmentoffset gibt an, bis zum wievielten Byte des Quellpakets das jeweilige Fragment reicht, und durch die Flags wird angezeigt, ob auf ein Fragment noch ein weiteres folgt oder ob es das letzte einer Zerlegung ist. Auf der Empfängerseite werden die Fragmente mit Hilfe der Identifikation, der Fragmentoffsets und der Flags wieder zu einem TCP-Segment oder einem Benutzerdatagramm zusammengesetzt.

Da das Reassemblieren ein recht aufwändiger Vorgang ist, wurde bei der Konzeption von IP festgelegt, dass Quellpakete lediglich auf dem empfangenden Rechner, dem Zielrechner, wieder zusammengesetzt werden dürfen. Das heißt, dass Router Quellpakete möglicherweise fragmentieren, niemals aber reassemblieren.

Routing

Bei der Konzeption von IP ist festgelegt worden, dass Datagramme dynamisch zu vermitteln sind. Das heißt, dass ein IP-System, das ein IP-Datagramm weitergibt, zum Zeitpunkt der Vermittlung eine Wegwahl durch einen Verbund von Netzwerken treffen muss. Das Routing von IP-Datagrammen wird im Abschnitt 5.3.4 (IPv4-Routing) behandelt.



Zurück zum Inhaltsverzeichnis des Manuskripts verteilte Systeme