IPv4

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Ipv4)
Wechseln zu: Navigation, Suche
IPv4 im TCP/IP‑Protokollstapel:
Anwendung HTTP IMAP SMTP DNS
Transport TCP UDP
Internet IPv4
Netzzugang Ethernet Token
Bus
Token
Ring
FDDI

IPv4 (Internet Protocol Version 4), vor der Entwicklung von IPv6 einfach IP, ist die vierte Version des Internet Protocols (IP). Es war die erste Version des Internet Protocols, welche weltweit verbreitet und eingesetzt wurde, und bildet eine wichtige technische Grundlage des Internets. Es wurde in RFC 791 im Jahr 1981 definiert.

Adressformat[Bearbeiten]

Hauptartikel: IP-Adresse

IPv4 benutzt 32-Bit-Adressen, daher sind maximal 4.294.967.296 eindeutige Adressen möglich. IPv4-Adressen werden üblicherweise dezimal in vier Blöcken geschrieben, zum Beispiel 207.142.131.235. Je Block werden 8 Bit zusammengefasst; somit ergibt sich für jeden Block ein Wertebereich von 0 bis 255. Bei der Weiterentwicklung IPv6 werden 128-Bit-Adressen verwendet.

Eine IP-Adresse unterteilt sich in einen Netzwerkteil und einen Host-(Adressen-)teil. Rechner sind im selben IP-Netz, wenn der Netzwerkteil ihrer Adresse gleich ist – das ist eine Voraussetzung, dass diese Rechner direkt miteinander kommunizieren können, also z. B. über einen Hub, einen Switch oder mittels eines Crosslink-Kabels. Im selben Netz darf keine Host-Adresse doppelt vergeben sein.

Für die Kommunikation zwischen unterschiedlichen Netzen wird ein Router benötigt. Den Adressteil vergibt der zuständige Administrator für jedes teilnehmende Gerät unterschiedlich. Die Netzadresse vergibt der Besitzer oder Planer des Netzwerks. Im Internet ist das IANA (Internet Assigned Numbers Authority) für die Vergabe der Netzadressen zuständig.

Die genaue Aufteilung zwischen Netzwerkteil und Adressteil wird durch die Subnetzmaske bestimmt (zum Beispiel 255.255.255.0). In der CIDR-Notation wird dies als 192.168.0.23/24 geschrieben, wobei die „24“ bedeutet, dass die ersten 24 Bits der Subnetzmaske gleich 1 sind. Die Bits der Subnetzmaske, die (in binärer Schreibweise) „1“ sind, legen die Stellen der IP-Adresse fest, die zum Netzanteil gehören.

Beispiel:

IP-Adresse 192.168.0. 23 11000000.10101000.00000000. 00010111
Subnetzmaske 255.255.255. 0 11111111.11111111.11111111. 00000000
Netzanteil Hostanteil Netzanteil Hostanteil

Netzklassen[Bearbeiten]

IP-Netzklassen
Bit 31-28 27-24 23-16 15-8 7-0
Class A: Netze 0.0.0.0/8 bis 127.255.255.255
0 … 8-Bit-Netz 24-Bit-Host
Class B: Netze 128.0.0.0/16 bis 191.255.255.255
1 0 … 16-Bit-Netz 16-Bit-Host
Class C: Netze 192.0.0.0/24 bis 223.255.255.255
1 1 0 … 24-Bit-Netz 8-Bit-Host
Class D: Multicast-Gruppen 224.0.0.0/4 bis 239.255.255.255
1 1 1 0 28-Bit-Multicast-Gruppen-ID
Class E: Reserviert 240.0.0.0/4 bis 255.255.255.255
1 1 1 1 28 Bit reserviert für zukünftige Anwendungen
Hauptartikel: Netzklasse

Früher gab es fest vorgeschriebene Einteilungen für Netzwerkklassen mit einer festen Länge. Da diese Einteilung sehr unflexibel ist, wird seit 1993 vor allem im WAN hauptsächlich das Classless Inter-Domain Routing-Verfahren durchgeführt, welches bitvariable Netzmasken ermöglicht. Viele netzwerkfähige Betriebssysteme bestimmen die Standardnetzmaske anhand der alten Klassifikation, da im lokalen Netz überwiegend noch mit den Klassen gearbeitet wird.

Die maximale Anzahl der zu vergebenen Host-Adressen in einem Netz ist

2Anzahl Bits der Hostadresse − 2

Zwei Host-Adressen fallen immer weg – die erste Adresse (zum Beispiel 192.168.0.0) bezeichnet das Netz selber, die letzte Adresse (zum Beispiel 192.168.0.255) ist für den Broadcast (alle Teilnehmer werden angesprochen) reserviert.

Besondere Netzwerkadressen[Bearbeiten]

Einige Klassen von Netzwerkadressen sind für spezielle Zwecke reserviert. Siehe RFC 6890:

