Internet Protocol Version 4
IPv4 (Internet Protocol Version 4)
Beschreibung
- vor der Entwicklung von IPv6 auch einfach IP, ist die vierte Version des Internet Protocols (IP).
- Es war die erste Version des Internet Protocols, die weltweit eingesetzt wurde, und bildet eine wichtige technische Grundlage des Internets. Es wurde in RFC 791 im Jahr 1981 definiert.
IPv4
Einordnung ins DoD-Modell
Bezeichnung der Daten im Protokoll-Stapel
Eigenschaften
- Grundlage des TCP/IP-Stapels (TCP/IP-Stack)
- Teil der Netzwerkschicht des DoD-Modells (02)
- Setzt auf Data Link Layer auf
- Ethernetypfeld: 08-00
- 1977 entwickelt
- In der Version 4 das Standard-Protokoll im Internet
- Die Weiterentwicklung zur Version 6 ist abgeschlossen, aber noch wenig genutzt
- Hardwareunabhängig
- Die Adressierung ist nicht von der Netzwerktechnologie abhängig
- Paketorientierter verbindungsloser Datagram-Dienst
- freie Routenwahl
- kein Verbindungsauf- oder abbau
- Keine Fehlerkorrektur
Aufgaben
- Gewährleistung des Transports von Daten über heterogene Netzwerktopologien
- Abstraktion von Besonderheiten des darunter liegenden Layers 2(z.B. Ethernet, Token Ring oder ATM)
- Definition eines Adressschemas
- Definition von Datagrammen
- Datagram-Service
- Unzuverlässig
- Keine Auslieferungs-Garantie
- Keine Fehlerfreiheits-Garantie
- Routing zwischen Netzen
- Fragmentierung / Reassemblierung von Datagrammen
- Übermittlung der Daten vom Transport- zu Networklayer
- Definition/ Adressierung höherer Protokolle
IP-Header
IP-Header englisch
Version und Länge
- Version
- Die Version des IP-Protokolls
- Wir behandeln 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
- Bit 3 – 6 haben folgende Bedeutung
- 1000 Minimize-delay
- 0100 Maximize throughput
- 0010 Maximize reliability
- 0001 Minimize monetary costs
- 0000 Normal service
- Bit 7 ist reserviert (ohne Bedeutung)
- Servicetypen werden nicht von allen Routern unterstützt
Paketlänge und Identifikation
- Paket-Lä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
Lebenszeit (TTL = Time To Live)
- Dieses Feld gibt an, wie lange das Paket maximal unterwegs sein darf
- Das 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
- Die 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), 128-Bit IP-Adresse (IPv6)
- 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
- Füllzeichen
- Auffüllen des Headers auf ein Vielfaches von 32-Bit
- Nutzdaten
- Segmente und Datagramme höherer Protokolle
- Meist TCP oder UDP
- XX IP-Header im Detail 8 - Optionen
- Flexible Erweiterbarkeit des Headers
- Variable Länge (max. 40 Byte)
- Folgende Optionen sind möglich
- 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
Fragmentierung
Warum Fragmentierung?
- Anpassung der Datagramgrösse an die MTU der lokalen Netz-Technologie
- Definition des Protokolls / Beschränkung durch Norm
- Paketlänge in verschiedenen Netzen
- Token Ring32768 bit
- Ethernet12144 bit
- X.25 (Maximum)8192 bit
- X.25 (Standard)1024 bit
Fragmentierung
- Felder: DF, MF, Identifikation, Fragmentabstand
- kann nur bei DF=0 durchgeführt werden
- wird von den Routern eigenständig vorgenommen
- kann bei Bedarf wiederholt angewendet werden
- Zielhost muss die Fragmente zusammensetzen
Fragmentierung
- Alle Fragmente haben dieselbe Kennung
- diese definiert keine Reihenfolge
- Zu fragmentierende Pakete mit DF-Flag werden verworfen, da sie nicht in das nächste Netzwerk geleitet werden können
- Stationen, die nicht alle Fragmente eines IP-Datagrams innerhalb einer bestimmten Zeitspanne (i.d.R. 30-40s) zum Reassemblieren erhalten, verwerfen alle empfangenen Pakete
Fragment Offset
- Gibt die Länge relativ in Byte zum Beginn des Datenbereichs im ursprünglichen Datagram an
- Ermöglicht dem Empfänger mehrere Fragmente in der richtigen Reihenfolge zusammenzusetzen
- Bei vollständigem Datagram (keine Fragmentierung) und beim ersten Fragment hat der Fragment Offset immer den Wert 0
Fragment Offset (Grafik)
Beispiel
- Netz1: MTU 1200Byte
- Netz2: MTU 532 Byte
- Netz3: MTU 276 Byte
- Paket mit Länge 1044Byte (= 20Byte Header + 1024Byte Daten) und nicht gesetztem DF-Bit soll über die 3 Netze übertragen werden
- Die Reihenfolge der Ankunft beim Zielhost spielt keine Rolle.
- Wenn nach Ablauf eines Timers nicht alle Teilpakete angekommen sind, wird das Paket verworfen.
Beispiel - Paketlänge 1044 Byte
Ausblick: IPv6
- Die Internet Engineering Task Force (IETF) hat eine neue IP-Version namens IPv6 entwickelt
- IPv6 hat eine Länge von 128 Bit = 2128
- über 667 Billiarden IP-Adressen pro mm² Erde
- 510 100 000 km2 Erdoberfläche
- Verbesserte Sicherheit
- Verbesserte Header, um das Routing zu vereinfachen und zu beschleunigen
- Der Übergang von IPv4 zu IPv6 läuft fließend
Source Routing
siehe IPv4:Source Routing
Anwendungen
Fehlerbehebung
Sicherheit
Dokumentation
RFC
- RFC 791IP-Protokoll
- RFC 815IP over X.25 Networks
- RFC 894IP over Ethernet-Networks
- RFC 948IP over 802.3 Networks
- RFC 1051IP over Arcnet-Networks
- RFC 1055IP over Serial Lines („SLIP“)
- RFC 1088IP over Netbios Networks
- RFC 1577IP over ATM Networks („Classical IP“)
Man-Pages
Info-Pages
Siehe auch
Links
Projekt-Homepage
Weblinks
Einzelnachweise
Testfragen
Testfrage 1
Antwort1
Testfrage 2
Antwort2
Testfrage 3
Antwort3
Testfrage 4
Antwort4
Testfrage 5
Antwort5