Internet Protocol (IP)

Das Internet Protokoll bietet Funktionen zur Wegewahl und Vermittlung von Datagrammen, um diese innerhalb eines Netzes bis zum Zielknoten zu befördern. Ein Datagramm ist eine eigenständige Datei-Einheit (auch Paket genannt), die ohne Schutz gegen Vervielfachung, Verlust, Verfälschung und Reihenfolgeveränderung gesendet wird. Die Ende-zu-Ende-Übertragung erfolgt verbindungslos. Durch die fehlenden Schutzmechanismen ist IP ein sehr schnelles Protokoll. Auftretende Fehler werden, wenn Sie erkannt werden, durch erneutes Senden des Paketes behoben. Das Protokoll ist optional für die Fragmentierung und Reassemblierung der Datagramme bei ihrer Beförderung durch Teilnetze auf dem Weg zum Zielsystem verantwortlich. Sender und Empfänger werden über Adressen einer festen Länge identifiziert.

Das Internet Protokoll implementiert zwei grundlegende Funktionen: Addressierung und Fragmentierung. Adressen, die zum Transport der Pakete dienen, sind im Header eines IP-Paketes gespeichert. Die Auswahl des Weges zu einem Ziel wird aufgrund dieser Adressinformationen getätigt. Dieser Vorgang wird als Routing bezeichnet und wird von sogenannten Gateways bzw. Routern durchgeführt. Auf dem Weg zum Ziel kann es notwendig werden die Pakete zu fragmentieren. Dies wird ebenfalls im Header angezeigt und ermöglicht es, die Datagramme wieder zusammenzusetzen.


IP-Paket-Header

Um die genannten Dienste zur Verfügung zu stellen, benutzt das Internet Protocol fünf grundlegende Mechanismen: Type of Service, Time to Live, Options und Header-Prüfsumme. Dies sind Felder, die im Header eines jeden Paketes eingetragen werden können. Abbildung 2 zeigt den Aufbau eines IP-Paketes inkl. Header.

 Erläuterungen
Abbildung 2 - Aufbau eine IP-Paketes

"Type of Service" ist ein Indiz für die Qualität der angebotenen Dienste. Es handelt sich dabei um eine abstrakte Sammlung von Parametern, welche die angebotenen Servicearten in einem Netzwerk beschreiben. Dies ermöglicht es Gateways die Übertragunsgparameter für einzelne Verbindungen oder ganze Teilnetzwerke bis zur nächsten Station einzustellen. "Type of Service" ist eher unter dem Schlagwort "Quality of Service (QoS)" bekannt. Es hat in IPv4-Netzwerken keine größere Bedeutung, da es kaum brauchbare Implementierungen diese Features gibt. Es wurden auf Basis des IP eigene Protokolle entwickelt, die QoS in IPv4 Netzen zur Verfügung stellen. Eine weit größere Bedeutung hat QoS in IPv6.

Der Wert "Time to Live" gibt die obere Grenze der "Lebenszeit" eines Datagramms an. Die "Lebenszeit" wird bei IP-Datagrammen in sogenannten hops gemessen. Jede Station auf dem Weg zum Ziel ist ein hop. Erreicht dieser Wert 0 bevor das Datagramm am Ziel angekommen ist, so wird es verworfen und erreicht sein Ziel nie.

Das Optionen-Feld wird sehr selten genutzt. Es kann für spezielle Anwendungen Einträge, beispielsweise Zeitstempel, enthalten.

Mit Hilfe der "Header-Prüfsumme" wird sichergestellt, daß das Paket nicht durch Störungen verändert worden ist. Wenn die Prüfsumme falsch ist, enthält das Paket Fehler und wird von der Station verworfen, die dies als Erste bemerkt. Entdeckte Fehler können durch das Internet Control Message Protocol (ICMP) gemeldet werden.

Übertragungsmodell

Die Übertragung eines Datagramms (siehe Abbildung 3) zwischen zwei Stationen, die über ein Gateway verbunden sind, lässt sich wie folgt illustrieren: Die sendende Applikation bereitet die Daten vor und ruft das Internet-Modul (IP Stack) des lokalen Rechners, welcher die Daten als Datagramm senden soll. Als Argumente dieses Rufes werden Daten, Zieladresse und andere Angaben übergeben. Der Internet-Modul bereitet den Datagramm-Header vor und fügt die erhaltenen Daten an. Als nächstes wird die lokale Adresse der Zieladresse vermittelt. Da in diesem Beispiel das Ziel nur über einen Gateway erreicht werden kann, ist es hier die Adresse des Gateways. Das Datagramm wird zu dieser Adresse gesendet. Das lokale Netzwerkinterface (NIC) des Rechners kreiert einen lokalen Header, fügt das Datagramm an und sendet das Ergebnis (Frame) über das lokale Netzwerk.

