next up previous contents
Nächste Seite: Die Transport Layer - Aufwärts: Die TCP/IP Protokoll Architektur Vorherige Seite: Die Network-Access-Layer   Inhalt

Die Internet-Layer - Das Internet-Protokoll IP

Die Schicht direkt über der Network-Access-Layer ist die Internet-Layer. Das Internetprotokoll RFC 791 ist das Herzstück von TCP/IP und das wichtigste Protokoll der Internet Layer. Das Internet-Protokoll IP ist für die Zustellung von Daten zuständig. Die Aufgabe des IP besteht darin, Datenpakete von einem Sender - unter Umständen - über mehrere Netze hinweg zu einer Empfängerstation zu transportieren. Das Internet Protokoll ist das Kernstück des Internets und umfaßt folgende Aufgaben: Einige Charakteristika des Internet Protokolls:
IP ist ein sogenanntes verbindungsloses Protokoll. Das bedeutet, daß IP keine Kontrollinformationen (ein sogenannter Handshake) zum Aufbau einer Ende-zu-Ende Verbindung austauscht, bevor die eigentlichen Daten auf das Netz gegeben werden. Im Gegensatz dazu tauschen verbindungsorientierte Protokolle Kontrollinformationen mit dem Empfängersystem aus um sicherzugehen, daß die Empfangsstation bereit ist, Daten zu empfangen. Erst dann werden die eigentlichen Nutzdaten übertragen. Ist der Handshake erfolgreich, dann sagt man, daß die beiden Systeme eine Verbindung aufgebaut haben5.8. Das Internet Protokoll überläßt es anderen Protokollen in der TCP/IP Protokollhierarchie, eine Verbindung aufzubauen, falls ein verbindungsorientierter Dienst zur Verfügung gestellt werden muß.
Das IP Protokoll ist ein sogenanntes unzuverlässiges Protokoll, da es über keine Fehlererkennung oder Recovery Mechanismen verfügt. Das soll nun nicht bedeuten, daß man sich auf das IP Protokoll nicht verlassen kann - im Gegenteil. Man kann sich darauf verlassen, daß IP die Daten akkurat an das Netz übergibt, IP überprüft jedoch nicht, ob die Daten auch korrekt angekommen sind. Protokolle in anderen Schichten der TCP/IP Architektur führen solche Überprüfungen aus, wenn dies erforderlich ist.
Die Form des IP-Protokollkopfes ist in Abbildung 5.4 dargestellt. Der IP Datagramm Header ist im RFC 791 definiert. Man nennt diesen Kopf auch IP-Datagramm. Die dargestellten Bits dieses Protokollkopfes werden in der Reihenfolge von links oben nach rechts unten sequentiell in das Netz eingespeist. Die einzelnen Felder dieses Datagramms enthalten Informationen über:

Abbildung 5.4: Der Aufbau des IP Protokoll-Kopfes.
\begin{figure}
\centering
\epsfig {file=../pics/ip_kopf.eps,width=9cm}
\end{figure}

Die TCP/IP Protokolle wurden zu dem Zweck erstellt, um Daten über das ARPANET zu übertragen. ARPANET war ein paketorientiertes Netzwerk. Ein Paket ist ein Block von Daten, das auch die notwendigen Informationen mit sich trägt, um das Paket korrekt abzuliefern. Ein paketorientiertes Netzwerk (packet switching network) benutzt die Adressinformationen in den Paketen, um diese von einem physikalischen Netzwerk zu einem anderen zu leiten (switch) und sie so zu ihrem Bestimmungsrechner zu senden. Jedes Paket bewegt sich unabhängig von den anderen Paketen über das Netz. Das Internet Protokoll übergibt das Datagramm, in dem die Empfängeradresse im fünften Word des Headers getestet wird. Diese Adresse ist eine Standard 32-Bit IP-Adresse, das das Empfängernetzwerk und den Zielrechner in diesem Netzwerk eindeutig identifiziert. Der Aufbau der IP-Adressen ist in Abschnitt 5.3.1 erklärt. Ist der Zieladresse ein Host im gleichen lokalen Netzwerk, wird das Paket direkt an den Zielrechner ausgeliefert. Ist die Zieladresse nicht im gleichen lokalen Netz, wird das Paket an einen Router zur weiteren Auslieferung gereicht. Router stellen die Schnittstellen dar, die die Pakete zwischen den verschiedenen physikalischen Netzwerken weiterleiten (switchen). Die Entscheidung, welche Route benutzt wird, nennt man Routing. IP führt die Routing Entscheidung für jedes Paket einzeln durch.