Adressblock (Prefix) Verwendung Referenz
0.0.0.0/8 Das vorliegende Netzwerk RFC 1122
10.0.0.0/8 1x Privates Netzwerk der Klasse A RFC 1918
100.64.0.0/10 Shared Transition Space RFC 6598
127.0.0.0/8 Loopback (Lokaler Computer) RFC 1122
169.254.0.0/16 Privates Netzwerk (link local), APIPA RFC 3927
172.16.0.0/12 16x Private Netzwerke der Klasse B RFC 1918
192.0.0.0/24 IETF Protocol Assignments RFC 6890
192.0.2.0/24 Test-Netzwerke RFC 6890
192.88.99.0/24 IPv6 zu IPv4 Relay RFC 3068
192.168.0.0/16 256x Private Netzwerke der Klasse C RFC 1918
198.18.0.0/15 Netzwerk-Benchmark-Tests RFC 2544
198.51.100.0/24 Test-Netzwerke RFC 6890
203.0.113.0/24 Test-Netzwerke RFC 6890
224.0.0.0/4 Multicasts (ehemals Klasse-D-Netzwerk) RFC 3171
240.0.0.0/4 Reserviert (ehemals Klasse-E-Netzwerk) RFC 1700
255.255.255.255/32 Limited Broadcast RFC 919, RFC 922

Lokale/Private Netzwerkadressen[Bearbeiten]

Hauptartikel: Private IP-Adresse
Adressbereich Klassenbeschreibung größter CIDR-Block Anzahl IP-Adressen
10.0.0.0–10.255.255.255 1 Klasse-A-Netz 10.0.0.0/8 224 = 16.777.216
172.16.0.0–172.31.255.255 16 Klasse-B-Netze 172.16.0.0/12 220 = 1.048.576
192.168.0.0–192.168.255.255 256 Klasse-C-Netze 192.168.0.0/16 216 = 65.536
169.254.0.0–169.254.255.255 link local, 1 Klasse-B-Netz 169.254.0.0/16 216 = 65.536

Beispiele[Bearbeiten]

Beispiel: (/24 (früher Klasse-C-Netz))

Subnetzmaske = 11111111.11111111.11111111.00000000 (255.255.255.0)
Der Besitzer legt den Netzteil auf 192.168.0 fest:
Netzteil = 11000000.10101000.00000000
Das führt zu folgender Adressverteilung:
Netzname = 11000000.10101000.00000000.00000000 (192.168.0.0)
Erste Adr. = 11000000.10101000.00000000.00000001 (192.168.0.1)
Letzte Adr. = 11000000.10101000.00000000.11111110 (192.168.0.254)
Broadcast = 11000000.10101000.00000000.11111111 (192.168.0.255)
Anzahl zu vergebende Adressen: 28 − 2 = 254

Beispiel: (Classless)

Subnetzmaske = 11111111.11111111.11111000.00000000 (255.255.248.0)
Der Besitzer legt den Netzteil auf 192.168.120 fest
(wobei im dritten Block nur die fünf höchstwertigen Bits zum Netzteil gehören):
Netzteil = 11000000.10101000.01111
Das führt zu folgender Adressverteilung:
Netzname = 11000000.10101000.01111000.00000000 (192.168.120.0)
Erste Adr. = 11000000.10101000.01111000.00000001 (192.168.120.1)
Letzte Adr. = 11000000.10101000.01111111.11111110 (192.168.127.254)
Broadcast = 11000000.10101000.01111111.11111111 (192.168.127.255)
Anzahl zu vergebende Adressen: 211 − 2 = 2046

Subnetting[Bearbeiten]

Hauptartikel: Subnetz

Paketlänge[Bearbeiten]

Ein IP-Paket besteht aus einem Header und den eigentlichen Daten. Der Datenteil enthält in der Regel ein weiteres Protokoll, meist TCP, UDP oder ICMP. Die maximale Länge eines IP-Pakets beträgt 65535 Bytes (216−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 MTU (Maximum Transmission Unit) 1500 Bytes, da ein Ethernet-Datenblock 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.

Routing[Bearbeiten]

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.

ICMP[Bearbeiten]

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-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.

IPv4 auf Ethernet[Bearbeiten]

IPv4 kann auf vielen verschiedenen Medien aufsetzen, zum Beispiel auf serielle 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).

Header-Format[Bearbeiten]

Der IPv4-Header ist normalerweise 20 Bytes lang. Bei Übertragung auf Basis von Ethernet folgt er dem Ethernet-Typfeld, das für IP-Pakete auf 080016 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.

0–3 4–7 8–11 12–15 16–18 19–23 24–27 28–31
Version IHL Type of Service Gesamtlänge
Identifikation Flags Fragment Offset
TTL Protokoll Header-Prüfsumme
Quell-IP-Adresse
Ziel-IP-Adresse
evtl. Optionen …

