Internetprotokollfamilie

Aus besserwiki.de

Die Internet-Protokollsuite, allgemein bekannt als TCP/IP, ist eine Sammlung von Kommunikationsprotokollen, die im Internet und ähnlichen Computernetzwerken verwendet werden. Die aktuellen Grundprotokolle der Suite sind das Transmission Control Protocol (TCP) und das Internet Protocol (IP) sowie das User Datagram Protocol (UDP).

Während seiner Entwicklung waren Versionen davon als Department of Defense (DoD)-Modell bekannt, da die Entwicklung der Netzwerkmethode vom Verteidigungsministerium der Vereinigten Staaten über die DARPA finanziert wurde. Seine Implementierung ist ein Protokollstapel.

Die Internet-Protokollsuite ermöglicht eine durchgängige Datenkommunikation und legt fest, wie Daten paketiert, adressiert, übertragen, weitergeleitet und empfangen werden sollen. Diese Funktionalität ist in vier Abstraktionsschichten gegliedert, die alle verwandten Protokolle entsprechend dem Vernetzungsumfang der einzelnen Protokolle klassifizieren. Von der untersten bis zur obersten Schicht handelt es sich um die Verbindungsschicht, die Kommunikationsmethoden für Daten enthält, die innerhalb eines einzelnen Netzwerksegments (Link) verbleiben; die Internet-Schicht, die Internetworking zwischen unabhängigen Netzwerken ermöglicht; die Transportschicht, die die Host-to-Host-Kommunikation abwickelt; und die Anwendungsschicht, die den Prozess-zu-Prozess-Datenaustausch für Anwendungen ermöglicht.

Die technischen Standards, die der Internet-Protokollsuite und den sie bildenden Protokollen zugrunde liegen, werden von der Internet Engineering Task Force (IETF) gepflegt. Die Internet-Protokollsuite geht dem OSI-Modell voraus, einem umfassenderen Referenzrahmen für allgemeine Netzwerksysteme.

Die Internetprotokollfamilie ist eine Familie von rund 500 Netzwerkprotokollen, die die Basis für die Netzkommunikation im Internet bilden. Häufig wird auch die Bezeichnung TCP/IP-Protokollfamilie verwendet.

Geschichte

Frühe Forschung

Diagramm der ersten Internet-Netzwerkverbindung
Ein SRI International Packet Radio Van, der für die erste Drei-Wege-Übertragung im Internet verwendet wurde.

Die Internet-Protokollsuite ist das Ergebnis der Forschungs- und Entwicklungsarbeiten der Defense Advanced Research Projects Agency (DARPA) in den späten 1960er Jahren. Nachdem sie 1969 das bahnbrechende ARPANET ins Leben gerufen hatte, begann die DARPA mit der Arbeit an einer Reihe anderer Datenübertragungstechnologien. 1972 trat Robert E. Kahn in das DARPA Information Processing Technology Office ein, wo er sowohl an satellitengestützten Paketnetzen als auch an bodengestützten Funk-Paketnetzen arbeitete und den Wert der Möglichkeit erkannte, über beide zu kommunizieren. Im Frühjahr 1973 schloss sich Vinton Cerf, der an der Entwicklung des bestehenden ARPANET Network Control Program (NCP)-Protokolls beteiligt war, Kahn an, um an Verbindungsmodellen mit offener Architektur zu arbeiten, mit dem Ziel, die nächste Protokollgeneration für das ARPANET zu entwickeln. Sie stützten sich dabei auf die Erfahrungen der ARPANET-Forschungsgemeinschaft und der International Networking Working Group, deren Vorsitz Cerf innehatte.

Bis zum Sommer 1973 hatten Kahn und Cerf eine grundlegende Neuformulierung erarbeitet, bei der die Unterschiede zwischen den lokalen Netzwerkprotokollen durch die Verwendung eines gemeinsamen Internet-Netzwerkprotokolls verborgen wurden, und bei der die Zuverlässigkeit nicht mehr wie bei den bestehenden ARPANET-Protokollen vom Netzwerk, sondern von den Hosts gewährleistet wurde. Cerf schreibt Hubert Zimmermann und Louis Pouzin, den Entwicklern des CYCLADES-Netzes, wichtige Einflüsse auf diesen Entwurf zu. Das neue Protokoll wurde 1974 in Form des Transmission Control Program eingeführt.

Anfangs verwaltete das Transmission Control Program sowohl die Datagrammübertragung als auch das Routing, doch mit zunehmender Erfahrung mit dem Protokoll empfahlen die Mitarbeiter eine Aufteilung der Funktionen in verschiedene Protokolle. Zu den Befürwortern gehörten Jonathan Postel vom Information Sciences Institute der University of Southern California, der die Request for Comments (RFCs) herausgab, die technische und strategische Dokumentenserie, die die Entwicklung des Internets sowohl dokumentiert als auch vorangetrieben hat, sowie die Forschungsgruppe von Robert Metcalfe bei Xerox PARC. Postel erklärte: "Wir vermasseln unser Design von Internet-Protokollen, indem wir das Prinzip der Schichtung verletzen." Durch die Verkapselung verschiedener Mechanismen sollte eine Umgebung geschaffen werden, in der die oberen Schichten nur auf das zugreifen können, was von den unteren Schichten benötigt wird. Ein monolithisches Design wäre unflexibel und würde zu Skalierbarkeitsproblemen führen. In der 1978 geschriebenen Version 3 von TCP wurde das Transmission Control Program in zwei verschiedene Protokolle aufgeteilt: das Internet Protocol als verbindungslose Schicht und das Transmission Control Protocol als zuverlässiger verbindungsorientierter Dienst.