Abbildung 5.5: Das Routing durch Router.

Die Abbildung 5.5 zeigt schematisch, wie Router die Packete weiterleiten. Die Hosts (oder Endrechner) geben die Packete durch alle vier Protokollschichten auf das physikalische Netz, während die Router nur die beiden untersten Schichten verwenden, in der Internet Layer wird die Routing - Entscheidung gefällt. Systeme können Pakete nur an solche Zielrechner abliefern, die im gleichen physikalischen Netzwerk liegen. Pakete, die vom Hostrechner A1 an den Host C1 bestimmt sind, werden durch die beiden Router R1 und R2 geleitet. Hostrechner A1 liefert seine Pakete zunächst an den Router R1 ab, da beide am gleichen Netzwerk A angeschlossen sind. Der Router R1 seinerseits liefert die Pakete an den Router R2, da beide im Netzwerk B angeschlossen sind. Hostrechner A1 hat keinerlei Kenntnisse von anderen Routern als R1. Host A1 sendet Pakete, die für das Netz B oder Netz C bestimmt sind, generell an den Router R1, der für den Host A1 die Funktion des lokalen Gateways spielt. Host A1 verläßt sich darauf, daß R1 die richtige Wegewahl für die Auslieferung der Pakete trifft.

Abbildung 5.6: Netzwerke, Router und Hostrechner.
\begin{figure}
\centering
\epsfig {file=../pics/net_rou.eps,width=9cm}
\end{figure}

Die Abbildung 5.6 zeigt eine andere Sicht des Routens. Hier erkennt man deutlich, daß die zugrundeliegenden physikalischen Netzwerke, über die die Datagramme laufen, unterschiedlich oder sogar völlig inkompatibel sein können. Hostrechner A1 liegt in einem lokalen Netzwerk vom Typ Token Ring und sendet seine Pakete an den Router R1 um den Host C1 im Ethernet zu erreichen. Router R1 wiederum leitet die Pakete weiter über das X.25 Netz an den Router R2, der die Pakete an den Host C1 abliefert. Die Datagramme durchlaufen drei physikalisch unterschiedliche Netze, erreichen aber dennoch komplett das Ziel den Host C1. Eine weitere Aufgabe, die dem IP obliegt, ist die sogenannte Fragmentierung von Datenpaketen. Da TCP/IP hardwareunabhängig ist, muß das IP in der Lage sein, die Größe der abzuschickenden Informationspakete dem jeweiligen Netzwerk anzupassen. Ein Datagramm das von einer Netzwerkart kommt, kann schlicht und einfach zu groß sein, um in Form eines einzelnen Paketes auf einem anderen Netzwerktyp übertragen zu werden. Jeder Netzwerktyp hat eine maximale Übertragungseinheit5.9, das ist die maximale Paketlänge, die übertragen werden kann. Ethernet (für LANs) benutzt zum Beispiel eine MTU von 1.500 Byte, die X.25 Schnittstelle für Telefonnetzübertragung fordert zum Beispiel eine Länge von 128 Byte.

Abbildung 5.7: Fragmentierung eines IP-Paketes in n Fragmente.

