Kategorien
Webentwicklung

TCP

TCP (Transmission Control Protocol) ist ein Standard, der definiert, wie man eine Netzwerkkonversation aufbaut und aufrechterhält, über die Anwendungsprogramme Daten austauschen können. TCP arbeitet mit dem Internet Protokoll (IP) zusammen, das definiert, wie Computer Datenpakete zueinander senden. Zusammen sind TCP und IP die Grundregeln, die das Internet definieren. Die Internet Engineering Task Force (IETF) definiert TCP in dem Request for Comment (RFC) Standarddokument Nummer 793.

Wie das Transmission Control Protocol funktioniert
TCP ist ein verbindungsorientiertes Protokoll, was bedeutet, dass eine Verbindung aufgebaut und aufrechterhalten wird, bis die Anwendungsprogramme an beiden Enden den Austausch von Nachrichten beendet haben. Es legt fest, wie die Anwendungsdaten in Pakete zerlegt werden, die von den Netzwerken geliefert werden können, sendet Pakete an die Netzwerkschicht und akzeptiert Pakete von ihr, verwaltet die Flusskontrolle und – da es eine fehlerfreie Datenübertragung gewährleisten soll – kümmert es sich um die erneute Übertragung von verworfenen oder verstümmelten Paketen und quittiert alle ankommenden Pakete. Im Open Systems Interconnection (OSI) Kommunikationsmodell deckt TCP Teile der Schicht 4, die Transportschicht, und Teile der Schicht 5, die Sitzungsschicht, ab.

Wenn zum Beispiel ein Webserver eine HTML-Datei an einen Client sendet, benutzt er dazu das Hypertext Transfer Protocol (HTTP). Die HTTP-Programmschicht bittet die TCP-Schicht, die Verbindung aufzubauen und die Datei zu senden. Der TCP-Stack teilt die Datei in Datenpakete auf, nummeriert sie und leitet sie dann einzeln an die IP-Schicht zur Zustellung weiter. Obwohl jedes Paket in der Übertragung die gleiche Quell- und Ziel-IP-Adresse hat, können die Pakete über mehrere Routen gesendet werden. Die TCP-Programmschicht im Client-Computer wartet, bis alle Pakete angekommen sind, bestätigt dann diejenigen, die sie erhalten hat und bittet um die erneute Übertragung derjenigen, die sie nicht erhalten hat – basierend auf den fehlenden Paketnummern. Die TCP-Schicht setzt dann die Pakete zu einer Datei zusammen und liefert die Datei an die empfangende Anwendung.

OSI vs. TCP/IP Modell
Ein Vergleich zwischen dem OSI-Modell und dem TCP/IP-Modell.
Dieser Prozess der Fehlererkennung – das erneute Senden und die Neuordnung der Pakete, nachdem sie angekommen sind – kann eine Latenz in einem TCP-Stream verursachen. Sehr zeitkritische Anwendungen wie Voice over IP (VoIP), Videostreaming und Gaming verlassen sich im Allgemeinen auf einen Transportprozess wie das User Datagram Protocol (UDP), weil es die Latenz und den Jitter – die Schwankungen der Latenz – reduziert, indem es sich nicht um die Neuordnung der Pakete oder die erneute Übertragung fehlender Daten kümmert.

UDP wird als Datagrammprotokoll oder verbindungsloses Protokoll klassifiziert, weil es keine Möglichkeit hat, zu erkennen, ob beide Anwendungen ihre Hin- und Her-Kommunikation beendet haben oder nicht. Anstatt ungültige Datenpakete zu korrigieren, wie es TCP tut, verwirft UDP diese Pakete einfach und überlässt es der Anwendungsschicht, eine detailliertere Fehlererkennung durchzuführen.

Wofür TCP verwendet wird
TCP wird verwendet, um Daten so zu organisieren, dass die sichere Übertragung zwischen Server und Client gewährleistet ist. Es garantiert die Integrität der Daten, die über das Netzwerk gesendet werden, unabhängig von der Menge. Aus diesem Grund wird es verwendet, um Daten von anderen übergeordneten Protokollen zu übertragen, die verlangen, dass alle übertragenen Daten ankommen. Beispiele hierfür sind:

Secure Shell (SSH), File Transfer Protocol (FTP), Telnet: Für Peer-to-Peer-Filesharing und, im Falle von Telnet, um sich in den Computer eines anderen Benutzers einzuloggen, um auf eine Datei zuzugreifen.
Simple Mail Transfer Protocol (SMTP), Post Office Protocol (POP), Internet Message Access Protocol (IMAP): Für das Senden und Empfangen von E-Mails
HTTP: Für den Webzugriff
Diese Beispiele existieren alle auf der Anwendungsschicht des TCP/IP Stacks und senden Daten nach unten zu TCP auf der Transportschicht.

Warum TCP wichtig ist
TCP ist wichtig, weil es die Regeln und Standardverfahren für die Art und Weise, wie Informationen über das Internet kommuniziert werden, festlegt. Es ist die Grundlage für das Internet, wie es heute existiert, und stellt sicher, dass die Datenübertragung einheitlich erfolgt, unabhängig von Ort, Hardware oder Software. Aus diesem Grund ist es flexibel und hochgradig skalierbar, was bedeutet, dass neue Protokolle eingeführt werden können und es diese aufnehmen wird. Es ist auch nicht proprietär, was bedeutet, dass keine Person oder Firma es besitzt.

Position im TCP/IP Stack
Der TCP/IP Stack ist ein Modell, das darstellt, wie Daten über Netzwerke mit dem TCP/IP Protokoll organisiert und ausgetauscht werden. Es stellt eine Reihe von Schichten dar, die die Art und Weise repräsentieren, wie Daten von einer Reihe von Protokollen gehandhabt und verpackt werden, während sie ihren Weg vom Client zum Server und umgekehrt machen.

Wie das OSI-Modell ist der Stack ein konzeptionelles Modell für Datenaustauschstandards, wobei die Daten auf jeder Schicht neu verpackt werden, basierend auf ihrer Funktionalität und den Transportprotokollen.

Der Unterschied zwischen den beiden Modellen ist der Grad der Spezifität. Das OSI-Modell ist eine abstraktere Darstellung der Art und Weise, wie Daten ausgetauscht werden, und nicht spezifisch für ein bestimmtes Protokoll. Es ist ein Rahmenwerk für allgemeine Netzwerksysteme. Der TCP/IP Stack ist spezifischer und besteht aus dem dominanten Satz von Protokollen, die zum Datenaustausch verwendet werden. Das OSI-Modell ist abstrakt und basiert mehr auf Funktionalität, während der TCP/IP-Stack konkret und protokollbasiert ist. Das OSI-Modell hat sieben Schichten, während das TCP/IP-Modell nur vier hat.

Anfragen kommen durch den Stack zum Server, beginnend auf der Anwendungsschicht als Daten. Von dort aus werden die Informationen in Pakete verschiedener Typen auf jeder Schicht aufgeteilt. Die Daten bewegen sich:

von der Anwendung zur Transportschicht, wo sie in TCP-Segmente sortiert werden;
zur Internetschicht, wo sie zu einem Datagramm werden;
zur Netzwerkschnittstellenschicht, wo sie wieder in Bits und Frames zerlegt werden; und
schließlich antwortet der Server, und die Informationen wandern durch den Stack nach oben, um in der Anwendungsschicht als Daten anzukommen.
TCP existiert in der Transportschicht mit anderen Protokollen wie UDP. Protokolle in dieser Schicht stellen die fehlerfreie Übertragung von Daten zur Quelle sicher, mit Ausnahme von UDP, da es eine begrenztere Fähigkeit zur Fehlerprüfung hat. Der Header eines UDP-Datagramms enthält viel weniger Informationen als ein TCP-Segment-Header und durchläuft im Interesse einer geringeren Latenzzeit viel weniger Verarbeitung auf der Transportschicht.

Schreibe einen Kommentar

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

13 + sieben =