Bei der Konzeption des Netzes wurde berücksichtigt, dass es nur die Funktionen der effizienten Übertragung und Weiterleitung des Datenverkehrs zwischen den Endknoten bereitstellen sollte und dass alle andere Intelligenz am Rande des Netzes, in den Endknoten, angesiedelt sein sollte. Dieses Konzept ist als End-to-End-Prinzip bekannt. Mit Hilfe dieses Konzepts war es möglich, andere Netze an das ARPANET anzuschließen, die unabhängig von anderen lokalen Merkmalen nach dem gleichen Prinzip arbeiteten, und damit das ursprüngliche Internetworking-Problem von Kahn zu lösen. Im Volksmund heißt es, dass TCP/IP, das spätere Produkt der Arbeit von Cerf und Kahn, über "zwei Blechdosen und eine Schnur" laufen kann. Jahre später wurde scherzhaft die formale Protokollspezifikation IP over Avian Carriers erstellt und erfolgreich getestet.

Die DARPA beauftragte BBN Technologies, die Stanford University und das University College London mit der Entwicklung einsatzfähiger Versionen des Protokolls auf verschiedenen Hardware-Plattformen. Während der Entwicklung des Protokolls stieg die Versionsnummer der Paketrouting-Schicht von Version 1 zu Version 4, wobei letztere 1983 im ARPANET installiert wurde. Es wurde unter dem Namen Internet Protocol Version 4 (IPv4) bekannt, da es neben seinem aktuellen Nachfolger, dem Internet Protocol Version 6 (IPv6), immer noch im Internet verwendet wird.

Frühe Implementierung

1975 wurde ein IP-Kommunikationstest mit zwei Netzen zwischen Stanford und dem University College London durchgeführt. Im November 1977 wurde ein IP-Test mit drei Netzen zwischen Standorten in den USA, dem Vereinigten Königreich und Norwegen durchgeführt. Mehrere andere IP-Prototypen wurden zwischen 1978 und 1983 in verschiedenen Forschungszentren entwickelt. Vor dem "Flag Day" am 1. Januar 1983 verwendete das Internet NCP anstelle von TCP als Transportschichtprotokoll.

Ein Computer, ein so genannter Router, verfügt über eine Schnittstelle zu jedem Netz. Er leitet Netzwerkpakete zwischen ihnen hin und her. Ursprünglich wurde ein Router als Gateway bezeichnet, aber der Begriff wurde geändert, um Verwechslungen mit anderen Arten von Gateways zu vermeiden.

Verabschiedung

Im März 1982 erklärte das US-Verteidigungsministerium TCP/IP zum Standard für alle militärischen Computernetzwerke. Im selben Jahr übernahmen auch NORSAR und die Forschungsgruppe von Peter Kirstein am University College London das Protokoll. Die Umstellung des ARPANET auf TCP/IP wurde offiziell am 1. Januar 1983 abgeschlossen, als die neuen Protokolle dauerhaft aktiviert wurden.

1985 veranstaltete das Internet Advisory Board (später Internet Architecture Board) einen dreitägigen TCP/IP-Workshop für die Computerindustrie, an dem 250 Vertreter von Anbietern teilnahmen und der das Protokoll förderte und zu seiner zunehmenden kommerziellen Nutzung führte. 1985 konzentrierte sich die erste Interop-Konferenz auf die Interoperabilität von Netzen durch eine breitere Einführung von TCP/IP. Gegründet wurde die Konferenz von Dan Lynch, einem frühen Internet-Aktivisten. Von Anfang an nahmen große Unternehmen wie IBM und DEC an der Konferenz teil.

IBM, AT&T und DEC waren die ersten großen Unternehmen, die TCP/IP einführten, obwohl sie über konkurrierende proprietäre Protokolle verfügten. Bei IBM war ab 1984 die Gruppe von Barry Appelman für die Entwicklung von TCP/IP zuständig. Sie setzten sich mit der Unternehmenspolitik auseinander, um eine Reihe von TCP/IP-Produkten für verschiedene IBM-Systeme, darunter MVS, VM und OS/2, zu entwickeln. Zur gleichen Zeit begannen mehrere kleinere Unternehmen, wie FTP Software und die Wollongong Group, TCP/IP-Stacks für DOS und Microsoft Windows anzubieten. Der erste VM/CMS-TCP/IP-Stack kam von der Universität von Wisconsin.

