|
|
| Zeile 26: |
Zeile 26: |
| | |colspan="32" style="background-color:yellow"|Data | | |colspan="32" style="background-color:yellow"|Data |
| | |} | | |} |
| − | =Felder=
| |
| − | Die Felder des in der Abbildung dargestellten Protokollkopfes haben die
| |
| − | folgende Bedeutung:
| |
| − | ==Version==
| |
| − | Das Versions-Feld enthält die Versionsnummer des IP-Protokolls. Durch
| |
| − | die Einbindung der Versionsnummer besteht die Möglichkeit über eine
| |
| − | längere Zeit mit verschiedenen Versionen des IP Protokolls zu
| |
| − | arbeiten. Einige Hosts können mit der alten und andere mit der neuen
| |
| − | Version arbeiten. Die derzeitige Versionsnummer ist 4, aber die
| |
| − | Version 6 des IP Protokolls befindet sich bereits in der Erprobung
| |
| − |
| |
| − | =Length=
| |
| − | Das Feld Length (Internet Header Length - IHL) enthält die Länge des
| |
| − | Protokollkopfs, da diese nicht konstant ist. Die Länge wird in 32-Bit-
| |
| − | Worten angegeben. Der kleinste zulässige Wert ist 5 - das entspricht
| |
| − | also 20 Byte; in diesem Fall sind im Header keine Optionen gesetzt.
| |
| − | Die Länge des Headers kann sich durch Anfügen von Optionen aber
| |
| − | bis auf 60 Byte erhöhen (der Maximalwert für das 4-Bit-Feld ist 15).
| |
| − | =Type of Service=
| |
| − | Über das Feld Type of Service kann IP angewiesen werden
| |
| − | Nachrichten nach bestimmten Kriterien zu behandeln. Als Dienste
| |
| − | sind hier verschiedene Kombinationen aus Zuverlässigkeit und
| |
| − | Geschwindigkeit möglich. In der Praxis wird dieses Feld aber ignoriert,
| |
| − | hat also den Wert 0. Das Feld selbst hat den folgenden Aufbau:
| |
| − |
| |
| − | [[Bild:Service.png]]
| |
| − |
| |
| − | =Precedence=
| |
| − | (Bits 0-2) gibt die Priorität von 0 (normal) bis 7 (Steuerungspaket) an.
| |
| − | Die drei Flags (D,T,R) ermöglichen es dem Host anzugeben, worauf er
| |
| − | bei der Datenübertragung am meisten Wert legt: Verzögerung (Delay
| |
| − | - D), Durchsatz (Throughput - T), Zuverlässigkeit (Reliability - R). Die
| |
| − | beiden anderen Bit-Felder sind reserviert.
| |
| − | =Total Length=
| |
| − | Enthält die gesamte Paketlänge, d.h. Header und Daten. Da es sich
| |
| − | hierbei um ein 16-Bit-Feld handelt ist die Maximallänge eines
| |
| − | Datengramms auf 65.535 Byte begrenzt. In der Spezifikation von IP
| |
| − | (RFC 791) ist festgelegt, daß jeder Host in der Lage sein muß, Pakete
| |
| − | bis zu einer Länge von 576 Bytes zu verarbeiten. In der Regel können
| |
| − | von den Host aber Pakete größerer Länge verarbeitet werden.
| |
| − | =Identification=
| |
| − | Über das Identifikationsfeld kann der Zielhost feststellen, zu welchem
| |
| − | Datengramm ein neu angekommenes Fragment gehört. Alle
| |
| − | Fragmente eines Datengramms enthalten die gleiche
| |
| − | Identifikationsnummer, die vom Absender vergeben wird.
| |
| | =Flags= | | =Flags= |
| | Das Flags-Feld ist drei Bit lang. Die Flags bestehen aus zwei Bits | | Das Flags-Feld ist drei Bit lang. Die Flags bestehen aus zwei Bits |
| Zeile 94: |
Zeile 49: |
| | | | |
| | [[Datei:fragment.gif]] | | [[Datei:fragment.gif]] |
| − | =Time to Live=
| |
| | *[[IP Time to Live]] | | *[[IP Time to Live]] |
| | | | |
| − | =Protocol=
| |
| − | Enthält die Nummer des Transportprotokolls, an das das Paket
| |
| − | weitergeleitet werden muß. Die Numerierung von Protokollen ist im
| |
| − | gesamten Internet einheitlich.. Bei UNIX-Systemen sind die
| |
| − | Protokollnummern in der Datei /etc/protocols abgelegt.
| |
| − | =Header Checksum=
| |
| − | Dieses Feld enthält die Prüfsumme der Felder im IP-Header. Die
| |
| − | Nutzdaten des IP-Datengramms werden aus Effiziengründen nicht mit
| |
| − | geprüft. Diese Prüfung findet beim Empfänger innerhalb des
| |
| − | Transportprotokolls statt. Die Prüfsumme muß von jedem Netzknoten,
| |
| − | der durchlaufen wird, neu berechnet werden, da der IP-Header durch
| |
| − | das Feld Time-to-Live sich bei jeder Teilstrecke verändert. Aus diesem
| |
| − | Grund ist auch eine sehr effiziente Bildung der Prüfsumme wichtig. Als
| |
| − | Prüfsumme wird das 1er-Komplement der Summe aller 16-Bit-
| |
| − | Halbwörter der zu überprüfenden Daten verwendet. Zum Zweck
| |
| − | dieses Algorithmus wird angenommen, daß die Prüfsumme zu Beginn
| |
| − | der Berechnung Null ist.
| |
| | =Source Address, Destination Address= | | =Source Address, Destination Address= |
| | In diese Felder werden die 32-Bit langen Internet-Adressen zur | | In diese Felder werden die 32-Bit langen Internet-Adressen zur |
| − | eingetragen. Die Internet-Adressen werden im nächsten Abschnitt | + | eingetragen. Die Internet-Adressen werden im nächsten Absch |
| | + | =Time to Live=nitt |
| | näher betrachtet. | | näher betrachtet. |
| − | =Options und Padding=
| |
| − | Das Feld Options wurde im Protokollkopf aufgenommen, um die
| |
| − | Möglichkeit zu bieten das IP-Protokoll um weitere Informationen zu
| |
| − | ergänzen, die im ursprünglichen Design nicht berücksichtigt wurden.
| |
| − | Das Optionsfeld hat eine variable Länge. Jede Option beginnt mit
| |
| − | einem Code von einem Byte, über den die Option identifiziert wird.
| |
| − | Manchen Optionen folgt ein weiteres Optionsfeld von 1 Byte und dann
| |
| − | ein oder mehrere Datenbytes für die Option. Das Feld Options wird
| |
| − | über das Padding auf ein Vielfaches von 4 Byte aufgefüllt. Derzeit sind
| |
| − | die folgenden Optionen bekannt:
| |
| − | =End of Options List=
| |
| − | Kennzeichnet das Ende der Optionsliste.
| |
| − | =No Option=
| |
| − | Kann zum Auffüllen von Bits zwischen Optionen verwendet werden.
| |
| − | =Security=
| |
| − | Bezeichnet, wie geheim ein Datengramm ist. In der Praxis wird diese
| |
| − | Option jedoch fast immer ignoriert.
| |
| − | =Loose Source-Routing, Strict Source-Routing=
| |
| − | Diese Option enthält eine Liste von Internet-Adressen, die das
| |
| − | Datagramm durchlaufen soll. Auf diese Weise kann dem Datenpaket
| |
| − | vorgeschrieben werden eine bestimmte Route durch das Internet zu
| |
| − | nehmen. Beim Source-Routing wird zwischen Strict Source and Record
| |
| − | Route und Loose Source and Record Route unterschieden. Im ersten
| |
| − | Fall wird verlangt, daß das Paket diese Route genau einhalten muß.
| |
| − | Desweiteren wird die genommene Route aufgezeichnet. Die zweite
| |
| − | Variante schreibt vor, daß die angegebenen Router nicht umgangen
| |
| − | werden dürfen. Auf dem Weg können aber auch andere Router
| |
| − | besucht werden.
| |
| − | =Record Route=
| |
| − | Die Knoten, die dieses Datengramm durchläuft, werden angewiesen
| |
| − | ihre IP-Adresse an das Optionsfeld anzuhängen. Damit läßt sich
| |
| − | ermitteln, welche Route ein Datengramm genommen hat. Wie
| |
| − | anfangs schon gesagt, ist die Größe für das Optionsfeld auf 40 Byte
| |
| − | beschränkt. Deshalb kommt es heute auch oftmals zu Problemen mit
| |
| − | dieser Option, da weit mehr Router durchlaufen werden, als dies zu
| |
| − | Beginn des ARPANET der Fall war.
| |
| − | =Time Stamp=
| |
| − | Diese Option ist mit der Option Record Route vergleichbar. Zusätzlich
| |
| − | zur IP-Adresse wird bei dieser Option die Uhrzeit des Durchlaufs durch
| |
| − | den Knoten vermerkt.
| |