Kurs:Internet und Verschluesselung/TCP/Konzept einer logischen Verbindung
Konzept einer logischen Verbindung
- was ist eine logische Verbindung
- Was passiert mit einer TCP verbindung wenn ich das Kabel aus dem Stecker ziehe und spaeter (1 sekunde, 1 stunde, 1 tag,...) wieder rein stecke
- Wieso reicht ein 2 way handshake nicht aus, um eine logische Verbindung zu erstellen
- was besagt das end to end principle
- Wieso ist das End to End Principle wichtig
- Wodurch wird eine TCP verbindung zuverlaessig (reliable)
Transmission Controle Protocol
Das Transmission Controle Protocol, kurz TCP ist ein Netzwerkprotokoll das definiert, auf welche Art und Weise Daten zwischen Sendern und Empfängern ausgetauscht werden sollen. Dieser Vorgang lässt sich gut an einem Beispiel erklären:
Nehmen wir an, Fred möchte eine Videodatei an Josh versenden. Diese Datei würde durch TCP in mehrere Sequenzen gesplittet werden, da die gesamte Datei als zu versendendes Medium zu groß wäre. Da die Einzelnen Sequenzen jedoch während der Übertragung nicht alle „denselben Weg“ wählen, um von Fred zu Josh zu gelangen, könnte es leicht passieren, dass sie nicht in der richtigen Reihenfolge dort eintreffen. Aus diesem Grund werden zunächst alle Sequenzen mit einem sogenannten Header versehen. Dieser enthält alle notwendigen Steuer- und Kontrollinformationen, um eine sichere Datenübertragung zu gewährleisten. Jeder Sequenz wird praktisch ein Steckbrief mit allen wichtigen Informationen beigefügt, dies sind immer Sender- und Empfänger-Port und die Sequenznummer. Die Nummer ist wichtig, damit die einzelnen Sequenzen beim Empfänger in die richtige Reihenfolge sortiert werden können, denn sie treffen dort ja unsortiert ein.
Doch bevor überhaupt Sequenzen gesendet werden können, muss eine Art Verbindung zwischen Freds und Joshs Computern aufgebaut werden. Denn Datenübertragung kann grundsätzlich nur über zwei Arten erfolgen; einmal verbindungsorientiet und einmal verbindungslos. Bei einem verbidungsorientierten Datentransfer wird eine logische Verbindung aufgebaut. Das ist keine physikalische Verbindung wie beispielsweise über ein Kabel sondern eher eine virtuelle. Für den Sender- und den Empfängercomputer hat es durch die logische Verbindung daher sozusagen nur den Anschein als seinen sie miteinander Verbunden, obwohl tatsächlich keine solche Verbindung besteht. Ein großer Vorteil einer solchen logischen Verbindung ist, dass sie bestehen bleibt, selbst wenn man das Kabel aus dem Stecker zieht, da sie ja praktisch virtuell ist.
TCP basiert auf verbindungsorientierter Datenvermittlung, wesswegen eine TCP Verbindung auch immer gleichzitig eine logische Verbindung ist. Um eine solche Verbindung aufzubauen, ist ein sogenannter three-way-handshake notwendig. Im ersten Schritt sendet der Sender (Fred), einen Wunsch zur Synchronisation an den Empfänger (Josh). Er verschickt also ein SYN-Packet, welches eine IP-Nummer, auch Synchronisationsnummer genannt, beinhaltet. Diese ist eine willkürliche Zahl zwischen 0 und 65536. In unserem Beispiel nennen wir sie einmal seq x. Bei erfolgreichem Erhalten des SYN-Pakets, antwortet Josh als Empfänger, indem er seq x + 1 an Fred zurück schickt. Das nennt man dann Acknowledgement Message (ACK) und dies gilt als Zustimmung für den von Fred angefragten Verbindungsaufbau. Zusätzlich sendet Josh auch noch ein eigenes SYN-Paket mit der Synchronisationsnummer seq y. Nun bestätigt Fred im letzten Schritt das Erhalten des ACK- und SYN-Pakets indem er an Josh seq y + 1 als Antwort sendet. Zudem sendet er seq x + 1 und die gewünschten Daten, in unserem Fall die Videodatei, an Josh. Würde Fred den letzten Schritt auslassen, so wüsste Josh nicht, ob seine Bestätigung zum Verbindungsaufbau überhaupt bei Fred angekommen ist. Es muss also sozusagen eine Bestätigung der Bestätigung versendet werden, damit der Datentransfer beginnen kann. Ansonsten würde Josh nämlich davon ausgehen, dass seine Bestätigung Fred gar nicht erreicht hat und würde immer und immer wieder ACK- und SYN-Pakete verschicken. Eine Verbindung käme so nicht zustande. Doch auch nachdem eine Verbindung errichtet worden ist, kann es immer noch zu Fehlern während der Datenübertragung kommen. Aus diesem Grund stehen Empfänger und Sender im ständigen Kontakt und tauschen Kontrollmeldungen aus. Außerdem enthalten nur sie Funktionen wie Fehlerbehebung etc. Dieses Prinzip nennt man end – to – end principle. Treten also Fehler beim Versenden der Sequenzen aus, so behebt nicht das Netzwerk den Fehler, sondern die Enden bei Fred und Josh. Dies hat große Vorteile. Beispielsweise können Datenverluste eigenhändig erkannt und behoben werden. Das ist unteranderem auch ein Grund dafür, warum nahezu alle aktuellen Betriebssysteme TCP für den Datenaustausch mit anderen Rechnern nutzen.
- en:Web_Science/Part1:_Foundations_of_the_web/Transmission_Control_Protocol
- en:Web_Science/Part1:_Foundations_of_the_web/Transmission_Control_Protocol/End_to_end_principle_and_connection_oriented_communication
- en:Web_Science/Part1:_Foundations_of_the_web/Transmission_Control_Protocol/Three_way_handshake
- en:w:End-to-end_principle