Zum Inhalt springen

IPv4/Header: Unterschied zwischen den Versionen

Aus Foxwiki
 
(130 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''topic''' - Kurzbeschreibung
'''{{BASEPAGENAME}}''' - Metadaten eines [[IP-Datagramm]]s
 
== Beschreibung ==
== Beschreibung ==
=== Paketlänge ===
; IPv4-Header ist mindestens (meist) 20 Bytes lang
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.


== Installation ==
; Ethernet
== Syntax ==
Im [[Typfeld]] des [[Ethernet/Frame|Ethernet-Frame]]s wird für IPv4 ''0800<sub>16</sub>''
=== Optionen ===
=== Parameter ===
=== Umgebungsvariablen ===
=== Exit-Status ===
== Anwendung ==
=== Fehlerbehebung ===
== Konfiguration ==
=== Dateien ===
<noinclude>
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
==== Sicherheit ====
==== Dokumentation ====
===== RFC =====
===== Man-Pages =====
===== Info-Pages =====
==== Links ====
===== Projekt =====
===== Weblinks =====


= TMP =
== Header-Felder ==
== Header-Format ==
<!--
; Der IPv4-Header ist meist 20 Bytes lang
[[IPv4/Header/Format]]
* 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.
{{:IPv4/Header/Format}}
* 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
* 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)
 
 
{| class="header" border="1" cellpadding="4" cellspacing="0" style="text-align:center;margin:auto;"
! 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%"| 02
! style="text-align:center !important; font-weight: normal;" "width="3%"| 03
! style="text-align:center !important; font-weight: normal;" "width="3%"| 04
! style="text-align:center !important; font-weight: normal;" "width="3%"| 05
! style="text-align:center !important; font-weight: normal;" "width="3%"| 06
! style="text-align:center !important; font-weight: normal;" "width="3%"| 07
! style="text-align:center !important; font-weight: normal;" "width="3%"| 08
! style="text-align:center !important; font-weight: normal;" "width="3%"| 09
! style="text-align:center !important; font-weight: normal;" "width="3%"| 10
! style="text-align:center !important; font-weight: normal;" "width="3%"| 11
! style="text-align:center !important; font-weight: normal;" "width="3%"| 12
! style="text-align:center !important; font-weight: normal;" "width="3%"| 13
! style="text-align:center !important; font-weight: normal;" "width="3%"| 14
! style="text-align:center !important; font-weight: normal;" "width="3%"| 15
! style="text-align:center !important; font-weight: normal;" "width="3%"| 16
! style="text-align:center !important; font-weight: normal;" "width="3%"| 17
! style="text-align:center !important; font-weight: normal;" "width="3%"| 18
! style="text-align:center !important; font-weight: normal;" "width="3%"| 19
! style="text-align:center !important; font-weight: normal;" "width="3%"| 20
! style="text-align:center !important; font-weight: normal;" "width="3%"| 21
! style="text-align:center !important; font-weight: normal;" "width="3%"| 22
! style="text-align:center !important; font-weight: normal;" "width="3%"| 23
! style="text-align:center !important; font-weight: normal;" "width="3%"| 24
! style="text-align:center !important; font-weight: normal;" "width="3%"| 25
! style="text-align:center !important; font-weight: normal;" "width="3%"| 26
! style="text-align:center !important; font-weight: normal;" "width="3%"| 27
! style="text-align:center !important; font-weight: normal;" "width="3%"| 28
! style="text-align:center !important; font-weight: normal;" "width="3%"| 29
! 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%"|
|-
| style="background-color:#d6c4ff;" colspan="4"| [[IPv4/Header#Version|Version]]
| style="background-color:#dfffcb;" colspan="4"| [[IPv4/Header#Internet Header Length | IHL]]
| style="background-color:#ffbfc0;" colspan="6"| [[IPv4/Header#Differentiated Services Code Point | DSCP]]
| style="background-color:#ffbfc0;" colspan="2"| [[IPv4/Header#ECN | ECN]]
| 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="background-color:#fff1b0;" colspan="16"| [[IPv4/Header#Identifikation|Identifikation]]
| style="background-color:#d6c4ff;" colspan="3"| [[IPv4/Header#Flags|Flags]]
| style="background-color:#fff1b0;" colspan="13"| [[IPv4/Header#Fragment Offset|Fragment Offset]]
|-
| style="background-color:#adfff6;" colspan="8"| [[IPv4/Header#TTL|TTL]]
| style="background-color:#efbcff;" colspan="8"| [[IPv4/Header#Protokoll|Protokoll]]
| style="background-color:#b5bcff;" colspan="16"| [[IPv4/Header#Header-Prüfsumme|Header-Prüfsumme]]
|-
|style="background-color:#d1ffac;" colspan="32"| [[IPv4/Header#Sender-IP-Adresse|Sender-IP-Adresse]]
|-
|style="background-color:#ffbfc0;" colspan="32"| [[IPv4/Header#Empfänger-IP-Adresse|Empfänger-IP-Adresse]]
|-
|style="background-color:#fff1b0;" colspan="24"| [[IPv4/Header#Optionen|Optionen]]
|style="background-color:#d6c4ff;" colspan="8"| [[IPv4/Header#Padding|Padding]]
|-
|style="background-color:#d9e4ff;" colspan="32" |


[[IPv4/Header#Payload|Payload]]
=== Beschreibung ===
 
{| class="wikitable sortable options big"
|}
 
== Header-Felder ==
{| class="wikitable sortable options"
|-
|-
! Option !! Beschreibung
! Feld !! Beschreibung
|-
|-
| Version ||
| <span id="Version"></span>Version || Version des IP-Protokolls
* Version des IP-Protokolls
* Hier Version 4
* Hier Version 4
|-
|-
| Internet Header Length ||
| <span id="IHL"></span>IHL || Internet Header Length
* IHL
Länge des IP-Protokoll-Kopfes in 32-Bit-Worten an
* 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
|-
|-
| Differentiated Services Code Point ||
| <span id="DSCP"></span>DSCP || 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
Das ToS-Feld wurde durch das DS-Feld (''[[DiffServ|differentiated services]]'') ersetzt
* dessen erste sechs Bit als ''differentiated services code point'' (DSCP) und
* Eine spezielle Bedeutung kommt in modernen Implementierungen dem früheren Feld ''Type of Service'' (ToS) im zweiten Oktett des IPv4-Headers zu
* dessen letzte beiden Bit als ''[[Explicit Congestion Notification|explicit congestion notification]]'' (ECN) benutzt werden
* 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
|-
|-
| ECN ||  
| <span id="ECN"></span>ECN || [[Explicit Congestion Notification|explicit congestion notification]]
; 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 ||
| Gesamtlänge || Länge des Paketes in Byte inklusive Header
* Die Länge des Paketes in Byte inklusive Protokoll-Kopf
* Maximale Paketgröße 65.535 Byte (16 Bit - Feld)
* 16 Bit – Feld (Maximale Paketgröße = 65.535 Byte)
|-
|-
| Identifikation ||
| <span id="Identifikation"></span>Identifikation || Eine eindeutige Identifikation (Zähler)
* Eine eindeutige Identifikation (Zähler)
* Diese Kennungen sollten sich nur nach längeren Zeitabständen wiederholen
* Diese Kennungen sollten sich nur nach längeren Zeitabständen wiederholen
** um nicht mit verspäteten PDU in Konflikt zu kommen
** um nicht mit verspäteten PDU in Konflikt zu kommen
|-
|-
| TTL ||
| <span id="Flags"></span>Flags ||DF (Don‘t Fragment)
; 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
* 0 = May Fragment
* 1 = Don‘t Fragment
* 1 = Don‘t Fragment
; MF (More Fragment)
 
MF (More Fragment)
* 0 = Last Fragment
* 0 = Last Fragment
* 1 = More Fragment
* 1 = More Fragment
|-
|-
| Fragment Offset ||  
| <span id="Fragment Offset"></span>Fragment Offset || Fragmentabstand
; Fragmentabstand
* Länge relativ zum Beginn des ursprünglichen Datagrams
* Länge relativ zum Beginn des ursprünglichen Datagrams
|-
|-
| Protokoll || ; Nummer des Transportprotokolls
| <span id="TTL"></span>TTL || Time To Live
* Legt fest, welches Protokoll für die Weiterverarbeitung auf 03 zuständig ist (demultiplexing)
* 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
|-
| <span id="Protokoll"></span>Protokoll || Nummer des Transportprotokolls
Legt fest, welches Protokoll für die Weiterverarbeitung auf 03 zuständig ist (demultiplexing)
* gemäß RFC 1700 (Assigned Numbers)
* gemäß RFC 1700 (Assigned Numbers)
* /etc/protocol
* /etc/protocol
* %SYSTEMROOT%\system32\drivers\etc\protocol
* %SYSTEMROOT%\system32\drivers\etc\protocol
; Ausgewählte IP-Protokollnummern
|-
|-
| Header-Prüfsumme ||  
| <span id="Header-Prüfsumme"></span>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 ||
| <span id="Sender-IP-Adresse"></span>Sender-IP-Adresse || 32-Bit IPv4-Adresse
* 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 ===
Unabhängig von zugrundeliegender Netztechnologie
* Version des IP-Protokolls
* Das Internet-Protokoll definiert also eine rein logische Netztopologie
* Hier Version 4


=== Internet Header Length ===
Vergabe der IP-Adressen
* IHL
Wird international von der [[IANA]] ([[Internet Assigned Numbers Association]]) geregelt
* Länge des IP-Protokoll-Kopfes in 32-Bit-Worten an
* IANA verteilt die Organisation auf mehrere Unterorganisationen
* Die minimale Länge beträgt 5 Worte, was auch der Normalfall ist
* Für Europa ist dies das [[RIPE]] (Réseaux IP Européens)
* Vergrößerung durch Angabe von Optionen


=== Differentiated Services Code Point ===
|-
* DSCP
| <span id="Empfänger-IP-Adresse"></span>Empfänger-IP-Adresse ||
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.
| <span id="Optionen"></span>Optionen ||Größtenteils ungenutzt
* In modernen Implementierungen wird dieses Feld im Zusammenhang mit der ''[[network congestion avoidance]]'' (Vermeidung von Überlastungen) verwendet.
* [[#Optionen|Optionen]]
* können den Header bis auf 60 Bytes (in 4-Byte-Schritten) verlängern


Das ToS-Feld wurde durch das DS-Feld (''[[DiffServ|differentiated services]]'') ersetzt
Ohne Optionen ist der IPv4-Header 20 Bytes lang
* dessen erste sechs Bit als ''differentiated services code point'' (DSCP) und
* Wortlänge 32 Bit (4 Byte)
* dessen letzte beiden Bit als ''[[Explicit Congestion Notification|explicit congestion notification]]'' (ECN) benutzt werden
* Daten im Feld ''Optionen'' können den Header auf maximal 60 Byte (in 32-Bit-Worten) verlängern (selten)


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


==== Servicetypen ====
Source Routing
[[File:ipServicetypes.png|200px]]
* Liste von Routern, die ein Datagram durchlaufen soll
* Der genommene Weg wird aufgezeichnet (max. 9 Hops)


Mit den Precedence-Bit (0-2) kann eine Priorität von 0 - 7 angegeben werden
loose
* 1000 Minimize-delay
* Die Angegebenen IP Adressen müssen nicht benachbart sein
* 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  ===
strict
* Die Länge des Paketes in Byte inklusive Protokoll-Kopf
* Die Angegebenen IP Adressen müssen benachbart sein
* 16 Bit – Feld (Maximale Paketgröße = 65.535 Byte)


=== Identifikation ===
* sonst wird das Paket verworfen und eine ICMP source route failed Nachricht an den Sender geschickt
* Eine eindeutige Identifikation (Zähler)
* Source Routing ist nahezu überall abgeschaltet, da es ein Sicherheitsrisiko darstellt (IP Spoofing)
* 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
Record Route
* 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 ===
Router hängen ihre IP-Adresse an das Optionsfeld an
; 32-Bit IP-Adresse (IPv4)


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


; Die Vergabe der IP-Adressen
IP-Adresse und Zeitpunkt des Durchlaufes werden aufgezeichnet
* 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 ===
|-
|<span id="Padding"></span>Padding || Auffüllen des Wortes auf 32-Bit
|}


=== Flags ===
== Payload ==
==== DF, MF ====
; Nutzdaten
; DF (Don‘t Fragment)
* [[Segment]] (TCP)
* 0 = May Fragment
* [[Datagramm]] (UDP)
* 1 = Don‘t Fragment
*
; MF (More Fragment)
* 0 = Last Fragment
* 1 = More Fragment


=== Fragment Offset ===
<noinclude>
; Fragmentabstand
* Länge relativ zum Beginn des ursprünglichen Datagrams


=== Protokoll ===
= Anhang =
; 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
=== Siehe auch ===
 
<div style="column-count:2">
=== Header-Prüfsumme ===
<categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree>
; Prüfsumme
</div>
* wird über den gesamten IP Header berechnet
----
; Berechnung beim Sender
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
* setze das checksum Feld auf 0
=== Dokumentation ===
* XOR über alle 16-bit Worte im Header
<!--
* das Ergebnis wird bitweise invertiert und stellt dann den Wert für das checksum Feld dar.
; Man-Page
; Check beim Emfänger
# [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)]
* XOR über alle 16-bit Worte im Header (inkl. checksum)
* OK, wenn im Ergebnis alle bits auf 1 stehen


=== Nutzdaten ===
; Info-Pages
* 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 ===
=== Links ===
Auffüllen des Wortes auf 32-Bit
==== Weblinks ====
# https://de.wikipedia.org/wiki/IP-Paket


=== Payload ===
[[Kategorie:IPv4/Header]]


[[Kategorie:IPv4]]
</noinclude>
</noinclude>

Aktuelle Version vom 30. Juni 2025, 13:26 Uhr

IPv4/Header - Metadaten eines IP-Datagramms

Beschreibung

IPv4-Header ist mindestens (meist) 20 Bytes lang
Ethernet

Im Typfeld des Ethernet-Frames wird für IPv4 080016

Header-Felder

0-3 4-7 8-13 14-15 16-18 19-23 24-27 28-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
Optionen Padding

Payload

Beschreibung

Feld Beschreibung
Version Version des IP-Protokolls
  • Hier Version 4
IHL Internet Header Length

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
DSCP Differentiated Services Code Point

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

  • 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
ECN explicit congestion notification
Gesamtlänge Länge des Paketes in Byte inklusive Header
  • Maximale Paketgröße 65.535 Byte (16 Bit - Feld)
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
Flags 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
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
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
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
Sender-IP-Adresse 32-Bit IPv4-Adresse

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

  • IANA verteilt die Organisation auf mehrere Unterorganisationen
  • Für Europa ist dies das RIPE (Réseaux IP Européens)
Empfänger-IP-Adresse
Optionen Größtenteils ungenutzt
  • Optionen
  • können den Header bis auf 60 Bytes (in 4-Byte-Schritten) verlängern

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)

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

Nutzdaten


Anhang

Siehe auch


Dokumentation

Links

Weblinks

  1. https://de.wikipedia.org/wiki/IP-Paket