Jeder Netzknoten - der mit IP arbeitet - muß daher in der Lage sein, empfangene Pakete (zum Beispiel aus einem Ethernet) zu zerteilen und diese dann bis zum nächsten Knoten zu übertragen. Hier muß IP die Fragmente wieder zusammensetzen und sie wieder in eine andere Netzform - z.B. Token Ring - einspeisen. Ist das erste Fragment beim Empfänger eingetroffen, dann wird eine Uhr gestartet. Nach einer bestimmten Zeit (Größenordnung 30 Sekunden) müssen alle noch fehlenden Segmente eingetroffen sein. Ist dies nicht der Fall, dann werden alle bisher eingetroffenen, in einem Puffer gespeicherten Fragmente gelöscht. Das vermeidet, daß unvollständig übermittelte Pakete unnötig Platz beanspruchen. Das Format jedes Fragmentes unterscheidet sich nicht von einem normalen Datagramm. Im IP Header (siehe Abbildung 5.4) enthält im zweiten Word das Feld Identifikation Informationen darüber, zu welchem Datagramm das aktuelle Fragment gehört. Das Feld Fragmentabstand enthält Informationen darüber, welcher Teil des Datagramms das aktuelle Fragment darstellt. Das Feld Flags gibt darüber Auskunft, ob weitere Fragmente folgen, so daß der Empfängerhost erkennt, ob alle Fragmente eingetroffen sind oder nicht. Wenn nun das IP Protokoll ein Datagramm empfängt, das an den lokalen Hostrechner adressiert ist, muß IP die Nutzdaten des Datagramms an das adressierte Protokoll der Transport Layer weiterleiten. Dies geschieht durch das 8 Bit große Feld Transport im IP Header. Jedes Protokoll der Transportschicht hat eine eindeutige Protokollnummer, die es für die IP Layer eindeutig identifiziert. Ein integrierter Bestandteil von IP ist das
Internet Control Message Protokoll      ICMP
das in dem RFC 792 definiert ist. Dieses Protokoll ist Teil der Internet Layer und nutzt den IP Datagramm Mechanismus, um seine Nachrichten bzw. Steuersignale zu senden. ICMP sendet Nachrichten zur Kontrolle, Fehlerdiagnose und Informationen für die gesamte TCP/IP Protokoll Suite.
-
Flußkontrolle
Treffen die einlaufenden Datagramme zu schnell ein, um adäquat weiterverarbeitet werden zu können, sendet der empfangende Hostrechner oder der zwischengeschaltete Router eine sogenannte Source Quench Message an die Sendestation zurück. Dadurch stellt die Sendestation zeitweise das Absenden von Nachrichten ein.
-
Erkennung nichterreichbarer Zielrechner
Ist ein Zielrechner nicht erreichbar, sendet das System, das das Problem erkennt eine Destination Unreachable Message an den Host zurück, der das Datagramm abgeschickt hat. Ist das nichterreichbare Ziel ein Netzwerk oder ein Hostrechner, wird diese Message von einem Router gesendet. Ist das nichterreichbare Ziel ein Port, dann sendet der Zielrechner die Nachricht zurück.
-
Umleiten der Routen
Ein Router sendet die ICMP Redirect Message, um einem Host mitzuteilen, einen anderen Router anzuwählen, vielleicht weil dieser Router eine bessere Wahl ist.
-
Test des Remote Hosts
Ein Hostrechner ist in der Lage, ICMP Echo Messages zu senden, um zu prüfen, ob die IP Layer des Zielrechners operational ist. Empfängt ein System ein Echo Signal, antwortet es indem es das empfangene Datagramm an den Sender zurückschickt. Das ping Kommando nutzt genau diese Funktionalität des ICMP.

next up previous contents
Nächste Seite: Die Transport Layer - Aufwärts: Die TCP/IP Protokoll Architektur Vorherige Seite: Die Network-Access-Layer   Inhalt
Yasar Arman
2000-05-15