Internet Protocol Version 4: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „Man-Pages“ durch „Man-Page“
 
(73 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''IPv4''' ('''Internet Protocol Version 4''')
'''I'''nternet '''P'''rotocol Version '''4''' (IPv4)


== Beschreibung ==
== Beschreibung ==
* vor der Entwicklung von [[IPv6]] auch einfach '''IP''', ist die vierte Version des [[Internet Protocol]]s (IP).
[[File:ipEinordnungDoD.png|mini|450px|Einordnung ins DoD-Modell]]
* Es war die erste Version des Internet Protocols, die weltweit eingesetzt wurde, und bildet eine wichtige technische Grundlage des [[Internet]]s. Es wurde in RFC 791 im Jahr 1981 definiert.


== Einordnung ins DoD-Modell ==
Die '''Version 4 des Internetprotokolls''' wurde im September 1981 von der Organisation ARPA veröffentlicht
* Es wurde in RFC 791 im Jahr 1981 definiert
* Es hat danach lediglich geringfügige Modifikationen gegeben
* Im OSI-Modell wird es in Schicht 3 (Network-Layer = Vermittlungsschicht), im DoD-Modell (TCP/IP-Modell) in Schicht 2 (Internet) verarbeitet
* Vor der Entwicklung von [[IPv6]] auch einfach '''IP''', ist die vierte Version des [[Internet Protocol]]s (IP)
* Die erste Version des Internet Protocols, die weltweit eingesetzt wurde
* bildet eine wichtige technische Grundlage des [[Internet]]s


=== Bezeichnung der Daten im Protokoll-Stapel ===
 
[[File:DatenImProtokollStapel.png|mini|450px|Bezeichnung der Daten im Protokoll-Stapel]]


== Eigenschaften ==
== Eigenschaften ==
Zeile 25: Zeile 31:


== Aufgaben ==
== Aufgaben ==
* Gewährleistung des Transports von Daten über heterogene Netzwerktopologien
;Transport von Daten über heterogene Netzwerktopologien
* Abstraktion von Besonderheiten des darunter liegenden Layers 2(z.B. Ethernet, Token Ring oder ATM)
* Abstraktion von Besonderheiten des darunter liegenden Layers 2(z. B. Ethernet, Token Ring oder ATM)
* Definition eines Adressschemas
;Definition eines Adressschemas
* Definition von Datagrammen
* Definition von Datagrammen
* Datagram-Service  
;Datagram-Service  
* Unzuverlässig
* Unzuverlässig
* Keine Auslieferungs-Garantie
** Keine Auslieferungs-Garantie
* Keine Fehlerfreiheits-Garantie
** Keine Fehlerfreiheits-Garantie
* Routing zwischen Netzen
;Routing zwischen Netzen
* Fragmentierung / Reassemblierung von Datagrammen
;Fragmentierung / Reassemblierung von Datagrammen
* Übermittlung der Daten vom Transport- zu Networklayer
;Übermittlung der Daten vom Transport- zu Networklayer
* Definition/ Adressierung höherer Protokolle
* Definition/ Adressierung höherer Protokolle


== IP-Header ==
== Entwicklung ==
[[Datei:Zahl der Internet Hosts.png|mini|Zahl der Rechner im Internet (1981 bis 2003)]]
IPv4 wurde als Teil der [[Internetprotokolle]] für das [[Arpanet]] entwickelt und kam darin ab 1983 zum Einsatz.
* Damals waren nur einige hundert Rechner an das Netz angeschlossen.
* Das Arpanet entwickelte sich zum [[Internet]] und überschritt 1989 die Grenze von 100.000 Rechnern.
* Durch seine Verbreitung im Internet hat IPv4 schließlich auch [[Local Area Network|LAN]]-Protokolle wie [[DECnet]] oder [[Internetwork Packet Exchange|IPX]] verdrängt. [[NetWare]], [[AppleTalk]] und [[NetBIOS]] wurden als neue Versionen hervorgebracht, die auf IP aufsetzen.


=== IP-Header englisch ===
Am Anfang der 1990er Jahre war erkennbar, dass IP-Adressen bald knapp würden, da die damals übliche [[Netzklasse]]n-basierte Adressvergabe erheblichen Verschnitt verursachte.
* Als kurzfristige Lösung wurde 1993 [[Classless Inter-Domain Routing]] eingeführt, das eine deutlich effizientere Adressvergabe ermöglichte.
* Eine weitere kurzfristige Lösung war das 1994 eingeführte [[Network Address Translation]] (NAT), das die Wiederverwendung von IP-Adressen ermöglichte.<ref>{{RFC-Internet |RFC=1631 |Autor=K.
* Egevang, P.
* Francis |Titel=The IP Network Address Translator (NAT) |Datum=1994-05 }}</ref> In der Variante [[Network Address Port Translation]] (NAPT) ermöglichte es die gleichzeitige Mehrfachverwendung von IP-Adressen.
* Mit diesen Maßnahmen konnte der Adressbedarf soweit gedämpft werden, dass der Adressraum trotz immensen Wachstums des Internet erst in den 2010er Jahren knapp wurde (siehe Abschnitt [[#Adressknappheit|Adressknappheit]]).


=== Version ==
Als langfristige Lösung der Adressknappheit sollte ein neues Protokoll mit größerem Adressraum entwickelt werden.
* Die Version des IP-Protokolls
* Dies führte zuerst zur Entwicklung des experimentellen Protokolls [[TP/IX]], das die Versionsnummer 7 trug und 1993 veröffentlicht wurde.<ref>{{RFC-Internet |RFC=1475 |Autor=R.
* Wir behandeln hier Version 4
* Ullmann |Titel=TP/IX: The Next Internet |Datum=1993-06 }}</ref> TP/IX sollte dabei einen 64-Bit-Adressbereich unterstützen, wurde dann aber zugunsten von [[IPv6]] verworfen.
* Die erste Fassung von IPv6 wurde 1995 veröffentlicht und verwendete einen 128-Bit-Adressraum.<ref>{{RFC-Internet |RFC=1883 |Autor=S.
* Deering, R.
* Hinden |Titel=Internet Protocol, Version 6 (IPv6) |Datum=1995-12 }}</ref> Die Versionsnummer 5 wurde nicht für einen IPv4-Nachfolger verwendet, da sie bereits 1990 durch das experimentelle ''Internet Stream Protocol Version 2'' (''ST2'') belegt war, einem für [[Datenstrom|Streaming]] optimierten Protokoll.<ref>{{RFC-Internet |RFC=1190 |Autor=C.
* Topolcic (Hrsg.) |Titel=Experimental Internet Stream Protocol, Version 2 (ST-II) |Datum=1990-10 }}</ref>


=== Länge ===
<!--Überarbeitungsrest:
* Dieses Feld gibt die Länge des IP-Protokoll-Kopfes in 32-Bit-Worten an
Einige Eigenschaften, wie Fragmentierung, werden nicht mehr benötigt, da sie für die heutigen schnellen Netze zu aufwändig sind. ''Path Maximum Transmission Unit Discovery'' löst dieses Problem.-->
* Die minimale Länge beträgt 5 Worte, was auch der Normalfall ist
* Vergrößerung durch Angabe von Optionen


=== Servicetypen ===
== Header ==
Mit den Precedence-Bit (0-2) kann eine Priorität von 0 - 7 angegeben werden
siehe '''[[IPv4/Header]]'''
*  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


=== Paketlänge und Identifikation  ===
== Fragmentierung ==
Paket-Länge
siehe '''[[IPv4/Fragmentierung]]'''
* Die Länge des Paketes in Byte inklusive Protokoll-Kopf
16 Bit – Feld (Maximale Paketgröße = 65.535 Byte)


Identifikation
== Ausblick: IPv6 ==
* Eine eindeutige Identifikation (Zähler)
Die Internet Engineering Task Force (IETF) hat eine neue IP-Version namens IPv6 entwickelt
* Diese Kennungen sollten sich nur nach längeren Zeitabständen wiederholen, um nicht mit verspäteten PDU in Konflikt zu kommen
* IPv6 hat eine Länge von 128 Bit = 2<sup>128</sup>
* ü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


=== Paketübertragung im Internet ===
siehe '''[[IPv6]]'''


=== TTL ===
== Adressformat ==
Time To Live
siehe '''[[IPv4/Adressen]]'''
* Dieses Feld gibt an, wie lange das Paket maximal unterwegs sein darf


Das Problem
== Routing ==
* Beim Routen durch vermaschte Netze, können Datagramme/ Fragmente ziellos und unendlich lange kreisen
IPv4 unterscheidet nicht zwischen Endgeräten (Hosts) und Vermittlungsgeräten (Router).
* Das verbraucht Ressourcen und kann Netzwerke bis zum Stillstand belasten
* Jeder Computer und jedes Gerät kann gleichzeitig Endpunkt und Router sein.
* Ein [[Router]] verbindet dabei verschiedene Netzwerke.
* Die Gesamtheit aller über Router verbundenen Netzwerke bildet das Internet (siehe auch [[Internetworking]]).


Die Lösung
IPv4 ist für [[Local Area Network|LANs]] und [[Wide Area Network|WANs]] gleichermaßen geeignet.
* Jeder Knoten (Router) verringert diesen Wert um mindestens 1
* Ein Paket kann verschiedene Netzwerke vom Sender zum Empfänger durchlaufen, die Netzwerke sind durch Router verbunden.
* Hält ein Router ein Paket länger als eine Sekunde, verringert er die TTL um 1 je weitere Sekunde
* Anhand von [[Routingtabelle]]n, die jeder Router individuell pflegt, wird der Netzwerkteil einem Zielnetzwerk zugeordnet.
* Bei Erreichen des Wertes „0“, wird Paket verworfen
* Die Einträge in die Routingtabelle können dabei statisch oder über Routingprotokolle dynamisch erfolgen.
* Die Routingprotokolle dürfen dabei sogar auf IP aufsetzen.


=== Sender- und Empfänger-Adressen ===
Bei Überlastung eines Netzwerks oder einem anderen Fehler darf ein Router Pakete auch verwerfen.
* 32-Bit IP-Adresse (IPv4), 128-Bit IP-Adresse (IPv6)
* Pakete desselben Senders können bei Ausfall eines Netzwerks auch alternativ „geroutet“ werden.
* unabhängig von der zugrunde liegenden Netztechnologie
* Jedes Paket wird dabei einzeln „geroutet“, was zu einer erhöhten Ausfallsicherheit führt.
* 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 ===
Beim [[Routing]] über IP können daher
* DF (Don‘t Fragment)
* einzelne Pakete verlorengehen,
* 0 = May Fragment
* Pakete doppelt beim Empfänger ankommen,
* 1 = Don‘t Fragment
* Pakete verschiedene Wege nehmen,
* MF (More Fragment)
* Pakete [[IP-Fragmentierung|fragmentiert]] beim Empfänger ankommen.
* 0 = Last Fragment
* 1 = More Fragment
* Fragmentabstand
* Länge relativ zum Beginn des ursprünglichen Datagram


=== Protokoll ===
Wird [[Transmission Control Protocol|TCP]] auf IP aufgesetzt (d.&nbsp;h. die Daten jedes IP-Pakets enthalten ein TCP-Paket, aufgeteilt in [[TCP-Header]] und Daten), so wird neben dem Aufheben der Längenbeschränkung auch der [[Paketverlust]] durch Wiederholung korrigiert.
* Nummer des Transportprotokolls
* Doppelte Pakete werden erkannt und verworfen.
* Legt fest, welches Protokoll für die Weiterverarbeitung auf 03 zuständig ist (demultiplexing)
* Die Kombination TCP mit IP stellt dabei eine zuverlässige bidirektionale Verbindung eines Datenstroms dar.
* gemäß RFC 1700 (Assigned Numbers)
* /etc/protocol
* %SYSTEMROOT%\system32\drivers\etc\protocol
* Ausgewählte IP-Protokollnummern


=== Weitere Felder ===
=== Source Routing ===
* Prüfsumme
siehe '''[[IPv4/Source Routing]]'''
* 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 ==
== ICMP ==
IP ist eng verknüpft mit dem Internet Control Message Protocol (ICMP), das zur Fehlersuche und Steuerung eingesetzt wird.
* ICMP setzt auf IP auf, das heißt ein ICMP-Paket wird im Datenteil eines IP-Pakets abgelegt.
* Eine IP-Implementierung enthält stets auch eine ICMP-Implementierung.
* Wichtig ist zum Beispiel die ICMP-Source-Quench-Mitteilung, die den Sender über das Verwerfen von Paketen wegen Überlastung eines Routers informiert.
* Da jedes IP-Paket die Quell-IP-Adresse enthält, können Informationen an den Sender zurückübermittelt werden.
* Dieser kann nach einem „Source-Quench“ die Paketsendefrequenz verringern und so die Notwendigkeit eines weiteren Verwerfens minimieren oder vermeiden.
 
ICMP kann zusammen mit dem ''Don’t-Fragment''-Bit des IP-Pakets auch eingesetzt werden, um die maximale Paketgröße [[Maximum Transmission Unit|MTU]] eines Übertragungsweges zu ermitteln (sogenannte PMTU ''Path Maximum Transmission Unit'').
* Dies ist die MTU desjenigen Netzwerkes mit der kleinsten MTU aller passierten Netzwerke.
* Dadurch kann auf Fragmentierung verzichtet werden, wenn der Sender nur Pakete mit der maximalen Größe der PMTU erzeugt.
 
siehe [[Internet Control Message Protocol]]
 
== IPv4 auf Ethernet ==
 
IPv4 kann auf vielen verschiedenen Medien aufsetzen, zum Beispiel auf seriellen Schnittstellen ([[Point-to-Point Protocol|PPP]] oder [[Serial Line Internet Protocol|SLIP]]), Satellitenverbindungen usw.
* Im LAN-Bereich wird heute fast immer [[Ethernet]] eingesetzt.
* Ethernet verwaltet eigene 48-Bit-Adressen.
* Wenn IP über Ethernet gesendet wird, wird ein 14 (oder bei [[VLAN]] 18) Byte großer Ethernet-Header vor dem IP-Header gesendet.
* Nach den Daten folgt eine 32-Bit-CRC-Prüfsumme.
* Neben der maximalen Paketlänge von 1522 (bzw.&nbsp;1518) Bytes kann Ethernet keine kleineren Pakete als 64 Bytes übertragen, so dass zu kurze IP-Pakete (Datenlänge kleiner als 46 Bytes) mit Nullbytes erweitert werden (sogenanntes ''Padding'').
* Die Länge im IP-Header gibt dann Auskunft über die tatsächliche Paketgröße.
 
Im Ethernet hat jede Netzwerkkarte ihre eigene, herstellerbezogene 48-Bit-Adresse, zusätzlich gibt es eine Ethernet-Broadcastadresse.
* Ein Sender muss die [[Ethernetadresse]] der Zielnetzwerkkarte kennen, bevor ein IP-Paket gesendet werden kann.
* Dazu wird [[Address Resolution Protocol|ARP]] (''Address Resolution Protocol'') verwendet.
* Jeder Rechner verwaltet einen ARP-[[Cache]], in dem er ihm bekannte Zuordnungen von Ethernet-Kartenadressen speichert.
* Unbekannte Adressen erfährt er über ARP mittels einer Anfrage (ARP-Request) über einen Ethernet-Broadcast (Nachricht an alle Empfänger), die der zugehörige Empfänger beantwortet (ARP-Reply).
 
== Höhere Protokolle ==
IPv4 ist ein geroutetes Protokoll (Schicht 2 im [[TCP/IP-Referenzmodell]] – Schicht 3 im [[OSI-Modell|ISO/OSI-Modell]]).
* Auf IPv4 werden weitere Protokolle aufgesetzt, das heißt in den Datenteil des IP-Pakets werden die Header, Daten und eventuelle Trailer der oberen Protokolle eingefügt ([[Protokollstapel]]).
* Eine Liste der registrierten Protokolle findet sich in [[unixoid]]en Betriebssystemen in der Datei „/etc/protocols“.


=== Warum Fragmentierung? ===
Neben dem erwähnten ICMP wird TCP verwendet, das [[TCP/IP]] zusammen mit IP den Namen gegeben hat.
* Anpassung der Datagramgrösse an die MTU der lokalen Netz-Technologie
* TCP ist ein verbindungsorientiertes Protokoll, das einen byteorientierten, bidirektionalen, zuverlässigen Datenstrom zur Verfügung stellt.  
* Definition des Protokolls / Beschränkung durch Norm
* Es wird im WAN-Bereich praktisch für alle Arten von Daten- und Informationsübertragungen eingesetzt.
* Paketlänge in verschiedenen Netzen
* Token Ring32768 bit
* Ethernet12144 bit
* X.25 (Maximum)8192 bit
* X.25 (Standard)1024 bit


=== Fragmentierung ===
[[User Datagram Protocol|UDP]], ein paketorientiertes Protokoll, setzt ebenfalls auf IP auf.
* Felder: DF, MF, Identifikation, Fragmentabstand
* Es ist ein einfaches Protokoll, das die Paketeigenschaften von IP im Wesentlichen beibehält (verbindungslos, unzuverlässig, erlaubt doppelte Pakete etc.).
* kann nur bei DF=0 durchgeführt werden
* TCP und UDP fügen IP eine Prüfsumme über die Daten (die Prüfsumme im IP-Header prüft nur die Headerdaten) und als Quell- und Zielport jeweils eine 16-Bit-Zahl hinzu.
* wird von den Routern eigenständig vorgenommen
* Diese Ports bilden zusammen mit der jeweiligen Quell- und Zieladresse im IP-Paket sogenannte ''Endpunkte''.
* kann bei Bedarf wiederholt angewendet werden
* Prozesse kommunizieren über diese Endpunkte.
* Zielhost muss die Fragmente zusammensetzen
* TCP baut eine Verbindung nicht zwischen IP-Adressen, sondern zwischen zwei Endpunkten auf.


=== Fragmentierung ===
Die weiteren Protokolle setzen alle entweder auf TCP oder auf UDP auf.
* Alle Fragmente haben dieselbe Kennung
* Ein wichtiges Protokoll ist das ''Domain Name System'' [[Domain Name System|DNS]], das eine Umsetzung von Rechnernamen zu IP-Adressen erlaubt.
* diese definiert keine Reihenfolge
* Es überträgt Informationen normalerweise über UDP, der Abgleich zwischen zwei DNS-Servern kann aber auch TCP verwenden.
* 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 ===
Die Ports teilen sich auf in:
* Gibt die Länge relativ in Byte zum Beginn des Datenbereichs im ursprünglichen Datagram an
* privilegierte Ports (1–1023); diese dürfen nur vom Benutzer [[Root Account|Root]] verwendet werden.
* Ermöglicht dem Empfänger mehrere Fragmente in der richtigen Reihenfolge zusammenzusetzen
* registrierte Ports (1024–49.151); die Registrierung unterliegt der [[Internet Assigned Numbers Authority|IANA]].
* Bei vollständigem Datagram (keine Fragmentierung) und beim ersten Fragment hat der Fragment Offset immer den Wert 0
* Eine Liste findet sich auf Unix-Systemen in der Datei „/etc/services“.
* nicht registrierte Ports (49.152–65.535)


=== Fragment Offset (Grafik) ===
== Adressknappheit ==
[[Datei:Ipv4-exhaust.svg|mini|Anzahl verfügbarer IPv4-Adressblöcke zwischen 1995 und 2015]]
Aufgrund des unvorhergesehenen Wachstums des Internets herrscht heute Adressknappheit.
* Im Januar 2011 teilte die [[Internet Assigned Numbers Authority|IANA]] der asiatisch-pazifischen [[Regional Internet Registry]] [[Asia-Pacific Network Information Centre|APNIC]] die letzten zwei /8-Adressblöcke nach der regulären Vergabepraxis zu.<ref> {{Webarchiv|text=''Two /8s allocated to APNIC from IANA''. |url=http://www.apnic.net/publications/news/2011/delegation |webciteID=6113LSCFX  }} APNIC, 1.
* Febr. 2011</ref> Gemäß einer Vereinbarung aus dem Jahr 2009 wurde am 3.&nbsp;Februar 2011 schließlich der verbliebene Adressraum gleichmäßig auf die regionalen Adressvergabestellen verteilt: jeweils ein /8-Adressblock pro Vergabestelle.<ref>[https://www.welt.de/wirtschaft/webwelt/article12434989/Dem-Internet-drohen-die-Adressen-auszugehen.html WELT ONLINE: Alle Internetadressen weltweit sind aufgebraucht (3.
* Februar 2011)]</ref> Seitdem hat die IANA auf der globalen Ebene keine weiteren /8-Adressblöcke mehr zu vergeben.


=== Beispiel ===
Auf der regionalen Ebene verschärften die Regional Internet Registrys ihre Vergabepraktiken, um aus dem letzten /8-Adressblock möglichst lange schöpfen zu können.
* Netz1: MTU 1200Byte
* Bei der APNIC traten diese am 15.&nbsp;April 2011 in Kraft, da die zuvor erhaltenen beiden /8-Adressblöcke bereits nach drei Monaten aufgebraucht waren.
* 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 ===
;Am 25. November 2019 hat RIPE NCC ihren /8-Adressblock endgültig aufgebraucht.
* Seitdem werden nur noch /24-Kleinstblöcke per Warteliste aus Rückläufern vergeben.


== Ausblick: IPv6 ==
== Adressfragmentierung ==
* Die Internet Engineering Task Force (IETF) hat eine neue IP-Version namens IPv6 entwickelt
Die historische Entwicklung des Internets wirft ein weiteres Problem auf: Durch die mit der Zeit mehrmals geänderte Vergabepraxis von Adressen des IPv4-Adressraums ist dieser inzwischen stark fragmentiert, d. h., häufig gehören mehrere nicht zusammenhängende Adressbereiche zur gleichen organisatorischen Instanz.
* IPv6 hat eine Länge von 128 Bit = 2128
* Dies führt in Verbindung mit der heutigen [[Routing]]strategie (''[[Classless Inter-Domain Routing]]'') zu langen [[Routingtabelle]]n, auf welche [[Random-Access Memory|Speicher]] und [[Prozessor]]en der [[Router]] im Kernbereich des Internets ausgelegt werden müssen.
* über 667 Billiarden IP-Adressen pro mm² Erde
* Zudem erfordert IPv4 von Routern, Prüfsummen jedes weitergeleiteten Pakets neu zu berechnen, was eine weitere Prozessorbelastung darstellt.
* 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 ==
<noinclude>
siehe '''[[IPv4:Source Routing]]'''


== Anwendungen ==
== Anhang ==
=== Fehlerbehebung ===
=== Siehe auch ===
== Sicherheit ==
{{Special:PrefixIndex/IPv4}}
== Dokumentation ==


=== RFC ===
==== Dokumentation ====
# RFC 791IP-Protokoll
===== RFC =====
# RFC 815IP over X.25 Networks
# [https://tools.ietf.org/html/rfc791 RFC 791] – Internet Protocol
# RFC 894IP over Ethernet-Networks
# [https://tools.ietf.org/html/rfc815 RFC 815] – IP over X.25 Networks
# RFC 948IP over 802.3 Networks
# [https://tools.ietf.org/html/rfc894 RFC 894] – IP over Ethernet-Networks
# RFC 1051IP over Arcnet-Networks
# [https://tools.ietf.org/html/rfc948 RFC 948] – IP over 802.3 Networks
# RFC 1055IP over Serial Lines („SLIP“)
# [https://tools.ietf.org/html/rfc1051 RFC 1051] – IP over Arcnet-Networks
# RFC 1088IP over Netbios Networks
# [https://tools.ietf.org/html/rfc1055 RFC 1055] – IP over Serial Lines („SLIP“)
# RFC 1577IP over ATM Networks („Classical IP“)
# [https://tools.ietf.org/html/rfc1088 RFC 1088] – IP over Netbios Networks
# [https://tools.ietf.org/html/rfc1577 RFC 1577] – IP over ATM Networks („Classical IP“)


=== Man-Pages ===
===== Man-Page =====
=== Info-Pages ===
===== Info-Pages =====
== Siehe auch ==
==== Links ====
== Links ==
===== Projekt =====
=== Projekt-Homepage ===
===== Weblinks =====
=== Weblinks ===
# https://de.wikipedia.org/wiki/IPv4
=== Einzelnachweise ===
# [http://www.redbooks.ibm.com/redbooks/pdfs/gg243376.pdf L. Parziale et al.: TCP/IP Tutorial and Technical Overview] (PDF; 8,1&nbsp;MB) in [http://www.redbooks.ibm.com/abstracts/gg243376.html IBM Redbooks], Armonk (NY, USA) 2006
<references />
# [http://www.netzmafia.de/skripten/netze/netz8.html#8.3 Subnetz-Rechner] im Kapitel TCP/IP – Grundlagen Computernetze
== Testfragen ==
# [https://www.iana.org/assignments/version-numbers/version-numbers.xhtml IANA IP Version Numbers] – IANA assignment of version-numbers
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>


[[Kategorie:Internet Protocol]]
[[Kategorie:IP-Adressierung]]
[[Kategorie:Entwurf]]
[[Kategorie:IPv4]]
[[Kategorie:IPv4]]
[[Kategorie:IPv4/Adresse]]
</noinclude>

Aktuelle Version vom 6. November 2024, 12:30 Uhr

Internet Protocol Version 4 (IPv4)

Beschreibung

Einordnung ins DoD-Modell

Die Version 4 des Internetprotokolls wurde im September 1981 von der Organisation ARPA veröffentlicht

  • Es wurde in RFC 791 im Jahr 1981 definiert
  • Es hat danach lediglich geringfügige Modifikationen gegeben
  • Im OSI-Modell wird es in Schicht 3 (Network-Layer = Vermittlungsschicht), im DoD-Modell (TCP/IP-Modell) in Schicht 2 (Internet) verarbeitet
  • Vor der Entwicklung von IPv6 auch einfach IP, ist die vierte Version des Internet Protocols (IP)
  • Die erste Version des Internet Protocols, die weltweit eingesetzt wurde
  • bildet eine wichtige technische Grundlage des Internets


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

Transport 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

Entwicklung

Zahl der Rechner im Internet (1981 bis 2003)

IPv4 wurde als Teil der Internetprotokolle für das Arpanet entwickelt und kam darin ab 1983 zum Einsatz.

  • Damals waren nur einige hundert Rechner an das Netz angeschlossen.
  • Das Arpanet entwickelte sich zum Internet und überschritt 1989 die Grenze von 100.000 Rechnern.
  • Durch seine Verbreitung im Internet hat IPv4 schließlich auch LAN-Protokolle wie DECnet oder IPX verdrängt. NetWare, AppleTalk und NetBIOS wurden als neue Versionen hervorgebracht, die auf IP aufsetzen.

Am Anfang der 1990er Jahre war erkennbar, dass IP-Adressen bald knapp würden, da die damals übliche Netzklassen-basierte Adressvergabe erheblichen Verschnitt verursachte.

  • Als kurzfristige Lösung wurde 1993 Classless Inter-Domain Routing eingeführt, das eine deutlich effizientere Adressvergabe ermöglichte.
  • Eine weitere kurzfristige Lösung war das 1994 eingeführte Network Address Translation (NAT), das die Wiederverwendung von IP-Adressen ermöglichte.[1] In der Variante Network Address Port Translation (NAPT) ermöglichte es die gleichzeitige Mehrfachverwendung von IP-Adressen.
  • Mit diesen Maßnahmen konnte der Adressbedarf soweit gedämpft werden, dass der Adressraum trotz immensen Wachstums des Internet erst in den 2010er Jahren knapp wurde (siehe Abschnitt Adressknappheit).

Als langfristige Lösung der Adressknappheit sollte ein neues Protokoll mit größerem Adressraum entwickelt werden.

  • Dies führte zuerst zur Entwicklung des experimentellen Protokolls TP/IX, das die Versionsnummer 7 trug und 1993 veröffentlicht wurde.[2] TP/IX sollte dabei einen 64-Bit-Adressbereich unterstützen, wurde dann aber zugunsten von IPv6 verworfen.
  • Die erste Fassung von IPv6 wurde 1995 veröffentlicht und verwendete einen 128-Bit-Adressraum.[3] Die Versionsnummer 5 wurde nicht für einen IPv4-Nachfolger verwendet, da sie bereits 1990 durch das experimentelle Internet Stream Protocol Version 2 (ST2) belegt war, einem für Streaming optimierten Protokoll.[4]


Header

siehe IPv4/Header

Fragmentierung

siehe IPv4/Fragmentierung

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

siehe IPv6

Adressformat

siehe IPv4/Adressen

Routing

IPv4 unterscheidet nicht zwischen Endgeräten (Hosts) und Vermittlungsgeräten (Router).

  • Jeder Computer und jedes Gerät kann gleichzeitig Endpunkt und Router sein.
  • Ein Router verbindet dabei verschiedene Netzwerke.
  • Die Gesamtheit aller über Router verbundenen Netzwerke bildet das Internet (siehe auch Internetworking).

IPv4 ist für LANs und WANs gleichermaßen geeignet.

  • Ein Paket kann verschiedene Netzwerke vom Sender zum Empfänger durchlaufen, die Netzwerke sind durch Router verbunden.
  • Anhand von Routingtabellen, die jeder Router individuell pflegt, wird der Netzwerkteil einem Zielnetzwerk zugeordnet.
  • Die Einträge in die Routingtabelle können dabei statisch oder über Routingprotokolle dynamisch erfolgen.
  • Die Routingprotokolle dürfen dabei sogar auf IP aufsetzen.

Bei Überlastung eines Netzwerks oder einem anderen Fehler darf ein Router Pakete auch verwerfen.

  • Pakete desselben Senders können bei Ausfall eines Netzwerks auch alternativ „geroutet“ werden.
  • Jedes Paket wird dabei einzeln „geroutet“, was zu einer erhöhten Ausfallsicherheit führt.

Beim Routing über IP können daher

  • einzelne Pakete verlorengehen,
  • Pakete doppelt beim Empfänger ankommen,
  • Pakete verschiedene Wege nehmen,
  • Pakete fragmentiert beim Empfänger ankommen.

Wird TCP auf IP aufgesetzt (d. h. die Daten jedes IP-Pakets enthalten ein TCP-Paket, aufgeteilt in TCP-Header und Daten), so wird neben dem Aufheben der Längenbeschränkung auch der Paketverlust durch Wiederholung korrigiert.

  • Doppelte Pakete werden erkannt und verworfen.
  • Die Kombination TCP mit IP stellt dabei eine zuverlässige bidirektionale Verbindung eines Datenstroms dar.

Source Routing

siehe IPv4/Source Routing

ICMP

IP ist eng verknüpft mit dem Internet Control Message Protocol (ICMP), das zur Fehlersuche und Steuerung eingesetzt wird.

  • ICMP setzt auf IP auf, das heißt ein ICMP-Paket wird im Datenteil eines IP-Pakets abgelegt.
  • Eine IP-Implementierung enthält stets auch eine ICMP-Implementierung.
  • Wichtig ist zum Beispiel die ICMP-Source-Quench-Mitteilung, die den Sender über das Verwerfen von Paketen wegen Überlastung eines Routers informiert.
  • Da jedes IP-Paket die Quell-IP-Adresse enthält, können Informationen an den Sender zurückübermittelt werden.
  • Dieser kann nach einem „Source-Quench“ die Paketsendefrequenz verringern und so die Notwendigkeit eines weiteren Verwerfens minimieren oder vermeiden.

ICMP kann zusammen mit dem Don’t-Fragment-Bit des IP-Pakets auch eingesetzt werden, um die maximale Paketgröße MTU eines Übertragungsweges zu ermitteln (sogenannte PMTU Path Maximum Transmission Unit).

  • Dies ist die MTU desjenigen Netzwerkes mit der kleinsten MTU aller passierten Netzwerke.
  • Dadurch kann auf Fragmentierung verzichtet werden, wenn der Sender nur Pakete mit der maximalen Größe der PMTU erzeugt.

siehe Internet Control Message Protocol

IPv4 auf Ethernet

IPv4 kann auf vielen verschiedenen Medien aufsetzen, zum Beispiel auf seriellen Schnittstellen (PPP oder SLIP), Satellitenverbindungen usw.

  • Im LAN-Bereich wird heute fast immer Ethernet eingesetzt.
  • Ethernet verwaltet eigene 48-Bit-Adressen.
  • Wenn IP über Ethernet gesendet wird, wird ein 14 (oder bei VLAN 18) Byte großer Ethernet-Header vor dem IP-Header gesendet.
  • Nach den Daten folgt eine 32-Bit-CRC-Prüfsumme.
  • Neben der maximalen Paketlänge von 1522 (bzw. 1518) Bytes kann Ethernet keine kleineren Pakete als 64 Bytes übertragen, so dass zu kurze IP-Pakete (Datenlänge kleiner als 46 Bytes) mit Nullbytes erweitert werden (sogenanntes Padding).
  • Die Länge im IP-Header gibt dann Auskunft über die tatsächliche Paketgröße.

Im Ethernet hat jede Netzwerkkarte ihre eigene, herstellerbezogene 48-Bit-Adresse, zusätzlich gibt es eine Ethernet-Broadcastadresse.

  • Ein Sender muss die Ethernetadresse der Zielnetzwerkkarte kennen, bevor ein IP-Paket gesendet werden kann.
  • Dazu wird ARP (Address Resolution Protocol) verwendet.
  • Jeder Rechner verwaltet einen ARP-Cache, in dem er ihm bekannte Zuordnungen von Ethernet-Kartenadressen speichert.
  • Unbekannte Adressen erfährt er über ARP mittels einer Anfrage (ARP-Request) über einen Ethernet-Broadcast (Nachricht an alle Empfänger), die der zugehörige Empfänger beantwortet (ARP-Reply).

Höhere Protokolle

IPv4 ist ein geroutetes Protokoll (Schicht 2 im TCP/IP-Referenzmodell – Schicht 3 im ISO/OSI-Modell).

  • Auf IPv4 werden weitere Protokolle aufgesetzt, das heißt in den Datenteil des IP-Pakets werden die Header, Daten und eventuelle Trailer der oberen Protokolle eingefügt (Protokollstapel).
  • Eine Liste der registrierten Protokolle findet sich in unixoiden Betriebssystemen in der Datei „/etc/protocols“.

Neben dem erwähnten ICMP wird TCP verwendet, das TCP/IP zusammen mit IP den Namen gegeben hat.

  • TCP ist ein verbindungsorientiertes Protokoll, das einen byteorientierten, bidirektionalen, zuverlässigen Datenstrom zur Verfügung stellt.
  • Es wird im WAN-Bereich praktisch für alle Arten von Daten- und Informationsübertragungen eingesetzt.

UDP, ein paketorientiertes Protokoll, setzt ebenfalls auf IP auf.

  • Es ist ein einfaches Protokoll, das die Paketeigenschaften von IP im Wesentlichen beibehält (verbindungslos, unzuverlässig, erlaubt doppelte Pakete etc.).
  • TCP und UDP fügen IP eine Prüfsumme über die Daten (die Prüfsumme im IP-Header prüft nur die Headerdaten) und als Quell- und Zielport jeweils eine 16-Bit-Zahl hinzu.
  • Diese Ports bilden zusammen mit der jeweiligen Quell- und Zieladresse im IP-Paket sogenannte Endpunkte.
  • Prozesse kommunizieren über diese Endpunkte.
  • TCP baut eine Verbindung nicht zwischen IP-Adressen, sondern zwischen zwei Endpunkten auf.

Die weiteren Protokolle setzen alle entweder auf TCP oder auf UDP auf.

  • Ein wichtiges Protokoll ist das Domain Name System DNS, das eine Umsetzung von Rechnernamen zu IP-Adressen erlaubt.
  • Es überträgt Informationen normalerweise über UDP, der Abgleich zwischen zwei DNS-Servern kann aber auch TCP verwenden.

Die Ports teilen sich auf in:

  • privilegierte Ports (1–1023); diese dürfen nur vom Benutzer Root verwendet werden.
  • registrierte Ports (1024–49.151); die Registrierung unterliegt der IANA.
  • Eine Liste findet sich auf Unix-Systemen in der Datei „/etc/services“.
  • nicht registrierte Ports (49.152–65.535)

Adressknappheit

Anzahl verfügbarer IPv4-Adressblöcke zwischen 1995 und 2015

Aufgrund des unvorhergesehenen Wachstums des Internets herrscht heute Adressknappheit.

  • Im Januar 2011 teilte die IANA der asiatisch-pazifischen Regional Internet Registry APNIC die letzten zwei /8-Adressblöcke nach der regulären Vergabepraxis zu.[5] Gemäß einer Vereinbarung aus dem Jahr 2009 wurde am 3. Februar 2011 schließlich der verbliebene Adressraum gleichmäßig auf die regionalen Adressvergabestellen verteilt: jeweils ein /8-Adressblock pro Vergabestelle.[6] Seitdem hat die IANA auf der globalen Ebene keine weiteren /8-Adressblöcke mehr zu vergeben.

Auf der regionalen Ebene verschärften die Regional Internet Registrys ihre Vergabepraktiken, um aus dem letzten /8-Adressblock möglichst lange schöpfen zu können.

  • Bei der APNIC traten diese am 15. April 2011 in Kraft, da die zuvor erhaltenen beiden /8-Adressblöcke bereits nach drei Monaten aufgebraucht waren.
Am 25. November 2019 hat RIPE NCC ihren /8-Adressblock endgültig aufgebraucht.
  • Seitdem werden nur noch /24-Kleinstblöcke per Warteliste aus Rückläufern vergeben.

Adressfragmentierung

Die historische Entwicklung des Internets wirft ein weiteres Problem auf: Durch die mit der Zeit mehrmals geänderte Vergabepraxis von Adressen des IPv4-Adressraums ist dieser inzwischen stark fragmentiert, d. h., häufig gehören mehrere nicht zusammenhängende Adressbereiche zur gleichen organisatorischen Instanz.


Anhang

Siehe auch

Dokumentation

RFC
  1. RFC 791 – Internet Protocol
  2. RFC 815 – IP over X.25 Networks
  3. RFC 894 – IP over Ethernet-Networks
  4. RFC 948 – IP over 802.3 Networks
  5. RFC 1051 – IP over Arcnet-Networks
  6. RFC 1055 – IP over Serial Lines („SLIP“)
  7. RFC 1088 – IP over Netbios Networks
  8. RFC 1577 – IP over ATM Networks („Classical IP“)
Man-Page
Info-Pages

Links

Projekt
Weblinks
  1. https://de.wikipedia.org/wiki/IPv4
  2. L. Parziale et al.: TCP/IP Tutorial and Technical Overview (PDF; 8,1 MB) in IBM Redbooks, Armonk (NY, USA) 2006
  3. Subnetz-Rechner im Kapitel TCP/IP – Grundlagen Computernetze
  4. IANA IP Version Numbers – IANA assignment of version-numbers