Einige der frühen TCP/IP-Stacks wurden im Alleingang von einigen wenigen Programmierern geschrieben. Jay Elinsky und Oleg Vishnepolsky [ru] von IBM Research schrieben TCP/IP-Stacks für VM/CMS bzw. OS/2. 1984 schrieb Donald Gillies am MIT ein ntcp Multi-Connection-TCP, das auf der IP/PacketDriver-Schicht läuft, die von John Romkey am MIT 1983-4 gepflegt wurde. Romkey nutzte dieses TCP 1986, als FTP Software gegründet wurde. Ab 1985 entwickelte Phil Karn eine Multiverbindungs-TCP-Anwendung für Amateurfunk-Systeme (KA9Q TCP).

Die Verbreitung von TCP/IP wurde im Juni 1989 weiter vorangetrieben, als die University of California, Berkeley, zustimmte, den für BSD UNIX entwickelten TCP/IP-Code der Öffentlichkeit zugänglich zu machen. Verschiedene Unternehmensanbieter, darunter IBM, nahmen diesen Code in kommerzielle TCP/IP-Softwareversionen auf. Microsoft veröffentlichte einen nativen TCP/IP-Stack in Windows 95. Dieses Ereignis trug dazu bei, die Vorherrschaft von TCP/IP über andere Protokolle in Microsoft-basierten Netzwerken, einschließlich IBMs Systems Network Architecture (SNA), und auf anderen Plattformen wie DECnet der Digital Equipment Corporation, Open Systems Interconnection (OSI) und Xerox Network Systems (XNS) zu festigen.

Dennoch waren Ingenieure, Organisationen und Nationen in den späten 80er und frühen 90er Jahren eine Zeit lang in der Frage polarisiert, welcher Standard - das OSI-Modell oder die Internet-Protokollsuite - zu den besten und robustesten Computernetzen führen würde.

Formale Spezifikation und Standards

Die technischen Standards, die der Internet Protocol Suite und den darin enthaltenen Protokollen zugrunde liegen, wurden der Internet Engineering Task Force (IETF) übertragen.

Die charakteristische Architektur der Internet-Protokollsuite ist ihre breite Unterteilung in Betriebsbereiche für die Protokolle, die ihre Kernfunktionalität ausmachen. Die entscheidende Spezifikation der Suite ist RFC 1122, in der vier Abstraktionsschichten grob umrissen werden. Diese haben sich im Laufe der Zeit bewährt, da die IETF diese Struktur nie geändert hat. Als ein solches Netzwerkmodell ist die Internet Protocol Suite älter als das OSI-Modell, ein umfassenderer Referenzrahmen für allgemeine Netzwerksysteme.

Wichtige Architekturprinzipien

Konzept des Datenflusses in einer einfachen Netztopologie mit zwei Hosts (A und B), die durch eine Verbindung zwischen ihren jeweiligen Routern verbunden sind. Die Anwendung auf jedem Host führt Lese- und Schreibvorgänge aus, als ob die Prozesse durch eine Art Datenleitung direkt miteinander verbunden wären. Nach der Einrichtung dieser Pipe sind die meisten Details der Kommunikation vor den einzelnen Prozessen verborgen, da die zugrundeliegenden Prinzipien der Kommunikation in den unteren Protokollschichten implementiert sind. In Analogie dazu erscheint die Kommunikation auf der Transportschicht als eine Kommunikation von Host zu Host, ohne Kenntnis der Anwendungsdatenstrukturen und der verbindenden Router, während auf der Internetworking-Schicht die einzelnen Netzgrenzen bei jedem Router durchlaufen werden.
Verkapselung von Anwendungsdaten auf dem Weg durch die in RFC 1122 beschriebenen Schichten

Das End-to-End-Prinzip hat sich im Laufe der Zeit weiterentwickelt. Ursprünglich wurde davon ausgegangen, dass das Internet, das die Grenzen verbindet, keinen Zustand beibehält und sich auf Geschwindigkeit und Einfachheit konzentriert. Der Bedarf der realen Welt an Firewalls, Netzwerkadressenübersetzern, Caches für Webinhalte und ähnlichem hat zu einer Änderung dieses Grundsatzes geführt.

Der Grundsatz der Robustheit besagt: "Im Allgemeinen muss eine Implementierung in ihrem Sendeverhalten konservativ und in ihrem Empfangsverhalten liberal sein. Das heißt, sie muss darauf achten, wohlgeformte Datagramme zu senden, aber sie muss jedes Datagramm akzeptieren, das sie interpretieren kann (z. B. keine Einwände gegen technische Fehler, wenn die Bedeutung noch klar ist)." "Der zweite Teil des Prinzips ist fast genauso wichtig: Software auf anderen Hosts kann Mängel aufweisen, die es unklug machen, legale, aber obskure Protokollfunktionen auszunutzen."

