Netzwerk-Grundlagen – Die Internet-Protokollfamilie als Basis für zahlreiche Anwendungen Gesicherter Datentransport über Netzwerke mit TCP/IP

Autor / Redakteur: Gerhard Kafka / Dipl.-Ing. (FH) Andreas Donner

Es war keine leichte Aufgabe, die das amerikanische Verteidigungsministerium in den 60er-Jahren stellte: es galt, eine zuverlässige Verbindung zwischen den drei Netzwerken der Luftwaffe, Armee und Marine herzustellen, die damals nicht direkt miteinander kommunizieren konnten. Zudem forderte das Department of Defense eine Netzwerkarchitektur mit hoher Redundanz und Verfügbarkeit, die auch beim Ausfall einzelner Komponenten oder Teilnetzen die Kommunikation zwischen zwei Endgeräten sicherstellen kann.

Anbieter zum Thema

Wie wir heute wissen, begann mit dieser Vorgabe im Jahr 1974 die Standardisierung der TCP/IP-Protokollfamilie. Zuvor gab es jedoch ein historisch bedeutsames Datum: den 2. September 1969. An diesem Tag wurde an der kalifornischen Universität UCLA im Labor von Professor Leonard Kleinrock der erste ARPANET-Knoten, IMP (Interface Message Processor) genannt, in Betrieb genommen. Mit anwesend waren die späteren Schöpfer des Internets Steve Crocker, Jon Postel (Redakteur der RFCs), Mike Wingfield, Charley Kline und Vinton Cerf. Cerf und Robert Kahn veröffentlichten dann im Mai 1974 den ersten Internetbeitrag „A Protocol for Packet Network Intercommunication“ in der IEEE-Zeitschrift „Transactions on Communications“.

Obwohl TCP und IP zumeist in einem Atemzug gemeinsam genannt werden, handelt es sich dabei um zwei verschiedene, jedoch voneinander abhängige Protokolle. Die Positionierung dieser Protokolle sowie einige typische Anwendungen, die darüber transportiert werden sind in Bild 1 dargestellt. Neben TCP existiert noch ein zweites Transportprotokoll namens UDP, das kürzlich um ein weiteres, nämlich SCTP ergänzt wurde.

Die schlanke Internet-Architektur

Die in Bild 2 gezeigte Internet-Architektur ist im Vergleich zu dem bekannten ISO/OSI-Schichtenmodell sehr viel schlanker. Sie besteht nur mehr aus vier Schichten: Netzwerk, Internet, Transport und Anwendung.

Der Markterfolg der Internet-Architektur beruht grundsätzlich auf vier Attributen: einfach (zu verstehen), schnell (zu implementieren), kostengünstig und skalierbar (für neue Protokolle und Anwendungen). Der heute so wichtige Aspekt Sicherheit wurde bei der Entwicklung leider nicht berücksichtigt. Erst mit der IPv6-Version wurden einige Mechanismen zur Erhöhung der Sicherheit fest integriert. Die weit verbreitete Version IPv4 erfordert daher zusätzliche Sicherheitsmaßnahmen.

Die Netzwerkschicht umfasst Layer 1 und 2, also die physikalischen Übertragungsmedien und Schnittstellen sowie die Funktionen der Sicherungsschicht. Das in den privaten Netzen eingesetzte Ethernet-Protokoll bildet inzwischen auch die Basis für öffentliche Weitverkehrsnetze.

Die Internetschicht ist zuständig für das Adressieren der Netzwerke und Endgeräte und das Routen von Datenpaketen über Domänen hinweg. Eine weitere Aufgabe besteht darin, die IP-Pakete zur Übertragung auf der Schicht 2 entsprechend anzupassen und ggf. zu fragmentieren. Weil für Adressieren und Routen ein und derselbe Parameter dient, entstehen die vielfältigen Sicherheitsprobleme.

Die Transportschicht übernimmt bei verbindungsorientierter Kommunikation die Aufgabe der Ende-zu-Ende Vollständigkeitsprüfung. Die Verbindungsorientierung stellt TCP (Transport Control Protocol) bereit. Bleibt die Kommunikation über UDP (User Datagram Protocol) verbindungslos kann die Vollständigkeit nicht garantiert werden. Eine wichtige Funktion der Transportschicht wird durch die (theoretisch) 65.000 Ports erfüllt, die mehrere verschiedene Sessions (Applikationen) zur gleichen Zeit über eine einzige IP-Adresse erlauben. Dies ist mit einer Multiplex-Funktion vergleichbar.

Die Anwendungen setzen auf der Transportschicht auf und werden durch so genannte Sockets – das ist eine dynamische Größe, die sich aus der IP-Adresse und der jeweiligen Portnummer zusammensetzt – charakterisiert. Genau betrachtet, kommuniziert jeweils ein Socket beim Sender mit dem korrespondierenden Socket des Empfängers.

