Universität Karlsruhe Fakultät für Informatik Universität Karlsruhe

Proseminar Rechnerkommunikation und Telefon

IP - Das Internet-Protokoll

Michael Daub

Inhaltsverzeichnis

        1. Ein neues Netz entsteht
        2. Der Aufbau des Internet
                2.1 Die IP-Adresse
        3. Das Protokoll
                3.1 IP im OSI-Modell
                3.2 Der IP Header
        4. Routing
                4.1 Lokale Auslieferung
                        4.1.1 ARP - Address Resolution Protocol
                4.2 Transport über Gateways
        5. Was die Zukunft bringt: IPv6
        Abkürzungsverzeichnis
        Literatur

1. Ein neues Netz entsteht

Im Jahre 1969 beauftragte das amerikanische Verteidigungsministerium mehrere Universitäten und Forschungsinstitute mit der Entwicklung einer neuartigen Netzwerkarchitektur. Die Zielsetzung galt zum einen der Zusammenschaltung einzelner lokaler inkompatibler Netzwerke unterschiedlicher Standards über grosse Entfernungen, und zum anderen sollte das neue Netz eine grosse Ausfallsicherheit aufweisen, das heisst im Falle eines Defektes sollte nicht das ganze Netz zusammenbrechen, und wenn möglich sollten defekte Komponenten transparent für den Benutzer durch andere Komponenten automatisch ersetzt werden. Als Ergebnis endstanden die Protokolle um die TCP/IP - Familie welche seit 1983 der Standard für die Netze des amerikanischen Verteidigungsministeriums sind.

Mit der Zeit erhielten auch andere wissenschaftliche Institutionen Zugriff auf das Internet, welches anfangs rein militärische Zwecke erfüllte. Im Laufe der neunziger Jahre öffnete sich das Internet auch kommerziellen Anbietern und Privatpersonen, um 1995/1996 fassten die ersten kommerziellen Internet-Provider in Deutschland Fuss, anfangs noch zu hohen Preisen, doch seit Ende der neunziger Jahre ist ein privater Internetzugang für einen Grossteil der Bevölkerung bezahlbar geworden.

2. Der Aufbau des Internet

Das Internet-Protokoll ist ein verbindungsloses Protokoll, das heisst es besteht keine direkte logische Verbindung zwischen Sender und Empfänger. Der Sender schickt Pakete los, welche so lange von Computer zu Computer weitergereicht werden, bis sie den Empfänger schliesslich erreichen oder als unzustellbar verworfen werden.

Auf globaler Ebene betrachtet setzt sich das Internet aus untereinander verbundenen Knotenpunkten zusammen (siehe Abb. 2.1), welche ein weites, unübersichtliches Netz aufspannen. Die Knotenpunkte können hierbei als Städte oder ganze Länder interpretiert werden, die durch Datenleitungen miteinander verbunden sind.


Abb. 2.1: Das Internet im globalen Massstab

Sollte hier unerwartet eine Verbindung ausfallen, zum Beispiel die zwischen Punkt A und B (hier rot angedeutet) so können diese beiden Punkte immer noch auf einem Umweg über C miteinander kommunizieren (angedeutet durch die blaue Linie). Genauso kann Punkt D mit Punkt B über Punkt E kommunizieren (grüne Linie), auch wenn die Kommunikation aus Kostengründen standardmässig über Punkt A geleitet werden würde. Hierzu müssen die einzelnen Knotenpunkte miteinander kommunizieren und ihre Routing-Tabelle dynamisch anpassen. Das Routing ist dafür verantwortlich, dass Pakete in die für sie sinnvollste Richtung weitergeleitet werden, damit sie ihrem Zielrechner immer näher kommen. Man kann die Verbindungsleitungen als Strassen interpretieren und die Router, die die Schnittstelle der Knotenpunkte nach aussen darstellen, als Kreuzungen. Dann kann man die Routing-Tabelle als Wegweiser deuten, die jedem Paket zeigt in welche Richtung es weitergeleitet werden muss. Da diese Routing-Tabellen dynamisch angepasst werden können, bieten sich hier vielfältige Möglichkeiten zur Umgehung defekter Strukturen an, woraus die hohe Fehlertoleranz des Internet resultiert.

