Ipv4: Unterschied zwischen den Versionen

Aus xinux.net
Zur Navigation springen Zur Suche springen
 
(48 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{| class="wikitable" style="text-align:center; width:60%;"
+
=Ipv4 Header=
!colspan="32"|IPv4 Header
+
 
 +
{|class="wikitable" style="text-align:center;
 +
!colspan="32"|32 Bit
 
|-
 
|-
|colspan="4"|Version
+
|colspan="4" style="width:12.5%;" |Version
|colspan="4"|Length
+
|colspan="4" style="width:12.5%;" |Length
|colspan="8"|Type of Service
+
|colspan="8" style="width:25%;" |Type of Service
|colspan="16"|Total Length
+
|colspan="16" style="width:50%;" |Total Length
 
|-
 
|-
 
|colspan="16"|Identification
 
|colspan="16"|Identification
Zeile 14: Zeile 16:
 
|colspan="8"|Protocol
 
|colspan="8"|Protocol
 
|colspan="16"|Header Checksum
 
|colspan="16"|Header Checksum
 +
|-
 +
|colspan="32"|Source Address
 +
|-
 +
|colspan="32"|Destination Address
 +
|-
 +
|colspan="26"|Options
 +
|colspan="6"|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:
 +
 +
[[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.
 +
 +
=Fragmentierung=
 +
*[[Fragmentierung]]
 +
 +
=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.
 +
*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.

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.