IPv4 (Internet Protocol Version 4), vor der Entwicklung von IPv6 auch 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 als Teil der Internetprotokollfamilie eine wichtige technische Grundlage des Internets. Es wurde in RFC 791 im Jahr 1981 definiert und stellt einen Internetstandard der Internet Engineering Task Force dar. IPv4 verwendet 32 Bit lange IP-Adressen.

Geschichte mini|Zahl der Rechner im Internet (1981 bis 2003)

IPv4 wurde als Teil der Internetprotokollfamilie 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. 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 Internets 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. 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. 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.

Adressformat

IPv4 benutzt 32-Bit-Adressen, wodurch ein Adressraum von knapp 4,3 Milliarden Adressen zur Verfügung steht. IPv4-Adressen werden meist in Dezimalpunktschreibweise dargestellt: vier Oktetts (je 8 Bit) werden durch Punkt getrennt mit vier Zahlen von 0 bis 255 dargestellt. Beispiel: 192.0.2.155

Eine IPv4-Adresse kann in dezimal, binär, oktal und hexadezimal sowohl in der Punkt- als auch in der Nichtpunktnotation dargestellt werden. Eine führende Null zeigt eine Oktalzahl an. Daher dürfen in der Dezimalpunktschreibweise ein- und zweistellige Zahlen nicht auf ein gleichförmiges Längenformat gebracht werden (also nicht: 192.000.002.155).

Jedes der vier Oktette besteht aus 8 Bit und stellt somit 28 = 256 verschiedene Werte dar. Daraus ergibt sich eine Gesamtzahl von 256 × 256 × 256 × 256 = 2564 = 232 = 4.294.967.296 IPv4-Adressen.

Netzanteil und Hostanteil Eine IP-Adresse besteht aus einem Netzanteil und einem Hostanteil. Der Netzanteil identifiziert ein Teilnetz, der Hostanteil identifiziert ein Gerät (Host) innerhalb eines Teilnetzes.

Die genaue Aufteilung zwischen Netzanteil und Hostanteil wird durch eine Subnetzmaske festgelegt, beispielsweise 255.255.255.0, was in binärer Darstellung 11111111.11111111.11111111.00000000 entspricht. Die Bits der Subnetzmaske, die „1“ lauten, legen die Stellen der IP-Adresse fest, die zum Netzanteil gehören. Alle restlichen Stellen der IP-Adresse, die entsprechend in der Subnetzmaske auf „0“ gesetzt sind, gehören zum Hostanteil. In der CIDR-Notation wird die Länge des Netzanteils durch die Anzahl Bits angegeben und mit Schrägstrich getrennt als Suffix an die IP-Adresse angehängt, beispielsweise /24. Somit ist der Netzanteil 24 Bits lang, was der Subnetzmaske 255.255.255.0 entspricht. Die übrigen 8 Bits gehören somit zum Hostanteil.

Beispiel:

dezimal binär IP-Adresse 192.0.2.155 → 11000000.00000000.00000010 .10011011 Subnetzmaske 255.255.255.0 → 11111111.11111111.11111111 .00000000 Netzanteil Hostanteil Netzanteil Hostanteil CIDR-Notation 192.0.2.155/24

Die Unterscheidung zwischen Netzanteil und Hostanteil ist erforderlich für die Entscheidung, ob sich eine Zieladresse in demselben lokalen Netz oder in einem anderen Netz befindet. Wenn der Netzanteil identisch ist, können die Endgeräte innerhalb einer Broadcast-Domäne direkt miteinander kommunizieren, beispielsweise per Ethernet oder WLAN. Im selben Teilnetz darf der Hostanteil nicht mehrfach vergeben sein, da es ansonsten zu einem IP-Adresskonflikt kommt. Für jedes Endgerät vergibt der zuständige Netzwerkadministrator den Hostanteil eindeutig durch eine manuelle oder automatische IP-Adresszuweisung.

Für die Kommunikation zwischen unterschiedlichen Netzen wird ein Router benötigt, siehe Abschnitt #Routing. Der Netzanteil muss ebenfalls eindeutig sein, damit es nicht zu Routing-Konflikten führt. Die Vergabe von IP-Netzbereichen erfolgt durch eine hierarchische Organisationsstruktur zwischen der Internet Assigned Numbers Authority, den Regional Internet Registrys und den Local Internet Registrys.

Subnetting

Ein Netz kann in weitere Teil- oder Subnetze unterteilt werden. Dies erfolgt, indem ein oder mehrere hochwertige Bits des Hostanteils zur Unterscheidung des Subnetzes verwendet werden. Innerhalb eines Subnetzes wird die Subnetzmaske angepasst, um den verkleinerten Hostanteil widerzuspiegeln. Subnetting wird zur Segmentierung von Netzen verwendet. Für die Kommunikation zwischen den Subnetzen ist ein Router erforderlich.

Beispiel: Netzadresse (CIDR) Subnetzmaske Adressbereich Netz-, Subnetz- und Hostanteil (binär) Netz 192.0.2.0/24 255.255.255.0 192.0.2.0 – 192.0.2.255 11000000.00000000.00000010.xxxxxxxx Subnetz 192.0.2.0/25 255.255.255.128 192.0.2.0 – 192.0.2.127 11000000.00000000.00000010.0xxxxxxx Subnetz 192.0.2.128/26 255.255.255.192 192.0.2.128 – 192.0.2.191 11000000.00000000.00000010.10xxxxxx Subnetz 192.0.2.192/26 255.255.255.192 192.0.2.192 – 192.0.2.255 11000000.00000000.00000010.11xxxxxx

Nach außen hin wird das Netz beim Routing als ein Ganzes adressiert. Die innere Unterteilung in Subnetze ist nicht direkt ersichtlich. Das Gegenteil von Subnetting ist Supernetting und beschreibt die Zusammenfassung von mehreren angrenzenden Netzadressen in einer gemeinsamen Route. Der Zweck ist die Minimierung von Einträgen in einer Routingtabelle. Supernetting wird bei Classless Inter-Domain Routing als Routenaggregation bezeichnet.

Historische Netzklassen (nicht mehr in Gebrauch seit 1993) Historische 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 … 128 8-Bit-Netze 24-Bit-Host Class B: Netze 128.0.0.0/16 bis 191.255.255.255 1 0 … 16.384 16-Bit-Netze 16-Bit-Host Class C: Netze 192.0.0.0/24 bis 223.255.255.2551 1 0 … 2.097.152 24-Bit-Netze8-Bit-Host Class D: Multicast-Gruppen 224.0.0.0/4 bis 239.255.255.2551 1 1 028-Bit-Multicast-Gruppen-ID Class E: Reserviert 240.0.0.0/4 bis 255.255.255.2551 1 1 1 027-Bit-Future-Use (zukünftige Anwendungen)

Ursprünglich gab es fest vorgeschriebene Einteilungen für Netzklassen mit einer festen Länge des Netzanteils. Die Größe des Netzanteils ergab sich aus den ersten Bits der Adresse; eine Subnetzmaske musste nicht angegeben werden. Da diese Einteilung sehr unflexibel ist, wird seit 1993 ausschließlich das Verfahren Classless Inter-Domain Routing angewandt, welches bitvariable Netzmasken ermöglicht. Obwohl das Konzept von Netzklassen seitdem nicht mehr im Einsatz ist, blieb der Begriff der Netzklasse über Jahre verbreitet. Hierbei steht „Klasse A“ für ein Netz der CIDR-Präfixlänge /8, „Klasse B“ für /16 und „Klasse C“ für /24. Die ursprüngliche Zuordnung zu festgelegten Adressbereichen wird für gewöhnlich ignoriert, sodass diese Begrifflichkeit nicht mit dem ursprünglichen Konzept der Netzklassen konform ist.

Nutzbare Adressen Die jeweils erste und letzte Adresse eines Subnetzes haben eine besondere Bedeutung und stehen üblicherweise nicht zur Vergabe an Hosts zur Verfügung. Die maximale Anzahl der zu vergebenen Hostadressen in einem Netz beträgt somit effektiv:

2Anzahl Bits der Hostadresse − 2.

Diese Einschränkung geht auf die Praxis zurück, Adressen mit „0“ an allen Stellen als „dieses Netz“ und Adressen mit „1“ an allen Stellen als „alle Hosts“ zu interpretieren. Die erste Adresse eines Subnetzes (zum Beispiel 192.0.2.0) bezeichnet das Netz selbst. Die letzte Adresse (zum Beispiel 192.0.2.255) bezeichnet die Broadcast-Adresse, unter der alle Hosts im Netz angesprochen werden können. Ein Versuch, diese Einschränkung aufzuheben, hat sich nicht durchgesetzt, sodass auch heute noch in praktisch jedem Netz beide Adressen reserviert sind. Gängig ist außerdem, das Default Gateway auf die zweite oder die vorletzte IP-Adresse im Netz zu legen (zum Beispiel 192.0.2.1 oder 192.0.2.254), wobei es dafür keinerlei Vorgaben gibt.

Besondere Netzadressen Einige Netzadressen sind für spezielle Zwecke reserviert. Siehe RFC 6890:

Adressblock (Präfix) Verwendung Referenz 0.0.0.0/8 Das vorliegende Netzwerk RFC 1122 10.0.0.0/8 Private Netze 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 Automatische Adresskonfiguration (link local), APIPA RFC 3927 172.16.0.0/12 Private Netze RFC 1918 192.0.0.0/24 IETF Protocol Assignments RFC 6890 192.0.2.0/24 Dokumentationszwecke RFC 6890 192.88.99.0/24 IPv6 zu IPv4 Relay (Veraltet) RFC 7526 192.168.0.0/16 Private Netze RFC 1918 198.18.0.0/15 Netzwerk-Benchmark-Tests RFC 2544 198.51.100.0/24 Dokumentationszwecke RFC 6890 203.0.113.0/24 Dokumentationszwecke RFC 6890 224.0.0.0/4 Multicasts RFC 5771 240.0.0.0/4 Reserviert RFC 1700 255.255.255.255/32 Limited Broadcast RFC 919, RFC 922

Private IP-Adressen

Bestimmte IP-Adressbereiche stehen zur freien Verfügung und können ohne vorherige Registrierung für private Netze verwendet werden. Im Internet werden diese IP-Adressbereiche nicht geroutet. Historisch befand sich jeder der Adressbereiche in einer anderen Netzklasse. Aus Gewohnheitsgründen ist es gängig, für Subnetze im Adressblock 172.16.0.0/12 die Präfixlänge /16 und im Adressblock 192.168.0.0/16 die Präfixlänge /24 zu verwenden. Eine Vorgabe existiert diesbezüglich nicht.

CIDR-Adressblock Adressbereich Anzahl IP-Adressen 10.0.0.0/8 10.0.0.0 – 10.255.255.255 224 = 16.777.216 172.16.0.0/12 172.16.0.0 – 172.31.255.255 220 = 1.048.576 192.168.0.0/16 192.168.0.0 – 192.168.255.255 216 = 65.536

Beispiele

+ Beispiel: (24-Bit-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 Host-Adresse =11000000.10101000.00000000.00000001 (192.168.0.1) letzte Host-Adresse =11000000.10101000.00000000.11111110 (192.168.0.254) Broadcast =11000000.10101000.00000000.11111111 (192.168.0.255) Anzahl zu vergebende Adressen: 28 − 2 = 254