Das Datagramm erreicht den im Header des Frames angegebenen Gateway. Der Header wird entfernt und das Datagramm wird an das Internet-Modul des Gateways übergeben. Dieses erkennt aus dem Datagramm Header, daß das Paket für einen Host im zweiten Netzwerk bestimmt ist. Das Internet-Modul sucht wiederum die lokale Adresse des Ziels, ruft das lokale Netzinterface, in dem das Datagramm wieder mit einem Header versehen wird. Dieses Frame wird nun an das Ziel gesendet.

Die NIC des Zielhost packt das Frame aus, das Internet-Modul untersucht den Header und stellt fest, daß das Paket für eine Applikation des Rechners bestimmt ist. Die Daten werden an das Programm weitergegeben, Ursprungsadresse und andere Parameter ebenfalls.


Abbildung 3 - Übertragung eines IP-Paketes



Funktionsbeschreibung

Das Internet Protocol soll Datagramme in Netzwerken übertragen. Dies erfolgt durch die Übertragung von einem Internet-Modul zum Nächsten, bis das Ziel erreicht ist. Wie bereits im vorherigen Abschnitt erwähnt, gibt es auf jedem Rechner und Gateway ein Internet-Modul, welches für die Übertragung zuständig ist. Die Weiterleitung der Pakete erfolgt auf Grundlage der Interpretation der Internet-Adressen. Somit ist einer der wichtigsten Mechanismen des Internet Protocols die Adressierung.

Adressierung in IP-Netzwerken
Bei der Adressierung in IP-Netzen wird zwischen Namen, Adressen und Routen unterschieden. Ein Name bezeichnet was wir suchen, eine Adresse wo es ist und eine Route zeigt den Weg dahin. IP arbeitet primär mit Adressen - es ist die Aufgabe höherer Protokolle oder Anwendungen die Verbindung zwischen Namen und Adresse herzustellen. Das Internetprotocol stellt die Verbindung zwischen der Netzwerkadresse und der lokalen Netzadresse her, die Zuordnung zu einer Route ist die Aufgabe niederer Protokolle.

Adressen in IPv4 haben eine Länge von 32 Bit in vier Oktetts. Sie beginnt mit der Netzwerknummer, gefolgt von der Rechnernummer (auch Rest genannt). Im Internet gibt es insgesamt 5 verschiedene Adressräume, wo von drei zur Adressierung von Rechnern genutz werden können. Abbildung 4 zeigt eine Übersicht dieser Adressräume.


Abbildung 4 - Verfügbarer Adressraum in IPv4


Im Adressschema von IPv4 gibt es Bereiche, die der Nutzung in lokalen Netzwerke vorbehalten sind. Diese Adressen sind nicht routingfähig, d.h. es ist nich möglich solche Hosts aus dem Internet zu adressieren. Dazu müssen spezielle Mechanismen eingesetzt werden. Des Weiteren gibt es spezielle Adressen, die nicht als Host-Adresse genutzt werden können. Hier eine Übersicht:
  • 0.0.0.0 - eigene, noch unbekannte Adresse / sogenannte Default-Route (an alle unbekannten Netze)
  • 127.xxx.xxx.xxx - Adressraum für rechnerinterne Loopback-Tests (beispielsweise 127.0.0.1 - localhost / Adressierung des eigenen Internet-Moduls ohne Kenntnis der Adresse)
  • Broadcastadressen - 255.255.255.255 sendet an alle im eigenen Netz
  • reservierte Adressbereiche:
    • Klasse A - 10.0.0.0 bis 10.255.255.255 (1 Netz)
    • Klasse B - 172.16.0.0 bis 172.31.255.255 (16 Netze)
    • Klasse C - 192.168.0.0 bis 192.168.255.255. (256 Netze)