Die Verkapselung dient der Abstraktion von Protokollen und Diensten. Die Verkapselung ist in der Regel auf die Unterteilung der Protokollsuite in Schichten allgemeiner Funktionalität abgestimmt. Im Allgemeinen verwendet eine Anwendung (die höchste Ebene des Modells) eine Reihe von Protokollen, um ihre Daten auf den verschiedenen Ebenen zu senden. Die Daten werden auf jeder Ebene weiter gekapselt.

Ein frühes architektonisches Dokument, RFC 1122, betont die architektonischen Prinzipien gegenüber der Schichtung. RFC 1122 mit dem Titel Host Requirements ist in Absätze gegliedert, die sich auf Schichten beziehen, aber das Dokument verweist auf viele andere architektonische Prinzipien und betont nicht die Schichtung. Es definiert lose ein Vier-Schichten-Modell, wobei die Schichten Namen und keine Nummern haben, wie folgt:

  • Die Anwendungsschicht ist der Bereich, in dem Anwendungen oder Prozesse Benutzerdaten erstellen und diese Daten an andere Anwendungen auf einem anderen oder demselben Host weitergeben. Die Anwendungen nehmen die Dienste der darunter liegenden Schichten in Anspruch, insbesondere die Transportschicht, die zuverlässige oder unzuverlässige Leitungen zu anderen Prozessen bereitstellt. Die Kommunikationspartner werden durch die Anwendungsarchitektur charakterisiert, z. B. durch das Client-Server-Modell und Peer-to-Peer-Netzwerke. Dies ist die Schicht, in der alle Anwendungsprotokolle wie SMTP, FTP, SSH, HTTP arbeiten. Prozesse werden über Ports angesprochen, die im Wesentlichen Dienste darstellen.
  • Die Transportschicht führt die Host-to-Host-Kommunikation entweder im lokalen Netz oder in durch Router getrennten Fernnetzen durch. Sie bietet einen Kanal für den Kommunikationsbedarf von Anwendungen. UDP ist das grundlegende Protokoll der Transportschicht, das einen unzuverlässigen, verbindungslosen Datagrammdienst bereitstellt. Das Transmission Control Protocol sorgt für die Flusskontrolle, den Verbindungsaufbau und die zuverlässige Übertragung von Daten.
  • Die Internetschicht tauscht Datagramme über Netzgrenzen hinweg aus. Sie bietet eine einheitliche Netzwerkschnittstelle, die die tatsächliche Topologie (Aufbau) der zugrunde liegenden Netzwerkverbindungen verbirgt. Sie ist daher auch die Schicht, die das Internetworking etabliert. In der Tat definiert und etabliert sie das Internet. Diese Schicht definiert die Adressierungs- und Routing-Strukturen, die für die TCP/IP-Protokollsuite verwendet werden. Das wichtigste Protokoll in diesem Bereich ist das Internet-Protokoll, das IP-Adressen definiert. Seine Funktion bei der Leitweglenkung besteht darin, Datagramme zum nächsten Host zu transportieren, der als IP-Router fungiert und die Verbindung zu einem Netz hat, das näher am endgültigen Datenziel liegt.
  • Die Verbindungsschicht definiert die Vernetzungsmethoden im Rahmen der lokalen Netzverbindung, über die Hosts ohne zwischengeschaltete Router kommunizieren. Zu dieser Schicht gehören die Protokolle, die zur Beschreibung der lokalen Netztopologie verwendet werden, sowie die Schnittstellen, die für die Übertragung von Datagrammen der Internet-Schicht zu den benachbarten Hosts erforderlich sind.

Verbindungsschicht

Die Protokolle der Verbindungsschicht arbeiten im Rahmen der lokalen Netzverbindung, an die ein Host angeschlossen ist. Dieses System wird in der TCP/IP-Sprache als Link bezeichnet und ist die unterste Komponentenschicht der Suite. Der Link umfasst alle Hosts, die ohne Umweg über einen Router erreichbar sind. Die Größe des Links wird also durch die Hardware des Netzwerks bestimmt. Im Prinzip ist TCP/IP hardwareunabhängig und kann auf praktisch jeder Link-Layer-Technologie implementiert werden. Dazu gehören nicht nur Hardware-Implementierungen, sondern auch virtuelle Verbindungsschichten wie virtuelle private Netze und Netzwerktunnel.

Die Verbindungsschicht wird verwendet, um Pakete zwischen den Schnittstellen der Internet-Schicht von zwei verschiedenen Hosts auf derselben Verbindung zu übertragen. Die Prozesse der Übertragung und des Empfangs von Paketen auf der Verbindungsschicht können sowohl im Gerätetreiber für die Netzwerkkarte als auch in der Firmware oder durch spezielle Chipsätze gesteuert werden. Diese führen Funktionen wie das Framing aus, um die Pakete der Internet-Schicht für die Übertragung vorzubereiten, und übertragen die Frames schließlich an die physikalische Schicht und über ein Übertragungsmedium. Das TCP/IP-Modell enthält Spezifikationen für die Übersetzung der im Internet-Protokoll verwendeten Netzwerkadressierungsmethoden in Adressen der Verbindungsschicht, wie z. B. MAC-Adressen (Media Access Control). Alle anderen Aspekte unterhalb dieser Ebene werden jedoch implizit vorausgesetzt und sind im TCP/IP-Modell nicht explizit definiert.

