Zum Inhalt springen

IPv4/Header: Unterschied zwischen den Versionen

Aus Foxwiki
Markierung: Ersetzt
Zeile 34: Zeile 34:


= TMP =
= TMP =
{{:IPv4/Header/Format}}
== 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 ==
; 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
* 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
* 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)
== 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 ===
* 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 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 ===


<noinclude>
<noinclude>

Version vom 24. Mai 2025, 10:12 Uhr