Eine spezielle Bedeutung kommt in modernen Implementierungen dem Feld Type of Service 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 Vermeidung von Überlastungen verwendet.

Fragmentierung[Bearbeiten]

Auf dem Weg vom Sender zum Empfänger kann es vorkommen, dass ein Datagramm ein Netz durchlaufen muss, welches nur kleine Datagramme unterstützt. Jedes Datagramm erhält vom Sender eine Kennung (Identification). Stellt ein Router auf dem Weg zum Ziel fest, dass das Datagramm für das nächste Teilnetz zu groß ist, so kann er es in zwei Fragmente aufteilen. Dazu sind folgende Schritte notwendig:

  • Aufteilen der Nutzdaten an einer 64-Bit-Grenze (das zweite Fragment enthält dann nicht unbedingt ein Vielfaches von 64 Bit Daten)
  • Kopieren der Headerdaten des Originaldatagramms in die neuen Header
  • Setzen des „more-fragments“-Flags beim ersten Fragment
  • Beim zweiten Fragment erhält das more-fragments Flag den Wert des Originaldatagramms, da das Originaldatagramm bereits ein Fragment gewesen sein kann.
  • Erneutes Setzen der Länge-Felder in den Headern
  • Beim zweiten Fragment enthält Fragment-Offset die Summe aus Fragment-Offset des Originaldatagramms und Anzahl (Nutzdaten-)Bytes im ersten Fragment.

Das Fragmentieren in n > 2 Fragmente funktioniert entsprechend.

Um ein Paket wieder zusammenzusetzen, kombiniert der Empfänger alle Fragmente, welche die gleiche Kennung (Identifikation), den gleichen Absender, Empfänger und das gleiche Protokoll haben. Dabei erkennt er das erste Fragment daran, dass Fragment-Offset den Wert 0 hat. Das jeweils nächste Fragment erkennt er ebenfalls am Fragment-Offset und das letzte Fragment daran, dass more-fragments den Wert 0 hat.

Höhere Protokolle[Bearbeiten]

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)

Vergangenheit und Zukunft[Bearbeiten]

Zahl der Rechner im Internet (1981 bis 2003)

IPv4 hat lange nahezu unverändert überlebt. Ab 1983 wurde die IP-Protokoll-Familie als einzige Protokollfamilie für das Arpanet übernommen, das dann später zum Internet wurde. Damals waren nur einige hundert Rechner an das Netz angeschlossen. 1989 wurde die Grenze von 100.000 Rechnern überschritten, und im selben Jahr der Backbone auf 1,5 MBit/s aufgerüstet. Am Anfang der 1990er-Jahre war erkennbar, dass die IP-Adressen bald knapp würden. Dies führte zuerst zur Entwicklung eines Entwurfes für einen Standard mit der Versionsnummer 7 (TP/IX), der dann aber zugunsten von IPv6 verworfen wurde. TP/IX sollte dabei einen 64-Bit-Adressbereich unterstützen. Die Versionsnummer 5 wurde 1995 für das Internet Stream Protocol Version 2 (ST2) benutzt, das nicht als IPv4-Nachfolger geplant war, sondern als gleichzeitig benutzbares, für Streaming optimiertes Protokoll. Mittlerweile ist das Projekt jedoch eingestellt. 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. IPv4 scheint auch in nächster Zukunft noch das allgemein verwendete Protokoll im Internet zu bleiben. Schließlich hat IP auch die konkurrierenden LAN-Protokolle wie DECnet verdrängt. NetWare, AppleTalk und NetBIOS wurden als neue Versionen hervorgebracht, die auf IP aufsetzen.

Am 3. Februar 2011 vergab die IANA die letzten IPv4-Adressen an die Regional Internet Registries[1][2]. Am 15. April 2011 teilte APNIC die letzten frei zu vergebenden Adressen für die Region Südostasien zu.[3] Ab diesem Zeitpunkt haben alle APNIC-Mitglieder nur noch Anspruch auf eine einzelne Zuteilung von IPv4-Adressraum der minimalen Zuteilungsgröße.[4]

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]

Literatur[Bearbeiten]

  • A. Badach, E. Hoffmann: Technik der IP-Netze. Hanser, München 2007, ISBN 978-3-446-41089-3.
  • D. Larisch: TCP/IP – Grundlagen und Praxis. Heise Medien, Hamburg 2011, ISBN 978-3936931693.
  • J.D. Wegner, R. Rockwell: IP Addressing & Subnetting. Syngress, Rockland (MA, USA) 2000, ISBN 3-8266-4077-2.

Einzelnachweise[Bearbeiten]

  1. WELT ONLINE: Alle Internetadressen weltweit sind aufgebraucht (3. Februar 2011)
  2. RIPE NCC: Final IPv4 Allocation (Engl.)
  3. APNIC: APNIC IPv4 Address Pool Reaches Final /8
  4. APNIC: Policies for IPv4 address space management in the Asia Pacific region, Abschnitt 9.10.1