Die Verbindungsschicht im TCP/IP-Modell hat entsprechende Funktionen in Schicht 2 des OSI-Modells.

Internet-Schicht

Internetworking erfordert das Senden von Daten vom Quellnetz zum Zielnetz. Dieser Vorgang wird als Routing bezeichnet und wird durch die Adressierung und Identifizierung von Hosts mit Hilfe des hierarchischen IP-Adressierungssystems unterstützt. Die Internet-Schicht bietet eine unzuverlässige Datagramm-Übertragungsmöglichkeit zwischen Hosts, die sich in potenziell unterschiedlichen IP-Netzen befinden, indem sie Datagramme an einen geeigneten Next-Hop-Router zur Weiterleitung an das Ziel weiterleitet. Die Internetschicht hat die Aufgabe, Pakete über potenziell mehrere Netze hinweg zu senden. Mit dieser Funktionalität ermöglicht die Internet-Schicht das Internetworking, also das Zusammenwirken verschiedener IP-Netze, und baut im Wesentlichen das Internet auf.

Die Internetschicht unterscheidet nicht zwischen den verschiedenen Protokollen der Transportschicht. IP überträgt Daten für eine Vielzahl von verschiedenen Protokollen der oberen Schicht. Diese Protokolle sind jeweils durch eine eindeutige Protokollnummer gekennzeichnet: Internet Control Message Protocol (ICMP) und Internet Group Management Protocol (IGMP) sind beispielsweise die Protokolle 1 und 2.

Das Internet-Protokoll ist die Hauptkomponente der Internet-Schicht und definiert zwei Adressierungssysteme, um Netzwerk-Hosts zu identifizieren und sie im Netz zu lokalisieren. Das ursprüngliche Adressensystem des ARPANET und seines Nachfolgers, des Internets, ist das Internet Protocol Version 4 (IPv4). Es verwendet eine 32-Bit-IP-Adresse und ist daher in der Lage, etwa vier Milliarden Hosts zu identifizieren. Diese Beschränkung wurde 1998 durch die Standardisierung von Internet Protocol Version 6 (IPv6) aufgehoben, das 128-Bit-Adressen verwendet. Die IPv6-Produktionsimplementierungen kamen etwa 2006 auf.

Transportschicht

Die Transportschicht richtet grundlegende Datenkanäle ein, die Anwendungen für den aufgabenspezifischen Datenaustausch nutzen. Die Schicht stellt Host-to-Host-Konnektivität in Form von End-to-End-Nachrichtenübertragungsdiensten her, die unabhängig vom zugrunde liegenden Netz und unabhängig von der Struktur der Nutzdaten und der Logistik des Informationsaustauschs sind. Die Konnektivität auf der Transportschicht kann entweder als verbindungsorientiert, implementiert in TCP, oder als verbindungslos, implementiert in UDP, eingestuft werden. Die Protokolle in dieser Schicht können Fehlerkontrolle, Segmentierung, Flusskontrolle, Staukontrolle und Anwendungsadressierung (Portnummern) bieten.

Um prozessspezifische Übertragungskanäle für Anwendungen bereitzustellen, führt die Schicht das Konzept des Netzwerkports ein. Dabei handelt es sich um ein nummeriertes logisches Konstrukt, das speziell für jeden der von einer Anwendung benötigten Kommunikationskanäle zugewiesen wird. Für viele Arten von Diensten wurden diese Portnummern standardisiert, so dass Client-Computer bestimmte Dienste eines Server-Computers ansprechen können, ohne dass eine Diensterkennung oder Verzeichnisdienste erforderlich sind.

Da IP nur eine Best-Effort-Zustellung bietet, bieten einige Protokolle der Transportschicht Zuverlässigkeit.

TCP ist ein verbindungsorientiertes Protokoll, das zahlreiche Zuverlässigkeitsaspekte bei der Bereitstellung eines zuverlässigen Bytestroms berücksichtigt:

  • die Daten kommen in der richtigen Reihenfolge an
  • die Daten weisen minimale Fehler auf (d. h. Korrektheit)
  • doppelte Daten werden verworfen
  • verlorene oder verworfene Pakete werden erneut gesendet
  • beinhaltet Staukontrolle

Das neuere Stream Control Transmission Protocol (SCTP) ist ebenfalls ein zuverlässiger, verbindungsorientierter Transportmechanismus. Es ist nachrichtenstromorientiert, nicht wie TCP bytestromorientiert, und bietet mehrere Ströme, die über eine einzige Verbindung gemultiplext werden. Es bietet auch Multihoming-Unterstützung, bei der ein Verbindungsende durch mehrere IP-Adressen repräsentiert werden kann (die mehrere physische Schnittstellen darstellen), so dass die Verbindung nicht unterbrochen wird, wenn eine ausfällt. Es wurde ursprünglich für Telefonieanwendungen entwickelt (um SS7 über IP zu transportieren).

