"Internet Protocol" (iP) Von : ToXiCFiRe Computer:Teenage:Riot (www.planlos.net/ToxicFire/) About : Dies ist eine kleine einführung in das Internet Protocol, Datenpaket De/Fragmentierung, IP Headernund TCP/IP Adressierung ...... Ueber das IP ------------- Die Verbindung zwischen Datennetzwerken wird als Interconnection bezeichnet. Relaisationen, auch Transit- oder Routing-Systeme genannt, realisieren den uebergang zwischen den Netzwerken. Innerhalb der TCP/IP-Protokollfamilie ist das Internet Protocol (IP) fuer die Weiterleitung der Daten zustaendig. Das IP hat generell die Aufgabe, die Datenuebertragung zwischen verschiedenen Netzwerken sicherzustellen. Jedes IP-Datenpaket wird als gaenzlich unabhaengiges Datenpaket (Datagramm) durch das Netzwerk an den spezifizierten Empfaenger uebermittelt. Verbindungsaufbau oder Verbindungsabbau fallen nicht in den Zustaendigkeits- bereich des IP. Ermittlung Realisierung des optimalen Weges zwischen Sender und Empfaenger fuer jedes Datenpaket, sind die Hauptaufgaben des IP. Das IP stellt keine gesicherte Verbindung zur Verfuegung, es verlaesst sich hier auf die Prorokolle die die End-zu-End-Kontrolle uebernehemen. IP kann auch keine verlorenen oder abgelehnten Datenpakete neu generieren und neu uebertragen. Genausowenig ist es seine Aufgabe, Datenpakete reihenfolge- richtig beim Empfaenger abzuliefern. Das Protokoll ist im RFC 791 und den MIL-Spezifikationen MIL-STD 1777 ausfuehrlich beschrieben. Datenpaketlaenge in Netzwerken ------------------------------- Daten werden im Netzwerk und zwischen Netzwerken nicht als kontinuierlicher Datenstrom uebermittelt, sondern in Datenpakete "zerlegt". Fuer die Netzwerk- typen sind unterschiedliche Datenpaketlaengen festgelegt. Trotzdem koennen Datenpakete auch zwischen Netzwerken uebertragen werden, deren maximal zulaessige Datenpaketlaenge kleiner ist als die des zu transportierenden Datenpakets (Datagramms). Beispielsweise verkraftet ein Ethernet-Netzwerk eine maximale Datenpaketlaenge von 1512 Bytes, ein Token-Ring-Netzwerk toleriert Datenpakete mit bis zu 4000 Byte, und ein FDDI-Netzwerk transportiert Datenpakete, die bis zu 4500 Byte lang sind.... Die maximale Datenpaketlaenge der Netzwerktypen haengt von mehreren Faktoren ab: #- Hardware-Beschraenkung #- Software-Beschraenkung #- Definition des Protokolls #- normbedingte Beschraenkung #- Massnahmen zur Fehlerreduktion Fragmentierung und Defragmentierung von Datenpaketen : ------------------------------------------------------ Ist ein Datenpaket wegen seiner ueberlaengen nicht als eine Einheit uebertragbar, muss es in kleinere Einheiten (Datenpakete, Fragmente) zerlegt werden, die eine fuer die Komunikationspartner vertraegliche Laenge aufteilen. Der Sender zerkleinert die Datenpakete also in kleinere Datagramme und sendet diese an den Empfaenger. Da diese Datenpakaete aber weder reihenfolgerichtig gesendet werden noch einen identischen Weg durch das Netzwerk (die Netzwerke) nehmen muessen, sind zusaetzliche Informationen erforderlich, die es erlauben, den Zustand des urspruenglichen Datenpakets zu rekonstruieren. Jedes Datenpaket erhaelt daher bei der Uebertragung ein Etikett, das alle notwendigen Informationen enthält. Auf diesem Etikett, dem IP Header, sind alle Angaben verzeichnet, die der Empfaenger zur eindeutigen Identifizierung und Zuordnung des Datenpakets benoetigt. Welchen Weg das autonome, fragmentierte Datenpaket durch das Netzwerk zugewiesen bekommt und wann es beim Empfaenger eintrifft - das ist fuer den Empfaenger nicht mehr von gravierender Bedeutung: Er kann den urspruenglichen Zustand anhand der im IP Header enthaltenen Informationen der eintreffenden Datenpakete rekonstruieren. Diese Rekonstruktion der urspruenglichen Sendereihenfolge erfolgt durch den Reassembling-Mechanismus. Für die reihenfolgerichtigen Zusammensetzung der fragmentierten Datenpakete ist das IP auf dem Rechner des Empfaengers verantwortlich. Der Fragmentierungsprozess hat im IP Header Einfluss auf die jeweils eingetragenen Werte der Felder : #- Total Length #- Flags #- Fragment Offset #- IP Header Chesum #- Option Abbildung eines IP Header : (1.Byte) (2.Byte) (3.Byte) (4.Byte) ------------------------------------------------------------------------- | 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |-----------------------------------------------------------------------| |Version | IHL | Type of Service | Total Length | ------------------------------------------------------------------------- | Identification Number | Flags| Fragment Offsett | ------------------------------------------------------------------------- | Time to Live | Protocol | IP Header Checksum | ------------------------------------------------------------------------- | IP Source Address | ------------------------------------------------------------------------- | IP Destination Address | ------------------------------------------------------------------------- | Options | Padding | ------------------------------------------------------------------------- TOTAL LENGTH (Gesamtlänge) ............. Da sich bei der Fragmentierung die Gesamtlaenge des Datenpakets zwangslaeufig aendert, sind die Laenge des IP Headers und des nachfolgenden Datenteils neu zu berechenen. FLAGS ...... Die Flag Bits im IP Header signalisieren dem Empfänger des Datenpakets, ob der eintreffende Datenstrom fragmentiert wurde. +-------+ | Flags | +-------+ / | \ / | \ 0 1 2 ------------- | 0 | DF | MF | ------------- Das "Don't Frament" Flag ist fuer Netzwerkknoten gedacht, die den Fragment- tierungsprozess nicht unterstützen. Wurde ein Datenpaket nicht Fragmentiert, is der Wert des MF-Bits 0. Dieser Wert kennzeichnet auch das erste Fragment eines Datenpakets. Ist das "More Fragment" (MF) Bit auf 1 gesetzt, signalisiert dies dem Empfaenger, dass weitere Fragmente folgen. Die Anordnung der Fragmente im urspruenglichen Datenpaket ist im Fragment Offset verzeichnet. FRAGMENT OFFSET ............... Dieses Feld verzeichnet die relative Lage der Fragmente zum Anfang des urspruenglichen Datenpakets. Bei einem nicht fragmentierten Datenpaket oder beim ersten Fragment ist der Wert immer 0. IP HEADER CHECKSUM .................. Das Feld enthaelt eine Pruefsumme, die nur den IP Header auf Fehler ueber- prueft. Durch die Fragmentierung veraendert sich die Pruefsumme des Headers: sie muss neu berechnet werden. Defragmentierung (Reassembling) : Beim Empfaenger werden alle eingetroffenen Fragmente unter bestimmten Bedingungen zu einem Datenpaket zusammen gesetzt : Alle Fragmente verfuegen ueber die geleiche : #- Source Address (Quelladresse) #- Destination Address (Zieladresse) #- Protocol (Protokolltypenkennung) #- Identification Number (Identifikationsnummer) Reassembling Timer : Die Zeitspanne, in der die Reassemblierung eines Datenpakets zu erfolgen hat, ist begrenzt, um nicht unnoetig Ressourcen (d.h. die Puffer, in dennen die Datenpakete zwischengespeichert werden) zu blockieren. Der Reassembling Timer ist zustaendig fuer Setzung und Kontrolle der Zeitdauer. Beim Empfang eines Datenpakets wird der Timer gestartet (Standartwert 15sek). Treffen weitere Datenpakete ein, wird er zurück auf den Anfangswert gesetzt. Trifft innerhalb der definierten Zeit kein weiteres zum Datenpaket gehörendes Fragment ein, obwohl beim zuletzt eingetroffenen Fragment das More Fragment Bit gesetzt war, werden alle bereits empfangenen Fragmente verworfen. Die Pufferresourcen werden wieder freigegeben. Der Fragmentierungsprozess wird auch beendet, wenn das letzte zum Datenpaket gehoerende Fragment eingetroffen ist. IP HEADER ---------- Abbildung eines IP Header : (1.Byte) (2.Byte) (3.Byte) (4.Byte) ------------------------------------------------------------------------- | 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |-----------------------------------------------------------------------| |Version | IHL | Type of Service | Total Length | ------------------------------------------------------------------------- | Identification Number | Flags| Fragment Offsett | ------------------------------------------------------------------------- | Time to Live | Protocol | IP Header Checksum | ------------------------------------------------------------------------- | IP Source Address | ------------------------------------------------------------------------- | IP Destination Address | ------------------------------------------------------------------------- | Options | Padding | ------------------------------------------------------------------------- VERSION ........ Das Versionsfeld legt die verwendete Version des IP Headers fest. IHL - IP HEADER LENGTH ....................... Dieses Feld gibt die gesamte Laenge des IP Headers an, ausgedrueckt in 32 Bit Einheiten. Es ist wegen der variablen Laenge des Optionenfeldes im IP Header erforderlich. TYPE OF SERVICE ............... Das Type-of-Service-Feld definiert die Dienste eines IP Datenpakets. Beispielweise koennen die vorrangige Behandlung von Datenpaketen, die Durch- satzart oder die Belegung von Resourcen in Routern festgelegt sein. Den anderen Protokollen, dennen der Weg der Datenpakete zwischen Sender und Empfaenger bekannt ist, legen fuer die zu uebermittelnden Datenpakete bestimmte Verarbeitungsfunktionen fest. Die Verarbeitungsanweisungen werden nur von Routern zwischen Netzen verstanden und ausgefuehrt. Verzeichnet werden diese Anweisungen durch die Type-of-Service-Parameter. |--------------------------| | Type of Service | |__________________________| / \ / \ /--------------------------------\ | 0 1 2| 3 | 4 | 5 | 6 | 7 | ---------------------------------- | PRECEDENCE | D | T | R | 0 | 0 | ---------------------------------- #- PRECENDENCE (Vorrangssteuerung) Standardwert: 000 (Routine) Erteilt einem Router die Anweisung, die gekentzeichneten Datenpakete bevorzugt zu uebermitteln. Diese Datenpakete werden nicht an die Warteschlange des weiterverarbeitenden Routers angehaengt. 111 : Network Control 110 : Internetwork Control 100 : Flash Override 010 : Immediate 001 : Priority 000 : Routine #- D = DELAY (Verzögerung) Standardwert: 0 (normale Verzoegerung) Bei iner langen Verarbeitungswarteschlange in einem Router werden Datenpakete mit geringer Verzoegerung bevorzug uebertragen. 0 : normale Verzögerung 1 : geringe Verzögerung (low Delay) #- T = THROUGHPUT (Durchsatz) Standardwert: 0 (normaler Durchsatz) Bei einer langen Verarbeitungswarteschlange in einem Router werden Datenpakete mit hoher Durchsatzanforderung (1;high) bevorzugt uebertragen. 0 : normaler Durchsatz 1 : hoher Durchsatz #- R = RELIABILITY Standardwert : 0 (normale Zuverlaessigkeit) Bei einer langen Verarbeitungswarteschlange in einem Router werden Datenpakete mit hoher Zuverlaessigkeitsanforderung (1;higher) bevorzugt uebertragen. 0 : normale Zuverlaessigkeit 1 : hohe Zuverlaessigkeit TOTAL LENGTH ............ Die Angabe in diesem Feld verzeichnet die Gesamtlaenge des Datenpakets , ein- schliesslich des IP Headers und des Datenteils, als Anzahl der Byte. Erlaubt ist ein maximaler Wert von 65 535 Bytes. Datenpakete mit der erlaubten Maximallaenge sind von den meisten Netzwerken und Netzwekknoten nicht zu verarbeiten. Netzwerkknoten muessen Datenpakete mit einer maximalen Laenge von 576 Bytes empfangen koennen. IDENTIFICATION NUMBER ...................... Kennwert zur Zuordnung von Fragmenten zu einem Datenpaket. Anhand des Feldes ermittelt der Empfaenger, welchem Datenpaket ein eintreffendes Fragment zuzuordnen ist. FLAGS ..... Dieses Feld enthaelt die Kontroll-Flags "Don't Fragment" (DF), das die Fragmentierung eines Datenpakets durch IP verhindert, und "More Fragment" (MF), das zur Positionierung eines Fragments im urspruenglichen Datenpaket dient. +-------+ | Flags | +-------+ / | \ / | \ 0 1 2 ------------- | 0 | DF | MF | ------------- #- Bit 0 Reserved (Reserviert) Muss immer auf 0 gesetzt sein. #- Bit 1 (DF) 0 : May Fragment, Fragmentierung moeglich 1 : Don't Fragment, Fragmentierung moeglich #- Bit 2 (MF) 0 : Last Fragment, Das letzte Fragment eines Datenpakets 1 : More Fragments, Es folgt ein weiters Fragment FRAGMENT OFFSET ............... Dieses Feld verzeichnet die realtive Lage der Fragmente zum Anfang des Daten- stroms im urspuenglichen Datenpaket. Bei einem nicht fragmentierten Datenpaket bzw. beim ersten Fragment ist der Wert des Frament Offset immer 0. Das Fragment Offset definiert die Lage des jeweiligen Fragments als ein Vielfaches von 8 Byte. TIME TO LIVE ............ Das Time-to-Live Feld definiert die Lebensdauer eines Datenpakets im Netzwerk. Faellt der Wert auf Null, muss das Datenpaket terstoert werden. Masseinheit fuer das Feld ist die Sekunde. Die Lebensdauer eines Datenpakets betraegt maximal 255 Sekunden oder den Uebergang ueber 255 Router. Der Wert des Feldes wird bei jedem Durchgang durch eien Router um mindestens 1 herabgesetzt. PROTOCOL ........ Dieses Feld definiert welches weiterverarbeitende Protokoll als nachstes dem Datenteil voranzustellen ist. Die wichtigsten weiterverarbeitenden Protokolle : 1 : ICMP (Internet Control Message Protocol) 6 : TCP (Transmission Control Protocol) 8 : EGP (Exterior Gateway Protcol) 17 : UDP (User Datagramm Protocol) IP HEADER CHECKSUM .................. Enthaelt eine Pruefsumme, die nur den Header auf Fehler ueberprueft. Durch die Pruefsumme koennen Uebermittlungsfehler erkannt werden. Bei der Uebertargung ueber Router veraendert sich der Wert des Headers (z.b. durch Herabsetzen des Wertes im Time-to-Live Feld um 1), und die Pruefsumme muss neu berechnet werden. IP SOURCE ADDRESS .................. Enthalt die Internet-Adresse des Netzknotens, der das Datenpaket erzeugt hat (Sender-, Quelladresse). Die Kodierung der Source Adresse erfolgt Hexadezimal. IP DESTINATION ADDRESS ....................... Enthaelt die Internet-Adresse des Netzknotens, fuer den das Datenpaket bestimmt ist (Empfaenger-, Zieladresse). Die Kodierung erfolgt hexadezimal. IP OPTIONS .......... Die Dienste, die das IP den speziellen Anforderungen der anderen Protokolle anpasst, werden durch Optionen definiert |--------------------------| | Options | |__________________________| / \ / \ /--------------------------------\ | 0 | 1 2| 3 4 5 6 7 | ---------------------------------- | CF | CLASS | OPTION NUMBER | ---------------------------------- #- Bit 0 = CF = COPY FLAG 0 : nicht Kopiert 1 : kopiert #- Bit 1-2 = CLASS 000 : Kontrolle 001 : reserviert 010 : Debugging 011 : reserviert #- Bit 3-7 = OPTION NUMBER Das Copy Flag legt fest, ob die Optionen beim Fragmentierungsprozess in jedes Fragment kopiert sind oder nicht. TCP/IP Adressen ---------------- Die TCP/IP Adressierung ist festerbestandteil des Internet Protocols (IP) ,zu dessen Aufgaben neben der Wegewahl(Routing) die Adressierung zaehlt. Die Verbindung von mehreren netzwerken, LAN und WAN, zu einem funktionsfaehigen Gesamtnetzwerk ist erst durch Adressierung und Routing moeglich. Als Koppelelement zwischen den Netzwerken werden Router eingesaetzt. Jeder Rechner, der das TCP/IP Protokoll verwendet, muss ueber mindestens eine Internet-Adresse verfuegen. Die Darstellung erfolgt in dezimaler, oktaler und hexadezimaler Schreibweise. Bei der populaeren dezimalen Darstellung werden die mengehoerigkeit durch Punkte voneinander getrennt. Die Gesamtmenge der Internet-Adressen, der Adressraum, wird in Klassen (A,B,C,D und E) eingeteilt, die für fest umrissene Einsatzbereiche vorgesehn sind. #- Klasse A Adresse : Wenige Netzwerke, viele Netzknoten. #- Klasse B Adresse : Mittlere Verteilung von Netzwerken und Netzknoten. #- Klasse C Adresse : Viele Netzwerke, wenige Netzknoten. #- Klasse D Adresse : Multicast Adressen. #- Klasse E Adresse : Nicht Definiert +---------------+-------------+ | Netzadresse |Adressklassen| | Wert(dezimal) | | +---------------+-------------+ | 0 - 127 | A | | 128 - 191 | B | | 192 - 223 | C | | 224 - 239 | D | | 240 - 255 | E | +---------------+-------------+ IP Adresse .......... Eine IP Adresse besteht aus Zwei teilen, einmal der Netzwerkadresse und zum zweiten aus der Rechneradresse. Hier ein Beispiel fuer eine IP Adresse : +---------------+-------------+ | 128 005 | 001 130 | +---------------+-------------+ Netzweradresse Rechneradresse Die Bereichsgroesse der Netzwerkadresse und der Rechneradresse sind variabel : Die Bereiche werden durch die ersten vier Bit (des ersten Byte) einer IP-Adresse Bestimmt.... Klasse A Adressen ................. Klasse A Adressen bestehen aus einem Byte Netzwerkadresse und drei Byte Rechneradresse. Sie umfassen den Adressbereich 0 bis 127. Da die Adressen 0 und 127 eine Sonderstellung innehaben, sind mit Klasse A Adressen 126 Netzwerke Adressierbar. Je Byte sind Wiederum 254 Knoten zu adressiern. Der Wert 255 ist als Broadcast-Adresse reserviert. Klasse B Adressen ................. Klasse B Adressen umfassen den Adressraum 128 bis 191. Sie bestehen aus zwei Byte Netzwerkadresse und zwei Byte Rechneradresse. Anders als bei den Klasse A Adressen wird bei dieser Klasse auch das zweite Byte als Netzwerkadresse interpretiert, so dass mit einer Klasse B Adresse 16-256 Netzwerke mit jeweils 64 516 Knoten adressierbar sind. Klasse C Adressen ................. Bei den Klasse C Adressen werden die ersten drei Byte als Netzwerk- adresse und das letzte Byte als Rechneradresse benutzt. Im ersten Byte der Netzadresse befinden sich die Adresswerte 192 bis 223, im zweiten und dritten Byte je 1 bis 254 gueltige Werte. Da bei Klasse C Adressen auch das dritte Byte als Netzwerkadresse interpretiert wird, sind mit eine Klasse C Adresse 2 064 512 Netzwerke mit jeweils 254 Knoten adressierbar. Klasse D Adressen ................. Der Adressbereich 224 bis 239 ist fuer Multicast Adressierung vorgeseh. Die Adressen der Klasse D werden bei den verbreiteten IP-Anwendungen nicht genutzt. Klasse E Adressen ................. Klasse E Adressen sind fuer Zukuenftige Adressierungen reserviert. IP Sonderadressen ................. Wie Ueberall in der Welt der Netzwerke, gibt es auch bei den Ineternet- adressen Ausnahmeregelungen. Diese betreffen die Adressen : #- 127.x.x.x #- 255.255.255.255 #- 0.0.0.0 #- 127.x.x.x Alle Adressen, die im ersten Byte den Wert 127 haben, werden fuer interne Rechnernetze benutzt. Diese Adresse wird alls Loopback bezeichnet und ermoeglicht dem Rechner festzustellen, ob TCP/IP Software auf einem Rechner korrekt insalliert ist. Ein Netzwerk-Controller kann mit dieser Loopback-Adress allerdings nicht getestet werden. #- 255.255.255.255 Die Adresse 255.255.255.255 ist als Broadcast-Adresse (alle Netze, alle Rechner) reserviert. Zur Adressierung aller Rechner in einem Netzwerk wird daabei der Rechnerbereich der IP-Adresse auf 255 gesetzt. #- 0 Adressen Für die Verwendung des Adresswertes 0 gibt es gleich zwei Definitionen. Waehrend in einer alten Vereinbarung die Adresse 0 als Broadcast- Adresse vorgesehn war (ALL ZERO BROADCAST), werden sie heute meist zur Adressierung des eigenen Netzwerkes oder Rechner verwendet. Subnetzmasken ............. Durch die Verwendung von Subnetzmasken kann der "Rechnerteil" einer Adress- klasse in einem Subnetzteil umgewandelt werden. Dieser unterscheidet sich dann nicht in der Behandlung durch andere Rechner oder Router. Die Subnetzmaske gibt an, welche Bereiche als Subnetz- und welche als Rechner- adresse interpretiert werden. Benutzte Quelle : ---------------------- TCP/IP light von Mathias Hein und Marie-Christine Billo ----------------------