Das Transmission Control Protocol ist im Gegensatz zu den bisher
beschriebenen Protokollen ähnlich wie das Telefonnetz verbindungsorientiert
aufgebaut. Es verwendet IP, um Daten zu übertragen. Bevor man
irgendwelche Daten per TCP an einen anderen Rechner senden
kann, muß man eine Verbindung zu diesem aufgebaut haben. Damit
hat TCP die Haupteigenschaft, nicht mehr einzelne Pakete, sondern
Datenströme zu verarbeiten. Im Gegensatz zu Paketen sind die
Datenlängen hier nicht mehr begrenzt. Über eine TCP Verbindung
können Gigabytes von Daten übertragen werden, die natürlich in
Millionen von IP Paketen aufgeteilt werden.
Da alle darunter liegenden Protokolle allerdings paketorientiert arbeiten,
ist die Verbindung natürlich nur 'virtuell'. Durch diese festgelegte
Verbindung können die zwei Verbindungspartner auch sicherstellen, dass die
gesendeten Daten auch wirklich korrekt ankommen und zwar auch in der
richtigen Reihenfolge und nicht doppelt. Dadurch ist es natürlich wesentlich
komplexer aufgebaut als UDP. In der Regel gibt es in der Verbindung einen
Client und einen Server. So verwenden auch die meisten Internetanwendungen
TCP als Übertragungsprotokoll.
Eine typische TCP-Verbindung sieht so aus, dass der Client eine
Verbindungsanforderung an den Server schickt. Dieser bestätigt diese
Verbindung, wenn er dies möchte. Er Client bestätigt diese
Antwort. Damit besteht eine feste Verbindung
zwischen den beiden Partnern. Da drei Schritte erforderlich sind,
um eine Verbindung aufzubauen, bezeichnet man diesen Vorgang auch
als three-way-handshake (dreifach Händeschütteln). Nun können
fleißig Daten übertragen werden bis entweder der Server oder der
Client die Zeit gekommen sehen, die Verbindung zu trennen. Dazu
sendet er einfach eine Ende-Anforderung an den anderen Rechner
und nach Bestätigung durch diesen wird die Verbindung
beendet.
TCP erstellt nun für eine bestimmte Menge an Daten des
Datenstromes ein (IP) Paket und sendet dieses über IP. Ebenso
wie UDP kennt TCP Portnummern und verwendet einen eigenen Header.
Wie auch bei IP können die TCP Fragmente in falscher Reihenfolge
ankommen. Diese werden von TCP sortiert und zusammengesetzt,
ähnlich, wie das auch IP macht. TCP numeriert die Pakete
(diese Nummer steht im TCP Header), um dies zu ermöglichen. Im
TCP Header steht auch eine Header- und Datenprüfsumme.
Paketbestätigungen werden automatisch verschickt. Eine
Paketbestätigung ist ein spezielles TCP Paket. Eine Bestätigung
gilt immer für eine bestimmte Paketnummern. Kommt
innerhalb einer bestimmten Zeit keine Bestätigung, so ist
entweder das ursprüngliche Paket oder dessen Bestätigung
verlorengegegangen. Verlorengegangene Pakete werden von der TCP
Schicht automatisch wiederholt. Der Empfänger merkt sich die
gefolgten Pakete, bis er die fehlenden erhalten hat. Dann erst
kann er den Datenstrom wieder korrekt zusammensetzen.
Wird TCP verwendet, wird also sichergestellt, dass die Daten so
ankommen, wie sie gesendet werden. Ein TCP Dienst muß also keine
Datenprüfungen durchführen.
Zum Verbindungsabbau werden wieder spezielle Pakete verwendet,
analog zum Verbindungsaufbau.
|