Der TCP/IP-Protokollstapel bildet das Fundament des Internets und
moderner Netzwerkkommunikation. Während das Schichtenmodell die
konzeptionelle Struktur beschreibt, sind es die einzelnen Protokolle
innerhalb dieser Schichten, die die eigentliche Kommunikation
ermöglichen. Diese Protokolle stellen standardisierte Regeln und
Verfahren dar, die definieren, wie Daten formatiert, adressiert,
übertragen, geroutet und empfangen werden.
In diesem Kapitel betrachten wir die wichtigsten Protokolle jeder
Schicht des TCP/IP-Stacks im Detail. Wir untersuchen ihre spezifischen
Funktionen, Merkmale, Einsatzgebiete und ihr Zusammenspiel. Dieses
Wissen ist für IT-Fachleute unerlässlich, um Netzwerke effektiv zu
implementieren, zu verwalten und Probleme zu diagnostizieren.
Besonders interessant ist dabei zu verstehen, wie diese Protokolle
zusammenarbeiten, um komplexe Kommunikationsanforderungen zu erfüllen,
und wie sie sich im Laufe der Zeit weiterentwickelt haben, um neuen
Herausforderungen gerecht zu werden. Von den grundlegenden Protokollen,
die seit den Anfängen des Internets existieren, bis hin zu modernen
Entwicklungen, die die Zukunft der Netzwerkkommunikation prägen – alle
spielen eine entscheidende Rolle in unserem vernetzten digitalen
Ökosystem.
22.2 Protokolle der
Netzzugangsschicht
Die Netzzugangsschicht bildet die unterste Ebene des TCP/IP-Modells
und ist für die physische Übertragung von Daten zwischen direkt
verbundenen Geräten verantwortlich. Obwohl das TCP/IP-Modell diese
Schicht nicht detailliert spezifiziert und verschiedene Technologien
hier eingesetzt werden können, gibt es einige dominierende Protokolle
und Standards.
22.2.1 Ethernet (IEEE 802.3)
Ethernet ist zweifellos das wichtigste und am weitesten verbreitete
Protokoll der Netzzugangsschicht für lokale Netzwerke (LANs).
22.2.1.1 Funktionsweise und
Merkmale
CSMA/CD (Carrier Sense Multiple Access/Collision
Detection): Historisch verwendete Ethernet diesen Mechanismus
zur Mediensteuerung. Geräte prüfen, ob das Medium frei ist, bevor sie
senden, und erkennen Kollisionen, wenn zwei Geräte gleichzeitig
senden.
Switching: In modernen Netzwerken hat Switching
das ursprüngliche Shared-Medium-Konzept weitgehend ersetzt, wodurch
dedizierte Verbindungen zwischen Geräten hergestellt und Kollisionen
vermieden werden.
MAC-Adressen: Ethernet verwendet
48-Bit-MAC-Adressen (Media Access Control) zur Identifizierung von
Geräten auf der physischen Ebene. Diese werden oft in hexadezimaler
Notation dargestellt (z.B. 00:1A:2B:3C:4D:5E).
Frame-Format: Ein Ethernet-Frame enthält:
Präambel und Start Frame Delimiter (8 Bytes)
Ziel- und Quell-MAC-Adresse (je 6 Bytes)
Typ/Längenfeld (2 Bytes)
Datenfeld (46-1500 Bytes)
Frame Check Sequence (4 Bytes) zur Fehlererkennung
22.2.1.2 Ethernet-Varianten
Ethernet hat sich über die Jahre kontinuierlich weiterentwickelt, um
höhere Geschwindigkeiten und neue Anwendungsfälle zu unterstützen:
10BASE-T: 10 Mbit/s über Twisted-Pair-Kabel
100BASE-TX (Fast Ethernet): 100 Mbit/s
1000BASE-T (Gigabit Ethernet): 1 Gbit/s
10GBASE-T (10 Gigabit Ethernet): 10 Gbit/s
40GbE, 100GbE, 400GbE: Höhere Geschwindigkeiten für
Datacenter und Backbone-Netzwerke
Diese Standards unterscheiden sich nicht nur in der Geschwindigkeit,
sondern auch in den Anforderungen an Kabeltypen, maximale Distanzen und
Hardware-Spezifikationen.
22.2.2 WLAN (IEEE 802.11)
Wireless LAN oder Wi-Fi hat die Art und Weise, wie wir Netzwerke
nutzen, revolutioniert, indem es drahtlose Konnektivität ermöglicht.
22.2.2.1 Funktionsweise und
Merkmale
CSMA/CA (Carrier Sense Multiple Access/Collision
Avoidance): Im Gegensatz zu Ethernet verwendet WLAN
Kollisionsvermeidung statt Kollisionserkennung, da Kollisionen in
drahtlosen Medien schwerer zu erkennen sind.
Frequenzbänder: WLAN operiert hauptsächlich in
den 2,4-GHz- und 5-GHz-Frequenzbändern (neuere Standards auch im
6-GHz-Band).
Betriebsmodi:
Infrastructure Mode: Clients verbinden sich über einen Access
Point
Ad-hoc Mode: Direkte Verbindung zwischen Geräten
Mesh-Netzwerke: Multiple Access Points bilden ein selbstheilendes
Netzwerk
Sicherheit: Entwicklung von WEP (unsicher) über
WPA zu WPA2 und WPA3 mit fortschrittlicher Verschlüsselung.
22.2.2.2 WLAN-Standards
Die IEEE 802.11-Familie umfasst zahlreiche Standards:
802.11b: 11 Mbit/s im 2,4-GHz-Band
802.11a: 54 Mbit/s im 5-GHz-Band
802.11g: 54 Mbit/s im 2,4-GHz-Band
802.11n (Wi-Fi 4): Bis zu 600 Mbit/s mit
MIMO-Technologie
802.11ac (Wi-Fi 5): Bis zu mehreren Gbit/s im
5-GHz-Band mit MU-MIMO
802.11ax (Wi-Fi 6/6E): Erhöhte Effizienz und
Leistung in dicht besiedelten Umgebungen, Unterstützung für 6-GHz-Band
in 6E
Jeder neue Standard bringt Verbesserungen in Bezug auf
Geschwindigkeit, Reichweite, Kapazität und Energieeffizienz.
22.2.3 PPP (Point-to-Point
Protocol)
PPP ist ein Protokoll für Direktverbindungen zwischen zwei
Netzwerkknoten und war besonders wichtig in der Ära der
Einwahl-Internetverbindungen.
22.2.3.1 Funktionsweise und
Merkmale
Verbindungsaufbau: PPP handelt
Verbindungsparameter aus und authentifiziert Benutzer.
Multiplexing: Unterstützt multiple
Netzwerkprotokolle über dieselbe Verbindung.
Fehlerkorrektur: Erkennt und verwirft
beschädigte Frames.
Komponenten:
LCP (Link Control Protocol): Aushandeln und Konfigurieren der
Verbindung
NCP (Network Control Protocol): Konfiguration verschiedener
Netzwerkprotokolle
Authentifizierungsprotokolle: PAP, CHAP, EAP
22.2.3.2 Moderne Anwendungen
Obwohl traditionelle Einwahlverbindungen selten geworden sind, findet
PPP noch Anwendung in:
PPPoE (PPP over Ethernet): Verwendet für viele
DSL-Verbindungen
PPPoA (PPP over ATM): In einigen älteren
DSL-Implementierungen
L2TP (Layer 2 Tunneling Protocol): Für
VPN-Verbindungen, oft in Kombination mit IPsec
22.2.4 Weitere Protokolle der
Netzzugangsschicht
ARP (Address Resolution Protocol): Obwohl oft
der Internetschicht zugeordnet, operiert ARP an der Schnittstelle
zwischen Netzwerkzugangs- und Internetschicht. Es übersetzt IP-Adressen
in MAC-Adressen, was für die Zustellung von Datenpaketen in lokalen
Netzwerken essentiell ist.
ATM (Asynchronous Transfer Mode): Ein
zellenbasiertes Switching-Protokoll, das in Backbone-Netzwerken und für
einige Breitbandtechnologien verwendet wurde.
MPLS (Multiprotocol Label Switching): Operiert
zwischen Schicht 2 und 3 und bietet verbesserte Routing-Geschwindigkeit
und Traffic Engineering durch Labeling von Paketen.
Frame Relay: Ein WAN-Protokoll für die
effiziente Datenübertragung über lange Distanzen, inzwischen
größtenteils durch neuere Technologien ersetzt.
22.3 Protokolle der
Internetschicht
Die Internetschicht ist für die logische Adressierung und das Routing
von Datenpaketen über verschiedene Netzwerke hinweg verantwortlich. Hier
finden wir einige der fundamentalsten Protokolle des Internets.
22.3.1 IP (Internet Protocol)
IP ist das zentrale Protokoll der Internetschicht und bildet das
Rückgrat des gesamten Internets.
22.3.1.1 IPv4 (Internet Protocol
Version 4)
IPv4 ist die ursprüngliche und noch immer dominierende Version des
Internetprotokolls.
22.3.1.1.1 Merkmale und
Funktionsweise
Adressierung: Verwendet 32-Bit-Adressen,
üblicherweise in Dotted-Decimal-Notation dargestellt (z.B. 192.168.1.1).
Dies ermöglicht theoretisch etwa 4,3 Milliarden eindeutige
Adressen.
Paketbasiert: Daten werden in Pakete
(Datagramme) aufgeteilt, die unabhängig voneinander geroutet werden
können.
Verbindungslos: Jedes Paket wird unabhängig
behandelt, ohne eine vorherige Verbindungseinrichtung.
Best-Effort-Zustellung: Bietet keine Garantie
für Zustellung, Reihenfolge oder Duplikatsvermeidung.
Header-Format: Der IPv4-Header enthält wichtige
Felder wie:
Version (4 Bits)
IHL (Internet Header Length, 4 Bits)
Type of Service (8 Bits, für QoS)
Total Length (16 Bits)
Identification, Flags und Fragment Offset (für Fragmentierung)
Time to Live (8 Bits)
Protocol (8 Bits)
Header Checksum (16 Bits)
Source Address (32 Bits)
Destination Address (32 Bits)
Options und Padding (variabel)
Fragmentierung: Große Pakete können in kleinere
Fragmente aufgeteilt werden, um MTU-Begrenzungen (Maximum Transmission
Unit) zu berücksichtigen.
22.3.1.1.2 Adressklassen und
Subnetting
Ursprünglich wurden IPv4-Adressen in fünf Klassen eingeteilt:
Klasse A: 0.0.0.0 bis 127.255.255.255 (Netzmaske:
255.0.0.0)
Klasse B: 128.0.0.0 bis 191.255.255.255 (Netzmaske:
255.255.0.0)
Klasse C: 192.0.0.0 bis 223.255.255.255 (Netzmaske:
255.255.255.0)
Klasse D: 224.0.0.0 bis 239.255.255.255 (für
Multicast)
Klasse E: 240.0.0.0 bis 255.255.255.255 (reserviert
für experimentelle Zwecke)
Dieses starre System wurde durch CIDR (Classless Inter-Domain
Routing) ersetzt, das flexiblere Netzmasken ermöglicht und als
Präfixlänge notiert wird (z.B. 192.168.1.0/24).
22.3.1.1.3 Private Adressbereiche
und NAT
Um der Erschöpfung des IPv4-Adressraums entgegenzuwirken, wurden
bestimmte Bereiche für private Netzwerke reserviert:
10.0.0.0/8 (10.0.0.0 - 10.255.255.255)
172.16.0.0/12 (172.16.0.0 - 172.31.255.255)
192.168.0.0/16 (192.168.0.0 - 192.168.255.255)
Diese privaten Adressen werden mit NAT (Network Address Translation)
verwendet, um mehrere Geräte über eine einzelne öffentliche IP-Adresse
mit dem Internet zu verbinden.
22.3.1.2 IPv6 (Internet Protocol
Version 6)
IPv6 wurde entwickelt, um die Adressknappheit und andere Limitationen
von IPv4 zu überwinden.
22.3.1.2.1 Merkmale und
Funktionsweise
Adressierung: Verwendet 128-Bit-Adressen,
dargestellt in Hexadezimalnotation mit Doppelpunkten als Trennzeichen
(z.B. 2001:0db8:85a3:0000:0000:8a2e:0370:7334). Dies ermöglicht einen
nahezu unbegrenzten Adressraum (2^128 Adressen).
Vereinfachter Header: Der IPv6-Header ist
einfacher und effizienter:
Version (4 Bits)
Traffic Class (8 Bits)
Flow Label (20 Bits)
Payload Length (16 Bits)
Next Header (8 Bits)
Hop Limit (8 Bits)
Source Address (128 Bits)
Destination Address (128 Bits)
Keine Fragmentierung im Router: Fragmentierung
findet nur am Sender statt, nicht in Zwischenroutern.
Keine Checksumme: Entfernt zur
Effizienzsteigerung, verlässt sich auf Prüfsummen höherer
Schichten.
Erweiterungsheader: Optionale Funktionalität
wird durch separate Erweiterungsheader implementiert.
22.3.1.2.2 Adresstypen und
-struktur
IPv6 definiert verschiedene Adresstypen:
Unicast: Identifiziert eine einzelne
Schnittstelle
Global Unicast: Öffentlich routbare Adressen (ähnlich öffentlichen
IPv4-Adressen)
Link-Local: Nur im lokalen Netzsegment gültig (beginnen mit
fe80::/10)
Unique Local: Ähnlich privaten IPv4-Adressen (beginnen mit
fc00::/7)
Multicast: Identifiziert eine Gruppe von
Schnittstellen (beginnen mit ff00::/8)
Anycast: Pakete werden an die nächstgelegene von
mehreren möglichen Schnittstellen zugestellt
22.3.1.3 Vergleich IPv4 und
IPv6
Merkmal
IPv4
IPv6
Adresslänge
32 Bit
128 Bit
Adressformat
Dotted Decimal
Hexadezimal mit Doppelpunkten
Header-Größe
Variabel (20-60 Bytes)
Fest (40 Bytes)
Fragmentierung
Am Sender und in Routern
Nur am Sender
Checksumme
Ja
Nein
Broadcast
Ja
Nein (durch Multicast ersetzt)
Konfiguration
Manuell oder DHCP
Stateless Autoconfiguration, DHCPv6
NAT
Häufig verwendet
Typischerweise nicht erforderlich
IPsec
Optional
Integriert (aber in der Praxis oft optional)
QoS
Durch ToS-Feld
Durch Traffic Class und Flow Label
Die Migration von IPv4 zu IPv6 ist ein laufender Prozess, der
verschiedene Übergangsmechanismen wie Dual-Stack, Tunneling (6to4,
Teredo) und Translation (NAT64) umfasst.
22.3.2 ICMP (Internet Control
Message Protocol)
ICMP ist ein essentielles Begleitprotokoll zu IP, das Fehlerberichte
und operative Informationen bereitstellt.
Informationsmeldungen (z.B. “Echo Request/Reply” für Ping)
Routerinformationen und -werbung
Paketstruktur:
Type (8 Bits): Identifiziert die ICMP-Nachrichtenart
Code (8 Bits): Weitere Spezifizierung des Typs
Checksum (16 Bits)
Weitere Felder, abhängig vom Nachrichtentyp
Wichtige Nachrichtentypen:
Type 0/8: Echo Reply/Request (Ping)
Type 3: Destination Unreachable
Type 4: Source Quench (veraltete Flusskontrolle)
Type 5: Redirect
Type 11: Time Exceeded (TTL abgelaufen, für Traceroute
verwendet)
22.3.2.2 ICMP für IPv6
(ICMPv6)
ICMPv6 erweitert die Funktionalität von ICMPv4 und übernimmt
zusätzliche Aufgaben, die in IPv4 von separaten Protokollen (wie ARP)
erledigt wurden.
Zusätzliche Funktionen:
Neighbor Discovery (ersetzt ARP)
Stateless Address Autoconfiguration
Multicast Listener Discovery (ähnlich zu IGMP in IPv4)
Wichtige Nachrichtentypen:
Type 1/128/129: Destination Unreachable / Echo Request / Echo
Reply
Type 2: Packet Too Big (für Path MTU Discovery)
Type 3: Time Exceeded
Type 4: Parameter Problem
Type 133-137: Neighbor Discovery-Nachrichten
22.3.3 Routing-Protokolle
Routing-Protokolle, obwohl technisch gesehen Anwendungen, die auf
höheren Schichten operieren, werden oft im Kontext der Internetschicht
diskutiert, da sie direkt mit IP-Routing zusammenhängen. Sie bestimmen,
wie Router Informationen über Netzwerktopologien austauschen und
optimale Pfade für die Paketweiterleitung berechnen.
22.3.3.1 Interior Gateway Protocols
(IGPs)
IGPs werden innerhalb autonomer Systeme (wie Unternehmensnetzwerke)
eingesetzt.
22.3.3.1.1 RIP (Routing Information
Protocol)
Algorithmus: Distance-Vector (Bellman-Ford)
Metrik: Hop Count (maximale Distanz: 15 Hops)
Updates: Regelmäßiger Broadcast der gesamten
Routing-Tabelle
Features: Schnelle Konvergenz, Unterstützung für
ungleiche Lastverteilung
Metrik: Komplexe Berechnung basierend auf
Bandbreite, Verzögerung und weiteren Faktoren
Einsatzbereich: Mittelgroße bis große
Cisco-dominierte Netzwerke
22.3.3.2 Exterior Gateway Protocols
(EGPs)
EGPs werden zwischen autonomen Systemen eingesetzt, insbesondere im
Internet-Backbone.
22.3.3.2.1 BGP (Border Gateway
Protocol)
Algorithmus: Path Vector
Funktion: Austausch von
Erreichbarkeitsinformationen zwischen autonomen Systemen
Entscheidungskriterien: Komplexe Pfadauswahl
basierend auf Routing-Richtlinien, nicht nur auf Metriken
Stabilität: Konzipiert für Stabilität über
Effizienz
Aktuelle Version: BGP-4 (mit Unterstützung für CIDR
und Route Aggregation)
Einsatzbereich: Internet-Backbone, Verbindungen
zwischen ISPs
22.3.3.3 Policy-Based Routing
Über reine Routing-Protokolle hinaus ermöglicht Policy-Based Routing
(PBR) die Definition von Weiterleitungsentscheidungen basierend auf
anderen Kriterien als nur der Zieladresse, wie:
Quell- oder Zielport
Protokolltyp
Paketgröße
Qualitätsanforderungen
Dies wird häufig für Traffic Engineering, Lastverteilung und die
Implementierung komplexer Netzwerkrichtlinien verwendet.
22.3.4 Weitere Protokolle der
Internetschicht
IGMP (Internet Group Management Protocol):
Verwaltet die Mitgliedschaft von Hosts in Multicast-Gruppen in
IPv4-Netzwerken. Es ermöglicht Routern zu erfahren, welche Hosts
Multicast-Traffic für bestimmte Gruppen empfangen möchten.
IPsec (Internet Protocol Security): Ein
Protokollsuite, die Authentifizierung und Verschlüsselung für
IP-Datagramme bietet. Es operiert auf der Internetschicht und schützt
den gesamten Datenverkehr zwischen zwei Endpunkten.
Mobile IP: Ermöglicht Benutzern, ihre IP-Adresse
beizubehalten, während sie zwischen verschiedenen Netzwerken wechseln,
was nahtloses Roaming unterstützt.
22.4 Protokolle der
Transportschicht
Die Transportschicht stellt eine Ende-zu-Ende-Verbindung zwischen
Anwendungen auf verschiedenen Hosts her. Sie bietet verschiedene
Dienstqualitäten, von unzuverlässiger bis hin zu garantierter
Zustellung, abhängig von den Anforderungen der Anwendung.
22.4.1 TCP (Transmission Control
Protocol)
TCP ist das wichtigste verbindungsorientierte Protokoll im
TCP/IP-Stack, das zuverlässige, geordnete und fehlerfreie
Datenübertragung bietet.
22.4.1.1 Grundlegende Merkmale
Verbindungsorientiert: Etabliert eine Verbindung
vor der Datenübertragung
Zuverlässigkeit: Garantiert die Zustellung aller
Daten ohne Verlust
Reihenfolgegarantie: Liefert Daten in der richtigen
Reihenfolge
Flusskontrolle: Verhindert Überlastung des
Empfängers
TCP verwendet einen Drei-Wege-Handshake zum Verbindungsaufbau: 1.
SYN: Client sendet ein Segment mit gesetztem SYN-Flag
und Sequenznummer 2. SYN-ACK: Server antwortet mit SYN-
und ACK-Flags, eigener Sequenznummer und Bestätigung der
Client-Sequenznummer 3. ACK: Client bestätigt die
Server-Sequenznummer
Zum Verbindungsabbau wird ein Vier-Wege-Handshake verwendet: 1.
FIN: Eine Seite signalisiert den Verbindungsabbau mit
dem FIN-Flag 2. ACK: Die Gegenseite bestätigt 3.
FIN: Die Gegenseite sendet ihr eigenes FIN 4.
ACK: Die erste Seite bestätigt
22.4.1.3 TCP-Header
Der TCP-Header enthält wichtige Steuerinformationen: - Quell-
und Zielport (je 16 Bits): Identifizieren die Anwendungen an
beiden Enden - Sequenznummer (32 Bits): Nummeriert
übertragene Bytes - Bestätigungsnummer (32 Bits): Gibt
an, welches Byte als nächstes erwartet wird - Data
Offset (4 Bits): Gibt die Header-Länge an - Reservierte
Bits (3 Bits): Für zukünftige Verwendung reserviert -
Flags (9 Bits): Kontrollflags wie SYN, ACK, FIN, RST,
PSH, URG - Fenstergröße (16 Bits): Für die
Flusskontrolle - Prüfsumme (16 Bits): Zur
Fehlererkennung - Urgent Pointer (16 Bits): Zeigt auf
dringende Daten - Optionen (variabel): Zusätzliche
Funktionen wie Maximum Segment Size, Window Scaling
22.4.1.4 Flusskontrolle
TCP verwendet einen Sliding-Window-Mechanismus zur Flusskontrolle: -
Der Empfänger gibt eine Fenstergröße an, die anzeigt, wie viele Bytes er
bereit ist zu empfangen - Der Sender darf nicht mehr unbestätigte Daten
senden als die Fenstergröße erlaubt - Das Fenster “gleitet” mit jeder
Bestätigung vorwärts
22.4.1.5 Überlastungskontrolle
TCP implementiert verschiedene Algorithmen zur Vermeidung von
Netzwerküberlastung: - Slow Start: Beginnt mit einem
kleinen Überlastungsfenster und verdoppelt es mit jeder Bestätigung -
Congestion Avoidance: Erhöht das Fenster langsamer,
nachdem ein Schwellenwert erreicht ist - Fast
Retransmit: Erkennt Paketverluste durch duplizierte ACKs -
Fast Recovery: Reduziert das Überlastungsfenster
weniger drastisch nach Fast Retransmit
22.4.1.6 TCP-Varianten
Es existieren zahlreiche TCP-Varianten mit unterschiedlichen
Überlastungskontrollalgorithmen: - TCP Tahoe:
Ursprüngliche Implementierung mit Slow Start und Congestion Avoidance -
TCP Reno: Fügt Fast Retransmit und Fast Recovery hinzu
- TCP Vegas: Präventive Überlastungserkennung basierend
auf RTT-Messung - TCP BIC/CUBIC: Optimiert für
Hochgeschwindigkeitsnetzwerke mit hoher Bandbreite und Latenz -
TCP BBR (Bottleneck Bandwidth and RTT): Google’s
neuerer Ansatz, der Netzwerkflaschenhälse modelliert
22.4.2 UDP (User Datagram
Protocol)
UDP ist ein einfaches, verbindungsloses Protokoll, das minimalen
Overhead bietet und keine Garantien für Zustellung oder Reihenfolge
gibt.
22.4.2.1 Grundlegende Merkmale
Verbindungslos: Sendet Datagramme ohne vorherigen
Verbindungsaufbau
Unzuverlässig: Keine Garantie für Zustellung,
Reihenfolge oder Duplikatschutz
Minimaler Overhead: Sehr schlanker Header für
maximale Effizienz
Keine Fluss- oder Überlastungskontrolle: Sendet
Daten mit der Geschwindigkeit, mit der die Anwendung sie
bereitstellt
22.4.2.2 UDP-Header
Der UDP-Header ist extrem einfach und umfasst nur vier Felder: -
Quellport (16 Bits): Optionaler Absenderport, kann 0
sein wenn nicht verwendet - Zielport (16 Bits):
Identifiziert den Dienst auf dem Zielhost - Länge (16
Bits): Gesamtlänge von Header und Daten - Prüfsumme (16
Bits): Optionale Fehlerprüfung (in der Praxis fast immer verwendet)
22.4.2.3 Anwendungsszenarien
UDP eignet sich besonders für: -
Echtzeitanwendungen: VoIP, Videostreaming,
Online-Spiele - Einfache
Request-Response-Kommunikation: DNS-Anfragen -
Broadcast- und Multicast-Anwendungen:
Netzwerkdiscovery, Streaming zu multiplen Empfängern -
Anwendungen mit eigener Fehlerkorrektur/Flusskontrolle:
Anwendungen, die ihre eigene Zuverlässigkeitsschicht implementieren
22.4.2.4 Probleme mit UDP in
modernen Netzwerken
Trotz der Einfachheit und Effizienz von UDP gibt es
Herausforderungen: - NAT-Traversal: Verbindungsloses
UDP kann Probleme mit NAT-Routern haben -
Firewall-Blockierung: Viele Firewalls blockieren
UDP-Traffic standardmäßig - Fairness: UDP hat keine
eingebaute Überlastungskontrolle und kann TCP-Verbindungen
beeinträchtigen
22.4.3 QUIC (Quick UDP Internet
Connections)
QUIC ist ein modernes Transportprotokoll, entwickelt von Google, das
die Vorteile von UDP und TCP kombiniert. Es bildet die Basis für
HTTP/3.
22.4.3.1 Merkmale von QUIC
Auf UDP aufgebaut: Nutzt UDP als Basisprotokoll,
implementiert aber höherwertige Funktionen
Verbindungsmigration: Ermöglicht Wechsel zwischen
Netzwerken ohne Neuverbindung
Multiplexing: Mehrere Streams über eine Verbindung
ohne Head-of-Line-Blocking
Verbesserte Überlastungskontrolle: Moderne
Algorithmen für optimale Performance
Reduzierte Latenz: 0-RTT-Verbindungsaufbau für
wiederkehrende Verbindungen
QUIC ist besonders vorteilhaft für mobile Anwendungen, Websites mit
vielen Ressourcen und Szenarien mit häufigen Netzwerkwechseln.
22.4.4 SCTP (Stream Control
Transmission Protocol)
SCTP wurde ursprünglich für Telekommunikationsanwendungen entwickelt
und bietet Funktionen, die weder TCP noch UDP allein bieten.
22.4.4.1 Merkmale von SCTP
Nachrichtenorientiert: Im Gegensatz zum
bytestream-orientierten TCP
Multi-Homing: Unterstützt mehrere IP-Adressen pro
Endpunkt für Redundanz
Multi-Streaming: Mehrere unabhängige Datenströme
innerhalb einer Verbindung
Teilweise Zuverlässigkeit: Optionale Erweiterungen
für anpassbare Zuverlässigkeit
Robuste Verbindungsverwaltung: Vier-Wege-Handshake
gegen SYN-Flood-Angriffe
SCTP wird hauptsächlich in Telekommunikationsnetzwerken, für
Diameter-Protokolle und in speziellen Hochverfügbarkeitsanwendungen
eingesetzt.
22.4.5 DCCP (Datagram Congestion
Control Protocol)
DCCP ist ein Transportprotokoll, das versucht, die Lücke zwischen TCP
und UDP zu schließen.
22.4.5.1 Merkmale von DCCP
Verbindungsorientiert: Handshake für
Verbindungsaufbau und -abbau
Unzuverlässige Übertragung: Keine Garantie für
Datenzustellung wie UDP
Überlastungskontrolle: Verschiedene einstellbare
Algorithmen
Feedback-Mechanismen: Empfänger können Feedback
über verlorene Pakete geben
DCCP ist für Anwendungen gedacht, die von Überlastungskontrolle
profitieren, aber keine vollständige Zuverlässigkeit benötigen, wie
Streaming-Medien und Online-Spiele. In der Praxis hat es jedoch keine
weite Verbreitung gefunden.
22.5 Protokolle der
Anwendungsschicht
Die Anwendungsschicht bietet eine Vielzahl von Protokollen für
spezifische Anwendungsbereiche und Dienste. Diese Protokolle nutzen die
Dienste der darunter liegenden Schichten und stellen die Schnittstelle
zur Endbenutzeranwendung dar.
22.5.1 Webprotokolle
22.5.1.1 HTTP (Hypertext Transfer
Protocol)
HTTP ist das grundlegende Protokoll des World Wide Web und ermöglicht
den Austausch von Hypertext-Dokumenten.
22.5.1.1.1 HTTP/1.0 und
HTTP/1.1
Methoden: GET, POST, HEAD, PUT, DELETE, etc.
Statuscode: 3-stellige Codes (z.B. 200 OK, 404 Not
Found, 500 Server Error)
Header: Zusatzinformationen zu Anfragen und
Antworten
Zustandslos: Jede Anfrage ist unabhängig von
vorherigen Anfragen
Persistente Verbindungen: HTTP/1.1 führte
Keep-Alive für mehrere Anfragen über eine TCP-Verbindung ein
Caching: Mechanismen zur temporären Speicherung von
Inhalten
22.5.1.1.2 HTTP/2
Binäres Protokoll: Im Gegensatz zum textbasierten
HTTP/1.x
Multiplexing: Mehrere Anfragen und Antworten
parallel über eine Verbindung
Header-Kompression: Reduziert Overhead durch
HPACK-Kompression
Server Push: Server kann zusätzliche Ressourcen
proaktiv senden
Priorisierung: Ressourcen können priorisiert
werden
22.5.1.1.3 HTTP/3
QUIC-basiert: Nutzt QUIC statt TCP als
Transportprotokoll
Verbesserte Leistung: Reduzierte Latenz durch
0-RTT-Verbindungen
Verbindungsmigration: Nahtloser Wechsel zwischen
Netzwerken
Verbesserte Fehlertoleranz: Weniger Blockierung bei
Paketverlusten
22.5.1.2 WebSocket
WebSocket bietet einen bidirektionalen Kommunikationskanal zwischen
Browser und Server über eine einzelne TCP-Verbindung.
Echtzeitkommunikation: Ermöglicht
Push-Benachrichtigungen vom Server
MQTT ist ein leichtgewichtiges Publish-Subscribe-Protokoll, ideal für
IoT-Geräte.
Publish-Subscribe-Modell: Entkopplung von Sendern
und Empfängern
Topics: Hierarchische Struktur für die
Nachrichtenkategorisierung
QoS-Level: Drei Stufen der Zustellungsgarantie
Minimize Overhead: Kompakter Binärheader
Last Will and Testament: Benachrichtigung bei
unerwarteter Verbindungstrennung
22.5.8.2 CoAP (Constrained
Application Protocol)
CoAP ist ein spezialisiertes Webprotokoll für eingeschränkte Geräte
und Netzwerke.
RESTful Design: Ähnlich HTTP mit Methoden wie GET,
POST, PUT, DELETE
UDP-basiert: Ressourceneffizient für eingeschränkte
Geräte
Integrierte Erkennung: Ressourcenerkennung mit CoRE
Link Format
Beobachten-Modus: Effizientes Push-Modell für
Aktualisierungen
Proxyfähigkeit: Einfache Integration mit HTTP
22.6 Zusammenspiel und
Abhängigkeiten der Protokolle
Die verschiedenen Protokolle im TCP/IP-Stack arbeiten nicht isoliert,
sondern in enger Kooperation, um eine nahtlose Kommunikation zu
ermöglichen. Dieses Zusammenspiel erfolgt sowohl innerhalb einer Schicht
als auch schichtübergreifend.
22.6.1 Protokollstapel in
Aktion
Ein typisches Beispiel für das Zusammenspiel der Protokolle ist der
Aufruf einer Webseite:
Anwendungsschicht: Der Browser verwendet DNS, um
den Domainnamen in eine IP-Adresse aufzulösen, und erstellt dann eine
HTTP-Anfrage.
Transportschicht: Die HTTP-Anfrage wird an TCP
übergeben, das einen zuverlässigen Kanal zum Webserver einrichtet
durch:
Aufbau einer Verbindung mit dem Drei-Wege-Handshake
Segmentierung der Daten bei Bedarf
Hinzufügen von TCP-Headern mit Port- und Sequenzinformationen
Internetschicht: TCP-Segmente werden an IP
übergeben, das:
IP-Header mit Quell- und Zieladressen hinzufügt
Den besten Pfad zum Ziel bestimmt (Routing)
Pakete fragmentiert, wenn sie die MTU überschreiten
Netzzugangsschicht: IP-Pakete werden in Frames
verpackt mit:
MAC-Adressen für die physische Zustellung
Anpassung an das spezifische Übertragungsmedium (Ethernet, WLAN,
etc.)
Physische Übertragung: Die Frames werden als
elektrische Signale, Lichtimpulse oder Funkwellen übertragen.
Der Empfänger durchläuft diese Schritte in umgekehrter Reihenfolge,
um die ursprüngliche HTTP-Anfrage zu extrahieren und zu verarbeiten.
22.6.2 Protokoll-Interaktionen und
Abhängigkeiten
Protokolle interagieren auf verschiedenen Ebenen:
22.6.2.1 Horizontale Interaktionen
(innerhalb einer Schicht)
DNS und HTTP: DNS wird verwendet, um die
Ziel-IP-Adresse für HTTP-Anfragen zu ermitteln.
HTTP und TLS: TLS bildet die Sicherheitsschicht für
HTTPS.
SIP und RTP: SIP etabliert Medien-Sessions, die
dann RTP für die eigentliche Datenübertragung nutzen.
TCP und IP: TCP verlässt sich auf IP für die
Zustellung von Segmenten an entfernte Hosts.
UDP und DNS: DNS-Anfragen nutzen typischerweise UDP
für effiziente Übertragung.
IP und ARP: IP benötigt ARP, um IP-Adressen in
physische MAC-Adressen aufzulösen.
22.6.2.3 Protokollkonvertierung und
-adaption
In komplexen Netzwerken sind oft Protokollkonvertierungen
erforderlich:
Gateways: Übersetzen zwischen unterschiedlichen
Protokollfamilien (z.B. SIP-zu-PSTN-Gateways).
Proxies: Vermitteln Verkehr zwischen Clients und
Servern, oft mit Protokolloptimierungen.
Tunneling: Kapselt ein Protokoll in ein anderes
(z.B. IPv6 über IPv4 mit 6to4).
22.6.3 Protokollaushandlung und
-erkennung
Moderne Protokolle implementieren oft Mechanismen zur dynamischen
Aushandlung:
TLS-Handshake: Client und Server einigen sich auf
die stärkste gemeinsam unterstützte Verschlüsselungsmethode.
HTTP/2 Upgrade: Clients können von HTTP/1.1 zu
HTTP/2 upgraden, wenn der Server es unterstützt.
IP-Version-Auswahl: Dual-Stack-Hosts können
zwischen IPv4 und IPv6 wählen, basierend auf Verfügbarkeit.
22.7 Protokollentwicklung und
Zukunftstrends
Der TCP/IP-Stack entwickelt sich kontinuierlich weiter, getrieben
durch neue Anforderungen und Technologien. Diese Evolution folgt
mehreren Schlüsseltrends:
22.7.1 Optimierung für moderne
Netzwerke
QUIC und HTTP/3: Optimiert für mobile Netzwerke mit
häufigen Verbindungswechseln und variablen Latenzzeiten.
Multipath-Protokolle: MPTCP (Multipath TCP)
ermöglicht die gleichzeitige Nutzung mehrerer Netzwerkpfade.
Low-Latency-Protokolle: Neue Ansätze für extrem
latenzempfindliche Anwendungen wie Cloud Gaming und Industrial IoT.
22.7.2 Erhöhte Sicherheit
Protokollverschlüsselung: Trend zur Verschlüsselung
auf allen Ebenen, von TLS 1.3 bis zu verschlüsselten DNS-Varianten (DoH,
DoT).
Authentifizierung: Stärkere und
benutzerfreundlichere Authentifizierungsmechanismen.
Datenschutz: Protokolle mit integriertem
Datenschutz durch Design.
22.7.3 Effizienz und
Skalierbarkeit
Protokollkomprimierung: Reduzierung des Overheads
durch effizientere Kodierung und Headerreduktion.
Ressourcenoptimierung: Protokolle für
eingeschränkte Geräte (IoT) mit minimalen Ressourcenanforderungen.
Hyperscale-Optimierungen: Anpassungen für
Rechenzentren und Cloud-Umgebungen mit Millionen von Verbindungen.
22.7.4 Protokollkonvergenz und
-spezialisierung
Konvergenz: Trend zu mehrzweckfähigen Protokollen,
die mehrere Funktionen kombinieren.
Spezialisierung: Gleichzeitig Entwicklung
hochspezialisierter Protokolle für bestimmte Anwendungsbereiche.
Programmierbare Protokolle: Software-definierte
Netzwerkprotokolle, die dynamisch angepasst werden können.