|
|
Zeile 73: |
Zeile 73: |
|
| |
|
| = TMP = | | = TMP = |
| == Beschreibung ==
| |
| {| class="wikitable float-right"
| |
| |- style="background-color:#c0c0ff;"
| |
| | colspan="2" align=center| '''IP (Internet Protocol) '''
| |
| |-
| |
| | align=center style="" | '''Familie: '''
| |
| | style="" | [https://de.wikipedia.org/wiki/Internetprotokollfamilie Internetprotokollfamilie]
| |
| |-
| |
| | align=center style="" | '''Einsatzgebiet: '''
| |
| | style="" | Datenpaketversendungsowohl lokal als auchweltweit über verschiedeneNetzwerke
| |
| IP im [https://de.wikipedia.org/wiki/TCP/IP-Protokollstapel TCP/IP-Protokollstapel]:
| |
| {|
| |
| |-
| |
| | style="background-color:#ffeebb;" | Anwendung
| |
| | style="background-color:#ddddff;" | [https://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol HTTP]
| |
| | style="background-color:#ddddff;" | [https://de.wikipedia.org/wiki/Internet_Message_Access_Protocol IMAP]
| |
| | style="background-color:#ddddff;" | [https://de.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol SMTP]
| |
| | style="background-color:#ddddff;" | [https://de.wikipedia.org/wiki/Domain_Name_System DNS]
| |
| | style="background-color:#ddddff;" | …
| |
| |-
| |
| | style="background-color:#ffeebb;" | Transport
| |
| | colspan="3" style="background-color:#eeeeff;" | [https://de.wikipedia.org/wiki/Transmission_Control_Protocol TCP]
| |
| | colspan="2" style="background-color:#eeeeff;" | [https://de.wikipedia.org/wiki/User_Datagram_Protocol UDP]
| |
| |-
| |
| | style="background-color:#ffcc99;" | '''Internet'''
| |
| | colspan="5" style="background-color:#9999ff;" | '''IP ([https://de.wikipedia.org/wiki/IPv4 IPv4], [https://de.wikipedia.org/wiki/IPv6 IPv6])'''
| |
| |-
| |
| | style="background-color:#ffeebb;" | Netzzugang
| |
| | style="background-color:#eeeeee;" | [https://de.wikipedia.org/wiki/Ethernet Ethernet]
| |
| | style="background-color:#eeeeee;" | [https://de.wikipedia.org/wiki/Token_Bus TokenBus]
| |
| | style="background-color:#eeeeee;" | [https://de.wikipedia.org/wiki/Token_Ring TokenRing]
| |
| | style="background-color:#eeeeee;" | [https://de.wikipedia.org/wiki/Fiber_Distributed_Data_Interface FDDI]
| |
| | style="background-color:#eeeeee;" | …
| |
| |-
| |
| |}
| |
| |- style=""
| |
| | colspan="2" |
| |
| |-
| |
| | align=center style="" | '''Standards: '''
| |
| | style="" | [https://tools.ietf.org/html/rfc8200 RFC 8200] (IPv6, 2017)[https://tools.ietf.org/html/rfc791 RFC 791] (IPv4, 1981)
| |
| |-
| |
| |}
| |
|
| |
| Das '''Internet Protocol''' ('''IP''') ist ein in [[Rechnernetz|Computernetzen]] weit verbreitetes [[Netzwerkprotokoll]] und stellt durch seine Funktion die Grundlage des [[Internet]]s dar.
| |
| * Das IP ist die [[Implementierung]] der Internetschicht des [[Internetprotokollfamilie#TCP/IP-Referenzmodell|TCP/IP-Modells]] bzw. der Vermittlungsschicht (engl. ''Network Layer'') des [[OSI-Modell]]s.
| |
| * IP ist ein verbindungsloses Protokoll, das heißt bei den Kommunikationspartnern wird kein Zustand etabliert.
| |
|
| |
|
| |
|
| |
| == Eigenschaften und Funktionen ==
| |
| ; Das IP bildet die erste vom [[Übertragungstechnik|Übertragungsmedium]] unabhängige Schicht der [[Internetprotokollfamilie]].
| |
| * Das bedeutet, dass mittels [[IP-Adresse]] und Sub[[netzmaske]] ''(subnet mask)'' für [[IPv4]], bzw. [[Präfixlänge]] bei [[IPv6]], Computer innerhalb eines Netzwerkes in logische Einheiten, sogenannte [[Subnetz]]e, gruppiert werden können.
| |
| * Auf dieser Basis ist es möglich, Computer in größeren Netzwerken zu adressieren und ihnen [[IP-Paket]]e zu senden, da logische Adressierung die Grundlage für [[Routing]] (Wegewahl und Weiterleitung von Netzwerkpaketen) ist.
| |
|
| |
| == Adressvergabe ==
| |
| ; Öffentliche [[IP-Adresse]]n müssen in der Regel weltweit eindeutig zugeordnet werden können, daher ist deren Vergabe durch die [[Internet Assigned Numbers Authority]] (IANA) geregelt.
| |
| * Diese delegiert große Adressblöcke an die [[Regional Internet Registry|Regional Internet Registries]] (RIRs), welche dann [[Subnetz]]e davon an [[Local Internet Registry|Local Internet Registries]] (LIRs) vergeben.
| |
| * Zu den LIRs gehören beispielsweise [[Internetdienstanbieter|Internetprovider]], die aus ihrem Adressbereich kleinere Subnetze oder einzelne Adressen an Kunden vergeben.
| |
|
| |
| {{Hauptartikel|IPv4#Adressknappheit}}
| |
| Bei IPv4 ist der zu vergebende Adressraum weitgehend aufgebraucht.
| |
| * Die IANA hat im Februar 2011 die letzten Adressblöcke an die RIRs vergeben.
| |
|
| |
| == Versionsgeschichte ==
| |
| ; Im Mai 1974 veröffentlichten [[Vint Cerf]] und [[Bob Kahn]] in einer Forschungsarbeit ein Netzwerkprotokoll zur übergreifenden Kommunikation zwischen unterschiedlichen paketvermittelten Netzen.
| |
| * In dem Modell führen Endgeräte ({{enS|hosts}}) ein „Übertragungskontrollprogramm“ ({{enS|transmission control program}} – TCP) aus, das die Übermittlung eines kontinuierlichen [[Datenstrom]]s zwischen [[Prozess (Informatik)|Prozessen]] sicherstellt. [[Gateway (Informatik)|Gateways]] übernehmen die Umformung von Paketen an Netzwerkgrenzen.
| |
|
| |
| ; Die erste vollständige Protokollspezifikation erschien mit RFC 675 im Dezember 1974. Das monolithische Übertragungskontrollprogramm wurde später in eine Modularchitektur geteilt, die aus dem Internetprotokoll ({{enS|internet protocol}}) zur Host-zu-Host-Kommunikation und dem [[Transmission Control Protocol|Übertragungskontrollprotokoll]] ({{enS|transmission 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''“,verwendet.
| |
| * Bei größeren Änderungen des [[IP-Header]]s wurde eine im Header enthaltene Versionsnummer hochgezählt.
| |
| * Bei der Einführung von TCP/IP im [[ARPANET]] am 1. Januar 1983 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. Später wurden IP-Adressen auf 32 Bit festgelegt, bestehend aus 8 Bit Netzadresse und 24 Bit Hostadresse. Die Portnummer wurde zu TCP verschoben und auf 16 Bit gekürzt.
| |
| * Mit RFC 791 wurden [[Netzklasse]]n eingeführt, um mehr Flexibilität bei der Aufteilung einer IP-Adresse in Netz- und Hostteil zu haben. [[Subnetz|Subnetting]] 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 als [[IPv4]] und das neue Internetprotokoll als [[IPv6]] 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·10<sup>9</sup> Adressen) verwendet IPv6 128-Bit-Adressen (ergibt ca. 340 Sextillionen, oder 3,4·10<sup>38</sup> Adressen).
| |
|
| |
| ; IPv5
| |
| Die Versionsnummer 5 war durch das experimentelle ''Internet Stream Protocol'' belegt, 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.
| |
|
| |
| ; Verbreitung von IPv6
| |
| ; Die [[IPv6#Verbreitung_und_Projekte|Verbreitung von IPv6]] nimmt langsam zu, liegt jedoch hinter der Verbreitung von IPv4.
| |
| * Gängige Betriebssysteme und Standardsoftware unterstützen beide Protokolle. [[IPv6#Übergangsmechanismen|Übergangsmechanismen]] ermöglichen den gleichzeitigen Betrieb von IPv4 und IPv6 auf derselben Infrastruktur.
| |
| * Seit dem [[World IPv6 Day und World IPv6 Launch Day]] 2011 und 2012 bieten namhafte [[Website]]s und [[Internetprovider]] IPv6 an.
| |
|
| |
| == Zuverlässigkeit ==
| |
| 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 der [[Datenübertragung]] vorsätzlich größtenteils auf den Endknoten jeder einzelnen [[Datenü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.
| |
| * Ein Routenplanungsknoten berechnet eine [[Prü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 das [[Internet Control Message Protocol|Internetkontrollnachrichtenprotokoll]] (ICMP) solche Ankündigungen erlaubt.
| |
| * Im Gegensatz dazu verfügt die Internetprotokoll-Version 6 (IPv6) über keine Prüfsumme, 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.
| |
|
| |
| == Linkkapazität und Leistungsfähigkeit ==
| |
| Selbst wenn der Übermittlungspfad verfügbar und zuverlässig ist, besteht wegen der dynamischen Natur und der Heterogenität des [[Internet]]s und seiner Bestandteile keine Garantie, dass auch tatsächlich jeder dieser einzelnen Pfade fähig ist, eine Datenübermittlung durchzuführen.
| |
| * Zum Beispiel stellt die erlaubte Übermittlungsgröße der jeweiligen Datenpakete eine technische Einschränkung dar.
| |
| * Jede Anwendung muss versichern, dass richtige Übertragungseigenschaften verwendet werden.
| |
|
| |
| Ein Teil dieser Verantwortung liegt auch in den oberen Schicht-Protokollen.
| |
| * IPv6 verwendet die Fähigkeit, die maximale Übertragungseinheitsgröße einer lokalen Verbindung, sowie den dafür komplett geplanten Pfad zum Bestimmungsort zu untersuchen.
| |
| * Die IPv4-Zwischennetzwerkanschlussschicht hat die Fähigkeit ursprünglich, große Datenpakete automatisch in kleinere Einheiten für die Übertragung zu zerlegen.
| |
|
| |
| Das [[Transmission Control Protocol]] (TCP) ist ein Beispiel eines Protokolls, das seine Segment-Größe reguliert, um kleiner als der maximal erlaubte Durchfluss, die [[Maximum Transmission Unit]] (MTU), zu sein.
| |
| * Das [[User Datagram Protocol]] (UDP) und das [[Internet Control Message Protocol]] (ICMP) ignorieren jedoch die MTU-Größe, wodurch das IP gezwungen wird, übergroße Datenpakete zu splitten.
| |
|
| |
|
| [[Kategorie:Internet Protocol]] | | [[Kategorie:Internet Protocol]] |