Fragmentierung von Paketen
Die Übertragung von Paketen von einem Internet-Modul zum nächsten kann es notwendig machen, daß die Pakete durch Netze transportiert werden, deren maximal Paketgröße kleiner ist als die des Paketes. Um diese Schwierigkeit zu überwinden, stellte das Internet Protocol mit den Fragmentierungs-Mechanismus zur Verfügung.

Eine Fragmentierung von IP-Paketen ist notwendig, wenn das Urspungsnetzwerk größer Pakete erlaubt als ein Netzwerk, durch das es transportiert wird. Dies stellt sicher, daß das Paket trotz dieser Schwierigkeit sein Ziel erreicht. Es besteht allerdings auch die Möglichkeit ein Paket so zu kennzeichnen, daß eine Fragmentierung nicht durchgeführt wird. Dies kann aber dazu führen, daß das Paket verworfen wird, wenn es für ein Netzwerk zu groß ist.

Die Fragmentations- und Zusammensetzungsprozedur muß in der Lage sein die Datagramme in eine beliebige Anzahl von Teilen zu zerlegen, die später wieder zusammengesetz werden können. Der Empfänger kann durch das Identifiktaions-Feld sicherstellen, daß Teile verschiedener Datagramme nicht vermischt werden. Im Feld "Fragment offset" wird die Position der Teile im ursprünglichen Datagramm vermerkt. Der Empfänger kann über diese Feld und das Feld "Length" bestimmen, wieviel er vom ursprünglichen Paket bereits empfangen hat. Über das "Flag"-Feld wird das letzte Fragment eines Datagramms gekennzeicht. Diese Felder bieten ausreichend Informationen um Fragmente wieder zu einem IP-Paket zusammenzusetzen.

Wie bereits erwähnt, wird über das Identifikationsfeld eine eindeutige Zuordnung der Fragmente untereinander gewährleistet. Durch das Internet-Modul des Senders muss ein Identifikator gesetzt werden, der für das Sender-Empfänger-Protokoll-Paar eineindeutig ist.

Um ein langes Datagramm zu fragmentieren, erzeugt das Internet-Modul zwei neue Datagramme und kopiert den Inhalt der Headerfelder in die neuen Header. Die Daten werden in zwei Teile a 64 Bit geteilt. Das erste Fragment eines Datagramms muß 64 Bit lang sein, weitere Teile können unter Umständen kleiner sein. Der erste Teil der Daten wird im ersten Fragment angehängt und das Feld "Total Lenght" wird auf die Länge des ersten Fragmentes gesetzt. Das "more fragments-flag" wird auf 1 gesetzt. Bei den weiteren Fragmenten läuft diese Prozedur genauso ab. Beim letzten Fragment wird das "more fragments-flag" auf den Wert des ursprünglichen Datagramms gesetzt.

Um Fragmente wieder zusammenzusetzen, nimmt das Internetmodul alle Fragmente, die die selben Werte in den Feldern "Identification", "Source address", "Destination adress" und "Protocol" haben. Die Rekombination wird durch eine Platzierung der Datenteile eines jeden Fragmentes in der relativen Reihenfolge, die im Feld "fragment offset" gespeichert ist, gewährleistet.



Quellen RFC 791 - Internet Protocol, Sept. 1981


Artikel Info
online seit:  01.11.02
Autor: Robert Sieber

Bewertung:

Rating : 3Rating : 3Rating : 3

Sie können diesen Artikel:

  • bewerten
  • kommentieren (1)
  • weiterempfehlen
  •  

    Nutzungshinweis und Copyright Dieser Beitrag wurde unter Verwendung der genannten Quellen geschrieben. Alle Rechte liegen beim Autor! Jede Verwertung außerhalb der Grenzen des Urheberrechtsgesetztes ist ohne Zustimmung des Autors unzulässig und strafbar. Dies gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmung und die Einspeicherung und Bearbeitung in elektronischen Systemen.

    Die rechtmäßige Verlinkung dieser Seite ist ausdrücklich erwünscht. Dabei muß klar erkennbar sein, daß es sich nicht um eigenen Inhalt der verlinkenden Seiten handelt. Des Weiteren wäre es nett, wenn der Webmaster von der Verlinkung informiert wird. Eine unrechtmäßige Verlinkung (Laden der Seite innerhalb von Frames u.ä.) ist ausdrücklich verboten.

    Nutzungserlaubnis für www.protecus.de und www.different-thinking.de wurde durch die Autoren erteilt!
    Hauptseite rechtliche Hinweise Impressum

    hosted by All-Inkl