IPv4
IPv4 im TCP/IP-Protokollstapel
Anwendung | FTP | SMTP | HTTP | DNS | ... |
Transport | TCP | UDP | |||
Netzwerk | IPv4 | ||||
Netzzugang | Ethernet | Token Bus |
Token Ring |
FDDI | ... |
IPv4, früher einfach IP, ist die vierte Version des Internet Protocols (IP). Es war die erste Version des Internet Protocols das weit verbreitet und eingesetzt wurde und bildet eine wichtige technische Grundlage des Internets. Es wurde in RFC791 im Jahr 1981 von Jon Postel definiert.
Adressformat
IPv4 benutzt 32-Bit Adressen, d. h. maximal sind 4.294.967.296 eindeutige Adressen möglich. IPv4-Adressen werden dezimal geschrieben (z. B. 80.130.234.185). Bei der Weiterentwicklung IPv6 werden 128-Bit Adressen verwendet. Es ist aber heute (2003) noch nicht sehr verbreitet.
Eine IP-Adresse wird in einen Netzwerkteil und einen Host-(Adressen-)teil getrennt. Ein typisches Netzwerk trennt die 32-Bit in einen 24-Bit Netzwerk und einen 8-Bit Adressteil (Klasse-C Adressen). Der Adressteil wird im LAN (lokales Netzwerk) vergeben, der Netzwerkteil von der IANA zugeteilt. In einem Klasse-C Netzwerk sind 254 Geräteadressen verfügbar. Die Adresse 255 wird für Broadcast, d. h. Übertragung an alle, verwendet, die Adresse 0 für das Netzwerk selbst. Eine Netzmaske, im Klasse-C Fall 255.255.255.0 gibt die Trennlinie zwischen den Teilen an. Sie ist 1 für den Netzwerkteil und 0 für den Adressteil.
Ein Teil der Adressen ist für den lokalen Rechner (127.x.x.x), für Multicasts (224.x.x.x) und für lokale Netzwerke mit Adressübersetzung (z. B. 10.x.x.x und 192.168.x.x), sowie allgemeiner Broadcast (255.255.255.255) reserviert.
Manchmal teilt der Eigentümer den ihm zugeteilten Adressteil lokal in weitere Subnetze auf (so genanntes Subnetting). Dies dient der besseren Netzwerkausnutzung sowie der Fehlersuche.
Paketlänge
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 der Daten beträgt 65515 Bytes (216-1-minimale Headerlänge). Normalerweise beschränkt der Sender die Paketlänge auf diejenige des zugrundeliegenden Mediums. Bei Ethernet beträgt die so genannte MTU (Maximum Transfer Unit) 1518 Bytes, wobei 18 Bytes von Ethernet selbst belegt werden. Für IP (Header und Daten) stehen also nur 1500 Bytes zur Verfügung.
Andere Netzwerke können die Paketlänge weiter beschränken. In diesem Fall bietet IP die Option, IP-Pakete zu fragmentieren. Jedes Paket erhält vom Sender eine Kennung (die Fragment-ID). Ein Router kann ein langes Paket aufteilen, weil das Zielnetzwerk Pakete dieser Länge nicht überträgt. Der Empfänger kann die Fragmente anhand der Kennung und der Senderadresse identifizieren und wieder zusammenfügen.
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.
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
IP ist eng verknüpft mit dem ICMP-Protokoll, das zur Fehlersuche und Steuerung eingesetzt wird. ICMP setzt auf IP auf, d. h. ein ICMP-Paket wird im Datenteil eines IP-Pakets abgelegt. Eine IP-Implementierung enthält stets auch eine ICMP Implementierung. Wichtig ist z. B. die ICMP Source-Quench Mitteilung, die den Sender über das Verwerfen von Paketen durch einen Router 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 minimale MTU eines Übertragungsweges zu ermitteln (so genannte PMTU Path Maximum Transfer 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
IPv4 kann auf vielen verschiedenen Medien aufsetzen, z. B. 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-Byte grosser Ethernet-Header vor dem IP-Header gesendet. Nach den Daten folgt eine 32-Bit CRC-Prüfsumme. Neben der maximalen Paketlänge von 1518 Bytes kann Ethernet keine kleineren Pakete als 64 Bytes übertragen, so dass zu kurze IP-Pakete (Datenlänge kleiner als 26 Bytes) mit Nullbytes erweitert werden (so genanntes 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 das ARP-Protokoll (Address Resolution Protocol) verwendet. Jeder Rechner verwaltet einen ARP-Cache, in dem er ihm bekannte Zuordnungen von Ethernet-Kartenaddressen speichert. Unbekannte Adressen erfährt er über das ARP-Protokoll mittels einer Anfrage (ARP-Request) über einen Ethernet-Broadcast, die der zugehörige Empfänger beantwortet (ARP-Reply).
Header Format
Der IPv4 Header ist normalerweise 20 Bytes lang. Bei Übertragung auf Ethernetkabeln folgt er dem Ethernet-Typfeld, das für IP-Pakete auf 080016 festgelegt ist. Auf anderen Übertragungsmedien 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 | 4 | 8 | 12 | 16 | 19 | 24 | 31 |
Version | IHL | Type of Service | Länge | ||||
Identifikation | Flags | Fragment Offset | |||||
TTL | Protokoll | Prüfsumme | |||||
Quell IP-Adresse | |||||||
Ziel IP-Adresse | |||||||
evtl. Optionen ... |
Da das Type of Service-Feld nie richtig genutzt wurde, wird es in modernen Implementationen für DiffServ und Explicit Congestion Notification verwendet. Einige nicht standardkonforme Firewalls verlassen sich jedoch darauf, dass dieses Feld gleich Null ist und sehen ein Paket andernfalls als "böse" an. Dies führt dazu, dass manche Subnetze für ECN/DiffServ-fähige Clients nicht erreichbar sind.
Höhere Protokolle
IPv4 ist ein Routingprotokoll (Schicht 3 im TCP/IP-Referenzmodell). Auf IPv4 werden weitere Protokolle aufgesetzt, d. h. in den Datenteil des IP-Pakets werden die Header, Daten und evtl. Trailer der oberen Protokolle eingefügt (Protokollstapel).
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 immer alle Arten von Daten- und Informationsübertragungen eingesetzt.
Zu TCP/IP gehört auch UDP, ein paketorientiertes Protokoll. Es ist ein einfaches Protokoll, das die Paketeigenschaften von IP im wesentlichen beibehält (verbindungslos, unzuverlässig, Verdoppelung 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 so genannte 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-Servers kann aber auch das TCP-Protokoll verwenden.
Vergangenheit und Zukunft

Das IPv4-Protokoll 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 gleichen Jahr der Backbone auf 1.5 MBit/s aufgerüstet. Anfang der 1990er Jahre wurde vermutet, dass die IP-Adressen am Ende des Jahrzehnts knapp würden, da die IANA relativ große Adressbereiche an Firmen und Institutionen zuteilte. Dies führte zur Entwicklung von IPv6. Die gestiegenen Sicherheitsanforderungen und die Verwendung von Firewalls mit Network Addess Translation NAT führte jedoch zu einer Entschärfung der Adressproblematik, da heute ganze Firmen mit mehreren tausend Rechnern nur noch eine einzige IP-Adresse pro Standort benötigen. Einige Eigenschaften, wie Fragmentierung, werden nicht mehr benötigt, da sie für die heutigen schnellen Netze zu aufwändig sind. Path Maximum Transfer Unit Discovery löst dieses Problem. IPv4 wird auch in nächster Zukunft noch das allgemein verwendete Protokoll im Internet 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.