IPv4/Header: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „Man-Pages“ durch „Man-Page“
 
(81 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''topic''' kurze Beschreibung
'''topic''' - Beschreibung
== Beschreibung ==
== Beschreibung ==
=== Paketlänge ===
Ein [[IP-Paket]] besteht aus einem [[IP-Header|Header]] und den eigentlichen Daten
* Der Datenteil enthält in der Regel ein weiteres Protokoll, meist [[Transmission Control Protocol|TCP]], [[User Datagram Protocol|UDP]] oder [[Internet Control Message Protocol|ICMP]]
* Die maximale Länge eines IP-Pakets beträgt 65535 Bytes (2<sup>16</sup>−1), die maximale Datenlänge 65515 Bytes (Paketlänge – minimale Headerlänge von 20 Byte)
* Normalerweise beschränkt der Sender die Paketlänge auf diejenige des zugrundeliegenden Mediums
* Bei [[Ethernet]] beträgt die sogenannte [[Maximum Transmission Unit|MTU]] (''Maximum Transmission Unit'') 1500 Bytes, da ein Ethernet-Datenpaket maximal 1518 Bytes lang sein darf und 18 Bytes vom Ethernet selbst belegt werden
* Für IP (Header und Daten) stehen also nur 1500 Bytes zur Verfügung
* Deshalb ist die Länge von IP-Paketen oft auf 1500 Bytes festgesetzt
== Header-Format ==
== Header-Format ==
Der [[IP-Header|IPv4-Header]] ist normalerweise 20 Bytes lang.
; Der IPv4-Header ist meist 20 Bytes lang
* Bei Übertragung auf Basis von Ethernet folgt er dem [[Ethernet]]-Typfeld, das für IPv4-Pakete auf 0800<sub>16</sub> festgelegt ist.
* Bei Übertragung auf Basis von Ethernet folgt er dem [[Ethernet]]-Typfeld, das für IPv4-Pakete auf 0800<sub>16</sub> festgelegt ist
* Auf anderen Übertragungsmedien und Protokollen kann der Header auch der erste Eintrag sein.
* Auf anderen Übertragungsmedien und Protokollen kann der Header auch der erste Eintrag sein
 
* Im Typfeld des Ethernet-Frames wird für IPv4 ''0800<sub>16</sub>'' eingetragen
IPv4 bietet verschiedene, größtenteils ungenutzte Optionen, die den Header bis auf 60 Bytes (in 4-Byte-Schritten) verlängern können.


== Dokumentation ==
; IPv4 bietet verschiedene, größtenteils ungenutzte Optionen, die den Header bis auf 60 Bytes (in 4-Byte-Schritten) verlängern können
=== RFC ===
=== Man-Pages ===
=== Info-Pages ===
== Siehe auch ==
== Links ==
=== Projekt-Homepage ===
=== Weblinks ===
=== Einzelnachweise ===
<references />
== Testfragen ==
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>
 
[[Kategorie:Entwurf]]
 
= TMP =
== Beschreibung ==
* Ohne Optionen ist der IPv4-Header 20 Bytes lang
* Ohne Optionen ist der IPv4-Header 20 Bytes lang
* Wortlänge 32 Bit (4 Byte)
* Wortlänge 32 Bit (4 Byte)
* Daten im Feld ''Optionen'' können den Header auf maximal 60 Bytes (in 32-Bit-Worten) verlängern (selten)
* Daten im Feld ''Optionen'' können den Header auf maximal 60 Byte (in 32-Bit-Worten) verlängern (selten)
* Im Typfeld des Ethernet-Frames wird für IPv4 ''0800<sub>16</sub>'' eingetragen
 


{| border="1" cellpadding="4" cellspacing="0" style="text-align:center;margin:auto;"
{| class="wikitable" \n! style="text-align:center !important; font-weight: normal;" "width="3%"| 00
! style="text-align:center !important; font-weight: normal;" "width="3%"| 00
! style="text-align:center !important; font-weight: normal;" "width="3%"| 01
! style="text-align:center !important; font-weight: normal;" "width="3%"| 01
! style="text-align:center !important; font-weight: normal;" "width="3%"| 02
! style="text-align:center !important; font-weight: normal;" "width="3%"| 02
Zeile 83: Zeile 53:
! style="text-align:center !important; font-weight: normal;" "width="3%"| 30
! style="text-align:center !important; font-weight: normal;" "width="3%"| 30
! style="text-align:center !important; font-weight: normal;" "width="3%"| 31
! style="text-align:center !important; font-weight: normal;" "width="3%"| 31
! style="text-align:center !important; font-weight: normal;" "width="3%"|  
! style="text-align:center !important; font-weight: normal;" "width="3%"|
|-
|-
| style="background-color:#d6c4ff;" colspan="4"| [[IP-Paket#Version|Version]]
| style="background-color:#d6c4ff;" colspan="4"| [[IPv4/Header#Version|Version]]
| style="background-color:#dfffcb;" colspan="4"| [[IP-Paket#IHL (Internet Header Length)|IHL]]
| style="background-color:#dfffcb;" colspan="4"| [[IPv4/Header#Internet Header Length | IHL]]
| style="background-color:#ffbfc0;" colspan="6"| [[DSCP]]
| style="background-color:#ffbfc0;" colspan="6"| [[IPv4/Header#Differentiated Services Code Point | DSCP]]
| style="background-color:#ffbfc0;" colspan="2"| [[Explicit Congestion Notification|ECN]]
| style="background-color:#ffbfc0;" colspan="2"| [[IPv4/Header#ECN | ECN]]
| style="background-color:#b5bcff;" colspan="16"| [[IP-Paket#Total Length|Gesamtlänge]]
| style="background-color:#b5bcff;" colspan="16"| [[IPv4/Header#Gesamtlänge|Gesamtlänge]]
! style="text-align:center !important; font-weight: normal;" "width="3%" rowspan="6"| H</br>e</br>a</br>d</br>e</br>r
! style="text-align:center !important; font-weight: normal;" "width="3%" rowspan="6"| H</br>e</br>a</br>d</br>e</br>r
|-
|-
| style="background-color:#fff1b0;" colspan="16"| [[IP-Paket#Identification|Identifikation]]
| style="background-color:#fff1b0;" colspan="16"| [[IPv4/Header#Identifikation|Identifikation]]
| style="background-color:#d6c4ff;" colspan="3"| [[IP-Paket#Flags|Flags]]
| style="background-color:#d6c4ff;" colspan="3"| [[IPv4/Header#Flags|Flags]]
| style="background-color:#fff1b0;" colspan="13"| [[IP-Paket#Fragment Offset|Fragment Offset]]
| style="background-color:#fff1b0;" colspan="13"| [[IPv4/Header#Fragment Offset|Fragment Offset]]
|-
|-
| style="background-color:#adfff6;" colspan="8"| [[Time-to-live|TTL]]
| style="background-color:#adfff6;" colspan="8"| [[IPv4/Header#TTL|TTL]]
| style="background-color:#efbcff;" colspan="8"| [[Protokoll (IP)|Protokoll]]
| style="background-color:#efbcff;" colspan="8"| [[IPv4/Header#Protokoll|Protokoll]]
| style="background-color:#b5bcff;" colspan="16"| Header-[[Prüfsumme]]
| style="background-color:#b5bcff;" colspan="16"| [[IPv4/Header#Header-Prüfsumme|Header-Prüfsumme]]
|-
|-
|style="background-color:#d1ffac;" colspan="32"| Quell-IP-Adresse
|style="background-color:#d1ffac;" colspan="32"| [[IPv4/Header#Sender-IP-Adresse|Sender-IP-Adresse]]
|-
|-
|style="background-color:#ffbfc0;" colspan="32"| Ziel-IP-Adresse
|style="background-color:#ffbfc0;" colspan="32"| [[IPv4/Header#Empfänger-IP-Adresse|Empfänger-IP-Adresse]]
|-
|-
|style="background-color:#fff1b0;" colspan="24"| ''Optionen''
|style="background-color:#fff1b0;" colspan="24"| [[IPv4/Header#Optionen|Optionen]]
|style="background-color:#d6c4ff;" colspan="8"| ''Padding''
|style="background-color:#d6c4ff;" colspan="8"| [[IPv4/Header#Padding|Padding]]
|-
|-
|style="background-color:#d9e4ff;" colspan="32" |  
|style="background-color:#d9e4ff;" colspan="32" |


Payload
[[IPv4/Header#Payload|Payload]]


|}
|}


== Header-Felder ==
{| class="wikitable sortable options"
|-
! Option !! Beschreibung
|-
| Version ||
* Version des IP-Protokolls
* Hier Version 4
|-
| Internet Header Length ||
* IHL
* Länge des IP-Protokoll-Kopfes in 32-Bit-Worten an
* Die minimale Länge beträgt 5 Worte, was auch der Normalfall ist
* Vergrößerung durch Angabe von Optionen
|-
| Differentiated Services Code Point ||
* DSCP
Eine spezielle Bedeutung kommt in modernen Implementierungen dem früheren Feld ''Type of Service'' (ToS) im zweiten Oktett des IPv4-Headers zu
* Ursprünglich diente dieses Feld bei der Vermittlung eines Datenpaketes als Entscheidungshilfe für die beteiligten Router bei der Wahl der Übertragungsparameter
* In modernen Implementierungen wird dieses Feld im Zusammenhang mit der ''[[network congestion avoidance]]'' (Vermeidung von Überlastungen) verwendet
Das ToS-Feld wurde durch das DS-Feld (''[[DiffServ|differentiated services]]'') ersetzt
* dessen erste sechs Bit als ''differentiated services code point'' (DSCP) und
* dessen letzte beiden Bit als ''[[Explicit Congestion Notification|explicit congestion notification]]'' (ECN) benutzt werden
|-
| ECN ||
; Servicetypen
[[File:ipServicetypes.png|200px]]
Mit den Precedence-Bit (0-2) kann eine Priorität von 0 - 7 angegeben werden
* 1000 Minimize-delay
* 0100 Maximize throughput
* 0010 Maximize reliability
* 0001 Minimize monetary costs
* 0000 Normal service
* Bit 7 ohne Bedeutung (reserviert)
Servicetypen werden nicht von allen Routern unterstützt
|-
| Gesamtlänge  ||
* Die Länge des Paketes in Byte inklusive Protokoll-Kopf
* 16 Bit – Feld (Maximale Paketgröße = 65.535 Byte)
|-
| Identifikation ||
* Eine eindeutige Identifikation (Zähler)
* Diese Kennungen sollten sich nur nach längeren Zeitabständen wiederholen
** um nicht mit verspäteten PDU in Konflikt zu kommen
|-
| TTL ||
; Time To Live
: Anzahl der Router, die ein IP-Datagramm passieren darf
; Problem
* Beim Routen durch vermaschte Netze, können Datagramme/ Fragmente ziellos und unendlich lange kreisen
* Die verbrauchten Ressourcen können ein Netzwerk bis zum Stillstand belasten
; Lösung
* Jeder Knoten (Router) verringert diesen Wert um mindestens 1
* Hält ein Router ein Paket länger als eine Sekunde, verringert er die TTL um 1 je weitere Sekunde
* Bei Erreichen des Wertes „0“, wird Paket verworfen
|-
| Sender-IP-Adresse || ; 32-Bit IP-Adresse (IPv4)
; Unabhängig von der zugrunde liegenden Netztechnologie
* Das Internet-Protokoll definiert also eine rein logische Netztopologie
; Die Vergabe der IP-Adressen
* wird international von der IANA (Internet Assigned Numbers Association) geregelt
* die IANA verteilt die Organisation auf mehrere Unterorganisationen
* Die in Europa zuständige Organisation ist das RIPE (Réseaux IP Européens)
|-
| Empfänger-IP-Adresse ||
|-
| Flags ||
|-
| DF, MF ||
; DF (Don‘t Fragment)
* 0 = May Fragment
* 1 = Don‘t Fragment
; MF (More Fragment)
* 0 = Last Fragment
* 1 = More Fragment
|-
| Fragment Offset ||
; Fragmentabstand
* Länge relativ zum Beginn des ursprünglichen Datagrams
|-
| Protokoll || ; Nummer des Transportprotokolls
* Legt fest, welches Protokoll für die Weiterverarbeitung auf 03 zuständig ist (demultiplexing)
* gemäß RFC 1700 (Assigned Numbers)
*  /etc/protocol
*  %SYSTEMROOT%\system32\drivers\etc\protocol
; Ausgewählte IP-Protokollnummern
|-
| Header-Prüfsumme ||
; Prüfsumme
* wird über den gesamten IP Header berechnet
; Berechnung beim Sender
* setze das checksum Feld auf 0
* XOR über alle 16-bit Worte im Header
* das Ergebnis wird bitweise invertiert und stellt dann den Wert für das checksum Feld dar
; Check beim Emfänger
* XOR über alle 16-bit Worte im Header (inkl. checksum)
* OK, wenn im Ergebnis alle bits auf 1 stehen
|-
| Nutzdaten ||
* Segmente und Datagramme höherer Protokolle
* Meist TCP oder UDP
|-
| Optionen || Erweiterbarkeit des Headers
* Variable Länge (max. 40 Byte)
|-
|= Source Routing =||
* Liste von Routern, die ein Datagram durchlaufen soll
* Der genommene Weg wird aufgezeichnet (max. 9 Hops)
; loose
Die Angegebenen IP Adressen müssen nicht benachbart sein
; strict
Die Angegebenen IP Adressen müssen benachbart sein
* sonst wird das Paket verworfen und eine ICMP source route failed Nachricht an den Sender geschickt
* Source Routing ist nahezu überall abgeschaltet, da es ein Sicherheitsrisiko darstellt (IP Spoofing)
|-
|= Record Route =|| Router hängen ihre IP-Adresse an das Optionsfeld an
|-
|= Zeitstempel =|| IP-Adresse und Zeitpunkt des Durchlaufes werden aufgezeichnet
|-
| Padding || Auffüllen des Wortes auf 32-Bit
|-
| Payload ||
|}


 
=== Version ===
[[File:ipHeader.png|600px]]
 
 
[[File:ipHeaderEng.png|600px]]
 
== Version ==
* Version des IP-Protokolls
* Version des IP-Protokolls
* Hier Version 4
* Hier Version 4


== Länge ==
=== Internet Header Length ===
* Dieses Feld gibt die Länge des IP-Protokoll-Kopfes in 32-Bit-Worten an
* IHL
* Länge des IP-Protokoll-Kopfes in 32-Bit-Worten an
* Die minimale Länge beträgt 5 Worte, was auch der Normalfall ist
* Die minimale Länge beträgt 5 Worte, was auch der Normalfall ist
* Vergrößerung durch Angabe von Optionen
* Vergrößerung durch Angabe von Optionen


== Servicetypen ==
=== Differentiated Services Code Point ===
* DSCP
Eine spezielle Bedeutung kommt in modernen Implementierungen dem früheren Feld ''Type of Service'' (ToS) im zweiten Oktett des IPv4-Headers zu
* Ursprünglich diente dieses Feld bei der Vermittlung eines Datenpaketes als Entscheidungshilfe für die beteiligten Router bei der Wahl der Übertragungsparameter
* In modernen Implementierungen wird dieses Feld im Zusammenhang mit der ''[[network congestion avoidance]]'' (Vermeidung von Überlastungen) verwendet
 
Das ToS-Feld wurde durch das DS-Feld (''[[DiffServ|differentiated services]]'') ersetzt
* dessen erste sechs Bit als ''differentiated services code point'' (DSCP) und
* dessen letzte beiden Bit als ''[[Explicit Congestion Notification|explicit congestion notification]]'' (ECN) benutzt werden
 
=== ECN ===
 
==== Servicetypen ====
[[File:ipServicetypes.png|200px]]
[[File:ipServicetypes.png|200px]]


Zeile 141: Zeile 241:
Servicetypen werden nicht von allen Routern unterstützt
Servicetypen werden nicht von allen Routern unterstützt


Eine spezielle Bedeutung kommt in modernen Implementierungen dem früheren Feld ''Type of Service'' (ToS) im zweiten Oktett des IPv4-Headers zu.
=== Gesamtlänge ===
* Ursprünglich diente dieses Feld bei der Vermittlung eines Datenpaketes als Entscheidungshilfe für die beteiligten Router bei der Wahl der Übertragungsparameter.
* In modernen Implementierungen wird dieses Feld im Zusammenhang mit der ''[[network congestion avoidance]]'' (Vermeidung von Überlastungen) verwendet.
* Das ToS-Feld wurde durch das DS-Feld (''[[DiffServ|differentiated services]]'') ersetzt, dessen erste sechs Bits als ''differentiated services code point'' (DSCP) und dessen letzte beiden Bits als ''[[Explicit Congestion Notification|explicit congestion notification]]'' (ECN) benutzt werden.
 
== Paketlänge ==
* Die Länge des Paketes in Byte inklusive Protokoll-Kopf
* Die Länge des Paketes in Byte inklusive Protokoll-Kopf
: 16 Bit – Feld (Maximale Paketgröße = 65.535 Byte)
* 16 Bit – Feld (Maximale Paketgröße = 65.535 Byte)


== Identifikation ==
=== Identifikation ===
* Eine eindeutige Identifikation (Zähler)
* Eine eindeutige Identifikation (Zähler)
* Diese Kennungen sollten sich nur nach längeren Zeitabständen wiederholen, um nicht mit verspäteten PDU in Konflikt zu kommen.
* Diese Kennungen sollten sich nur nach längeren Zeitabständen wiederholen
** um nicht mit verspäteten PDU in Konflikt zu kommen


== Paketübertragung im Internet ==
=== TTL ===
 
== TTL ==
; Time To Live
; Time To Live
: Anzahl der Router, die ein IP-Datagramm passieren darf
: Anzahl der Router, die ein IP-Datagramm passieren darf
Zeile 169: Zeile 263:
* Bei Erreichen des Wertes „0“, wird Paket verworfen
* Bei Erreichen des Wertes „0“, wird Paket verworfen


== Sender- und Empfänger-Adressen ==
=== Sender-IP-Adresse ===
; 32-Bit IP-Adresse (IPv4)
; 32-Bit IP-Adresse (IPv4)


; Unabhängig von der zugrunde liegenden Netztechnologie
; Unabhängig von zugrundeliegender Netztechnologie
* Das Internet-Protokoll definiert also eine rein logische Netztopologie
* Das Internet-Protokoll definiert also eine rein logische Netztopologie


; Die Vergabe der IP-Adressen
; Vergabe der IP-Adressen
* wird international von der IANA (Internet Assigned Numbers Association) geregelt
* wird international von der IANA (Internet Assigned Numbers Association) geregelt
* die IANA verteilt die Organisation auf mehrere Unterorganisationen
* die IANA verteilt die Organisation auf mehrere Unterorganisationen
* Die in Europa zuständige Organisation ist das RIPE (Réseaux IP Européens)
* Die in Europa zuständige Organisation ist das RIPE (Réseaux IP Européens)


== DF, MF und Fragmentabstand ==
=== Empfänger-IP-Adresse ===
 
=== Flags ===
==== DF, MF ====
; DF (Don‘t Fragment)
; DF (Don‘t Fragment)
* 0 = May Fragment
* 0 = May Fragment
Zeile 187: Zeile 284:
* 0 = Last Fragment
* 0 = Last Fragment
* 1 = More Fragment
* 1 = More Fragment
=== Fragment Offset ===
; Fragmentabstand
; Fragmentabstand
* Länge relativ zum Beginn des ursprünglichen Datagram
* Länge relativ zum Beginn des ursprünglichen Datagrams


== Protokoll ==
=== Protokoll ===
; Nummer des Transportprotokolls
; Nummer des Transportprotokolls
* Legt fest, welches Protokoll für die Weiterverarbeitung auf 03 zuständig ist (demultiplexing)
* Legt fest, welches Protokoll für die Weiterverarbeitung auf 03 zuständig ist (demultiplexing)
Zeile 199: Zeile 298:
; Ausgewählte IP-Protokollnummern
; Ausgewählte IP-Protokollnummern


== Weitere Felder ==
=== Header-Prüfsumme ===
; Prüfsumme  
; Prüfsumme
* wird über den gesamten IP Header berechnet
* wird über den gesamten IP Header berechnet
; Berechnung beim Sender
; Berechnung beim Sender
* setze das checksum Feld auf 0
* setze das checksum Feld auf 0
* XOR über alle 16-bit Worte im Header
* XOR über alle 16-bit Worte im Header
* das Ergebnis wird bitweise invertiert und stellt dann den Wert für das checksum Feld dar.
* das Ergebnis wird bitweise invertiert und stellt dann den Wert für das checksum Feld dar
; Check beim Emfänger
; Check beim Emfänger
* XOR über alle 16-bit Worte im Header (inkl. checksum)
* XOR über alle 16-bit Worte im Header (inkl. checksum)
* OK, wenn im Ergebnis alle bits auf 1 stehen
* OK, wenn im Ergebnis alle bits auf 1 stehen


== Nutzdaten ==
=== Nutzdaten ===
* Segmente und Datagramme höherer Protokolle  
* Segmente und Datagramme höherer Protokolle
* Meist TCP oder UDP
* Meist TCP oder UDP


== Optionen ==
=== Optionen ===
Erweiterbarkeit des Headers
Erweiterbarkeit des Headers
* Variable Länge (max. 40 Byte)
* Variable Länge (max. 40 Byte)


=== Source Routing ===
==== Source Routing ====
* Liste von Routern, die ein Datagram durchlaufen soll
* Liste von Routern, die ein Datagram durchlaufen soll
* Der genommene Weg wird aufgezeichnet (max. 9 Hops)
* Der genommene Weg wird aufgezeichnet (max. 9 Hops)
Zeile 228: Zeile 327:
* Source Routing ist nahezu überall abgeschaltet, da es ein Sicherheitsrisiko darstellt (IP Spoofing)
* Source Routing ist nahezu überall abgeschaltet, da es ein Sicherheitsrisiko darstellt (IP Spoofing)


=== Record Route ===
==== Record Route ====
Router hängen ihre IP-Adresse an das Optionsfeld an
Router hängen ihre IP-Adresse an das Optionsfeld an


=== Zeitstempel ===
==== Zeitstempel ====
IP-Adresse und Zeitpunkt des Durchlaufes werden aufgezeichnet
IP-Adresse und Zeitpunkt des Durchlaufes werden aufgezeichnet


== Füllzeichen ==
=== Padding ===
Auffüllen des Wortes auf 32-Bit
Auffüllen des Wortes auf 32-Bit


[[Kategorie:IPv4]]
=== Payload ===
 
<noinclude>
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/IPv4}}
 
==== Sicherheit ====
==== Dokumentation ====
===== RFC =====
===== Man-Page =====
===== Info-Pages =====
==== Links ====
===== Projekt =====
===== Weblinks =====
 
[[Kategorie:IPv4/Header]]
</noinclude>

Aktuelle Version vom 6. November 2024, 12:27 Uhr

topic - Beschreibung

Beschreibung

Paketlänge

Ein IP-Paket besteht aus einem Header und den eigentlichen Daten

  • Der Datenteil enthält in der Regel ein weiteres Protokoll, meist TCP, UDP oder ICMP
  • Die maximale Länge eines IP-Pakets beträgt 65535 Bytes (216−1), die maximale Datenlänge 65515 Bytes (Paketlänge – minimale Headerlänge von 20 Byte)
  • Normalerweise beschränkt der Sender die Paketlänge auf diejenige des zugrundeliegenden Mediums
  • Bei Ethernet beträgt die sogenannte MTU (Maximum Transmission Unit) 1500 Bytes, da ein Ethernet-Datenpaket maximal 1518 Bytes lang sein darf und 18 Bytes vom Ethernet selbst belegt werden
  • Für IP (Header und Daten) stehen also nur 1500 Bytes zur Verfügung
  • Deshalb ist die Länge von IP-Paketen oft auf 1500 Bytes festgesetzt

Header-Format

Der IPv4-Header ist meist 20 Bytes lang
  • Bei Übertragung auf Basis von Ethernet folgt er dem Ethernet-Typfeld, das für IPv4-Pakete auf 080016 festgelegt ist
  • Auf anderen Übertragungsmedien und Protokollen kann der Header auch der erste Eintrag sein
  • Im Typfeld des Ethernet-Frames wird für IPv4 080016 eingetragen
IPv4 bietet verschiedene, größtenteils ungenutzte Optionen, die den Header bis auf 60 Bytes (in 4-Byte-Schritten) verlängern können
  • Ohne Optionen ist der IPv4-Header 20 Bytes lang
  • Wortlänge 32 Bit (4 Byte)
  • Daten im Feld Optionen können den Header auf maximal 60 Byte (in 32-Bit-Worten) verlängern (selten)
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Version IHL DSCP ECN Gesamtlänge H
e
a
d
e
r
Identifikation Flags Fragment Offset
TTL Protokoll Header-Prüfsumme
Sender-IP-Adresse
Empfänger-IP-Adresse
Optionen Padding

Payload

Header-Felder

Option Beschreibung
Version
  • Version des IP-Protokolls
  • Hier Version 4
Internet Header Length
  • IHL
  • Länge des IP-Protokoll-Kopfes in 32-Bit-Worten an
  • Die minimale Länge beträgt 5 Worte, was auch der Normalfall ist
  • Vergrößerung durch Angabe von Optionen
Differentiated Services Code Point
  • DSCP

Eine spezielle Bedeutung kommt in modernen Implementierungen dem früheren Feld Type of Service (ToS) im zweiten Oktett des IPv4-Headers zu

  • Ursprünglich diente dieses Feld bei der Vermittlung eines Datenpaketes als Entscheidungshilfe für die beteiligten Router bei der Wahl der Übertragungsparameter
  • In modernen Implementierungen wird dieses Feld im Zusammenhang mit der network congestion avoidance (Vermeidung von Überlastungen) verwendet

Das ToS-Feld wurde durch das DS-Feld (differentiated services) ersetzt

ECN
Servicetypen

Mit den Precedence-Bit (0-2) kann eine Priorität von 0 - 7 angegeben werden

  • 1000 Minimize-delay
  • 0100 Maximize throughput
  • 0010 Maximize reliability
  • 0001 Minimize monetary costs
  • 0000 Normal service
  • Bit 7 ohne Bedeutung (reserviert)

Servicetypen werden nicht von allen Routern unterstützt

Gesamtlänge
  • Die Länge des Paketes in Byte inklusive Protokoll-Kopf
  • 16 Bit – Feld (Maximale Paketgröße = 65.535 Byte)
Identifikation
  • Eine eindeutige Identifikation (Zähler)
  • Diese Kennungen sollten sich nur nach längeren Zeitabständen wiederholen
    • um nicht mit verspäteten PDU in Konflikt zu kommen
TTL
Time To Live
Anzahl der Router, die ein IP-Datagramm passieren darf
Problem
  • Beim Routen durch vermaschte Netze, können Datagramme/ Fragmente ziellos und unendlich lange kreisen
  • Die verbrauchten Ressourcen können ein Netzwerk bis zum Stillstand belasten
Lösung
  • Jeder Knoten (Router) verringert diesen Wert um mindestens 1
  • Hält ein Router ein Paket länger als eine Sekunde, verringert er die TTL um 1 je weitere Sekunde
  • Bei Erreichen des Wertes „0“, wird Paket verworfen
Sender-IP-Adresse ; 32-Bit IP-Adresse (IPv4)
Unabhängig von der zugrunde liegenden Netztechnologie
  • Das Internet-Protokoll definiert also eine rein logische Netztopologie
Die Vergabe der IP-Adressen
  • wird international von der IANA (Internet Assigned Numbers Association) geregelt
  • die IANA verteilt die Organisation auf mehrere Unterorganisationen
  • Die in Europa zuständige Organisation ist das RIPE (Réseaux IP Européens)
Empfänger-IP-Adresse
Flags
DF, MF
DF (Don‘t Fragment)
  • 0 = May Fragment
  • 1 = Don‘t Fragment
MF (More Fragment)
  • 0 = Last Fragment
  • 1 = More Fragment
Fragment Offset
Fragmentabstand
  • Länge relativ zum Beginn des ursprünglichen Datagrams
Protokoll ; Nummer des Transportprotokolls
  • Legt fest, welches Protokoll für die Weiterverarbeitung auf 03 zuständig ist (demultiplexing)
  • gemäß RFC 1700 (Assigned Numbers)
  • /etc/protocol
  • %SYSTEMROOT%\system32\drivers\etc\protocol
Ausgewählte IP-Protokollnummern
Header-Prüfsumme
Prüfsumme
  • wird über den gesamten IP Header berechnet
Berechnung beim Sender
  • setze das checksum Feld auf 0
  • XOR über alle 16-bit Worte im Header
  • das Ergebnis wird bitweise invertiert und stellt dann den Wert für das checksum Feld dar
Check beim Emfänger
  • XOR über alle 16-bit Worte im Header (inkl. checksum)
  • OK, wenn im Ergebnis alle bits auf 1 stehen
Nutzdaten
  • Segmente und Datagramme höherer Protokolle
  • Meist TCP oder UDP
Optionen Erweiterbarkeit des Headers
  • Variable Länge (max. 40 Byte)
= Source Routing =
  • Liste von Routern, die ein Datagram durchlaufen soll
  • Der genommene Weg wird aufgezeichnet (max. 9 Hops)
loose

Die Angegebenen IP Adressen müssen nicht benachbart sein

strict

Die Angegebenen IP Adressen müssen benachbart sein

  • sonst wird das Paket verworfen und eine ICMP source route failed Nachricht an den Sender geschickt
  • Source Routing ist nahezu überall abgeschaltet, da es ein Sicherheitsrisiko darstellt (IP Spoofing)
= Record Route = Router hängen ihre IP-Adresse an das Optionsfeld an
= Zeitstempel = IP-Adresse und Zeitpunkt des Durchlaufes werden aufgezeichnet
Padding Auffüllen des Wortes auf 32-Bit
Payload

Version

  • Version des IP-Protokolls
  • Hier Version 4

Internet Header Length

  • IHL
  • Länge des IP-Protokoll-Kopfes in 32-Bit-Worten an
  • Die minimale Länge beträgt 5 Worte, was auch der Normalfall ist
  • Vergrößerung durch Angabe von Optionen

Differentiated Services Code Point

  • DSCP

Eine spezielle Bedeutung kommt in modernen Implementierungen dem früheren Feld Type of Service (ToS) im zweiten Oktett des IPv4-Headers zu

  • Ursprünglich diente dieses Feld bei der Vermittlung eines Datenpaketes als Entscheidungshilfe für die beteiligten Router bei der Wahl der Übertragungsparameter
  • In modernen Implementierungen wird dieses Feld im Zusammenhang mit der network congestion avoidance (Vermeidung von Überlastungen) verwendet

Das ToS-Feld wurde durch das DS-Feld (differentiated services) ersetzt

ECN

Servicetypen

Mit den Precedence-Bit (0-2) kann eine Priorität von 0 - 7 angegeben werden

  • 1000 Minimize-delay
  • 0100 Maximize throughput
  • 0010 Maximize reliability
  • 0001 Minimize monetary costs
  • 0000 Normal service
  • Bit 7 ohne Bedeutung (reserviert)

Servicetypen werden nicht von allen Routern unterstützt

Gesamtlänge

  • Die Länge des Paketes in Byte inklusive Protokoll-Kopf
  • 16 Bit – Feld (Maximale Paketgröße = 65.535 Byte)

Identifikation

  • Eine eindeutige Identifikation (Zähler)
  • Diese Kennungen sollten sich nur nach längeren Zeitabständen wiederholen
    • um nicht mit verspäteten PDU in Konflikt zu kommen

TTL

Time To Live
Anzahl der Router, die ein IP-Datagramm passieren darf
Problem
  • Beim Routen durch vermaschte Netze, können Datagramme/ Fragmente ziellos und unendlich lange kreisen
  • Die verbrauchten Ressourcen können ein Netzwerk bis zum Stillstand belasten
Lösung
  • Jeder Knoten (Router) verringert diesen Wert um mindestens 1
  • Hält ein Router ein Paket länger als eine Sekunde, verringert er die TTL um 1 je weitere Sekunde
  • Bei Erreichen des Wertes „0“, wird Paket verworfen

Sender-IP-Adresse

32-Bit IP-Adresse (IPv4)
Unabhängig von zugrundeliegender Netztechnologie
  • Das Internet-Protokoll definiert also eine rein logische Netztopologie
Vergabe der IP-Adressen
  • wird international von der IANA (Internet Assigned Numbers Association) geregelt
  • die IANA verteilt die Organisation auf mehrere Unterorganisationen
  • Die in Europa zuständige Organisation ist das RIPE (Réseaux IP Européens)

Empfänger-IP-Adresse

Flags

DF, MF

DF (Don‘t Fragment)
  • 0 = May Fragment
  • 1 = Don‘t Fragment
MF (More Fragment)
  • 0 = Last Fragment
  • 1 = More Fragment

Fragment Offset

Fragmentabstand
  • Länge relativ zum Beginn des ursprünglichen Datagrams

Protokoll

Nummer des Transportprotokolls
  • Legt fest, welches Protokoll für die Weiterverarbeitung auf 03 zuständig ist (demultiplexing)
  • gemäß RFC 1700 (Assigned Numbers)
  • /etc/protocol
  • %SYSTEMROOT%\system32\drivers\etc\protocol
Ausgewählte IP-Protokollnummern

Header-Prüfsumme

Prüfsumme
  • wird über den gesamten IP Header berechnet
Berechnung beim Sender
  • setze das checksum Feld auf 0
  • XOR über alle 16-bit Worte im Header
  • das Ergebnis wird bitweise invertiert und stellt dann den Wert für das checksum Feld dar
Check beim Emfänger
  • XOR über alle 16-bit Worte im Header (inkl. checksum)
  • OK, wenn im Ergebnis alle bits auf 1 stehen

Nutzdaten

  • Segmente und Datagramme höherer Protokolle
  • Meist TCP oder UDP

Optionen

Erweiterbarkeit des Headers

  • Variable Länge (max. 40 Byte)

Source Routing

  • Liste von Routern, die ein Datagram durchlaufen soll
  • Der genommene Weg wird aufgezeichnet (max. 9 Hops)
loose

Die Angegebenen IP Adressen müssen nicht benachbart sein

strict

Die Angegebenen IP Adressen müssen benachbart sein

  • sonst wird das Paket verworfen und eine ICMP source route failed Nachricht an den Sender geschickt
  • Source Routing ist nahezu überall abgeschaltet, da es ein Sicherheitsrisiko darstellt (IP Spoofing)

Record Route

Router hängen ihre IP-Adresse an das Optionsfeld an

Zeitstempel

IP-Adresse und Zeitpunkt des Durchlaufes werden aufgezeichnet

Padding

Auffüllen des Wortes auf 32-Bit

Payload

Anhang

Siehe auch

Sicherheit

Dokumentation

RFC
Man-Page
Info-Pages

Links

Projekt
Weblinks