Zuverlässigkeit kann auch erreicht werden, indem IP über ein zuverlässiges Datenübertragungsprotokoll wie das High-Level Data Link Control (HDLC) läuft.

Das User Datagram Protocol (UDP) ist ein verbindungsloses Datagrammprotokoll. Wie IP ist es ein unzuverlässiges Best-Effort-Protokoll. Die Zuverlässigkeit wird durch Fehlererkennung mit Hilfe eines Prüfsummenalgorithmus gewährleistet. UDP wird in der Regel für Anwendungen wie das Streaming von Medien (Audio, Video, Voice over IP usw.) verwendet, bei denen die pünktliche Ankunft wichtiger ist als die Zuverlässigkeit, oder für einfache Abfrage-/Antwort-Anwendungen wie DNS-Abfragen, bei denen der Aufwand für den Aufbau einer zuverlässigen Verbindung unverhältnismäßig groß ist. Das Echtzeit-Transportprotokoll (RTP) ist ein Datagrammprotokoll, das über UDP verwendet wird und für Echtzeitdaten wie das Streaming von Medien konzipiert ist.

Die Anwendungen an einer bestimmten Netzwerkadresse werden durch ihren TCP- oder UDP-Port unterschieden. Konventionell sind bestimmte bekannte Ports mit bestimmten Anwendungen verbunden.

Die Transport- oder Host-to-Host-Schicht des TCP/IP-Modells entspricht in etwa der vierten Schicht des OSI-Modells, auch Transportschicht genannt.

QUIC entwickelt sich immer mehr zu einem alternativen Transportprotokoll. Obwohl es technisch gesehen über UDP-Pakete übertragen wird, soll es im Vergleich zu TCP eine verbesserte Transportkonnektivität bieten. HTTP/3 funktioniert ausschließlich über QUIC.

Anwendungsschicht

Die Anwendungsschicht umfasst die Protokolle, die von den meisten Anwendungen zur Bereitstellung von Benutzerdiensten oder zum Austausch von Anwendungsdaten über die von den Protokollen der unteren Ebene aufgebauten Netzverbindungen verwendet werden. Dazu können auch einige grundlegende Netzunterstützungsdienste wie Routing-Protokolle und Host-Konfiguration gehören. Beispiele für Protokolle der Anwendungsschicht sind das Hypertext Transfer Protocol (HTTP), das File Transfer Protocol (FTP), das Simple Mail Transfer Protocol (SMTP) und das Dynamic Host Configuration Protocol (DHCP). Die gemäß den Protokollen der Anwendungsschicht kodierten Daten werden in Protokolleinheiten der Transportschicht (z. B. TCP-Streams oder UDP-Datagramme) eingekapselt, die wiederum Protokolle der unteren Schicht verwenden, um die eigentliche Datenübertragung durchzuführen.

Das TCP/IP-Modell berücksichtigt nicht die Besonderheiten der Formatierung und Präsentation von Daten und definiert keine zusätzlichen Schichten zwischen der Anwendungs- und der Transportschicht wie im OSI-Modell (Präsentations- und Sitzungsschicht). Solche Funktionen sind nach dem TCP/IP-Modell Sache von Bibliotheken und Anwendungsprogrammierschnittstellen. Die Anwendungsschicht im TCP/IP-Modell wird oft mit einer Kombination aus der fünften (Sitzungsschicht), sechsten (Darstellungsschicht) und siebten (Anwendungsschicht) Schicht des OSI-Modells verglichen.

Protokolle der Anwendungsschicht sind oft mit bestimmten Client-Server-Anwendungen verbunden, und für gängige Dienste sind von der Internet Assigned Numbers Authority (IANA) bekannte Portnummern reserviert. So verwendet beispielsweise das HyperText Transfer Protocol den Server-Port 80 und Telnet den Server-Port 23. Clients, die sich mit einem Dienst verbinden, verwenden in der Regel ephemere Ports, d. h. Portnummern, die nur für die Dauer der Transaktion zufällig oder aus einem bestimmten, in der Anwendung konfigurierten Bereich zugewiesen werden.

Auf der Anwendungsschicht unterscheidet das TCP/IP-Modell zwischen Benutzerprotokollen und Unterstützungsprotokollen. Unterstützungsprotokolle stellen Dienste für ein System der Netzinfrastruktur bereit. Benutzerprotokolle werden für die eigentlichen Benutzeranwendungen verwendet. FTP ist zum Beispiel ein Benutzerprotokoll und DNS ist ein Unterstützungsprotokoll.

