Heim > häufiges Problem > Was ist der Unterschied zwischen Socket-Kommunikation und TCP-Kommunikation?

Was ist der Unterschied zwischen Socket-Kommunikation und TCP-Kommunikation?

藏色散人
Freigeben: 2022-01-24 14:51:11
Original
38637 Leute haben es durchsucht

Der Unterschied zwischen Socket-Kommunikation und TCP-Kommunikation: 1. Das TCP-Protokoll gehört zum Transportschichtprotokoll, während Socket eine Abstraktionsschicht zwischen der Anwendungsschicht und der Transportschicht ist. 2. Der Aufbau einer TCP-Verbindung erfordert drei Handshakes. Die Socket-Verbindung kann aufrechterhalten werden. Lange Verbindung 4. TCP-Server und TCP-Client verwenden Socket-Kommunikation usw.

Was ist der Unterschied zwischen Socket-Kommunikation und TCP-Kommunikation?

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

Was ist der Unterschied zwischen Socket-Kommunikation und TCP-Kommunikation?

Der Unterschied zwischen TCP und Socket staatenlos). Der Aufbau einer TCP-Verbindung erfordert drei Handshakes und das Trennen einer TCP-Verbindung erfordert vier Wellen. Das Mobiltelefon kann die Netzwerkfunktion nutzen, da die unterste Schicht des Mobiltelefons das TCP/IP-Protokoll implementiert. Mit dem Mobiltelefonterminal können Sie über das drahtlose Netzwerk eine TCP-Verbindung mit dem Server herstellen. Das TCP-Protokoll kann eine Schnittstelle zum Netzwerk der oberen Schicht bereitstellen, sodass die Übertragung von Netzwerkdaten der oberen Schicht in einem „undifferenzierten“ Netzwerk erfolgt.

Tcp erfordert drei Handshakes, um eine Verbindung herzustellen:

Abbildung 1: Drei-Wege-Handshake-Diagramm der TCP-Verbindung Wie in der Abbildung gezeigt:

Um eine TCP-Verbindung mit dem Server herzustellen, sendet der Client zunächst ein Syn-J Signal an den Server und den Dienst. Nach dem Empfang dieses Signals antwortet der Client mit einem ACK J+1-Signal und fügt ein zusätzliches Syn-K-Signal hinzu. Nachdem der Client das ACK J+1-Signal empfangen hat, weiß er, dass der Server mein empfangen kann Signal. Später kann der Client sicher Daten an Ihren Server senden, ohne befürchten zu müssen, dass Ihr Server die von mir gesendeten Daten nicht empfangen kann.

Nachdem der Client das vom Server gesendete SYN-K-Signal empfangen hat, muss er auch ein ACK-K+1-Signal an den Server zurücksenden. Wenn der Server dieses Signal empfängt, weiß er, dass das Signal gesendet wurde Der Server für Sie gehört Ihnen. Der Client kann ihn empfangen, sodass mein Server sicher Daten an Ihren Client senden kann, ohne befürchten zu müssen, dass Ihr Client die von ihm gesendeten Daten nicht empfangen kann.

Tatsächlich können wir der obigen Beschreibung entnehmen:

Der Verbindungsaufbau kann in vier Schritten erfolgen, genau wie das Trennen einer TCP-Verbindung. Dabei werden lediglich das Antwortsignal ACK des Servers und das Authentifizierungsanforderungssignal SYNC des Clients in einem Schritt kombiniert. Gegangen.

Vier Wellen werden benötigt, wenn die TCP-Verbindung getrennt wird:

Was ist der Unterschied zwischen Socket-Kommunikation und TCP-Kommunikation?

Abbildung 2: Schematische Darstellung von vier Wellen, wenn die TCP-Verbindung getrennt wird

Nachdem der Client das Antwortsignal ACK M+1 vom Server erhalten hat, sendet der Client weiß: Server Da Sie nun wissen, dass mein Client keine Datenpakete mehr an Ihren Server sendet, können Sie die Überwachung von mir beenden.

Aber zu diesem Zeitpunkt wurde nur der einseitige Fluss von Client->Server gestoppt und der Fluss in die andere Richtung:

Server->Client kann weiterhin normal Daten senden, bis der Server FIN N an den Client Wave sendet Signal, der Client antwortet dem Server mit einem ACK N+1-Signal und der Server weiß: Der Client weiß, dass mein Server keine Datenpakete mehr an Ihren Client senden wird, und Sie können die Überwachung von mir beenden.

Zu diesem Zeitpunkt wurden der unidirektionale Fluss von Client->Server und der unidirektionale Fluss von Server->Client in beide Richtungen gestoppt und die Verbindung kann geschlossen werden.

Zwei: Socket


Wir wissen, dass die grundlegendste Voraussetzung darin besteht, einen Prozess eindeutig identifizieren zu können. In der lokalen Prozesskommunikation können wir PID verwenden, um einen Prozess eindeutig zu identifizieren, aber PID Existiert nur lokal eindeutig, ist die Wahrscheinlichkeit eines PID-Konflikts zwischen zwei Prozessen im Netzwerk sehr hoch. Zu diesem Zeitpunkt müssen wir einen anderen Weg finden, um den Host eindeutig zu identifizieren Das TCP-Schichtprotokoll und die Portnummer können den Host-Prozess eindeutig identifizieren, sodass wir IP-Adresse + Protokoll + Portnummer verwenden können, um einen Prozess im Netzwerk eindeutig zu identifizieren.

Nachdem sie Prozesse im Netzwerk eindeutig identifizieren konnten, können sie über Sockets kommunizieren. Was ist ein Socket?

Socket wird oft als eine Abstraktionsschicht zwischen der Anwendungsschicht und der Transportschicht übersetzt. Es abstrahiert die komplexen Vorgänge der TCP/IP-Schicht in mehrere einfache Schnittstellen, über die die Anwendungsschicht kommunizieren kann das Netzwerk.

Abbildung 5: Schematische Darstellung des Socket-Kommunikationssystemmoduls

Der Prozess, bei dem TCP-Server und TCP-Client die Socket-Kommunikation verwenden, ist wie folgt.

Wie Sie auf dem Bild sehen können, kann die Steckdosenverbindung eine lange Verbindung aufrechterhalten.
Was ist der Unterschied zwischen Socket-Kommunikation und TCP-Kommunikation?
Abbildung 6: Schematische Darstellung des grundlegenden Socket-Client/Server-Kommunikationsprozesses

Beachten Sie, dass die Socket-Verbindung aktiv vom Client oder Server geschlossen werden kann.

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

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Socket-Kommunikation und TCP-Kommunikation?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage