TCP (bedeutet Transmission Control Protocol, zu deutsch: Protokoll zur Übertragungskontrolle) ist ein der wichtigsten Protokolle in der Transportschicht des Modell TCP/IP.
Erlaubt auf Höhe der Applikationen, die Verwaltung der Daten von (und zu) der unteren Schicht im Modell (d.h. das Protokoll IP). Die ans IP Protokoll gelieferte Daten, werden in IP Datagramme verkapselt und versieht das Protokollfeld mit einer 6 (besagt dass das Protokoll oberhalb TCP ist…).
TCP ist ein Verbindungsorientiertes Protokoll, d.h. versieht zwei kommunizierende Maschine mit der Möglichkeit den Stand der übertragung zu überwachen.
Die wichtigsten Merkmale vom TCP Protokoll sind :
Dank TCP Protokoll, können Applikationen sicher miteinander kommunizieren (mit dem Verfahren der Empfangsbetätigungen des Protokoll TCP), gelöst von den unteren Schichten. Dies bedeutet dass Router (auf der Internet Schicht liegend) haben lediglich zur Aufgabe die Datenübertragung in Datagramenform, und sich nicht um die Datenkontrolle kümmern, da diese von der Transportschicht erledigt wird (insbesondere vom TCP Protokoll).
Während der Kommunikation durch das TCP Protokoll, werden zwei Rechner mitenander verbunden. Die Sendemaschine (der Antragsteller) heisst Client, und die Empfangsmaschine heisst Server. Wir stehen hier dann vor einer Client-Server Umgebung.
Die Maschinen in einer solchen Umgebung sitzen im Modus connected, d.h. sie kommunizieren in beiden Richtungen
Zum Zwecke eines besseren Kommunikationsablauf samt all seine mithängenden Kontrollinstanzen, werden die Daten verkapselt, d.h. man gibt deren Datenpaket einen Header zu, der das synchronisieren der Übertragung und den Empfang sichert.
Eine sonstige Besonderheit von TCP ist die Möglichkeit zum Regeln des Datendurchsatzes dank seine Fähigkeit Meldungen variabler Grösse zu senden; diese messages werden segments genannt.
TCP kann eine wesentlich höhere Tätigkeit durchführen : das Multiplexen / Demultiplexen, d.h. von diversen Applikationen stammende Daten gleichzeitig auf der einen und selben Leitung zu legen oder mit anderen Worten eine Reihe von Informationen parallel strömen lassen.
Diese Operationen werden realisiert durch das Konzept der Ports (oder sockets), d.h. an einer Applikationsart zugewiesen Nummer, die zusammen mit einer IP Adresse, auf eindeutiger Weise die auf einem vorgegebenen Rechner laufende Applikation ausmachen.
Ein TCP Segment wird gebildet durch :
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| Quellport | Zielport | ||||||||||||||||||||||||||||||
Daten |
URG | ACK | PSH | RST | SYN | FIN | |||||||||||||||||||||||||
| Optionen | Füllvektor | ||||||||||||||||||||||||||||||
Bedeutung der einzelnen Felder :
Das TCP Protokoll erlaubt ein hohes Mass an Zuversicht bei der Übermittlung von Daten obwohl das IP Protokoll das es benutzt keinerlei Sicherheitkontrolle für seine Datagramme vorsieht.
In Wirklichkeit besitzt das TCP Protokoll ein System von Empfangsbestätigungen mit dem Server sowie Client ihre Daten sicher empfangen können
Bei der Segmentübertragung, wird eine Ordnungsnummer (auch Sequenznummer genannt) angehängt. Nach dem Empfang des Datensegment, sendet die Empfangsmaschine ein Datesegment dessen ACK Flag auf 1 steht (Meldung für eine Empfangsbestätigung) begleitet mit einer Empfangsbestätigungsnummer gleich der vorrigen Sequenznummer.
Zusätzlich wird beim den Empfang des Segment, ein Zähler von der Sender-Stelle gesetzt und das Segment wird nachdem der Zähler abgelaufen ist, zurückgesendet, weil davon ausgegangen wird dass das Segment unterwegs verloren ging.
Wenn jedoch das nicht verloren geht und doch ankommt, erfährt der Empfänger anhand der Sequenznummer dass es sich um ein Doppel handelt, und wird das zeitlich letztangekommene aufheben.
Vorangenommen, das Kommunikationsprozess, das mittels einer Datenübertragung und einer Empfangsbestätigung abläuft, basiert auf eine Ordnungsnummer - auch allgemein Sequenznummer genannt -, so müssen Sender sowie Empfänger (Client und Server) die AnfangsSequenznummer der gegenüberliegenden Stelle auch wissen.
Das Zustande kommen der Verbindung zweier Applikationen geschiet oft wie folgt :
Beide Maschinen werden dann Sequenz-Synchron gestellt durch ein Prozess oft genannt three ways handshake (zu deutsch :Drei Zeiten Händedruck oder neu deutsch Drei Wege Handshake) das auch beim Verbindungsabbau angewendet wird.
Dieser einführende Kommunikationsdialog läuft, wie nach seiner Benennung, in drei Etappen ab :
Gleich nach dieser Dreifachaustausch-Sequenz laufen beide Maschinen synchron und die Übertragung kann beginnen !
In der Piratenwelt, existiert eine Technik, das IP-Spoofing, die Zustimmungsbeziehung, zwecks nicht würdigen Absichten, verfälscht
In zahlreichen Fällen wird es notwendig die Anzahl der Quittierungen zu verringert um das Netz zu entlasten. Dabei wird die Anzahl der Sequenzen auf einen festen Wert gehalten; danach wird unverzüglich eine Quittierung erwartet. Diese Zahl wird in das TCP/IP Header-Feld Window / Fenstergespeichert.
Man nennt in der Tat diese Methode "Sliding-Window" oder "Schiebefensterverfahren", weil dabei sozusagen eine Quittierungslose Sequenzenspanne festgelegt, die mit jeder neuen Quittierung verschoben wird.
Im übrigen ist die Fenstergrösse nicht fest. Tatsächlich kann der Server zusätzliche Quittierungen erzeugen, dann die für ihn als richtig erscheinende Fenstergrösse in das Fensterfeld eintragen. Auf diese Weise wird bei jeder Quittierung mit einem Antrag zur Fensterausdehnung, der Client veranlasst die rechte Fensterkante zu verschieben.
Dagegen, im Falle einer Verringerung, wird der Client, nicht die rechte Fensterkante wieder nach links verschieben, sondern abwarten dass die linke Fenster fortbewegt wird mit jeder Quittierung.
Der Client kann selbst, mit dem Server gleichbefugt, ein Ende der Verbindung beantragen.
Der Verbindungsabbau läuft folgendermassen ab :
Zusätzliche Informationen über das TCP Protokoll erhalten sie am ehesten über die RFC 793 mit ausführlichen Angaben über das Protokoll :