Obwohl die Anwendungen in der Regel die Schlüsseleigenschaften der Transportschichtverbindung kennen, wie z. B. die IP-Adressen der Endpunkte und die Portnummern, behandeln die Protokolle der Anwendungsschicht die Protokolle der Transportschicht (und der darunter liegenden Schichten) in der Regel als Black Boxes, die eine stabile Netzverbindung für die Kommunikation bereitstellen. Die Transportschicht und die darunter liegenden Schichten kümmern sich nicht um die Besonderheiten der Anwendungsschichtprotokolle. Router und Switches untersuchen in der Regel nicht den gekapselten Datenverkehr, sondern stellen lediglich einen Kanal für ihn bereit. Einige Firewall- und Bandbreitendrosselungsanwendungen verwenden jedoch Deep Packet Inspection, um Anwendungsdaten zu interpretieren. Ein Beispiel hierfür ist das Resource Reservation Protocol (RSVP). Auch für Anwendungen, die von NAT betroffen sind, ist es manchmal notwendig, die Nutzdaten der Anwendung zu berücksichtigen.

Schichtnamen und Anzahl der Schichten in der Literatur

Die folgende Tabelle zeigt verschiedene Netzwerkmodelle. Die Anzahl der Schichten variiert zwischen drei und sieben.

RFC 1122, Internet STD 3 (1989) Cisco-Akademie Kurose, Forouzan Comer, Kozierok Stallings Tanenbaum Arpanet-Referenzmodell (RFC 871) OSI-Modell
Vier Schichten Vier Schichten Fünf Schichten Vier+eine Schicht Fünf Schichten Fünf Schichten Drei Schichten Sieben Schichten
"Internet-Modell" "Internet-Modell" "Fünf-Schichten-Internet-Modell" oder "TCP/IP-Protokollsuite". "TCP/IP 5-Schichten-Referenzmodell" "TCP/IP-Modell" "TCP/IP 5-Schichten-Referenzmodell" "Arpanet-Referenzmodell" OSI-Modell
Anwendung Anwendung Anwendung Anwendung Anwendung Anwendung Anwendung/Prozess Anwendung
Darstellung
Sitzung
Transport Transport Transport Transport Host-zu-Host oder Transport Transport Host-zu-Host Transport
Internet Internet-Netzwerk Netzwerk Internet Internet Internet Netzwerk
Verbindung Netzschnittstelle Datenverbindung Datenverbindung (Netzwerkschnittstelle) Netzzugang Datenverbindung Netzschnittstelle Datenverbindung
Physikalisch (Hardware) Physikalisch Physikalisch Physikalisch

Einige der Netzwerkmodelle stammen aus Lehrbüchern, bei denen es sich um sekundäre Quellen handelt, die mit der Absicht von RFC 1122 und anderen primären Quellen der IETF in Konflikt stehen können.

Vergleich von TCP/IP und OSI-Schichten

Die drei obersten Schichten im OSI-Modell, d. h. die Anwendungsschicht, die Darstellungsschicht und die Sitzungsschicht, werden im TCP/IP-Modell, das nur eine Anwendungsschicht über der Transportschicht hat, nicht gesondert unterschieden. Obwohl einige reine OSI-Protokollanwendungen, wie X.400, diese auch kombiniert haben, gibt es keine Anforderung, dass ein TCP/IP-Protokollstapel eine monolithische Architektur oberhalb der Transportschicht aufweisen muss. Das NFS-Anwendungsprotokoll läuft beispielsweise über das Darstellungsprotokoll External Data Representation (XDR), das wiederum über ein Protokoll namens Remote Procedure Call (RPC) läuft. RPC sorgt für eine zuverlässige Übertragung von Datensätzen, so dass es den Best-Effort-UDP-Transport sicher nutzen kann.

Verschiedene Autoren haben das TCP/IP-Modell unterschiedlich interpretiert und sind sich uneinig darüber, ob die Verbindungsschicht oder irgendein Aspekt des TCP/IP-Modells die OSI-Schicht 1 (physikalische Schicht) abdeckt oder ob TCP/IP davon ausgeht, dass eine Hardwareschicht unterhalb der Verbindungsschicht existiert.

Mehrere Autoren haben versucht, die Schichten 1 und 2 des OSI-Modells in das TCP/IP-Modell zu integrieren, da diese in modernen Normen (z. B. von IEEE und ITU) häufig genannt werden. Dies führt häufig zu einem Modell mit fünf Schichten, wobei die Verbindungsschicht oder Netzzugangsschicht in die Schichten 1 und 2 des OSI-Modells aufgeteilt ist.

Bei der Entwicklung von IETF-Protokollen wird keine strenge Schichtung angestrebt. Einige ihrer Protokolle lassen sich nicht eindeutig in das OSI-Modell einordnen, auch wenn in RFCs manchmal darauf verwiesen wird und oft die alten OSI-Schichtennummern verwendet werden. Die IETF hat wiederholt erklärt, dass die Entwicklung des Internet-Protokolls und der Internet-Architektur nicht OSI-konform sein soll. RFC 3439, der sich auf die Internet-Architektur bezieht, enthält einen Abschnitt mit dem Titel: "Layering Considered Harmful".

So werden beispielsweise die Sitzungs- und Darstellungsschicht der OSI-Suite als Teil der Anwendungsschicht der TCP/IP-Suite betrachtet. Die Funktionalität der Sitzungsschicht ist in Protokollen wie HTTP und SMTP zu finden und wird in Protokollen wie Telnet und dem Session Initiation Protocol (SIP) deutlicher. Die Funktionalität der Sitzungsschicht wird auch durch die Portnummerierung der TCP- und UDP-Protokolle realisiert, die zur Transportschicht der TCP/IP-Suite gehören. Funktionen der Präsentationsschicht werden in den TCP/IP-Anwendungen mit dem MIME-Standard im Datenaustausch realisiert.

