Ipv4: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | =Ipv4 Header= | + | == Ipv4 Header == |
| − | {|class="wikitable" style="text-align:center; | + | {| class="wikitable" style="text-align:center;" |
| − | !colspan="32"|32 Bit | + | ! colspan="32" | 32 Bit |
|- | |- | ||
| − | |colspan="4" style="width:12.5%;" |Version | + | | colspan="4" style="width:12.5%;" | Version |
| − | |colspan="4" style="width:12.5%;" |Length | + | | colspan="4" style="width:12.5%;" | Length |
| − | |colspan="8" style="width:25%;" |Type of Service | + | | colspan="8" style="width:25%;" | Type of Service |
| − | |colspan="16" style="width:50%;" |Total Length | + | | colspan="16" style="width:50%;" | Total Length |
|- | |- | ||
| − | |colspan="16"|Identification | + | | colspan="16" | Identification |
| − | |colspan="3"|Flags | + | | colspan="3" | Flags |
| − | |colspan="13"|Fragment Offset | + | | colspan="13" | Fragment Offset |
|- | |- | ||
| − | |colspan="8"|Time to Live | + | | colspan="8" | Time to Live |
| − | |colspan="8"|Protocol | + | | colspan="8" | Protocol |
| − | |colspan="16"|Header Checksum | + | | colspan="16" | Header Checksum |
|- | |- | ||
| − | |colspan="32"|Source Address | + | | colspan="32" | Source Address |
|- | |- | ||
| − | |colspan="32"|Destination Address | + | | colspan="32" | Destination Address |
|- | |- | ||
| − | |colspan="26"|Options | + | | colspan="26" | Options |
| − | |colspan="6"|Paddings | + | | colspan="6" | Paddings |
| − | |||
| − | |||
|} | |} | ||
| − | =Felder= | + | == Felder == |
| − | + | Die Felder des in der Abbildung dargestellten Protokollkopfes haben die folgende Bedeutung: | |
| − | ==Version== | + | |
| − | *Das Versions-Feld enthält die Versionsnummer des IP-Protokolls. | + | === Version === |
| − | *Einige Hosts können mit der alten und andere mit der neuen Version arbeiten. | + | * Das Versions-Feld enthält die Versionsnummer des IP-Protokolls. |
| − | *Die derzeitige Versionsnummer ist 4 | + | * Einige Hosts können mit der alten und andere mit der neuen Version arbeiten. |
| − | *Die Version 6 des IP Protokolls wird immer mehr eingesetzt | + | * Die derzeitige Versionsnummer ist 4. |
| + | * Die Version 6 des IP Protokolls wird immer mehr eingesetzt. | ||
| − | =Length= | + | === Length === |
| − | *Das Feld Length (Internet Header Length - IHL) enthält die Länge des Protokollkopfs, da diese nicht konstant ist. | + | * 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. | + | * Die Länge wird in 32-Bit-Worten angegeben. |
| − | *Der kleinste zulässige Wert ist 5 - das entspricht also 20 Byte | + | * Der kleinste zulässige Wert ist 5 - das entspricht 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 | + | * 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 | + | * 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 Nachrichten nach bestimmten Kriterien zu behandeln. | + | * Ü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. | + | * 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: | + | * 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 bei der Datenübertragung am meisten Wert legt: | + | * 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) | + | ** Verzögerung (Delay - D) |
| − | *Durchsatz (Throughput - T) | + | ** Durchsatz (Throughput - T) |
| − | *Zuverlässigkeit (Reliability - R). | + | ** Zuverlässigkeit (Reliability - R). |
| − | *Die beiden anderen Bit-Felder sind reserviert. | + | * Die beiden anderen Bit-Felder sind reserviert. |
| − | =Total Length= | + | === Total Length === |
| − | *Enthält die gesamte Paketlänge, d.h. Header und Daten. | + | * 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. | + | * 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ß, | + | * 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. | |
| − | *In der Regel können von den Host aber Pakete größerer Länge verarbeitet werden. | ||
| − | =Fragmentierung= | + | === Fragmentierung === |
| − | *[[Fragmentierung]] | + | * [[Fragmentierung]] |
| − | =Time to Live= | + | === Time to Live === |
| − | *[[IP Time to Live]] | + | * [[IP Time to Live]] |
| − | =Protocol= | + | === Protocol === |
| − | *Enthält die Nummer des Transportprotokolls, an das das Paket weitergeleitet werden muß. | + | * Enthält die Nummer des Transportprotokolls, an das das Paket weitergeleitet werden muß. |
| − | *Die Numerierung von Protokollen ist im gesamten Internet einheitlich. | + | * Die Numerierung von Protokollen ist im gesamten Internet einheitlich. |
| − | *Bei UNIX-Systemen sind die Protokollnummern in der Datei /etc/protocols abgelegt. | + | * Bei UNIX-Systemen sind die Protokollnummern in der Datei /etc/protocols abgelegt. |
| − | *Beispiele: | + | * Beispiele: |
| − | **ICMP 1 | + | ** ICMP 1 |
| − | **TCP 6 | + | ** TCP 6 |
| − | **UDP 17 | + | ** UDP 17 |
| − | **ESP 50 | + | ** ESP 50 |
| − | =Header Checksum= | + | === Header Checksum === |
| − | *Dieses Feld enthält die Prüfsumme der Felder im IP-Header. | + | * 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. | + | * Die Nutzdaten des IP-Datengramms werden aus Effiziengründen nicht mit geprüft. |
| − | *Diese Prüfung findet beim Empfänger innerhalb des Transportprotokolls statt. | + | * 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. | + | * 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. | + | * 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. | + | * 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. | + | * 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 eingetragen. | + | * In diese Felder werden die 32-Bit langen Internet-Adressen zur eingetragen. |
| − | *Die Internet-Adressen werden im nächsten Abschnitt näher betrachtet. | + | * Die Internet-Adressen werden im nächsten Abschnitt näher betrachtet. |
| − | =Options und Padding= | + | === Options und Padding === |
| − | *Das Feld Options wurde im Protokollkopf aufgenommen,um weitere Informationen zu ergänzen. | + | * Das Feld Options wurde im Protokollkopf aufgenommen,um weitere Informationen zu ergänzen. |
| − | *Das Optionsfeld hat eine variable Länge. | + | * Das Optionsfeld hat eine variable Länge. |
| − | *Jede Option beginnt mit einem Code von einem Byte, über den die Option identifiziert wird. | + | * 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. | + | * 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. | + | * Das Feld Options wird über das Padding auf ein Vielfaches von 4 Byte aufgefüllt. |
| − | ===End of Options List=== | + | ==== End of Options List ==== |
* Kennzeichnet das Ende der Optionsliste. | * Kennzeichnet das Ende der Optionsliste. | ||
| − | ===No Option=== | + | ==== No Option ==== |
| − | *Kann zum Auffüllen von Bits zwischen Optionen verwendet werden. | + | * 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 | + | * 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. | + | * 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. | + | * Beim Source-Routing wird zwischen Strict Source and Record Route und Loose Source and Record Route unterschieden. |
| − | ===Record Route=== | + | ==== Record Route ==== |
| − | *Die Knoten, die dieses Datengramm durchläuft, werden angewiesen ihre IP-Adresse an das Optionsfeld anzuhängen. | + | * Die Knoten, die dieses Datengramm durchläuft, werden angewiesen ihre IP-Adresse an das Optionsfeld anzuhängen. |
| − | ===Time Stamp=== | + | ==== Time Stamp ==== |
| − | *Diese Option ist mit der Option Record Route vergleichbar. | + | * 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. | + | * Zusätzlich zur IP-Adresse wird bei dieser Option die Uhrzeit des Durchlaufs durch den Knoten vermerkt. |
Aktuelle Version vom 29. März 2026, 09:57 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 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:
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 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.
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.
