TCP

Kommentieren Drucken
Teil 33 von 71 aus der Serie "Professionelle Datenkommunikation"
Alle Artikel der Serie "Professionelle Datenkommunikation":

Das TCP ist ein zuverlässiges Inter-Prozess-Kommunikationsprotokoll zwischen Computern, die an paketvermittelnde Netzwerke angeschlossen sind. Es ist also sowohl für Lokale als auch für Wide Area Netze geeignet. Im praktischen Einsatz liegt sein Vorzug darin, dass es genau wie das OSI-Protokoll vom Netztyp letztlich unabhängig ist und auf diese Weise auch Ende-zu-Ende-Verbindungen über im Rahmen des Internetworking zusammengeschaltete Netze unterstützt.

TCP ist ein verbindungsorientiertes End-to-End-Protokoll etwa der Schicht 4 des ISO-OSI 7-Schichten-Modells.

Es benötigt einen einfachen, zuverlässigen Datagramm-Service von der unteren Schicht. Dies ist normalerweise IP, jedoch sind die Spezifikationen in dieser Hinsicht offen, so dass TCP prinzipiell auch auf einem anderen Internet-Protokoll ähnlicher Leistung ablaufen könnte, sofern die Schnittstelle dieses Protokolls an die Dienstprimitive des TCP angepasst wird.

TCP erwartet nämlich auf der Vermittlungsschicht lediglich ein Internet Protocol, welches den Nachrichtenaustausch auf der Basis von Informations-Segmenten variabler Länge eingeschlossen in Internet Datagram „envelopes“ ermöglicht. Das Internet Datagram sieht Möglichkeiten der Adressierung von TCPs in unterschiedlichen Netzen vor. Das Internet Protokoll IP übernimmt die Fragmentierung und die Wiederherstellung von TCP Segmenten, die erforderlich für den Transport der Daten durch mehrere Netze und deren Gateways sind.

Ein TCP/IP-Netz ist von seiner Struktur her von einer sauberen Adressierung für einzelne Geräte, Subnetze, Broadcasts usf. abhängig. Die korrekte Adressierung führt in der Praxis immer wieder zu Problemen. Jeder Rechner, der das TCP/IP-Protokoll benutzt, muss über mindestens eine sog. Internet-Adresse verfügen. Dies ist eine Abstraktion der physikalischen Adresse und besteht aus einem Netzwerkteil und einem Host-Teil (auch wenn der „Host“ ein PC ist). Diese Adresse ist die Grundlage für jede Kommunikation und für die Durchführung des Routings. Ist die Gesamtadressierung nicht korrekt, werden bestimmte Geräte wie Router ganz oder teilweise nicht funktionieren, wenn nicht noch schlimmere Fehler auftreten. Da die Adressen immer gleich lang sind (32 Bit), muss es für unterschiedliche Verteilungen von Rechner- und Netzwerkanzahl, wie unter IP schon angegeben, unterschiedliche Klassen von Adressen geben:

  • Klasse A: wenige Netzwerke, viele Rechner
  • Klasse B: mittlere Verteilung von Netzen und Rechnern
  • Klasse C: viele Netzwerke, wenige Rechner
  • Klasse D: Multicastadressen
  • Klasse E: undefiniert

TCP arbeitet wie die meisten anderen Protokolle mit drei Phasen, nämlich Verbindungsaufbau, Verbindungsdurchführung und Verbindungsbeendigung.

Das TCP kommuniziert mit Benutzern oder Applikationsprozessen der höheren Schichten und mit dem Internet Protokoll. Das Interface zwischen der höheren Ebene and TCP besteht aus mehreren Funktionsaufrufen (open connection, close connection, receive und send data). TCP kann asynchron mit den Anwendungsprogrammen kommunizieren.

