Das TCP/IP-Modell, auch TCP/IP-Protokollstapel oder TCP/IP-Protokollfamilie genannt, bildet die technische Grundlage des modernen Internets und weltweiter Netzwerkkommunikation. Im Gegensatz zum theoretisch orientierten OSI-Referenzmodell entstand TCP/IP aus praktischen Anforderungen der frühen Internetentwicklung im Rahmen des ARPANET-Projekts. Sein schlankes, vierschichtiges Design hat sich aufgrund seiner Flexibilität, Skalierbarkeit und Anpassungsfähigkeit als überaus erfolgreich erwiesen.
Das TCP/IP-Modell organisiert Netzwerkprotokolle und -dienste in vier funktionale Schichten, die zusammen eine vollständige Kommunikationsinfrastruktur bilden. Diese Architektur ermöglicht es, dass verschiedene Geräte unabhängig von ihrer Hardware, ihrem Betriebssystem oder physischen Verbindung miteinander kommunizieren können – ein Prinzip, das für das globale Internet unverzichtbar ist.
In diesem Kapitel betrachten wir jede der vier Schichten im Detail, ihre spezifischen Aufgaben, wichtigsten Protokolle und deren Zusammenspiel. Wir werden verstehen, wie dieses scheinbar einfache Schichtenmodell die enorme Komplexität moderner Netzwerkkommunikation bewältigt und warum es sich gegen konkurrierende Modelle durchgesetzt hat.
Die Netzzugangsschicht, manchmal auch als Netzwerkschnittstellen- oder Linkschicht bezeichnet, bildet die unterste Ebene des TCP/IP-Modells. Sie entspricht konzeptionell den beiden untersten Schichten des OSI-Modells: der physikalischen Schicht und der Sicherungsschicht.
Die Netzzugangsschicht erfüllt zwei grundlegende Funktionen:
Physische Verbindung: Sie definiert, wie Bits über das physische Medium übertragen werden – sei es Kupferkabel, Glasfaser oder drahtlose Verbindungen. Dies umfasst elektrische Signale, Steckverbinder, Übertragungsraten, Modulationsverfahren und weitere physikalische Aspekte.
Datenpaketbildung und Medienzugriff: Sie organisiert Bits in größere Einheiten (Frames), kümmert sich um die Adressierung auf physischer Ebene (MAC-Adressen) und regelt den Zugriff auf das Übertragungsmedium, besonders in geteilten Medien wie drahtlosen Netzwerken.
Diese Schicht agiert als Bindeglied zwischen den software-definierten Protokollen der höheren Schichten und der physischen Hardware. Sie abstrahiert die Komplexität der unterschiedlichen Übertragungsmedien und -technologien, sodass die höheren Schichten unabhängig vom verwendeten Medium arbeiten können.
Auf der Netzzugangsschicht finden wir eine große Vielfalt an Technologien, da sie direkt mit der physischen Übertragung verbunden ist:
Ethernet (IEEE 802.3): Die dominierende Technologie für lokale Netzwerke, die verschiedene Geschwindigkeiten (von 10 Mbit/s bis zu 400 Gbit/s) und Medien (Twisted-Pair-Kabel, Glasfaser) unterstützt. Ethernet definiert sowohl physikalische Aspekte als auch MAC-Adressierung und Frameformate.
WLAN (IEEE 802.11): Setzt Standards für drahtlose lokale Netzwerke mit verschiedenen Varianten (a/b/g/n/ac/ax), die unterschiedliche Frequenzen, Bandbreiten und Übertragungstechniken nutzen.
PPP (Point-to-Point Protocol): Ein Protokoll für Direktverbindungen zwischen zwei Netzwerkknoten, historisch wichtig für Einwahlverbindungen, heute noch in verschiedenen WAN-Technologien relevant.
DSL (Digital Subscriber Line): Ermöglicht Breitband-Internetverbindungen über herkömmliche Telefonleitungen durch Nutzung höherer Frequenzbereiche.
DOCSIS (Data Over Cable Service Interface Specification): Standard für die Datenübertragung über Kabelfernsehnetze.
Fiber Channel: Eine Hochgeschwindigkeitstechnologie, häufig in Storage Area Networks (SANs) eingesetzt.
Auf dieser Schicht operieren mehrere wichtige Netzwerkgeräte:
Netzwerkkarten (NICs): Ermöglichen die Verbindung eines Computers mit dem Netzwerk, haben eine eindeutige MAC-Adresse und wandeln Daten zwischen Computer und Netzwerk um.
Repeater und Hubs: Verstärken Signale bzw. verteilen sie an alle angeschlossenen Geräte (bei Hubs).
Bridges: Verbinden verschiedene Netzwerksegmente auf Basis von MAC-Adressen und können lokalen Traffic filtern.
Switches: Moderne Nachfolger von Hubs, die Traffic intelligent basierend auf MAC-Adressen weiterleiten, was die Effizienz erhöht und separate Kollisionsdomänen schafft.
Ein zentrales Konzept auf dieser Schicht ist die Kapselung von Daten in Frames. Ein typischer Ethernet-Frame enthält:
Diese Struktur kann je nach Technologie variieren, erfüllt aber immer die gleiche Grundfunktion: die zuverlässige Übertragung von Daten über das physische Medium.
Die Internetschicht, die zweite Schicht des TCP/IP-Modells, entspricht konzeptionell der Vermittlungsschicht (Network Layer) des OSI-Modells. Sie ist das Herzstück des TCP/IP-Protokollstapels und ermöglicht das Routing über verschiedene Netzwerke hinweg – die Grundlage für das globale Internet.
Die Internetschicht übernimmt vier Hauptfunktionen:
Adressierung: Sie verwendet IP-Adressen (IPv4 oder IPv6), um Geräte weltweit eindeutig zu identifizieren, unabhängig von ihrer physischen Adresse.
Routing: Sie bestimmt den besten Pfad für Datenpakete durch verschiedene Netzwerke zum Ziel, auch über viele Zwischenstationen hinweg.
Fragmentierung und Reassemblierung: Sie teilt große Datenpakete in kleinere Fragmente auf, wenn diese die Maximum Transmission Unit (MTU) eines Netzwerks überschreiten, und setzt sie am Ziel wieder zusammen.
Logische Adressierung: Sie schafft eine Abstraktionsschicht über der physischen Adressierung, sodass Routing unabhängig von der darunter liegenden Netzwerktechnologie funktioniert.
Diese Schicht macht das eigentliche “Inter-Networking” – die Verbindung verschiedener Netzwerke zu einem großen Netzwerk – möglich und schafft damit die Grundlage für das globale Internet.
Die Internetschicht umfasst mehrere zentrale Protokolle:
IP (Internet Protocol): Das fundamentale Protokoll dieser Schicht, das die Adressierung und das Routing von Datenpaketen übernimmt. Es existiert in zwei Hauptversionen:
ICMP (Internet Control Message Protocol): Ermöglicht Diagnose und Fehlermeldungen im Netzwerk. ICMP wird beispielsweise von Tools wie Ping und Traceroute verwendet.
ARP (Address Resolution Protocol): Löst IP-Adressen in MAC-Adressen auf, ein wesentlicher Schritt für die Kommunikation zwischen IP und der Netzzugangsschicht.
RARP (Reverse Address Resolution Protocol): Historisches Protokoll, das MAC-Adressen in IP-Adressen auflöst; wurde größtenteils durch DHCP und BOOTP ersetzt.
IGMP (Internet Group Management Protocol): Verwaltet die Mitgliedschaft in Multicast-Gruppen für Szenarien, in denen Daten an mehrere Empfänger gleichzeitig gesendet werden sollen.
Die IP-Adressierung ist ein zentrales Konzept dieser Schicht:
IPv4-Adressen: 32-Bit-Adressen, üblicherweise in der Notation mit vier Dezimalzahlen dargestellt (z.B. 192.168.1.1).
IPv6-Adressen: 128-Bit-Adressen, in Hexadezimalnotation dargestellt (z.B. 2001:0db8:85a3:0000:0000:8a2e:0370:7334).
Subnetting: Ermöglicht die Unterteilung von Netzwerken in kleinere, verwaltbare Einheiten und verbessert die Effizienz der Adressnutzung und des Routings.
CIDR (Classless Inter-Domain Routing): Eine flexiblere Methode zur IP-Adresszuweisung als das ältere klassenbasierte System.
Das Routing auf dieser Schicht wird durch komplexe Algorithmen und Protokolle gesteuert:
Routing-Tabellen: Enthalten Informationen darüber, wohin Pakete für bestimmte Zielnetzwerke gesendet werden sollen.
Routing-Protokolle: Dynamische Protokolle wie OSPF, BGP, RIP und statisches Routing bestimmen, wie Routing-Tabellen aufgebaut und aktualisiert werden.
Ein IP-Paket (auch Datagramm genannt) besteht aus:
Auf dieser Schicht operieren vorrangig Router, die zentrale Netzwerkgeräte für das Internet sind:
Router: Leiten Pakete zwischen verschiedenen Netzwerken basierend auf IP-Adressen weiter. Sie treffen Routing-Entscheidungen und verbinden verschiedene Netzwerktechnologien.
Layer-3-Switches: Kombinieren die Funktionalität von Switches (Layer 2) mit Routing-Fähigkeiten.
Die Transportschicht bildet die dritte Schicht des TCP/IP-Modells und entspricht der gleichnamigen Schicht im OSI-Modell. Sie stellt eine Ende-zu-Ende-Kommunikation zwischen Anwendungen auf verschiedenen Geräten sicher und bietet verschiedene Servicequalitäten.
Die Transportschicht erfüllt mehrere kritische Funktionen:
Ende-zu-Ende-Kommunikation: Sie etabliert eine logische Verbindung zwischen Prozessen auf verschiedenen Hosts, unabhängig von den darunter liegenden Netzwerken.
Multiplexing und Demultiplexing: Durch Ports können mehrere Anwendungen auf einem Host gleichzeitig kommunizieren.
Datenflusskontrolle: Reguliert die Datenübertragungsrate, um Überlastung zu vermeiden.
Fehlererkennung und -korrektur: Je nach Protokoll werden verschiedene Mechanismen zur Sicherstellung der Datenintegrität eingesetzt.
Segmentierung und Reassemblierung: Große Datenmengen werden in kleinere Segmente aufgeteilt und am Ziel wieder zusammengesetzt.
Die Transportschicht bietet zwei Hauptprotokolle mit unterschiedlichen Eigenschaften:
TCP ist ein verbindungsorientiertes, zuverlässiges Protokoll, das folgende Funktionen bietet:
Verbindungsaufbau und -abbau: Verwendet einen Drei-Wege-Handshake zum Verbindungsaufbau und einen Vier-Wege-Handshake zum Verbindungsabbau.
Zuverlässige Übertragung: Sichert die korrekte Zustellung aller Daten durch Bestätigungen (ACKs) und Neuübertragungen verlorener Pakete.
Sequenzierung: Nummeriert Segmente, um die richtige Reihenfolge am Ziel sicherzustellen.
Flusskontrolle: Verwendet ein Sliding-Window-Verfahren, um die Übertragungsrate an die Kapazität des Empfängers anzupassen.
Überlastkontrolle: Implementiert verschiedene Algorithmen (z.B. Slow Start, Congestion Avoidance), um Netzwerküberlastungen zu vermeiden.
Die TCP-Header-Struktur enthält wichtige Felder wie: - Quell- und Zielport - Sequenznummer - Bestätigungsnummer - Flags (SYN, ACK, FIN, RST usw.) - Fenstergröße - Prüfsumme - Dringlichkeitszeiger - Optionen
TCP wird für Anwendungen verwendet, die Zuverlässigkeit erfordern, wie Webbrowsing, E-Mail, Dateiübertragung und Fernanmeldung.
UDP ist ein verbindungsloses, einfaches Protokoll mit minimaler Funktionalität:
Keine Verbindungseinrichtung: Sendet Daten ohne vorherigen Handshake.
Keine Garantie für Zustellung: Bietet kein Acknowledgment oder Wiederholungsmechanismen.
Keine Reihenfolgegarantie: Segmente können in unterschiedlicher Reihenfolge ankommen.
Keine Fluss- oder Überlastkontrolle: Sendet Daten in der Geschwindigkeit, in der die Anwendung sie bereitstellt.
Die UDP-Header-Struktur ist wesentlich einfacher als bei TCP und enthält nur: - Quell- und Zielport - Länge - Prüfsumme
UDP wird für Anwendungen verwendet, bei denen Geschwindigkeit wichtiger ist als Zuverlässigkeit, wie Streaming-Medien, Online-Spiele, DNS-Anfragen und VoIP.
Neben TCP und UDP existieren weitere, speziellere Transportprotokolle:
SCTP (Stream Control Transmission Protocol): Bietet zuverlässige, nachrichtenorientierte Übertragung mit Multihoming-Unterstützung und ist besonders für Telekommunikationsanwendungen entwickelt.
DCCP (Datagram Congestion Control Protocol): Verbindet die leichtgewichtige Natur von UDP mit Überlastungskontrolle.
QUIC (Quick UDP Internet Connections): Ein modernes Protokoll, entwickelt von Google, das auf UDP aufbaut und verbesserte Latenz, Zuverlässigkeit und Multiplex-Fähigkeiten bietet. QUIC bildet die Grundlage für HTTP/3.
Ein entscheidendes Konzept der Transportschicht sind Ports, die es ermöglichen, verschiedene Anwendungen auf demselben Host zu adressieren:
Die Wahl zwischen TCP, UDP oder spezialisierten Protokollen hängt von den Anforderungen der Anwendung ab:
Die Entscheidung basiert typischerweise auf der Abwägung zwischen Zuverlässigkeit, Latenz und Overhead.
Die Anwendungsschicht bildet die oberste Schicht des TCP/IP-Modells und entspricht funktional den drei obersten Schichten des OSI-Modells (Sitzung, Darstellung und Anwendung). Sie stellt die Schnittstelle zwischen Netzwerkanwendungen und dem Rest des Protokollstapels dar.
Die Anwendungsschicht hat mehrere zentrale Aufgaben:
Bereitstellung von Netzwerkdiensten: Sie definiert Protokolle für spezifische Anwendungen wie Webbrowsing, E-Mail, Dateiübertragung usw.
Datenformatierung und -darstellung: Sie konvertiert Daten in standardisierte Formate für die Übertragung und wandelt sie beim Empfang wieder in anwendungsspezifische Formate um.
Sitzungsverwaltung: Sie etabliert, verwaltet und beendet Kommunikationssitzungen zwischen Anwendungen.
Benutzerauthentifizierung: Sie bietet Mechanismen zur Identitätsprüfung und Zugangskontrolle.
Im Gegensatz zum OSI-Modell fasst das TCP/IP-Modell alle anwendungsbezogenen Funktionen in einer einzigen Schicht zusammen, was die Implementierung vereinfacht und die Flexibilität erhöht.
Die Anwendungsschicht umfasst eine Vielzahl von Protokollen für unterschiedliche Zwecke:
Die Anwendungsschicht nutzt verschiedene Programmierschnittstellen (APIs) und Konzepte:
Socket API: Stellt eine einheitliche Schnittstelle für netzwerkbasierte Kommunikation bereit. Die Berkeley Socket API ist die bekannteste Implementierung.
Client-Server-Modell: Die meisten Anwendungsprotokolle basieren auf diesem Modell, bei dem Clients Anfragen an Server stellen, die diese Anfragen verarbeiten und beantworten.
Web APIs und RESTful Services: Moderne Webdienste nutzen häufig REST (Representational State Transfer) für die Kommunikation zwischen Systemen.
WebSockets: Ermöglichen echtzeitnahe, bidirektionale Kommunikation im Web mit geringerem Overhead als traditionelles HTTP.
Auf der Anwendungsschicht haben sich verschiedene Architekturmodelle entwickelt:
Client-Server: Die traditionelle Architektur, bei der zentralisierte Server Dienste für Clients bereitstellen.
Peer-to-Peer (P2P): Dezentrales Modell, bei dem jeder Teilnehmer sowohl Client- als auch Serverfunktionen übernehmen kann. Typische Beispiele sind Filesharing-Netzwerke und einige VoIP-Anwendungen.
Multi-Tier: Erweitert das Client-Server-Modell um zusätzliche Schichten, typischerweise Präsentations-, Anwendungs- und Datenschicht.
Microservices: Moderne Architektur, bei der komplexe Anwendungen aus kleinen, unabhängigen Diensten bestehen, die über Netzwerkprotokolle kommunizieren.
Auf der Anwendungsschicht werden Daten in verschiedenen Formaten dargestellt:
Plain Text: Einfacher, menschenlesbarer Text, oft mit spezifischer Formatierung (z.B. HTTP-Header).
HTML, XML, JSON: Strukturierte Formate für Daten und Dokumente, die sowohl maschinen- als auch menschenlesbar sind.
Binärformate: Effiziente, aber nicht menschenlesbare Formate für die Übertragung von Bildern, Videos, komprimierten Daten usw.
Verschlüsselte Daten: Durch TLS/SSL oder anwendungsspezifische Verschlüsselung geschützte Inhalte.
Das TCP/IP-Modell mit seinen vier Schichten bietet einen pragmatischen und effektiven Rahmen für Netzwerkkommunikation. Jede Schicht hat spezifische Verantwortlichkeiten und arbeitet mit den anderen Schichten zusammen, um eine Ende-zu-Ende-Kommunikation zu ermöglichen.
Wenn Daten von einer Anwendung gesendet werden, durchlaufen sie die Schichten von oben nach unten:
Anwendungsschicht: Erzeugt die zu übertragenden Daten in einem anwendungsspezifischen Format.
Transportschicht: Segmentiert die Daten, fügt Port-Informationen hinzu und bietet je nach gewähltem Protokoll (TCP/UDP) unterschiedliche Dienste.
Internetschicht: Fügt IP-Header mit Quell- und Zieladressen hinzu und kümmert sich um das Routing zum Zielnetzwerk.
Netzzugangsschicht: Wandelt IP-Pakete in Frames um, die über das physische Medium übertragen werden können, und fügt physische Adressierungsinformationen hinzu.
Beim Empfänger werden die Daten in umgekehrter Reihenfolge verarbeitet, wobei jede Schicht ihren Header entfernt und die Daten an die nächsthöhere Schicht weitergibt.
Dieser Prozess wird als Kapselung (beim Senden) und Dekapselung (beim Empfangen) bezeichnet:
Die Dateneinheiten haben je nach Schicht unterschiedliche Bezeichnungen: - Anwendungsschicht: Daten - Transportschicht: Segmente (TCP) oder Datagramme (UDP) - Internetschicht: Pakete - Netzzugangsschicht: Frames
Das schlanke, vierschichtige Design des TCP/IP-Modells bietet mehrere Vorteile:
Praktische Orientierung: Es wurde für reale Implementierungen entwickelt und ist daher pragmatischer als theoretische Modelle.
Flexibilität: Es erlaubt die Integration neuer Protokolle und Technologien ohne grundlegende Änderungen am Modell.
Interoperabilität: Es ermöglicht die Kommunikation zwischen verschiedenen Systemen, unabhängig von Hardware, Betriebssystem oder physischer Verbindung.
Skalierbarkeit: Es hat bewiesen, dass es vom kleinen LAN bis zum globalen Internet skalieren kann.
Modularität: Die klare Trennung der Schichten ermöglicht die unabhängige Entwicklung und Optimierung jeder Schicht.