Heim  >  Artikel  >  Welches Transportschichtprotokoll sorgt für eine zuverlässige Übertragung?

Welches Transportschichtprotokoll sorgt für eine zuverlässige Übertragung?

青灯夜游
青灯夜游Original
2021-07-12 14:06:3323810Durchsuche

Das Transportschichtprotokoll, das eine zuverlässige Übertragung ermöglicht, ist TCP. TCP (Transmission Control Protocol) ist ein verbindungsorientiertes, zuverlässiges, Bytestream-basiertes Transportschicht-Kommunikationsprotokoll, das speziell für die Bereitstellung zuverlässiger End-to-End-Bytestreams in unzuverlässigen Internetnetzwerken entwickelt wurde.

Welches Transportschichtprotokoll sorgt für eine zuverlässige Übertragung?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, Dell G3-Computer.

In der TCP/IP-Protokollsuite gibt es zwei verschiedene Übertragungsprotokolle: TCP (Transmission Control Protocol) und UDP (User Datagram Protocol). Das TCP-Protokoll ist ein verbindungsorientiertes Protokoll. Es ist relativ zuverlässig, sicher und stabil, aber es ist nicht effizient und beansprucht viele Ressourcen. Das UDP-Protokoll ist ein verbindungsloses Protokoll, das sehr effizient und schnell ist und nur wenige Ressourcen beansprucht. Allerdings ist sein Übertragungsmechanismus unzuverlässig und muss auf Hilfsalgorithmen zurückgreifen, um die Übertragungssteuerung abzuschließen.

Daher Das Transportschichtprotokoll, das eine zuverlässige Übertragung ermöglicht, ist TCP.

TCP ist für eine mehrschichtige Protokollhierarchie konzipiert, die Multi-Netzwerk-Anwendungen unterstützt. TCP ist darauf angewiesen, zuverlässige Kommunikationsdienste zwischen Prozesspaaren in einem Host-Computer bereitzustellen, der mit verschiedenen, aber miteinander verbundenen Computerkommunikationsnetzwerken verbunden ist. TCP geht davon aus, dass es einfache, möglicherweise unzuverlässige Datagrammdienste von Protokollen niedrigerer Ebene erhalten kann. Grundsätzlich sollte TCP auf einer Vielzahl von Kommunikationssystemen funktionieren können, von festverdrahteten Verbindungen bis hin zu paketvermittelten oder leitungsvermittelten Netzwerken.

TCP Transmission Control Protocol ist ein Übertragungsprotokoll, das speziell für die Bereitstellung zuverlässiger End-to-End-Byteströme in unzuverlässigen Internetnetzwerken entwickelt wurde.

Hauptfunktionen:

Wenn die Anwendungsschicht einen Datenstrom, der durch 8-Bit-Bytes dargestellt wird, zur Übertragung zwischen Netzwerken an die TCP-Schicht sendet, unterteilt TCP den Datenstrom in Nachrichtensegmente mit geeigneter Länge, dem maximalen Übertragungssegment Die Größe (MSS) wird normalerweise durch die maximale Übertragungseinheit (MTU) der Datenverbindungsschicht des Netzwerks begrenzt, mit dem dieser Computer verbunden ist. Anschließend leitet TCP das Datenpaket an die IP-Schicht weiter, die das Paket über das Netzwerk an die TCP-Schicht der empfangenden Entität weiterleitet.

