DasInternet Protocol (IP; deutschInternetprotokoll) ist ein inRechnernetzen weit verbreitetesNetzwerkprotokoll und stellt durch seine Funktion die Grundlage desInternets dar. Das IP ist dieImplementierung der Internetschicht des TCP/IP-Modells bzw. der Vermittlungsschicht (englischNetwork Layer) desOSI-Modells.[3] IP ist ein verbindungsloses Protokoll, das heißt bei den Kommunikationspartnern wird kein Zustand etabliert.
MitIPv4 undIPv6 sind zwei verschiedene Versionen des Internet Protocols verbreitet. Beide stellen ein eigenes Netzwerkprotokoll dar, das unabhängig von oder auch parallel zu dem anderen betrieben werden kann. Der Hauptunterschied ist die Größe des Adressraums.
Das Internet Protocol bildet die erste vomÜbertragungsmedium unabhängige Schicht derInternetprotokollfamilie. Das bedeutet, dass mittelsIP-Adresse und Subnetzmaske(subnet mask) fürIPv4, bzw.Präfixlänge beiIPv6, Computer innerhalb eines Netzwerkes in logische Einheiten, sogenannteSubnetze, gruppiert werden können. Auf dieser Basis ist es möglich, Computer in größeren Netzwerken zu adressieren und ihnenIP-Pakete zu senden, da logische Adressierung die Grundlage fürRouting (Wegewahl und Weiterleitung von Netzwerkpaketen) ist.
Im Kontext des Internet Protocols sind die folgenden Begriffe üblich:[1]
EinKnoten (englischnode) ist ein IP-fähiges Netzwerkgerät.
EinRouter ist ein Knoten, der IP-Pakete weiterleitet. IPv4 verwendete den BegriffGateway für ein Gerät, das Pakete zwischen Netzen weiterleitet.[2]
EinHost ist ein Knoten, der kein Router oder Gateway ist. Im Regelfall sind damit Endgeräte gemeint.
Im Mai 1974 veröffentlichtenVint Cerf undBob Kahn in einer Forschungsarbeit ein Netzwerkprotokoll zur übergreifenden Kommunikation zwischen unterschiedlichen paketvermittelten Netzen. In dem Modell führen Hosts ein „Übertragungskontrollprogramm“ (englischtransmission control program – TCP) aus, das die Übermittlung eines kontinuierlichenDatenstroms zwischenProzessen sicherstellt.Gateways übernehmen die Umformung von Paketen an Netzwerkgrenzen.[4]
Die erste vollständige Protokollspezifikation erschien mit RFC 675 im Dezember 1974.[5] Das monolithische Übertragungskontrollprogramm wurde später in eine Modularchitektur geteilt, die aus dem Internetprotokoll zur Host-zu-Host-Kommunikation und demÜbertragungskontrollprotokoll (englischtransmission control protocol – TCP) zur Prozess-zu-Prozess-Kommunikation bestand. Das Modell wurde bekannt als TCP/IP-Referenzmodell.
Beide Protokolle wurden mehrfach überarbeitet, ehe sie zum praktischen Einsatz kamen. Neben der finalen Bezeichnung als „Internet Protocol“ wurde in Entwürfen auch „Internetwork Protocol“,[6][7] „Internet Datagram Protocol“[8] oder „DoD Standard Internet Protocol“[9][10] verwendet. Bei größeren Änderungen desIP-Headers wurde eine im Header enthaltene Versionsnummer hochgezählt. Bei der Einführung von TCP/IP imArpanet am 1. Januar 1983[11] trugen IP-Pakete daher die Versionsnummer 4. Vorherige Versionen waren nicht verbreitet.
Im ersten Protokollentwurf war ein Adressierungsschema variabler Länge vorgesehen, bestehend aus einer mindestens 4 Bit langen Netzadresse, einer 16 Bit langen Hostadresse und einer 24 Bit langen Portnummer.[5] Später wurden IP-Adressen auf 32 Bit festgelegt, bestehend aus 8 Bit Netzadresse und 24 Bit Hostadresse.[10] Die Portnummer wurde zu TCP verschoben und auf 16 Bit gekürzt. Mit RFC 791 wurdenNetzklassen eingeführt, um mehr Flexibilität bei der Aufteilung einer IP-Adresse in Netz- und Hostteil zu haben.[2] Subnetz-Segmentierung war zu dem Zeitpunkt noch nicht vorgesehen.Jon Postel kümmerte sich um die Vergabe von Netzadressen – eine Rolle, die später als Internet Assigned Numbers Authority bezeichnet wurde.
Mit der sich abzeichnenden Knappheit von IP-Adressen begann Anfang der 1990er Jahre die Entwicklung eines Nachfolgeprotokolls. Zur Unterscheidung wurde das etablierte Internetprotokoll entsprechend der Versionsnummer im IP-Header alsIPv4 und das neue Internetprotokoll alsIPv6 bezeichnet. Die wichtigste Neuerung ist der erheblich größere Adressraum: gegenüber den 32-Bit-Adressen bei IPv4 (ergibt ca. 4 Milliarden, oder 4,3·109 Adressen) verwendet IPv6 128-Bit-Adressen (ergibt ca. 340 Sextillionen, oder 3,4·1038 Adressen).
Die Versionsnummer 5 war durch das experimentelleInternet Stream Protocol belegt,[12] das nicht als Nachfolger, sondern als Ergänzung parallel zum Internetprotokoll gedacht war. Das Internet Stream Protocol wurde später aufgegeben ohne eine nennenswerte Verbreitung erlangt zu haben. Die Versionsnummern 7 bis 9 wurden für verschiedene Vorschläge eines IPv4-Nachfolgers verwendet, die jedoch zugunsten von IPv6 aufgegeben wurden.[13]
DieVerbreitung von IPv6 nimmt langsam zu, liegt jedoch hinter der Verbreitung von IPv4. Gängige Betriebssysteme und Standardsoftware unterstützen beide Protokolle.Übergangsmechanismen ermöglichen den gleichzeitigen Betrieb von IPv4 und IPv6 auf derselben Infrastruktur. Seit demWorld IPv6 Day und World IPv6 Launch Day 2011 und 2012 bieten namhafteWebsites und Internetdienstanbieter IPv6 an.
Die Designgrundsätze der Internetprotokolle nehmen an, dass die Netzinfrastruktur an jedem einzelnen Netzelement oder Übertragungsmedium von Natur aus unzuverlässig ist. Auch setzen diese voraus, dass sich die Infrastruktur im Bezug auf Verfügbarkeit von Verbindungen und Knoten dynamisch verhält. Um jedoch die Netzinfrastruktur aufrechtzuerhalten, wird das Hauptaugenmerk derDatenübertragung vorsätzlich größtenteils auf den Endknoten jeder einzelnenDatenübermittlung gelegt. Router im Übertragungspfad schicken Datenpakete nur zu direkt erreichbaren und bekannten Übergängen, die die für den Bestimmungsort festgelegten Adressen vom Routenplanungspräfix vergleichen.
Demzufolge stellen diese Internetprotokolle nur beste Übergänge zur Verfügung, wodurch diese Dienste als unzuverlässig charakterisiert werden. Das IP ist verbindungslos, jedes einzelne Datenpaket wird unabhängig behandelt. Da jeder einzelne Übermittlungsweg eines Datenpaketes neu definiert wird (dynamisch), ist es möglich, dass die Pakete auf verschiedenen Pfaden zu ihrem Bestimmungsort gesendet werden.
Die Internetprotokoll-Version 4 (IPv4) stellt den benötigten Schutz zur Verfügung, um sicherzustellen, dass der Protokollkopf jedes Datenpaketes fehlerfrei ist.[14] Ein Routenplanungsknoten berechnet einePrüfsumme für den Paketkopf. Wenn die Prüfsumme ungültig ist, verwirft der Routenplanungsknoten das Paket. Der Routenplanungsknoten muss keinen Endknoten bekannt geben, obwohl dasInternetkontrollnachrichtenprotokoll (ICMP) solche Ankündigungen erlaubt. Im Gegensatz dazu verfügt die Internetprotokoll-Version 6 (IPv6) über keine Prüfsumme,[14] was zu einer schnelleren Verarbeitung während der Routenplanung führt.
Alle Fehlerquellen im Übertragungsnetz müssen entdeckt und mit Hilfe der Übertragung auf Endknoten ersetzt werden. Die oberen Schicht-Protokolle der Internetprotokoll-Familie sind dafür verantwortlich, Zuverlässigkeitsprobleme aufzulösen. Zum Beispiel kann ein Host Daten zurückhalten und eine Richtigstellung durchführen, bevor die Daten an den jeweiligen Empfänger geliefert werden.
Selbst wenn der Übermittlungspfad verfügbar und zuverlässig ist, besteht wegen der dynamischen Natur und der Heterogenität des Internets und seiner Bestandteile keine Garantie, dass auch tatsächlich jeder dieser einzelnen Pfade fähig ist, eine Datenübermittlung wie gefordert durchzuführen. Zum Beispiel kann die für einen Übertragungsabschnitt maximal erlaubte Übermittlungsgröße für Datenpakete eine technische Einschränkung darstellen. Daher muss idealerweise jede Anwendung Sorge dafür tragen, korrekte Übertragungseigenschaften zu verwenden.
Ein Teil dieser Verantwortung kann auch durch Protokolle der oberen Schichten wahrgenommen werden. IPv6 verwendet die Fähigkeit, die maximale Übertragungseinheitsgröße einer lokalen Verbindung sowie den dafür komplett geplanten Pfad zum Bestimmungsort zu ermitteln und zu nutzen. Die IPv4-Internetschicht besitzt die Fähigkeit, große Datenpakete in kleinere Einheiten für die Übertragung wie im Folgenden beschrieben zu zerlegen.
↑Vint Cerf, Bob Kahn:A Protocol for Packet Network Intercommunication. In:IEEE Transactions on Communications.Band22,Nr.5. IEEE, Mai 1974,ISSN0090-6778,doi:10.1109/TCOM.1974.1092259 (englisch,ieee.org).
↑abVinton Cerf, Yogen Dalal, Carl Sunshine: RFC:675 –Specification of Internet Transmission Control Program. Dezember 1974 (englisch).