Prozesse übertragen Daten durch Aufruf des TCP und übergeben Puffer und Daten als Argumente. TCP segmentiert die Daten und ruft IP auf zur Übertragung der Segmente zum Ziel-TCP. Das Ziel-TCP stellt die Daten in den Puffer des Ziel-Prozesses und informiert den aufgerufenen Prozess. Das Internet Modul packt TCP-Segmente in Internet Datagramme und sendet sie zu Ziel-Internet-Modulen oder Gateways. In einem lokalen Netzwerk wird das Datagramm in die Protokolle des lokalen Netzes eingepackt. Am Gateway wird das Paket an die neue Netzstruktur angepasst und zum Ziel oder zum nächsten Gateway geroutet. Die Anpassung erfolgt durch das Einpacken des Segments in neue Schicht-3-Protokolle. Das Gateway kann die Datagramme in kleinere Fragmente bei Bedarf zerlegen. Das Ziel-Internet-Modul entfernt die Datagramm-Hülle des Segments und übergibt sie an das Ziel-TCP.

Interfaces können relativ frei an das jeweilige Betriebssystem angepasst werden. Es werden nur minimale Anforderungen an die Funktionalität dieser Schnittstelle gestellt. Das Interface zwischen TCP und Lower-Level-Protokollen ist im Wesentlichen nicht spezifiziert, da angenommen wird, dass ein Mechanismus zum asynchronen Austausch von Informationen existiert.

Welche Funktionen bietet TCP/IP für die Sicherung einer Übertragung? TCP kann als Basic Data Transfer via eines Fenstermechanismusses, wie bei HDLC, einen kontinuierlichen bidirektionalen Datenstrom austauschen, in dem Daten in Segmente verpackt werden. Die Größe dieser Segmente wird zwischen den TCPs festgelegt. Das TCP hat Sicherungsmechanismen für Daten, die zerstückelt, verloren, dupliziert, außerhalb der Reihenfolge etc. vom Internet Kommunikations-System kommen. Jedes Segment erhält eine Sequenz-Nummer und muss vom Partner-TCP bestätigt werden.

Falls diese Bestätigung nicht innerhalb eines vorgegebenen Zeitintervalls kommt, wird das Segment erneut übertragen. Der Empfänger bringt anhand der Sequenznummer die Pakete in die richtige Reihenfolge und entfernt Duplikate. Eine CRC-Überprüfung verhindert fehlerhafte Segmente.

Auch einen Multiplexmechanismus gibt es in TCP. TCP unterstützt mehrere Adressen oder Ports im Host, um die gleichzeitige Kommunikation mehrerer Applikationen zu ermöglichen. Zusammen mit der Netzwerk- und Host-Adresse vom Internet Communication Layer identifizieren sie eindeutig jede Verbindung.

Die Flusskontroll-Mechanismen erfordern die Initiierung und Aufrechterhaltung von Statusinformationen über den Datenfluss. Die Kombination dieser Informationen, einschl. Adressen, Sequenz-Nummer und Fenstergrößen wird „Connection“ genannt. Diese Connection muss bei Initiierung einer Kommunikation aufgebaut und nach Beendigung wieder abgebaut werden. Die Informationen darüber werden im Transmission Control Block festgelegt. Ein Handshake-Mechanismus mit zeitabhängigen Sequenznummern wird benutzt, um fehlerhafte Connection zu vermeiden. Die Verbindung kann full duplex betrieben werden.

Die Sicherungsmechanismen und der aufwendige Routing-Mechanismus wirken sich allerdings gleichzeitig auch nachteilig aus. So ist die Leistung des Netzes, also der Durchsatz der reinen Benutzerdaten auf LANs beim Einsatz von TCP/IP erheblich schlechter als wenn speziell für die LAN-Umgebung optimierte Protokolle, z. B. Novell IPX/SPX, verwendet werden würden. Dies muss bei der Netzauslegung berücksichtigt werden.

Als Alternative bietet sich noch das UDP, User Datagram Protocol, an. UDP besitzt ebenfalls einen portorientierten Multiplexalgorithmus, Flusskontrolle und Verbindungsmanagement, baut aber keine logischen Verbindungen zwischen den Kommunikationspartnern auf und führt keine wesentliche Fehlerkontrolle durch. Weder die Ablieferung eines Datagramms als solches, noch die reihentreue Übermittlung oder das Erkennen von Duplikaten werden realisiert. UDP ist sozusagen TCP-light.

« Teil 32: Übersicht über TCP/IPTeil 34: IP »


zugeordnete Kategorien: LAN
zugeordnete Tags:

Sie fanden diesen Beitrag interessant? Sie können



Anmerkungen, Fragen, Kommentare, Lob und Kritik:

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

.