Das Transmission Control Protocol (TCP) ist eine der wichtigsten Protokolle der Internet-Protokolle Suite. Es wird am häufigsten für die Datenübertragung verwendete Protokoll im Kommunikationsnetz wie das Internet.
TCP ist zuverlässig Protokoll. Das heißt, der Empfänger sendet immer entweder positive oder negative Quittung über das Datenpaket an den Absender, so dass der Absender immer hell Ahnung, ob das Datenpaket wird das Ziel erreicht, oder es braucht, um es erneut zu senden.
TCP stellt sicher, dass die Daten erreicht beabsichtigt Bestimmungsort in der gleichen Reihenfolge sie gesendet wurde.
TCP ist verbindungsorientiert. TCP setzt voraus, dass Verbindung zwischen zwei remote Punkten vor dem Senden tatsächlichen Daten festgelegt werden.
TCP stellt Fehlerprüfung und Recovery-Mechanismus.
TCP bietet End-to-End-Kommunikation.
TCP bietet Flusskontrolle und Service-Qualität.
TCP arbeitet in Client / Server-Punkt-zu-Punkt-Betrieb.
TCP bietet Vollduplex-Server, dh er Rollen von Empfänger und Sender durchführen können.
Die Länge der TCP-Header ist mindestens 20 Byte lang und maximal 60 Byte.
Quellport (16-bits) - Es identifiziert Quell-Port des Anwendungsprozesses auf dem sendenden Gerät.
Ziel-Port (16-bits) - Es identifiziert Ziel-Port des Bewerbungsverfahrens an der Aufnahmevorrichtung.
Sequenznummer (32-bits) - Sequenznummer der Datenbytes eines Segments in einer Sitzung.
Danksagung Nummer (32-Bit) - Wenn ACK-Flag gesetzt ist, enthält diese Zahl die nächste Sequenznummer des Datenbytes erwartet und arbeitet als Bestätigung der bisherigen Daten empfangen.
Daten Offset (4-bits) - Dieses Feld bezeichnet beide die Größe des TCP-Kopfs (32-Bit-Wörter), und der Offset-Daten in aktuellen Pakets im gesamten TCP-Segment .
Reserviert (3-bits) - Für zukünftige Verwendung reserviert und alle sind auf Null gesetzt standardmäßig .
Flaggen (1-bit jrder)
NS - Nonce Summen-Bit wird durch Explicit Congestion Notification Signalisierungprozess verwendet.
CWR - Wenn ein Gastgeber erhielt Paket mit ECE-Bit Setz, setzt es Congestion Windows-Reduzierung zu, Quittierung, dass ECE erhielt.
ECE -Es hat zwei Bedeutungen:
Wenn SYN-Bit gelöscht ist 0, dann ECE bedeutet, dass das IP-Paket hat seine CE (Staus Erfahrung) Bit gesetzt.
Wenn SYN-Bit auf 1 gesetzt ist, ECE bedeutet, dass das Gerät in der Lage ECT.
URG - Es zeigt an, dass Urgent Pointer Feld signifikanten Daten sollte sein verarbeitet werden
ACK - Zeigt an, dass Danksagung Feld hat Signifikanz. Wenn ACK auf 0 gelöscht, es zeigt an, dass Paket beinhaltet keine jeder Quittierung enthalten.
PSH - Wenn gesetzt, ist es eine Anfrage an die Empfangsstation, um Daten an die empfangende Anwendung ohne Pufferung es PUSH (sobald es kommt).
RST - Rücksetzflag hat die folgenden Eigenschaften:
Es wird verwendet, um eine eingehende Verbindung zu verweigern.
Es wird verwendet, um ein Segment zurückweisen.
Es wird verwendet, zu neustart eine Anschluss.
SYN - Dieses Flag wird verwendet, um einrichten Verbindung zwischen Hosts.
FIN - Dieses Flag wird verwendet, um Freisetzung eine Verbindung und keine Daten mehr danach ausgetauscht. Da Pakete mit SYN und FIN Flags Sequenznummern, werden sie in der richtigen Reihenfolge verarbeitet werden.
Windows Größe - Dieses Feld wird für die Ablaufsteuerung zwischen zwei Stationen verwendet und gibt die Menge des Puffers (in Byte) der Empfänger für ein Segment zugeordnet, dh wie viele Daten der Empfänger erwartet.
Prüfsumme - Dieses Feld enthält die Prüfsumme der Überschrift, Daten und Pseudo-Header .
Dringlichkeitszeiger - Es weist auf die dringende Daten-Byte, wenn URG-Flag auf 1 gesetzt ist .
Optionen -Es erleichtert das die zusätzlichen Optionen, die nicht durch die normale Kopf abgedeckt sind. Optionsfeld wird immer im 32-Bit-Worten beschrieben. Wenn dieses Feld enthält Daten weniger als 32-Bit wird verwendet, um die Polsterung restlichen Bits umfassen, um 32-Bit-Grenze zu erreichen.
TCP-Kommunikation zwischen zwei entfernten Hosts mittels Portnummern (TSAP) durchgeführt. Ports Zahlen im Bereich von 0 - 65535, die als unterteilt werden:
TCP-Kommunikation funktioniert in Server / Client-Modell. Der Client initiiert die Verbindung und der Server annimmt oder ablehnt. Drei-Wege-Handshake für die Verbindung Führung verwendet werden.
Client initiiert die Verbindung und sendet das Segment mit einer Sequenznummer. Server erkennt es wieder mit einer eigenen Sequenznummer und der ACK-Segment Kunden, die eine mehr als Sequenznummer des Kunden ist. Client nach Empfang ACK seines Segments sendet eine Bestätigung der Antwort Servers.
Entweder der Server und Client kann TCP-Segment mit FIN-Flag gesetzt auf 1 schicken Wenn der Empfängerseite antwortet er zurück durch die Anerkennung FIN, wird diese Richtung der TCP-Kommunikation geschlossen und die Verbindung gelöst wird.
TCP verwendet das Konzept der Fenstergröße, um die Notwendigkeit von Bandbreitenverwaltung unterzubringen. Fenstergröße teilt dem Absender auf der Gegenseite, die Anzahl der Daten-Byte-Segmenten der Empfänger an diesem Ende kann empfangen. TCP verwendet langsamen Startphase durch die Verwendung Fenstergröße 1 und erhöht die Fenstergröße exponentiell nach jeder erfolgreichen Kommunikation.
Zum Beispiel verwendet der Client-Fenster der Größe 2 und sendet 2 Bytes Daten. Wenn die Anerkennung dieses Segment erhielt die Fenstergröße ist auf 4 verdoppelt nächsten geschickt das Segment gesendet wird 4 Daten werden Bytes lang. Wenn die Bestätigung von 4-Byte-Datensegment empfangen wird, wird der Client setzt Fenstergröße bis 8 und so weiter.
Wenn eine Bestätigung verpasst wird, d.h. daten im Transitnetz verloren gehen oder es Erhalten NACK , dann die Fenstergröße auf die Hälfte und langsamen Startphase reduziert beginnt erneut..
TCP-Port-Nummern verwendet zu wissen, was es braucht, Bewerbung bis zur Übergabe des Datensegments. Zusammen mit diesem nutzt Sequenznummern, sich mit dem entfernten Rechner zu synchronisieren. Alle Datensegmente gesendet und mit Folgenummern empfangen. Der Sender weiß, welche letzten Datensegment vom Empfänger empfangen wurde, wenn es erhält ACK. Der Empfänger kennt den letzten Segments durch den Sender gesendet durch Bezugnahme auf die Sequenznummer des zuletzt empfangenen Pakets.
Wenn die Sequenznummer eines Segments vor kurzem Empfänger tut nicht übereinstimmen mit der Sequenznummer der Empfänger erwartete , dann wird es verworfen und NACK zurückgesendet. Wenn zwei Segmente kommen mit der gleichen Sequenznummer wird der TCP-Zeitstempelwert verglichen, um eine Entscheidung zu treffen.
Die Technik, zu verbinden zwei oder mehr Datenströme in einer einzigen Sitzung heißt Multiplexing. Wenn ein TCP-Client initialisiert eine Verbindung mit dem Server, bezieht er sich immer zu einem gut definierten Port-Nummer, die den Anwendungsprozess zeigt. Der Kunde selbst benutzt einen zufällig erstellten Portnummer von privaten Anschlussnummer Pools.
Verwenden von TCP Multiplexing kann ein Client mit einer Reihe von verschiedenen Anwendungsprozess in einer einzigen Sitzung zu kommunizieren. Zum Beispiel kann ein Client eine Seite, die wiederum verschiedene Arten von Daten (HTTP, SMTP, FTP usw.), die TCP-Sitzungszeitlimit erhöht, und die Sitzung für längere Zeit offen gehalten, enthält, so dass der Drei-Wege-Handshake-Overhead vermieden werden.
Dies ermöglicht es dem Client-System, mehrere Verbindung über einzelne virtuelle Verbindung empfangen. Diese virtuellen Verbindungen sind nicht gut für Server, wenn das Zeitlimit ist zu lang.
Wenn große Datenmenge ist zu zugeführt System, das nicht in der Lage zur Handhabung es wird, tritt Staus. TCP steuert Staus durch Fenster-Mechanismus. TCP stellt eine Fenstergröße erzählen Sie das andere Ende, wie viel Datensegment zu senden. TCP kann drei Algorithmen zur Lastkontrolle verwendet werden:
Additive erhöhen, Multiplikative Abnahme
Langsamer Start
Timeout Reagieren
TCP verwendet verschiedene typ Timer zur Steuerung und Verwaltung verschiedene Aufgaben:
Dieser Timer wird verwendet, um die Integrität und Gültigkeit einer Verbindung zu überprüfen.
Wenn der Keep-Alive-Zeit abgelaufen ist, sendet der Host eine Sonde, um zu überprüfen, ob die Verbindung noch besteht.
Dieser Timer hält Stateful Session von sendet Daten.
Wenn die Bestätigung der gesendeten Daten nicht innerhalb der Analogzeit zu erhalten, das Datensegment erneut gesendet wird.
TCP-Sitzung kann von beiden Host durch Senden Window Size 0 angehalten werden.
Um die Sitzung zu einem Host muss Fenstergröße mit etwas größeren Wert senden fortzusetzen.
Wenn dieses Segment nicht das andere Ende erreicht hat, können beide Enden füreinander für unendliche Zeit zu warten.
Wenn der Persist Timer abgelaufen ist, werden die Host-Wieder sendet seine Fenstergröße das andere Ende wissen zu lassen.
Persist Timer vermeidet Deadlocks in der Kommunikation.
Nach dem Lösen einer Verbindung, einer der Gastgeber wartet eine Timed-Wartezeit, die Verbindung vollständig zu beenden.
Dies ist notwendig, um sicherzustellen, dass das andere Ende hat die Anerkennung seiner Verbindungsabbau-Anforderung empfangen.
Timed-Out kann maximal 240 Sekunden (4 Minuten) zu sein.
TCP-Protokoll ist sehr zuverlässig. Es stellt Sequenznummer zu jedem Byte in Segment gesendet. Es liefert die Rückkopplungsmechanismus, dh, wenn ein Host ein Paket empfängt, wird er gebunden an ACK dieses Paket mit der nächsten Folgenummer erwartet (wenn es nicht das letzte Segment).
Wenn ein TCP-Server abstürzt Mitte-Wege-Kommunikation und neu beginnt seinen Prozess es TPDU Broadcast an alle Hosts sendet. Die Gastgeber können senden Sie die letzten Datensegment, das nie unbestätigten war und weiter zu tragen.