Ein weiterer Unterschied besteht in der Behandlung von Routing-Protokollen. Das OSI-Routing-Protokoll IS-IS gehört zur Netzwerkschicht und ist nicht auf CLNS angewiesen, um Pakete von einem Router zu einem anderen zu transportieren, sondern definiert seine eigene Schicht-3-Kapselung. Im Gegensatz dazu werden OSPF, RIP, BGP und andere von der IETF definierte Routing-Protokolle über IP transportiert, und für das Senden und Empfangen von Routing-Protokollpaketen fungieren Router als Hosts. Infolgedessen werden in RFC 1812 Routing-Protokolle in die Anwendungsschicht aufgenommen. Einige Autoren, wie z. B. Tanenbaum in Computer Networks, beschreiben Routing-Protokolle in der gleichen Schicht wie IP und begründen dies damit, dass Routing-Protokolle die Entscheidungen des Weiterleitungsprozesses der Router beeinflussen.

IETF-Protokolle können rekursiv gekapselt werden, wie Tunnelling-Protokolle wie Generic Routing Encapsulation (GRE) zeigen. GRE verwendet denselben Mechanismus, den OSI für das Tunneln auf der Netzwerkschicht einsetzt.

Internetschicht (entspricht OSI-Schicht 3)

  • IP (Internet Protocol) – Datenpaket-Übertragung (verbindungslos)
  • IPsec (Internet Protocol Security) – Sichere Datenpaket-Übertragung (verbindungslos)
  • ICMP (Internet Control Message Protocol) – Kontrollnachrichten (zum Beispiel Fehlermeldungen), Teil jeder IP-Implementierung
  • IGRP (Interior Gateway Routing Protocol) – Informationsaustausch zwischen Routern (Distanzvektor) (veraltet – wird ersetzt durch EIGRP)
  • EIGRP (Enhanced Interior Gateway Routing Protocol) – Informationsaustausch zwischen Routern via IP
  • OSPF (Open Shortest Path First) – Informationsaustausch zwischen Routern (Linkzustand) via IP
  • BGP (Border Gateway Protocol) – Informationsaustausch zwischen autonomen Systemen im Internet (Pfadvektor) via TCP
  • RIP (Routing Information Protocol) – Informationsaustausch zwischen Routern (Distanzvektor) via UDP
  • IGMP (Internet Group Management) – Organisation von Multicast-Gruppen, Bestandteil von IP auf allen Hosts, die den Empfang von IP-Multicasts unterstützen

Beispiel

Aufbau eines Ethernet-Frames mit maximalen IPv4- / TCP-Daten
OSI-
Schicht
TCP/IP-Schicht Struktur
4 Transport TCP-Header Nutzlast (1460 bytes)
3 Internet IP-Header Nutzlast (1480 bytes)
2 Netzzugang MAC-Empfänger MAC-Absender 802.1Q-Tag (opt.) EtherType Nutzlast (1500 bytes) Frame Check Sequence
1 Präambel Start of Frame Nutzlast (1518/1522 bytes) Interframe Gap
Oktette 7 1 6 6 (4) 2 20 20 ≤1460 4 12

Protokollstapel

Transportschicht (entspricht OSI-Schicht 4)

  • TCP (Transmission Control Protocol) – Übertragung von Datenströmen (verbindungsorientiert, zuverlässig)
  • UDP (User Datagram Protocol) – Übertragung von Datenpaketen (verbindungslos, unzuverlässig, geringer Overhead)
  • SCTP (Stream Control Transmission Protocol) – Transportprotokoll
  • TLS (Transport Layer Security, ehemals 'Secure Socket Layer [SSL]) – Erweiterung von TCP um Verschlüsselung
  • DTLS (Datagram Transport Layer Security) – Auf TLS basierendes Verschlüsselungsprotokoll, welches auch über zustandslose Protokolle wie UDP übertragen werden kann

Netzzugangsschicht (entspricht OSI-Schicht 1–2)

  • Ethernet – Netzwerkstandard IEEE 802.3
  • WLAN – Netzwerkstandard IEEE 802.11
  • PPP – Point-to-Point Protokoll, RFC 1661
  • Token Bus – Netzwerkstandard IEEE 802.4
  • Token Ring – Netzwerkstandard IEEE 802.5
  • FDDI – Fiber Distributed Data Interface
  • L2TP (Layer 2 Tunneling Protocol)
  • RARP (Reverse Address Resolution Protocol) – Adressumsetzung zwischen Geräte- (MAC) und IP-Adressen (veraltet – wird ersetzt durch BOOTP)
  • IPoAC (Internet Protocol over Avian Carriers) – Internet-Protokoll mittels fliegender Träger – RFC 1149