Wenn man nun in die kleinsten Strukturen des Internet vordringt (siehe Abb. 2.2) erkennt man die bereits in Abschnitt 1 beschriebenen lokalen Netzwerke, welche in der Abbildung durch die zwei ovalen Markierungen gekennzeichnet sind. Sie sind durch Router (grün gekennzeichnet), die ebenfalls Teil des Netzes sind, aber mehrere Netzwerkschnittstellen besitzen, mit anderen Netzen oder Routern verbunden. Auf diese Weise können mehrere kleine Netzwerke zu einem grossen Netzwerk zusammengefasst werden, hier durch den grossen orangefarbene Rahmen gekennzeichnet. Hierbei bilden die kleineren Netze Unternetze, sogenannte Subnetze innerhalb des grossen Netzwerks.


Abb. 2.2: Das Internet auf lokaler Ebene

2.1 Die IP-Adresse

Um in einem Netzwerk eindeutig identifizierbar zu sein benötigt ein Teilnehmer zwangsläufig eine eindeutige Kennung. Diese Aufgabe übernimmt im Internet die IP-Adresse.

Die IP-Adresse ist ein 32-Bit-Wort welches sich in zwei Bereiche spaltet, nämlich den Netzanteil, der durch die höherwertigen Bits repräsentiert wird, und den Hostanteil. Obwohl die IP-Adresse meist als Folge von 4 Oktetten (Bytes) geschrieben wird, sind diese Grenzen nicht für die Grösse des Netz-/Hostindex bindend, das heisst es wäre beispielsweise auch ein Netz mit 20 Bit Netzanteil und 12 Bit Hostanteil möglich. Der Netzanteil definiert dabei das Netwerk, in dem sich ein Rechner befindet, und der Hostanteil indiziert den Rechner innerhalb dieses Netzwerkes. So kann ein Netzwerk mit 24 Bit Netzanteil und 8 Bit Hostanteil maximal 254 Rechner aufnehmen. Der Hostindex 0 ist reserviert und steht für das gesamte Netzwerk, ebenso ist ein Hostindex, der nur aus Einsen besteht (hier 11111111 binär) als Multicast-Adresse reserviert, was soviel heisst wie dass bei dieser Adresse alle Rechner des Netzwerks angesprochen werden.


Abb. 2.3: Die IP-Adresse

Wenn wir uns nochmals Abb. 2.2 betrachten, stellen wir fest, dass es verschiedene Ebenen von Netzen gibt, dies lässt weitreichende Interpretationen für den Netz- und Hostanteil der IP-Adresse zu. In der Praxis wird allerdings meistens die kleinste Netzstruktur, in der sich ein Rechner befindet, als Heimatnetz interpretiert. In unserem Beispiel wäre 129.13 der Netzanteil des grossen Netzes (129.13.0.0) und 129.13.64 der Netzanteil des Subnetzes (129.13.64.0).

Um nun die Netzadresse aus einer gegebenen IP-Adresse zu extrahieren wurde die sogenannte Netzmaske eingeführt. Sie ist ebenfalls ein 32-Bit-Wert, wobei die höherwertigen Bits, welche bei der IP-Adresse das Netz indizieren, aus Einsen bestehen und die Bits des Hostanteils aus Nullen. Somit werden durch eine AND-Verknüpfung mit der IP-Adresse alle Host-Bits auf Null gesetzt und man erhält dadurch die eigene Netzwerkadresse. Dieser Schritt ist besonders für das Routing von Bedeutung, welches in Kapitel 4 behandelt wird.

Während in der Theorie die Grösse der Netzwerkadressen unerheblich ist, wurden in der Praxis bestimmte Konventionen getroffen um die Vergabe von IP-Adressen etwas zu erleichtern. So wurden die IP-Adressen in verschiedene Klassen aufgeteilt, mit jeweils 8, 16 und 24 Bit Netzanteil. Im Hostanteil dieser Netze können sich dann wieder Subnetze befinden, wobei die Verantwortung für deren Konfiguration und Wartung nun allein beim Netzbetreiber liegt und nicht mehr von einer globalen Institution geregelt werden muss.


Abb. 2.4: Klasseneinteilung der IP-Adressen

Abschliessend seien noch einige speziellen IP-Adressen erwähnt:

3. Das Protokoll

Dieser Abschnitt wird sich mit den Datagrammen und der Einbindung von IP in andere Programmstrukturen beschäftigen.

3.1 IP im OSI-Modell


Abb. 3.1: IP im Schichtenmodell

