Wie ist meine IPWie ist meine IP

Das Transmission Control Protocol (TCP) ist eines der Hauptprotokolle der Internet-Protokollsuite. Es hat seinen Ursprung in der ersten Netzwerkimplementierung, in der es das Internet Protokoll (IP) ergänzte. Daher wird die gesamte Suite üblicherweise als TCP/IP bezeichnet. TCP sorgt für die zuverlässige, geordnete und fehlergeprüfte Übermittlung eines Stroms von Oktetten (Bytes) zwischen Anwendungen, die auf Hosts laufen, die über ein IP-Netzwerk kommunizieren. Wichtige Internetanwendungen wie das World Wide Web, E-Mail, Remote-Administration und Dateiübertragung basieren auf TCP, das Teil der Transportschicht der TCP/IP-Suite ist. SSL/TLS läuft oft auf TCP aufbauend.

TCP ist verbindungsorientiert, und eine Verbindung zwischen Client und Server wird aufgebaut, bevor Daten gesendet werden können. Der Server muss auf Verbindungsanfragen von Clients warten (passiv offen), bevor eine Verbindung aufgebaut wird. Drei-Wege-Handshake (aktiv offen), erneute Übertragung und Fehlererkennung erhöhen die Zuverlässigkeit, verlängern aber die Latenzzeit. Anwendungen, die keinen zuverlässigen Datenstromdienst benötigen, können das User Datagram Protocol (UDP) verwenden, das einen verbindungslosen Datagrammdienst bietet, bei dem die Zeit Vorrang vor der Zuverlässigkeit hat. TCP verwendet eine Stauvermeidung im Netzwerk. Es gibt jedoch Schwachstellen bei TCP, wie z. B. Denial-of-Service, Connection Hijacking, TCP-Veto und Reset-Angriff.

Funktion

Das Transmission Control Protocol bietet einen Kommunikationsdienst auf einer Zwischenebene zwischen einem Anwendungsprogramm und dem Internet-Protokoll. Es bietet Host-zu-Host-Verbindungen auf der Transportschicht des Internet-Modells. Eine Anwendung muss die besonderen Mechanismen zum Senden von Daten über eine Verbindung zu einem anderen Host nicht kennen, wie z. B. die erforderliche IP-Fragmentierung, um die maximale Übertragungseinheit des Übertragungsmediums unterzubringen. Auf der Transportschicht kümmert sich TCP um alle Handshaking- und Übertragungsdetails und präsentiert der Anwendung eine Abstraktion der Netzwerkverbindung, typischerweise über eine Netzwerk-Socket-Schnittstelle.

Auf den unteren Ebenen des Protokollstapels können IP-Pakete aufgrund von Netzwerküberlastung, Verkehrslastausgleich oder unvorhersehbarem Netzwerkverhalten verloren gehen, dupliziert oder in falscher Reihenfolge zugestellt werden. TCP erkennt diese Probleme, fordert die erneute Übertragung der verlorenen Daten an, ordnet die Daten in ungeordneter Reihenfolge neu an und hilft sogar, die Netzwerküberlastung zu minimieren, um das Auftreten der anderen Probleme zu verringern. Wenn die Daten immer noch nicht zugestellt wurden, wird die Quelle über diesen Fehler benachrichtigt. Sobald der TCP-Empfänger die ursprünglich gesendete Oktettfolge wieder zusammengesetzt hat, gibt er sie an die empfangende Anwendung weiter. Auf diese Weise abstrahiert TCP die Kommunikation der Anwendung von den zugrunde liegenden Netzwerkdetails.

TCP wird von vielen Internet-Anwendungen verwendet, darunter das World Wide Web (WWW), E-Mail, File Transfer Protocol, Secure Shell, Peer-to-Peer-Filesharing und Streaming Media.

TCP ist eher für eine genaue als für eine rechtzeitige Zustellung optimiert und kann relativ lange Verzögerungen (in der Größenordnung von Sekunden) verursachen, während es auf Nachrichten wartet, die nicht in der richtigen Reihenfolge ankommen, oder auf die erneute Übertragung von verlorenen Nachrichten. Daher ist es für Echtzeitanwendungen wie Voice over IP nicht besonders geeignet. Für solche Anwendungen werden stattdessen üblicherweise Protokolle wie das Real-time Transport Protocol (RTP) empfohlen, das über das User Datagram Protocol (UDP) arbeitet.

TCP ist ein zuverlässiger Stream-Delivery-Service, der garantiert, dass alle empfangenen Bytes identisch und in der gleichen Reihenfolge wie die gesendeten sind. Da die Übertragung von Paketen in vielen Netzwerken nicht zuverlässig ist, erreicht TCP dies durch eine Technik, die als positive Bestätigung mit erneuter Übertragung bekannt ist. Dies erfordert, dass der Empfänger mit einer Bestätigungsnachricht antwortet, wenn er die Daten empfängt. Der Sender zeichnet jedes gesendete Paket auf und führt einen Zeitzähler, ab dem das Paket gesendet wurde. Der Sender sendet ein Paket erneut, wenn der Timer abläuft, bevor er die Quittung erhält. Der Timer wird benötigt, falls ein Paket verloren geht oder beschädigt wird.

Während IP die eigentliche Zustellung der Daten übernimmt, behält TCP den Überblick über die Segmente - die einzelnen Einheiten der Datenübertragung, in die eine Nachricht zur effizienten Weiterleitung durch das Netzwerk unterteilt wird. Wenn z. B. eine HTML-Datei von einem Webserver gesendet wird, unterteilt die TCP-Software-Schicht dieses Servers die Datei in Segmente und leitet sie einzeln an die Internet-Schicht im Netzwerkstapel weiter. Die Software der Internetschicht kapselt jedes TCP-Segment in ein IP-Paket ein, indem sie einen Header hinzufügt, der (neben anderen Daten) die Ziel-IP-Adresse enthält. Wenn das Client-Programm auf dem Zielcomputer sie empfängt, setzt die TCP-Software in der Transportschicht die Segmente wieder zusammen und stellt sicher, dass sie richtig geordnet und fehlerfrei sind, während sie den Dateiinhalt an die empfangende Anwendung streamt.