tcp und udp sind Protokolle der „Transportschicht“. UDP und TCP sind wichtige Protokolle in der Computertransportschicht. TCP ist verbindungsorientiert und UDP ist verbindungslos. TCP (Transmission Control Protocol) ist ein verbindungsorientiertes, zuverlässiges, Bytestrom-basiertes Transportschicht-Kommunikationsprotokoll, das durch RFC 793 der IETF definiert ist. UDP (User Datagram Protocol) bietet Anwendungen die Möglichkeit, gekapselte IP-Pakete zu senden, ohne eine Verbindung herzustellen.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Dell G3-Computer.
Computernetzwerkarchitektur bezieht sich auf das hierarchische Strukturmodell eines Computernetzwerks, bei dem es sich um eine Sammlung von Protokollen auf jeder Ebene und Ports zwischen den Ebenen handelt. Die Kommunikation in einem Computernetzwerk muss auf Netzwerkkommunikationsprotokollen basieren. Das weit verbreitete Open System Interconnection (OSI)-Referenzmodell, das 1997 von der International Organization for Standardization (ISO) vorgeschlagen wurde, wird üblicherweise als ISO/OSI-Referenzmodell bezeichnet.
OSI-Sieben-Schichten-Referenzmodell:
OSI unterteilt ein Netzwerksystem logisch in 7 funktional relativ unabhängige geordnete Subsysteme, sodass die OSI-Architektur aus 7 funktional relativ unabhängigen Schichten besteht. Die Zusammensetzung ist in der folgenden Abbildung dargestellt. Von niedrig nach hoch sind es die physikalische Schicht, die Datenverbindungsschicht, die Netzwerkschicht, die Transportschicht, die Sitzungsschicht, die Präsentationsschicht und die Anwendungsschicht.
TCP/IP-Referenzmodell
TCP/IP hat 4 Schichten, nämlich die Netzwerkschnittstellenschicht, die Internetschicht, die Transportschicht und die Anwendungsschicht. Der Vergleich zwischen der TCP/IP-Hierarchie und der OSI-Hierarchie ist in der folgenden Abbildung dargestellt.
tcp und udp gehören zu den „Transportschicht“-Protokollen der Computernetzwerkarchitektur.
Die Transportschicht des Internets verfügt über zwei Hauptprotokolle, die sich gegenseitig ergänzen. Verbindungslos ist UDP, das kaum etwas Besonderes leistet, außer Anwendungen die Möglichkeit zu geben, Pakete zu senden und es ihnen zu ermöglichen, ihre eigenen Protokolle auf der erforderlichen Ebene zu entwickeln. Das verbindungsorientierte ist TCP, das fast alles kann.
Die Transportschicht ist eine der Schlüsselschichten im gesamten Netzwerkschichtsystem. Die Netzwerkschicht sendet nur Pakete an den Zielhost, aber die eigentliche Kommunikation ist nicht der Host, sondern der Prozess im Host. Die Transportschicht stellt Kommunikationsdienste für die darüber liegende Anwendungsschicht bereit. Sie gehört zur höchsten kommunikationsorientierten Schicht, wenn zwei Hosts im Randteil des Netzwerks die Funktionen des Kernteils des Netzwerks für die End-to-End-Kommunikation nutzen Es gibt nur den Protokollstapel des Hosts. Die Transportschicht sorgt für die logische Kommunikation zwischen Prozessen. Die Transportschicht schützt die Kerndetails der darunter liegenden Netzwerkschicht vor hochrangigen Benutzern, sodass die Anwendung so aussieht, als ob sie zu Ende wäre -to-End-Logik zwischen den beiden Transportschicht-Entitäten
Obwohl IP-Pakete Pakete an den Zielhost senden können, verbleibt dieses Paket immer noch in der Netzwerkschicht des Hosts und wird nicht an den Anwendungsprozess übermittelt Während des Kommunikationsprozesses zwischen zwei Computern tauscht ein Prozess auf diesem Host Daten mit einem Prozess auf einem anderen Host aus. Aus Sicht der Transportschicht ist der eigentliche Endpunkt der Kommunikation nicht der Host, sondern der Prozess im Host. Mit anderen Worten: End-to-End-Kommunikation ist die Kommunikation zwischen Anwendungsprozessen.
Zwei wichtige Funktionen der Transportschicht:
Der Unterschied zwischen der Netzwerkschicht und der Transportschicht: Die Netzwerkschicht sorgt für die logische Kommunikation zwischen Hosts, während die Transportschicht Bietet direkt eine End-to-End-Kommunikation für Anwendungen.
UDP
1. Funktionen von UDP
Das Header-Feld hat nur 8 Bytes, einschließlich Quellport, Zielport, Länge, Prüfsumme. Der 12-Byte-Pseudoheader wird vorübergehend zur Berechnung der Prüfsumme hinzugefügt.
TCPTransmission Control Protocol (TCP, Transmission Control Protocol) ist ein verbindungsorientiertes, zuverlässiges, Bytestrom-basiertes Transportschicht-Kommunikationsprotokoll, definiert durch RFC 793 der IETF. TCP: Benutzernachrichtenprotokoll, verbindungsorientiert Eine Verbindung muss hergestellt werden, nachdem die Datenübertragung abgeschlossen ist.TCP ist verbindungsorientiert und sorgt für eine zuverlässige Zustellung; Anwendungsschicht) Die Nachricht wird als Bytestrom betrachtet und der Bytestrom ist in Datenblöcke unterschiedlicher Größe organisiert. Jede TCP-Verbindung kann nur Punkt-zu-Punkt (Eins-zu-Eins) sein.
2. TCP-Verbindung
Bestätigungsnummer: Die Sequenznummer des nächsten zu empfangenden Segments. Beispielsweise empfängt B ein von A gesendetes Nachrichtensegment korrekt. Die Sequenznummer ist 501 und die Datenlänge beträgt 200 Byte. Daher erwartet B, dass die Sequenznummer des nächsten Nachrichtensegments 701 ist. Im von B gesendeten Bestätigungsnachrichtensegment zu A, Die Bestätigungsnummer ist 701. Datenoffset: Bezieht sich auf den Offset des Datenteils vom Anfang des Nachrichtensegments, der sich tatsächlich auf die Länge des Headers bezieht.
Bestätigung ACK: Wenn ACK=1 ist, ist das Bestätigungsnummernfeld gültig, andernfalls ist es ungültig. TCP schreibt vor, dass nach dem Verbindungsaufbau für alle übertragenen Nachrichtensegmente ACK auf 1 gesetzt sein muss.
Beendigungs-FIN: Wird zum Freigeben einer Verbindung verwendet. Wenn FIN=1, bedeutet dies, dass die Daten des Absenders dieses Segments gesendet wurden und die Verbindung freigegeben werden muss.
Fenster: Der Fensterwert dient dem Empfänger als Grundlage, damit der Sender sein Sendefenster festlegen kann. Der Grund für diese Einschränkung liegt darin, dass der Daten-Cache-Speicherplatz des Empfängers begrenzt ist.5. TCP winkt viermal
Der Grund für das viermalige Winken
Nachdem der Client die FIN-Verbindungsfreigabenachricht gesendet hat, empfängt der Server diese Nachricht und wechselt in den CLOSE-WAIT-Status. In diesem Zustand sendet der Server Daten, die noch nicht übertragen wurden. Nach Abschluss der Übertragung sendet der Server eine FIN-Verbindungsfreigabenachricht.
TIME_WAIT
Der Client wechselt in diesen Status, nachdem er die FIN-Nachricht vom Server erhalten hat. Zu diesem Zeitpunkt wechselt er nicht direkt in den Status CLOSED, sondern muss auch auf die vom Timer festgelegte Zeit 2MSL warten. Dafür gibt es zwei Gründe:
TCP verwendet eine Timeout-Neuübertragung, um eine zuverlässige Übertragung zu erreichen. Wenn ein gesendetes Nachrichtensegment innerhalb des Timeout-Zeitraums keine Bestätigung erhält, wird das Nachrichtensegment erneut übertragen
1. TCP-Schiebefenster
Das Fenster ist Teil des Caches und wird zum vorübergehenden Speichern des Bytestreams verwendet. Der Sender und der Empfänger verfügen jeweils über ein Fenster. Der Empfänger teilt dem Sender seine Fenstergröße über das Fensterfeld im TCP-Segment mit. Der Sender legt seine eigene Fenstergröße basierend auf diesem Wert und anderen Informationen fest.
Alle Bytes innerhalb des Sendefensters dürfen gesendet werden und alle Bytes innerhalb des Empfangsfensters dürfen empfangen werden. Wenn das Byte auf der linken Seite des Sendefensters gesendet und bestätigt wurde, schieben Sie das Sendefenster um einen bestimmten Abstand nach rechts, bis das erste Byte auf der linken Seite nicht mehr gesendet und bestätigt wird. Wenn die Bytes auf der linken Seite des Fensters gesendet und bestätigt und an den Host übermittelt wurden, schieben Sie das Empfangsfenster nach rechts.
Das Empfangsfenster bestätigt nur das letzte Byte, das in der richtigen Reihenfolge im Fenster eintrifft. Die vom Empfangsfenster empfangenen Bytes sind beispielsweise {31, 34, 35}, darunter {31} in der richtigen Reihenfolge und {34, 35} ist nicht vorhanden, daher wird nur Byte 31 bestätigt. Nachdem der Absender eine Bestätigung für ein Byte erhalten hat, weiß er, dass alle Bytes vor diesem Byte empfangen wurden.
2. Die TCP-Flusskontrolle erfolgt über Schiebefenster. Im Allgemeinen hoffen wir, dass der Absender Daten so schnell wie möglich sendet. Wenn der Absender jedoch Daten zu schnell sendet, wird dies der Fall sein Dies führt dazu, dass der Empfänger keine Zeit zum Akzeptieren hat. Daher muss die Flusskontrolle auf TCP hauptsächlich durch Festlegen der Größe des Schiebefensters in der vom Empfänger gesendeten Bestätigungsnachricht erfolgen Steuern Sie die Fenstergröße des Absenders und beeinflussen Sie somit die Senderate des Absenders. Setzen Sie das Fensterfeld auf 0 und der Absender kann keine Daten senden.
Wenn das Netzwerk überlastet ist, gehen Pakete verloren und der Absender sendet weiterhin erneut, was zu einer höheren Netzwerküberlastung führt. Daher sollte bei einer Überlastung die Rate des Absenders kontrolliert werden. Dies ist der Flusskontrolle sehr ähnlich, der Ausgangspunkt ist jedoch ein anderer. Die Flusskontrolle soll es dem Empfänger ermöglichen, rechtzeitig zu empfangen, während die Überlastungskontrolle die Überlastung des gesamten Netzwerks reduzieren soll. Bedingungen für die Überlastungskontrolle:
Die Überlastungskontrolle unterscheidet sich von der Flusskontrolle: Die Überlastungskontrolle soll verhindern, dass zu viele Daten in das Netzwerk eingespeist werden, damit Router oder Verbindungen im Netzwerk nicht überlastet werden , entwickelt für alle Hosts, alle Router und alle Elemente im Zusammenhang mit der Reduzierung der Netzwerkleistung. Allerdings handelt es sich bei der Flusskontrolle oft um die Kontrolle des Punkt-zu-Punkt-Verkehrs und es handelt sich um ein End-to-End-Problem
Überlastung in TCP Der Hauptkontrollalgorithmus: langsamer Start, Überlastungsvermeidung, schnelle Neuübertragung, schnelle Wiederherstellung
Der Absender muss eine Statusvariable namens Überlastungsfenster (cwnd) verwalten. Beachten Sie den Unterschied zwischen Überlastungsfenster und Das Absenderfenster: Das Überlastungsfenster ist nur eine Zustandsvariable. Es ist das Absenderfenster, das tatsächlich bestimmt, wie viele Daten der Absender senden kann. Zur Vereinfachung der Diskussion werden die folgenden Annahmen getroffen:
Der Empfänger verfügt über einen ausreichend großen Empfangspuffer, sodass keine Flusskontrolle erfolgt.
1. Langsamer Start und Vermeidung von Überlastungen
Die anfängliche Ausführung des Sendens erfolgt langsam. Lassen Sie cwnd = 1, der Absender kann nur 1 Segment senden. Nach Erhalt der Bestätigung wird cwnd verdoppelt Die Anzahl der Nachrichtensegmente, die der Absender senden kann, beträgt: 2, 4, 8 ...
Beachten Sie, dass cwnd beim langsamen Start in jeder Runde verdoppelt wird, wodurch cwnd sehr schnell wächst und somit die Sendegeschwindigkeit des Absenders erhöht wird Wenn es zu schnell ist, ist die Wahrscheinlichkeit einer Netzwerküberlastung höher.
Legen Sie einen langsamen Startschwellenwert ssthresh fest. Wenn cwnd >= ssthresh ist, wird die Überlastungsvermeidung eingegeben und nur cwnd wird in jeder Runde um 1 erhöht.
Wenn eine Zeitüberschreitung auftritt, setzen Sie ssthresh = cwnd / 2 und führen Sie dann den langsamen Start erneut aus.
2. Schnelle Neuübertragung und schnelle Wiederherstellung
Auf der Empfangsseite ist es erforderlich, dass bei jedem Empfang eines Nachrichtensegments das zuletzt empfangene bestellte Nachrichtensegment bestätigt wird. Beispielsweise wurden M1 und M2 empfangen, und wenn M4 empfangen wird, sollte eine Bestätigung für M2 gesendet werden.
Wenn auf der Senderseite drei doppelte Bestätigungen empfangen werden, kann festgestellt werden, dass das nächste Segment verloren geht. Zu diesem Zeitpunkt wird eine schnelle Neuübertragung durchgeführt und das nächste Segment wird sofort erneut übertragen. Wenn beispielsweise drei M2 empfangen werden, geht M3 verloren und M3 wird sofort erneut übertragen.
In diesem Fall handelt es sich lediglich um den Verlust einzelner Segmente, nicht um eine Netzwerküberlastung. Daher wird eine schnelle Wiederherstellung durchgeführt, wobei ssthresh = cwnd / 2, cwnd = ssthresh ist. Beachten Sie, dass die Überlastungsvermeidung zu diesem Zeitpunkt direkt eingegeben wird.
Die Geschwindigkeit des langsamen Starts und der schnellen Erholung bezieht sich auf den Einstellungswert von cwnd, nicht auf die Wachstumsrate von cwnd. Der Cwnd für den langsamen Start ist auf 1 und der Cwnd für die schnelle Wiederherstellung auf ssthresh gesetzt.
Referenz: Computer Network Fifth Edition, herausgegeben von Xie Xiren
(Lernvideo-Sharing: Einführung in das Web-Frontend)
Das obige ist der detaillierte Inhalt vonZu welchen Protokollen der Computernetzwerkarchitektur gehören TCP und UDP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!