Das ISO-OSI-Modell spaltet die Vorgänge bei der Datenübertragung in verschiedene Komponenten, um die Kommunikation zwischen verschiedenen Standards zu erleichtern. Jede Schicht hat eine fest definierte Aufgabe, und die Schichten sind übereinander gestapelt (protocol stack). Auf der 1. Ebene befindet sich die physikalische Schicht, repräsentiert durch die Netzwerk-Hardware, die die Verbindung zu den physikalischen Signalen, die auf die Leitungen bzw. das Übertragungsmedium gegeben werden, darstellt. An zweiter Stelle steht die sogenannte Datensicherungsschicht welche sich aus der Logical Link Control (LLC), welche die Schnittstelle zur nächsthöheren ISO-Schicht darstellt, und der darunter liegenden Media Access Control (MAC) zusammensetzt. Die Aufgabe dieser Schicht ist die Ansteuerung der Netzwerk-Hardware. Sie wird durch ein Protokoll implementiert, dessen Aufgabe es ist, die direkte Übertragung innerhalb eines physikalischen Netzes zwischen zwei benachbarten Computern zu regeln. Auf Ebene 3 wird schliesslich das Internet-Protokoll eingebunden, dessen Aufgabe es ist, ein Datenpaket vom sendenden Rechner über mehrere Zwischenschritte zum Zielrechner zu transportieren. Auf Ebene 4 setzen dann höhere Protokolle auf, wie beispielsweise TCP oder UDP [1]. Für die Übertragung zum Zielrechner sind die Ebenen 1 bis 3 des OSI-Modells zuständig, der Zielrechner erhält die unveränderten Pakete der Schicht 4.

Ein Protokoll besteht aus zwei wichtigen Elementen: Zum einen die Nutzdaten, das sind die Daten, die transportiert werden sollen, und protokollspezifische Steuerdaten, die zur Erfüllung der Aufgabe des entsprechenden Protokolls wichtig sind. Darunter fällt unter anderem auch die Empfängeradresse. Die Steuerdaten selbst werden meist am Anfang des Datenpaketes als sogenannter Header gesendet und danach die Nutzdaten angehängt (siehe Abb. 3.1). Im folgenden Abschnitt wollen wir uns mit dem Header des Internet Protokolls beschäftigen und daran dessen Fähigkeiten beurteilen.

3.2 Der IP Header


Der IP Header

4. Routing

Die eigentliche Aufgabe des Internet-Protokolls ist das Routing, die Bestimmung eines sinnvollen Weges durch ein Netz von Datenleitungen um effizient Pakete ausliefern zu können. Das Routing wird von sogenannten Routern übernommen, Rechner, deren einzige Aufgabe es ist die Kommunikationsschnittstelle zwischen mehreren physikalischen Netzwerken herzustellen. Über diese Rechner werden Datenpakete weitergereicht, bis sie schliesslich den Zielrechner erreichen. Nun stellt sich natürlich für den Router die Frage, an wen er einzelne Datenpakete weitersenden soll. In der Praxis wird dies durch eine Routing-Tabelle geregelt, welche man als Wegweiser an Kreuzungen des Datenverkehrsnetzes interpretieren kann. Diese Tabelle ist nach folgendem Schema aufgebaut:
	[IP/Netz]	[Netzmaske]	[Gateway]	[Schnittstelle]
Durch die IP- oder Netz-Adresse wird mittels der Netzmaske ein Netz beschrieben. Sollte die Netzmaske 255.255.255.255 verwendet werden, so handelt es sich um einen einzelnen Rechner mit einer einzelnen IP-Adresse. In der Praxis läuft beim Routing folgendes ab: Der letzte Eintrag in der Routing-Tabelle ist der sogenannte default - Eintrag mit der IP-/Netz-Adresse 0.0.0.0 und der Netzmaske 0.0.0.0, wodurch durch diesen Eintrag alle noch übrig gebliebenen Pakete geroutet werden. Somit ist für jedes Paket sein nächster Schritt definiert.

4.1 Lokale Auslieferung

Sollte ein Paket an einen Rechner versandt werden, der sich im gleichen physikalischen Netz wie der sendende Rechner befindet, macht es natürlich wenig Sinn, das Paket über Umwege zu einem Router zu schicken. Jeder Rechner kann mittels der Netzmaske erkennen, ob ein Paket im Heimatnetz direkt ausgeliefert werden kann. Da die IP-Adresse nur eine logische Kennung ist und nicht auf Hardwareebene wirkt, sondern erst ab dem OSI Level 3, muss nun eine Verbindung zwischen der IP-Adresse und der physikalischen Übertragungsebene hergestellt werden. Dazu ist es nötig das Übertragungs- und Adresssystem eines physikalischen Netzwerkes zu betrachten. Jede Netzwerkkarte besitzt eine eindeutige aus 6 Bytes bestehende Kennung, die sogenannte MAC-Adresse. Diese Adresse ist direkt auf der Hardware einer Netzwerkkarte abgespeichert und jede Adresse existiert weltweit nur einmal. Diese Adresse wird als Empfänger-Adresse auf der Ebene der LLC-Schicht verwendet. Somit muss jeder Rechner und Router entsprechend der IP-Adresse eine MAC-Adresse bestimmen, an welche das entsprechende Paket gesandt wird.

4.1.1 ARP - Address Resolution Protocol

Um die Verbindung zwischen IP-Adresse und MAC-Adresse herzustellen wurde das Adress Resolution Protocol (ARP) entwickelt, welches neben IP existiert und nicht eines der höheren Protokolle darstellt. Jeder Rechner legt dabei einen ARP-Cache an, in welchem er verifizierte Paare von IP- und MAC-Adressen ablegt. Um die MAC-Adresse einer unbekannten IP-Adresse zu erfahren schickt der Rechner einen sogenannten ARP request per Broadcast auf das Netz, das heisst, dieses Paket wird von allen mit dem Netzwerk verbundenen Rechnern empfangen. Hat einer unter ihnen die gesuchte IP, so schickt er eine Antwort, in welcher er seine MAC-Adresse mitteilt.

Wenn man den Netzwerkverkehr betrachtet, könnte eine ARP-Kommunikation, die Datenpakete in Worte gefasst, in etwa so aussehen (129.13.64.254 sucht 129.13.64.5):

arp who-has 129.13.64.5 tell 129.13.64.254
arp reply 129.13.64.5 is-at 00-E0-4C-C5-17-0D

4.2 Transport über Gateways

Erkennt der Rechner, dass ein Ziel nicht innerhalb des eigenen Netzes liegt, so sendet er es an den für sein Netz zuständigen Gateway, welcher die Schnittstelle nach aussen darstellt. Dieser hat dann in seiner Funktion als Router die Aufgabe das Paket weiterzuleiten.

Diese indirekte Auslieferung findet schrittweise statt. Das Paket wird von einem Rechner zum nächsten weitergereicht, und genau diese einzelnen Schritte lassen sich als direkte Auslieferung gemäss Abschnitt 4.1 interpretieren, wobei jeweils der folgende Router temporärer Zielrechner ist. Eine indirekte Auslieferung wird sozusagen in mehrere direkte Auslieferungen verpackt.

5. Was die Zukunft bringt: IPv6

Inzwischen ist das Internet so sehr gewachsen, dass IPv4 an seine Grenzen stösst, besonders die IP-Adressen gehen langsam zur Neige. Deshalb wurde IPv6 entwickelt, welches der alten Version gegenüber einige grosse Vorteile besitzt.

Die IP-Adresse wurde von 32 Bit auf 128 Bit erweitert. Dieser Adressraum sollte dir nächsten Jahrzehnte ausreichen... dies ist umgerechnet auf die Oberfläche der Erde 667 Billiarden Adressen pro Quadratmillimeter oder 6,5 * 10^28 Adressen pro Mensch [2]. Zur Wahrung der Kompatibilität mit IPv4-Teilen des Netzes wurde extra ein kleiner Bereich des neuen Adressraumes für die alten 32-Bit-Adressen reserviert, damit die Umstellung eines Systems auf IPv6 ohne grösseren Aufwand verläuft und keine plötzliche Reorganisation des gesamten Internet nötig ist (welche auch realistisch nicht durchführbar wäre).

Neben der neuen IP-Adresse wurde der neue Header des Protokolls noch einfacher gestaltet, er enthält nur noch 7 anstatt 13 Felder. Einzelne weniger wichtige Felder können nachträglich im Optionsblock eingefügt werden. Die Beachtung des Datentyps soll verbessert worden sein, das heisst, das was man in IPv4 mit dem Feld Type of Service erreichen wollte, funktioniert nun endlich. IPv6 soll verbesserte Sicherheit liefern und Roaming ermöglichen, das heisst, man sollte sich an verschiedenen Zugangspunkten mit der gleichen IP-Adresse ins Netz einklinken, dies ermöglicht eine feste IP-Adresse unabhängig vom aktuellen Standort, was vor allem für Mobile Computing interessant sein dürfte.

Schliesslich ist IPv6 ein sehr flexibles Protokoll, das lange Zeit neben dem alten IPv4 existieren kann und auch für die Zukunft Möglichkeiten zur Erweiterung und Verbesserung bietet.

Abkürzungsverzeichnis

Literatur

  [Universität Karlsruhe] [Institut für Technische Informatik] [E-Mail an Autor]  
Letzte Änderung: 2001-02-16 16:02:56