Protokollelemente steuern die Kommunikation

IP stellt die Vermittlungsdienste im Internet bereit und ist ein verbindungsloser Datengrammdienst. Mit IP alleine kann deshalb keine gesicherte Datenübertragung erfolgen. Die Vermittlung erfolgt durch Router, die Netze nicht nur miteinander verbinden, sondern diese auch voneinander trennen. Die entsprechenden Informationen sind in dem IP-Protokollheader enthalten. IP besitzt folgende Funktionen und Eigenschaften:

  • Adressierung
  • Vermittlung zwischen Netzen und Subnetzen (Routing)
  • Kontrolle über endlos kreisende Pakete
  • Hinweis auf Protokoll der Schicht 4
  • Maximale Paketlänge von 65.535
  • Fragmentieren und Reassemblieren von Datenblöcken
  • Fehlererkennung und -meldung

In Bild 3 sind die dafür benötigten Protokollelemente dargestellt. Es bedeuten:

  • Version: derzeit = 4, künftig = 6 (IPv6)
  • IHL (IP Header Length): gibt die Länge des Headers an
  • TOS (Type of Service): erlaubt die Priorisierung von Paketen
  • Gesamtlänge: Länge von Header inkl. Optionen und Daten
  • Kennung (ID): ist für alle Pakete eines Fragments identisch
  • Flag: signalisiert ob ein Paket fragmentiert ist
  • Fragment Offset: informiert über die Position des Fragments
  • Time to Live (TTL): Begrenzung der Lebensdauer eines Pakets. Ursprünglich in Sekunden gemessen. Heute wird der TTL-Zähler von jedem passierten Hop um 1 reduziert. Steht der Zähler auf 0, wird dieses Paket verworfen
  • Protokoll: Hinweis auf das Transportprotokoll (TCP, UDP etc.)
  • Kopf-Prüfsumme: schützt die Headerinformationen gegen Übertragungsfehler
  • Absender IP-Adresse: IP-Adresse des Senders
  • Empfänger IP-Adresse: IP-Adresse des Empfängers; die IP-Adresse setzt sich aus 32 Bits zusammen (IPv4) und besteht aus einer Netzwerk-ID und Host-ID. Früher wurden IP-Adressen in Klassen eingeteilt (A, B, C, D und E). Heute verwendet man beliebige Aufteilungen (Classless Routing), um den knappen Adressraum bei IPv4 optimal zu nutzen.

Mit UDP bleibt die Kommunikation verbindungslos. Dieses Protokoll wird durch folgende Eigenschaften charakterisiert:

  • Einfache Lösung für den Datenaustausch
  • Verbindungsloser Datagramm-Dienst
  • Keine Flusskontrolle
  • Geringer Overhead
  • Optionale Prüfsumme eines Pseudo-Headers

Das einfache UDP-Protokoll benötigt nur wenige Protokollelemente, die folgende Funktionen erfüllen:

  • Absender Port (Source): Anbindung der Sender-Applikation
  • Empfänger Port (Destination): Anbindung der Empfänger-Applikation
  • Länge: Signalisiert die Gesamtlänge des Pakets
  • Prüfsumme: Absicherung der Headerinformationen

TCP ist ein verbindungsorientiertes Protokoll mit folgenden wichtigen Eigenschaften:

  • Verbindungsauf- und -abbau erforderlich
  • Vollständige Übertragung von Datensegmenten
  • Duplex Verbindung
  • Flußkontrolle
  • Kontrolle über duplizierte und fehlende Segmente
  • Größerer Overhead im Vergleich zu UDP

Aus Bild 5 sind die dafür erforderlichen Protokollelemente ersichtlich, die folgende Funktionen erfüllen:

  • Absender Port (Source): Anbindung der Sender-Applikation
  • Empfänger Port (Destination): Anbindung der Empfänger-Applikation. Bekannte Portnummern sind z.B.: 21 = File Transfer, 23 = Virtuelles Terminal, 25 = Versenden von Email und 80 = HTTP Webserver.
  • Sequenznummer: IP-Pakete werden damit fortlaufend nummeriert
  • Bestätigungsnummer: damit wird der fehlerfreie Empfang eines IP-Pakets quittiert. In beiden Nummern ist immer auch die Länge des jeweiligen Pakets enthalten
  • Fenster: Dient zur Flusskontrolle zwischen Empfänger und Sender. Der Empfänger gewährt damit dem Sender quasi einen Kredit über die maximale Zahl der zu übertragenden Pakete

Über den Autor

Gerhard Kafka arbeitet als freier Fachjournalist für Telekommunikation in Egling bei München

(ID:2009224)