IPv4/Header: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 1: | Zeile 1: | ||
== | == Beschreibung == | ||
* Ohne Optionen ist ein IPv4-Header 20 Bytes lang | * Ohne Optionen ist ein 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 Bytes (in 32-Bit-Worten) verlängern (selten) | ||
* Im Typfeld des Ethernet-Frames wird für IPv4 ''0800<sub>16</sub>'' eingetragen | * Im Typfeld des Ethernet-Frames wird für IPv4 ''0800<sub>16</sub>'' eingetragen | ||
Zeile 46: | Zeile 45: | ||
[[File:ipHeaderEng.png|600px]] | [[File:ipHeaderEng.png|600px]] | ||
== Version == | |||
* Version des IP-Protokolls | * Version des IP-Protokolls | ||
* Hier Version 4 | * Hier Version 4 | ||
== Länge == | |||
* Dieses Feld gibt die Länge des IP-Protokoll-Kopfes in 32-Bit-Worten an | * Dieses Feld gibt die 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 == | |||
[[File:ipServicetypes.png|200px]] | [[File:ipServicetypes.png|200px]] | ||
Zeile 72: | Zeile 71: | ||
* 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. | * 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 == | |||
* 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 == | |||
; Time To Live | ; Time To Live | ||
* Dieses Feld gibt an, wie lange das Paket maximal unterwegs sein darf | * Dieses Feld gibt an, wie lange das Paket maximal unterwegs sein darf | ||
Zeile 95: | Zeile 94: | ||
* Bei Erreichen des Wertes „0“, wird Paket verworfen | * Bei Erreichen des Wertes „0“, wird Paket verworfen | ||
== Sender- und Empfänger-Adressen == | |||
* 32-Bit IP-Adresse (IPv4) | * 32-Bit IP-Adresse (IPv4) | ||
Zeile 106: | Zeile 105: | ||
* 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 == | |||
; DF (Don‘t Fragment) | ; DF (Don‘t Fragment) | ||
* 0 = May Fragment | * 0 = May Fragment | ||
Zeile 116: | Zeile 115: | ||
* Länge relativ zum Beginn des ursprünglichen Datagram | * Länge relativ zum Beginn des ursprünglichen Datagram | ||
== 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 125: | Zeile 124: | ||
; Ausgewählte IP-Protokollnummern | ; Ausgewählte IP-Protokollnummern | ||
== Weitere Felder == | |||
; Prüfsumme | ; Prüfsumme | ||
* wird über den gesamten IP Header berechnet | * wird über den gesamten IP Header berechnet | ||
Zeile 136: | Zeile 135: | ||
* OK, wenn im Ergebnis alle bits auf 1 stehen | * OK, wenn im Ergebnis alle bits auf 1 stehen | ||
== Nutzdaten == | |||
* Segmente und Datagramme höherer Protokolle | * Segmente und Datagramme höherer Protokolle | ||
* Meist TCP oder UDP | * Meist TCP oder UDP | ||
== Optionen == | |||
Erweiterbarkeit des Headers | Erweiterbarkeit des Headers | ||
* Variable Länge (max. 40 Byte) | * Variable Länge (max. 40 Byte) | ||
=== 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 154: | Zeile 153: | ||
* 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 === | |||
* Router hängen ihre IP-Adresse an das Optionsfeld an | * Router hängen ihre IP-Adresse an das Optionsfeld an | ||
=== Zeitstempel === | |||
* Zusätzlich zur IP-Adresse wird die Uhrzeit des Durchlaufes angehangen | * Zusätzlich zur IP-Adresse wird die Uhrzeit des Durchlaufes angehangen | ||
== Füllzeichen == | |||
Auffüllen des Wortes auf 32-Bit | Auffüllen des Wortes auf 32-Bit | ||
[[Kategorie:IPv4]] | [[Kategorie:IPv4]] |
Version vom 18. Oktober 2022, 23:30 Uhr
Beschreibung
- Ohne Optionen ist ein IPv4-Header 20 Bytes lang
- 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)
- Im Typfeld des Ethernet-Frames wird für IPv4 080016 eingetragen
0 | 4 | 8 | 14 | 16 | 19 | 24 | 28 |
---|---|---|---|---|---|---|---|
Version | IHL | DSCP | ECN | Gesamtlänge | |||
Identifikation | Flags | Fragment Offset | |||||
TTL | Protokoll | Header-Prüfsumme | |||||
Quell-IP-Adresse | |||||||
Ziel-IP-Adresse | |||||||
Optionen | |||||||
Nutzdaten |
Version
- Version des IP-Protokolls
- Hier Version 4
Länge
- Dieses Feld gibt die 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
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
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, dessen erste sechs Bits als differentiated services code point (DSCP) und dessen letzte beiden Bits als explicit congestion notification (ECN) benutzt werden.
Paketlä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.
Paketübertragung im Internet
TTL
- Time To Live
- Dieses Feld gibt an, wie lange das Paket maximal unterwegs sein darf
- Problem
- Beim Routen durch vermaschte Netze, können Datagramme/ Fragmente ziellos und unendlich lange kreisen
- Das verbraucht Ressourcen und kann Netzwerke 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- und Empfänger-Adressen
- 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)
DF, MF und Fragmentabstand
- DF (Don‘t Fragment)
- 0 = May Fragment
- 1 = Don‘t Fragment
- MF (More Fragment)
- 0 = Last Fragment
- 1 = More Fragment
- Fragmentabstand
- Länge relativ zum Beginn des ursprünglichen Datagram
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
Weitere Felder
- 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
- Zusätzlich zur IP-Adresse wird die Uhrzeit des Durchlaufes angehangen
Füllzeichen
Auffüllen des Wortes auf 32-Bit