国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim Java JavaInterview Fragen Interviewer: Wie trennt Socket TCP die Verbindung?

Interviewer: Wie trennt Socket TCP die Verbindung?

Aug 17, 2023 pm 04:10 PM
socket tcp

  • Vorwort: Was ist Socket? Socket TCP stellt eine Verbindung her

  • dreimal In welchen Funktionen des Sockets findet der Handshake statt?
  • Wie trennt sich Socket TCP?
      Wenn es um das Internet geht, denkt jeder sicher an TCP, UDP, HTTP, Three-Handle-Four -wave usw. Aber wenn es um Socket geht, sind alle vielleicht etwas verwirrt. Sie wissen nur, dass es im Netzwerk verwendet wird, aber was genau ist ein Socket? Warum ist das Netzwerk untrennbar mit Sockets verbunden?
    • Was ist Socket?
    • Socket ist eigentlich ein Socket, dass es eine einfache Netzwerkkommunikation implementieren kann, aber welche praktischen Auswirkungen hat es? Erscheinen? Socket ist ein Werkzeug zur Entwicklung der Portkommunikation und liegt auf einer niedrigeren Ebene.

    Socket ?hnelt eigentlich einem Geschirrspüler. Ohne ihn muss das Geschirr m?glicherweise manuell gespült werden (manueller Aufruf verschiedener APIs zwischen der Transportschicht und der Anwendungsschicht), aber mit ihm Sie müssen nur auf den Schalter klicken und die Dauer anpassen (die API ist nicht gekapselt, aber ohne sie wird das Geschirrspülen (die Interaktion zwischen der Anwendungsschicht und der Transportschicht) sehr umst?ndlich.
    • Eine vollst?ndige Netzwerkkommunikation muss über das Netzwerkkabel und die Netzwerkkarte der physischen Transportschicht erfolgen. Das IP-Protokoll der Netzwerktransportschicht kann wissen, an welchen Computer die Daten übertragen werden sollen, es l?uft jedoch anders ab Computersystemprozess: Wie kann festgestellt werden, für welchen Prozess die Netzwerkdaten auf der Netzwerkkarte bestimmt sind? Dies ist eigentlich das, wofür Socket entwickelt wurde.

      Socket ist ?eine Kapselung des TCP/IP- oder UDP/IP-Protokolls“ Socket selbst ist eigentlich eine aufrufende Schnittstelle. Durch diese Schnittstelle müssen wir uns bei der Entwicklung von Netzwerkanwendungen keine Gedanken darüber machen, wie die zugrunde liegende Schicht implementiert wird, wodurch die Schwierigkeit der Entwicklung verringert wird.

      Socket -laufer Prozess (auf TCP

      Interviewer: Wie trennt Socket TCP die Verbindung?server

      socket () basiert: bedeutet, einen Socket zu erstellen, und die untere Ebene generiert einen Dateideskriptor, um die darzustellen socket

      • bind(): Der Port und die Adresse, die zum Binden des Dienstes verwendet werden, sind hier im Allgemeinen festgelegt, da sie angegeben werden müssen, wenn der Client eine Verbindung herstellt.
      • listen(): Nachdem die Bindung abgeschlossen ist, überwacht listen die Datenpakete dieses Ports
      • accept(): entspricht einem Schalter und zeigt an, dass ich bereit bin, die Anfrage anzunehmen, sie wird jedoch blockiert, bis die Clientverbindung erfolgreich ist
      • read(): Lies den Inhalt vom Client gesendet
      • write(): Der Client schreibt die zurückzugebenden Daten
      • close(): Verbindung trennen,
        "viermal winken"
      • Client

      socket(): bedeutet, dass ein Socket erstellt wird, und die unterste Ebene generiert einen Dateideskriptor, der den Socket darstellt.

      • connet(): bedeutet, dass eine Verbindung zur angegebenen Adresse hergestellt wird. Davor wird zuf?llig ein eigener Port, TCP, erstellt ?Der Drei-Wege-Handshake beginnt hier.“ : trennen,
        ?Viermal winken“
      • , Trennungsinformationen an den Client senden

      Basierend auf UDP

      Interviewer: Wie trennt Socket TCP die Verbindung?

      Tats?chlich sind sie ?hnlich, wie Sie dem Flussdiagramm entnehmen k?nnen. Da UDP zustandslos ist, gibt es keine Verbindung für Der Server empf?ngt die Anfrage des Clients, nachdem er die Recvfrom()-Methode aufgerufen hat. Wie stellt TCP eine Verbindung her? berühmter Dreier-Handschlag

      Interviewer: Wie trennt Socket TCP die Verbindung?
      • Erster Handshake: Der TCP-Prozess von A erstellt einen übertragungssteuerblock TCB und sendet dann ein Verbindungsanforderungssegment an B. Setzen Sie dann das Synchronisationsbit SYN auf 1 und w?hlen Sie eine anf?ngliche Sequenznummer seq=x. Zu diesem Zeitpunkt wechselt Client A in den Status SYN-SENT (Synchronisation gesendet).
      • Zweiter Handshake: B empf?ngt das Verbindungsanforderungssegment. Wenn es dem Verbindungsaufbau zustimmt, sendet es eine Best?tigung an A. Im Best?tigungsnachrichtensegment werden auch das Synchronisationsbit SYN = 1, das Best?tigungsbit ACK = 1, die Best?tigungsnummer ack = x + 1 und eine anf?ngliche Sequenznummer seq = y ausgew?hlt. Zu diesem Zeitpunkt tritt Server B ein den SYN-RCVID-Status.
      • Der dritte Handschlag: Nachdem A die Best?tigung von B erhalten hat, sendet er eine Best?tigung an B. Best?tigungsnachricht ACK=1, Best?tigungsnummer ack=y+1. Zu diesem Zeitpunkt tritt A in den Status ESTAB-LISHED ein. Wenn B die Best?tigung von A erh?lt, wechselt es ebenfalls in den Status ESTAB-LISHED. Die Verbindung wird hergestellt

      In welchen Funktionen des Sockets findet der Drei-Wege-Handshake statt?

      Interviewer: Wie trennt Socket TCP die Verbindung?
      • Wenn der Client connect aufruft, wird eine Verbindungsanfrage ausgel?st und ein SYN-Signal gesendet Zum Server. Zu diesem Zeitpunkt wechselt die Verbindung in den Blockierungsstatus.
      • Der Server überwacht die Verbindungsanforderung, ruft die Akzeptanzfunktion auf und wechselt in den Blockierungsstatus Am besten verwenden Sie die Socket-, Bind- und Listen-Funktionen und geben dann die relevanten Syn- und ack-Signale zurück.
      • Der Client empf?ngt die Informationen vom Server. Zu diesem Zeitpunkt ist die Verbindung abgeschlossen und der Blockierungsstatus wird freigegeben. und das Best?tigungssignal wird an den Server gesendet.
      • Der Server empf?ngt die Sperrung und stellt die Verbindung her. Danach wurde connect() ausgeführt Der Server kann Daten an den Client senden.

        Wie trennt Socket TCP die Verbindung?

        Interviewer: Wie trennt Socket TCP die Verbindung?
        • Die erste Welle: A sendet zuerst das Verbindungsfreigabenachrichtensegment, das Beendigungssteuerbit FIN=1 im Segmentheader und die Sequenznummer seq=u (gleich vor A. Die letzte Sequenznummer der gesendeten Daten wird um 1 erh?ht. Anschlie?end wechselt A in den Status FIN-WAIT-1 (Beenden des Wartens 1) und wartet auf die Best?tigung von B.
        • Die zweite Welle: Nachdem B das Verbindungsfreigabe-Nachrichtensegment von A empfangen hat, sendet es sofort ein Best?tigungsnachrichtensegment, die Best?tigungsnummer ack=u+1, die Sequenznummer seq=v (gleich der letzten Sequenznummer der Daten). von B vor Add 1 gesendet); dann wechselt B in den CLOSE-WAIT-Zustand (Close Wait).
        • Die dritte Welle: A tritt in den FIN-WAIT-2-Zustand (Beendigungswartezeit 2) ein, nachdem er das Best?tigungsnachrichtensegment von B erhalten hat, und wartet weiterhin darauf, dass B ein Verbindungsfreigabenachrichtensegment sendet Wenn keine Daten mehr gesendet werden müssen, sendet B ein Nachrichtensegment zur Verbindungsfreigabe an A. Das Beendigungssteuerbit FIN = 1 im Segmentheader und die Sequenznummer seq = w (einige Daten werden m?glicherweise im halbgeschlossenen Zustand gesendet ) und die Best?tigungsnummer ack=u+ 1. Zu diesem Zeitpunkt wechselt B in den Status LAST-ACK (letzte Best?tigung) und wartet auf die Best?tigung von A.
          • Die vierte Welle: A empf?ngt das Verbindungsfreigabe-Nachrichtensegment von B und sendet eine Best?tigung. Das Best?tigungsbit im Best?tigungssegment ist ACK=1, die Best?tigungsnummer ack=w+1 und die Sequenznummer seq=u+ 1; dann A Geben Sie den TIME-WAIT-Status (Zeitwartezeit) ein. Wenn B das Best?tigungssegment erneut empf?ngt, wechselt B in den GESCHLOSSEN-Zustand.
        • Warum nach der vierten Welle auf 2MSL warten?

        Zuallererst beginnt die Zeit von 2MSL ab dem Zeitpunkt, an dem der Kunde (A) die FIN erh?lt und die ACK sendet. Wenn der Client (A) innerhalb der TIME-WAIT-Zeit die vom Server (B) erneut gesendete FIN-Nachricht empf?ngt, da die ACK des Clients (A) nicht an den Server (B) übertragen wird, betr?gt die 2MSL-Zeit Zurücksetzen. Die Gründe für das Warten auf 2MSL sind wie folgt: 1. Das Datenpaket der ursprünglichen Verbindung verschwindet. Wenn B kein eigenes ACK erh?lt, wird es eine Zeitüberschreitung geben und FiN erneut übertragen FIN erneut und wird erneut ACK senden.

        Wenn B seine ACK erh?lt, wird er keine Nachrichten mehr senden

        • Nach der letzten Welle wei? A nicht, ob B seine Nachricht erhalten hat. Einschlie?lich ACK muss A auf beide oben genannten Situationen warten, um den maximalen Wert der Wartezeit der beiden Situationen zu nutzen, um das Worst-Case-Szenario zu bew?ltigen. Das Worst-Case-Szenario ist: die maximale überlebenszeit der Ziel-ACK-Nachricht . (MSL) + Maximale überlebenszeit (MSL) eingehender FIN-Nachrichten. Das sind genau 2MSL, was ausreichend Zeit ist, um das ursprünglich verbundene Datenpaket im Netzwerk verschwinden zu lassen.
          • 2. Stellen Sie sicher, dass die ACK vom Server empfangen werden kann, um die Verbindung korrekt zu schlie?en.

          Denn diese ACK kann verloren gehen, was dazu führt, dass der Server die FIN-ACK-Best?tigungsnachricht nicht empf?ngt. Angenommen, der Client wartet nicht auf 2MSL, sondern gibt das Schlie?en direkt nach dem Senden des ACK frei. Sobald das ACK verloren geht, kann der Server nicht normal in den geschlossenen Verbindungsstatus wechseln.

Das obige ist der detaillierte Inhalt vonInterviewer: Wie trennt Socket TCP die Verbindung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1502
276