Um die Zuverlässigkeit der Nachrichtenübertragung sicherzustellen, gibt TCP jedem Paket eine Sequenznummer. Gleichzeitig stellt die Sequenznummer sicher, dass die an die empfangende Endeinheit übertragenen Pakete der Reihe nach empfangen werden. Die empfangende Entität sendet dann eine entsprechende Bestätigung (ACK) für die erfolgreich empfangenen Bytes zurück. Wenn die sendende Entität die Bestätigung nicht innerhalb einer angemessenen Umlaufverzögerung (RTT) erhält, werden die entsprechenden Daten (die als verloren gelten) erneut übertragen .

  • Im Hinblick auf Datenkorrektheit und Rechtmäßigkeit überprüft TCP, ob die Daten Fehler aufweisen. Die Prüfsumme muss beim Senden und Empfangen gleichzeitig berechnet werden. Zur Verschlüsselung der Daten kann die MD5-Authentifizierung verwendet werden.

  • Um die Zuverlässigkeit zu gewährleisten, werden Timeout-Neuübertragungs- und Huckepack-Bestätigungsmechanismen übernommen.

  • Zur Flusskontrolle wird das Sliding-Window-Protokoll übernommen. Das Protokoll legt fest, dass unbestätigte Pakete innerhalb des Fensters erneut übertragen werden müssen.

Im Hinblick auf die Überlastungskontrolle wird der weithin anerkannte TCP-Überlastungskontrollalgorithmus (auch AIMD-Algorithmus genannt) verwendet. Der Algorithmus besteht hauptsächlich aus vier Hauptteilen:

(1) Langsamer Start

Immer wenn eine TCP-Verbindung hergestellt wird oder eine TCP-Verbindung abläuft und erneut überträgt, tritt die Verbindung in die langsame Startphase ein. Nach dem langsamen Start initialisiert die TCP-Entität die Größe des Überlastungsfensters auf ein Segment, das heißt: cwnd=1. Danach erhöht sich der cwnd-Wert jedes Mal, wenn eine Bestätigung (ACK) eines Nachrichtensegments empfangen wird, um 1, dh das Überlastungsfenster vergrößert sich exponentiell. Wenn der cwnd-Wert den Schwellenwert für den langsamen Start (ssthresh) überschreitet oder ein Segment verloren geht und erneut übertragen wird, endet die Phase des langsamen Starts. Ersteres tritt in die Phase der Stauvermeidung ein, und letzteres tritt erneut in die Phase des langsamen Starts ein.

(2) Überlastungsvermeidung

Wenn in der langsamen Startphase der cwnd-Wert den langsamen Startinterpretationswert (ssthresh) überschreitet, endet der langsame Startprozess und die TCP-Verbindung tritt in die Überlastungsvermeidungsphase ein. In der Überlastungsvermeidungsphase wird der cwnd-Wert um 1 erhöht, nachdem jedes gesendete cwnd-Nachrichtensegment vollständig bestätigt wurde. In diesem Stadium steigt der cwnd-Wert linear an.

(3) Schnelle Neuübertragung

Die schnelle Neuübertragung ist eine Verbesserung gegenüber der Timeout-Neuübertragung. Wenn die Quelle drei doppelte Bestätigungen für dieselbe Nachricht erhält, stellt sie fest, dass ein Nachrichtensegment verloren gegangen ist, und überträgt das verlorene Nachrichtensegment daher sofort erneut, ohne auf den Ablauf des Retransmission Timer (RTO) zu warten. Dies reduziert unnötige Wartezeiten.

(4) Schnelle Wiederherstellung

Schnelle Wiederherstellung ist eine Verbesserung des verlorenen Wiederherstellungsmechanismus. Nach der schnellen Neuübertragung tritt es direkt in die Überlastungsvermeidungsphase ein, ohne den langsamen Startprozess zu durchlaufen. Setzen Sie nach jeder schnellen Neuübertragung ssthresh=cwnd/2, ewnd=ssthresh+3. Danach wird der cwnd-Wert jedes Mal, wenn eine doppelte Bestätigung empfangen wird, um 1 erhöht, bis die akkumulierte Bestätigung des verlorenen Nachrichtensegments und mehrerer nachfolgender Nachrichtensegmente empfangen wird, cwnd=ssthresh gesetzt wird und die Überlastungsvermeidungsphase beginnt.

Weitere Informationen zu diesem Thema finden Sie in der Spalte „FAQ“!

Das obige ist der detaillierte Inhalt vonWelches Transportschichtprotokoll sorgt für eine zuverlässige Übertragung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn