Ipv4: Unterschied zwischen den Versionen

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

Aktuelle Version vom 26. Oktober 2023, 05:34 Uhr

Ipv4 Header

32 Bit
Version Length Type of Service Total Length
Identification Flags Fragment Offset
Time to Live Protocol Header Checksum
Source Address
Destination Address
Options Paddings

Felder

  • Die Felder des in der Abbildung dargestellten Protokollkopfes haben die folgende Bedeutung:

Version

  • Das Versions-Feld enthält die Versionsnummer des IP-Protokolls.
  • Einige Hosts können mit der alten und andere mit der neuen Version arbeiten.
  • Die derzeitige Versionsnummer ist 4
  • Die Version 6 des IP Protokolls wird immer mehr eingesetzt

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 aberbis 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:

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.

Fragmentierung

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.
  • Beispiele:
    • ICMP 1
    • TCP 6
    • UDP 17
    • ESP 50

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

  • In diese Felder werden die 32-Bit langen Internet-Adressen zur eingetragen.
  • Die Internet-Adressen werden im nächsten Abschnitt näher betrachtet.

Options und Padding

  • Das Feld Options wurde im Protokollkopf aufgenommen,um weitere Informationen zu ergänzen.
  • 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.

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 dasDatagramm 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.

Record Route

  • Die Knoten, die dieses Datengramm durchläuft, werden angewiesen ihre IP-Adresse an das Optionsfeld anzuhängen.

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.