|
|
| (211 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
| Zeile 1: |
Zeile 1: |
| | '''{{BASEPAGENAME}}''' - Metadaten eines [[IP-Datagramm]]s |
| | |
| == Beschreibung == | | == Beschreibung == |
| * Ohne Optionen ist ein IPv4-Header 20 Bytes lang
| | ; IPv4-Header ist mindestens (meist) 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)
| | ; Ethernet |
| * Im Typfeld des Ethernet-Frames wird für IPv4 ''0800<sub>16</sub>'' eingetragen
| | Im [[Typfeld]] des [[Ethernet/Frame|Ethernet-Frame]]s wird für IPv4 ''0800<sub>16</sub>'' |
|
| |
|
| | == Header-Felder == |
| | <!-- |
| | [[IPv4/Header/Format]] |
| | --> |
| | {{:IPv4/Header/Format}} |
|
| |
|
| {| border="1" cellpadding="4" cellspacing="0" style="text-align:center;margin:auto;"
| | === Beschreibung === |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 00
| | {| class="wikitable sortable options big" |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 01
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 02
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 03
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 04
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 05
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 06
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 07
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 08
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 09
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 10
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 11
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 12
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 13
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 14
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 15
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 16
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 17
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 18
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 19
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 20
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 21
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 22
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 23
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 24
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 25
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 26
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 27
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 28
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 29
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 30
| |
| ! style="text-align:center !important; font-weight: normal;" "width="3.125%"| 31
| |
| |- | | |- |
| | style="background-color:#d6c4ff;" colspan="4"| [[IP-Paket#Version|Version]]
| | ! Feld !! Beschreibung |
| | style="background-color:#dfffcb;" colspan="4"| [[IP-Paket#IHL (Internet Header Length)|IHL]] | | |- |
| | style="background-color:#ffbfc0;" colspan="6"| [[DSCP]] | | | <span id="Version"></span>Version || Version des IP-Protokolls |
| | style="background-color:#ffbfc0;" colspan="2"| [[Explicit Congestion Notification|ECN]] | | * Hier Version 4 |
| | style="background-color:#b5bcff;" colspan="16"| [[IP-Paket#Total Length|Gesamtlänge]]
| |
| |- | | |- |
| | style="background-color:#fff1b0;" colspan="16"| [[IP-Paket#Identification|Identifikation]] | | | <span id="IHL"></span>IHL || Internet Header Length |
| | style="background-color:#d6c4ff;" colspan="3"| [[IP-Paket#Flags|Flags]]
| | Länge des IP-Protokoll-Kopfes in 32-Bit-Worten an |
| | style="background-color:#fff1b0;" colspan="13"| [[IP-Paket#Fragment Offset|Fragment Offset]]
| | * Die minimale Länge beträgt 5 Worte, was auch der Normalfall ist |
| | * Vergrößerung durch Angabe von Optionen |
| | |
| |- | | |- |
| | style="background-color:#adfff6;" colspan="8"| [[Time-to-live|TTL]] | | | <span id="DSCP"></span>DSCP || Differentiated Services Code Point |
| | style="background-color:#efbcff;" colspan="8"| [[Protokoll (IP)|Protokoll]]
| | Das ToS-Feld wurde durch das DS-Feld (''[[DiffServ|differentiated services]]'') ersetzt |
| | style="background-color:#b5bcff;" colspan="16"| Header-[[Prüfsumme]]
| | * 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 |
| |- | | |- |
| |style="background-color:#d1ffac;" colspan="32"| Quell-IP-Adresse | | | <span id="ECN"></span>ECN || [[Explicit Congestion Notification|explicit congestion notification]] |
| |- | | |- |
| |style="background-color:#ffbfc0;" colspan="32"| Ziel-IP-Adresse | | | Gesamtlänge || Länge des Paketes in Byte inklusive Header |
| | * Maximale Paketgröße 65.535 Byte (16 Bit - Feld) |
| |- | | |- |
| |style="background-color:#fff1b0;" colspan="24"| ''Optionen'' | | | <span id="Identifikation"></span>Identifikation || Eine eindeutige Identifikation (Zähler) |
| |style="background-color:#d6c4ff;" colspan="8"| ''Padding''
| | * Diese Kennungen sollten sich nur nach längeren Zeitabständen wiederholen |
| | ** um nicht mit verspäteten PDU in Konflikt zu kommen |
| |- | | |- |
| |style="background-color:#d9e4ff;" colspan="32" | | | | <span id="Flags"></span>Flags ||DF (Don‘t Fragment) |
| | * 0 = May Fragment |
| | * 1 = Don‘t Fragment |
|
| |
|
| | MF (More Fragment) |
| | * 0 = Last Fragment |
| | * 1 = More Fragment |
| | |- |
| | | <span id="Fragment Offset"></span>Fragment Offset || Fragmentabstand |
| | * Länge relativ zum Beginn des ursprünglichen Datagrams |
| | |- |
| | | <span id="TTL"></span>TTL || Time To Live |
| | * Anzahl der Router, die ein IP-Datagramm passieren darf |
|
| |
|
| Payload
| | 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) |
| | * /etc/protocol |
| | * %SYSTEMROOT%\system32\drivers\etc\protocol |
| | |- |
| | | <span id="Header-Prüfsumme"></span>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 |
| | |- |
| | | <span id="Sender-IP-Adresse"></span>Sender-IP-Adresse || 32-Bit IPv4-Adresse |
|
| |
|
| | Unabhängig von zugrundeliegender Netztechnologie |
| | * Das Internet-Protokoll definiert also eine rein logische Netztopologie |
|
| |
|
| [[File:ipHeader.png|600px]] | | Vergabe der IP-Adressen |
| | | Wird international von der [[IANA]] ([[Internet Assigned Numbers Association]]) geregelt |
| | | * IANA verteilt die Organisation auf mehrere Unterorganisationen |
| [[File:ipHeaderEng.png|600px]] | | * Für Europa ist dies das [[RIPE]] (Réseaux IP Européens) |
| | |
| == Header-Format ==
| |
|
| |
|
| Der [[IP-Header|IPv4-Header]] ist normalerweise 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.
| |
|
| |
| IPv4 bietet verschiedene, größtenteils ungenutzte Optionen, die den Header bis auf 60 Bytes (in 4-Byte-Schritten) verlängern können.
| |
|
| |
| {| border="1" cellpadding="4" cellspacing="0" style="text-align:center;margin:auto;"
| |
| ! width="12%"| 0–3
| |
| ! width="12%"| 4–7
| |
| ! width="16%"| 8–13
| |
| ! width="8%"| 14–15
| |
| ! width="9%"| 16–18
| |
| ! width="15%"| 19–23
| |
| ! width="12%"| 24–27
| |
| ! width="12%"| 28–31
| |
| |-
| |
| | [[IP-Paket#Version|Version]]
| |
| | [[IP-Paket#IHL (Internet Header Length)|IHL]]
| |
| |colspan="1"| [[DSCP]]
| |
| |colspan="1"| [[Explicit Congestion Notification|ECN]]
| |
| |colspan="4"| [[IP-Paket#Total Length|Gesamtlänge]]
| |
| |-
| |
| |colspan="4"| [[IP-Paket#Identification|Identifikation]]
| |
| | [[IP-Paket#Flags|Flags]]
| |
| |colspan="3"| [[IP-Paket#Fragment Offset|Fragment Offset]]
| |
| |-
| |
| |colspan="2"| [[Time-to-live|TTL]]
| |
| |colspan="2"| [[Protokoll (IP)|Protokoll]]
| |
| |colspan="4"| Header-[[Prüfsumme]]
| |
| |- | | |- |
| |colspan="8"| Quell-IP-Adresse | | | <span id="Empfänger-IP-Adresse"></span>Empfänger-IP-Adresse || |
| |- | | |- |
| |colspan="8"| Ziel-IP-Adresse | | | <span id="Optionen"></span>Optionen ||Größtenteils ungenutzt |
| |- | | * [[#Optionen|Optionen]] |
| |colspan="8"| ''Optionen …'' | | * können den Header bis auf 60 Bytes (in 4-Byte-Schritten) verlängern |
| |}
| |
|
| |
|
| Eine spezielle Bedeutung kommt in modernen Implementierungen dem früheren Feld ''Type of Service'' (ToS) im zweiten Oktett des IPv4-Headers zu.
| | Ohne Optionen ist der IPv4-Header 20 Bytes lang |
| * Ursprünglich diente dieses Feld bei der Vermittlung eines Datenpaketes als Entscheidungshilfe für die beteiligten Router bei der Wahl der Übertragungsparameter. | | * Wortlänge 32 Bit (4 Byte) |
| * In modernen Implementierungen wird dieses Feld im Zusammenhang mit der ''[[network congestion avoidance]]'' (Vermeidung von Überlastungen) verwendet. | | * Daten im Feld ''Optionen'' können den Header auf maximal 60 Byte (in 32-Bit-Worten) verlängern (selten) |
| * 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.
| |
|
| |
|
| == Version ==
| | Erweiterbarkeit des Headers |
| * Version des IP-Protokolls
| | * Variable Länge (max. 40 Byte) |
| * Hier Version 4 | |
|
| |
|
| == Länge ==
| | Source Routing |
| * Dieses Feld gibt die Länge des IP-Protokoll-Kopfes in 32-Bit-Worten an | | * Liste von Routern, die ein Datagram durchlaufen soll |
| * Die minimale Länge beträgt 5 Worte, was auch der Normalfall ist
| | * Der genommene Weg wird aufgezeichnet (max. 9 Hops) |
| * Vergrößerung durch Angabe von Optionen | |
|
| |
|
| == Servicetypen ==
| | loose |
| [[File:ipServicetypes.png|200px]]
| | * Die Angegebenen IP Adressen müssen nicht benachbart sein |
|
| |
|
| Mit den Precedence-Bit (0-2) kann eine Priorität von 0 - 7 angegeben werden
| | strict |
| * 1000 Minimize-delay | | * Die Angegebenen IP Adressen müssen 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
| |
|
| |
|
| Eine spezielle Bedeutung kommt in modernen Implementierungen dem früheren Feld ''Type of Service'' (ToS) im zweiten Oktett des IPv4-Headers zu.
| | * sonst wird das Paket verworfen und eine ICMP source route failed Nachricht an den Sender geschickt |
| * Ursprünglich diente dieses Feld bei der Vermittlung eines Datenpaketes als Entscheidungshilfe für die beteiligten Router bei der Wahl der Übertragungsparameter.
| | * Source Routing ist nahezu überall abgeschaltet, da es ein Sicherheitsrisiko darstellt (IP Spoofing) |
| * 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
| |
| : 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 ==
| | Record Route |
|
| |
|
| == TTL ==
| | Router hängen ihre IP-Adresse an das Optionsfeld an |
| ; Time To Live
| |
| : Anzahl der Router, die ein IP-Datagramm passieren darf
| |
|
| |
|
| ; Problem
| | Zeitstempel |
| * 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
| | IP-Adresse und Zeitpunkt des Durchlaufes werden aufgezeichnet |
| * 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)
| | |<span id="Padding"></span>Padding || Auffüllen des Wortes auf 32-Bit |
| | |} |
|
| |
|
| ; Unabhängig von der zugrunde liegenden Netztechnologie | | == Payload == |
| * Das Internet-Protokoll definiert also eine rein logische Netztopologie | | ; Nutzdaten |
| | * [[Segment]] (TCP) |
| | * [[Datagramm]] (UDP) |
| | * … |
|
| |
|
| ; Die Vergabe der IP-Adressen
| | <noinclude> |
| * 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 == | | = Anhang = |
| ; 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 == | | === Siehe auch === |
| ; Nummer des Transportprotokolls
| | <div style="column-count:2"> |
| * Legt fest, welches Protokoll für die Weiterverarbeitung auf 03 zuständig ist (demultiplexing)
| | <categorytree hideroot=on mode="pages">{{BASEPAGENAME}}</categorytree> |
| * gemäß RFC 1700 (Assigned Numbers)
| | </div> |
| * /etc/protocol
| | ---- |
| * %SYSTEMROOT%\system32\drivers\etc\protocol
| | {{Special:PrefixIndex/{{BASEPAGENAME}}/}} |
| | | === Dokumentation === |
| ; Ausgewählte IP-Protokollnummern
| | <!-- |
| | | ; Man-Page |
| == Weitere Felder == | | # [https://manpages.debian.org/stable/procps/pgrep.1.de.html prep(1)] |
| ; 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 ==
| | ; Info-Pages |
| * Segmente und Datagramme höherer Protokolle
| | --> |
| * Meist TCP oder UDP
| |
|
| |
|
| == Optionen == | | === Links === |
| Erweiterbarkeit des Headers
| | ==== Weblinks ==== |
| * Variable Länge (max. 40 Byte)
| | # https://de.wikipedia.org/wiki/IP-Paket |
| | |
| === 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 | |
|
| |
|
| == Füllzeichen ==
| | [[Kategorie:IPv4/Header]] |
| Auffüllen des Wortes auf 32-Bit
| |
|
| |
|
| [[Kategorie:IPv4]]
| | </noinclude> |