スリーウェイ ハンドシェイクとフォーウェイ ウェーブについて理解したいですか? ここを見て!!!

1. 知識ポイントの紹介

     1. スリーウェイ ハンドシェイクとは何ですか?

スリーウェイ ハンドシェイクは、実際には、TCP 接続を確立するときに、クライアントとサーバーが合計 3 つのパケットを送信する必要があることを意味します。3 ウェイ ハンドシェイクの主な目的は、双方の送受信能力が正常かどうかを確認し、独自の初期化シーケンス番号を指定して、その後の信頼できる送信に備えることです。本質的には、サーバーの指定されたポートに接続し、TCP 接続を確立し、双方のシーケンス番号と確認番号を同期し、TCP ウィンドウ サイズ情報を交換します。

 本質: 通信する双方の当事者がデータを送受信できることを確認することです。

   2. 4 つの波とは何ですか?

接続の確立には 3 回のハンドシェイクが必要で、接続の終了には 4 回のウェーブが必要です (4 回のウェーブは 4 ウェイ ハンドシェイクとも呼ばれます)。これは TCP のハーフクローズが原因です。いわゆるセミクローズドとは、実際には、TCP が接続の一方の端が、送信を完了した後にもう一方の端からデータを受信できる機能を提供することを意味します。TCP 接続の切断には 4 つのパケットを送信する必要があるため、4 ウェイ ハンドシェイクと呼ばれます。クライアントまたはサーバーのいずれかがアクティブにウェーブ アクションを開始できます。

 本質: 目的は接続を閉じることです。

2. 3 回の握手と 4 回のウェーブのプロセス:

      1. 3 ウェイ ハンドシェイク プロセス:

  • 最初のハンドシェイク: まず、クライアントがサーバーにメッセージを送信します。
    このハンドシェイクは非常に重要で、クライアントの送信能力が正常であることを示します。
  • 2 番目のハンドシェイク: 次に、サーバーはクライアントから送信されたメッセージを受信し、同時にメッセージをクライアントに送信します。
    このハンドシェイクも非常に重要です。サーバー自身の受信機能と送信機能が正常であることを示します。
  • 3 回目のハンドシェイク: クライアントはサーバーにメッセージを再度送信します。
    このハンドシェイクは、クライアントの受信能力が正常であることを証明するため、依然として重要です。

生徒の中には、なぜ最後にもう一度握手する必要があるのか​​と疑問に思う人もいるかもしれません。純粋に冗長ではないでしょうか...

漏れ、漏れ、漏れ、大漏れ、特殊漏れ。親愛なる友人、 次のように説明させてください

まず、ガールフレンドに「そこにいるかどうか」を尋ねるメッセージを送信するときのことを考えてください (最初の握手と同等)。

すると、あなたのガールフレンドはそれを見て、あなたが送ったメッセージを受け取り、同時にあなたのメッセージにも返信しました(2回目の握手と同等

すぐにあなたにもメッセージが返ってきますが、しばらくメッセージを送らないと、あなたが送ったメッセージを見たかどうかが彼女に分からず、待たせてしまうと彼女はとても怒ることになります。それならあなたはめちゃくちゃです。( 3回目のハンドシェイクに相当)

以上です、ゲイの友達、わかりますか?わからない場合は、彼女と一緒に試してみると、とても感動するでしょう。

専門的に言うと:

クライアントがサーバーと通信するとき、クライアントはメッセージを送信してサーバーに到達します。

サーバーの場合、サーバーは送信した内容を受信し、カスタマーサービス側に確認を送信します。

クライアントの場合、クライアントがサーバーからの確認を無視した場合、サーバーは常にクライアントからのメッセージを待ちます。

これはサーバー側で時間の無駄(サーバーにとっては CPU などのリソースが無駄になります)につながりますが、これは現実的ではありません。

だから二度握手はできない

   

                                                                  写真は3ウェイハンドシェイクの様子

       2. 4回手を振るプロセス:

  • 最初の波: 
    クライアントは接続解放メッセージを送信し、データの送信を停止します。データ メッセージのヘッダー FIN=1 を解放し、そのシーケンス番号は seq=u (以前に送信したデータの最後のバイトのシーケンス番号に 1 を加えたものに等しい) このとき、クライアントは FIN-WAIT- に入ります。 1 (待機終了) 1) ステータス
  • 第 2 の波:
    接続解放メッセージを受信した後、サーバーは確認メッセージ ACK=1、ack=u+1 を送信し、独自のシリアル番号 seq=v を送信します。このとき、サーバーは CLOSE に入ります。 -WAIT はオフになります。待機状態
  • 3 番目の波:
    クライアントがサーバーから確認リクエストを受信した後、クライアントは FIN-WAIT-2 (終了待機 2) 状態に入り、サーバーが接続解放メッセージを送信するのを待ちます。データ、接続解放メッセージをクライアントに送信した後、サーバーは LAST-ACK (最終確認応答) 状態に入り、クライアントからの確認を待ちます。
  • 4 番目の波:
    サーバーから接続解放メッセージを受信した後、クライアントは確認 (ACK=1、ack=w+1、シリアル番号は seq=u+1) を送信する必要があります。このとき、クライアントは次の状態に入ります。 TIME-WAIT (時間待機) 状態に入りますが、この時点では TCP 接続は終了していません。2MSL (最長メッセージ存続期間) を通過する必要があります。クライアントが対応する TCB を取り消すと、クライアントは CLOSED 状態になります。確認メッセージを受信すると、サーバーはただちに CLOSED 状態になり、この時点で TCP 接続は切断され、4 回のウェーブで完了します。

 これを見た後でも、なぜ接続には 3 回しかかからないのに、切断には 4 回もかかるのかと疑問に思う人もいるでしょう? ?

それでは、彼氏と彼女についてお話しさせてください。まず、次のシナリオを想像してください。

あなたとガールフレンドが今日遊びに行くために集まった場合、その楽しみは間違いなく終わります。デートが終わったら、それぞれの家に帰って、それぞれの母親に会いに行かなければなりません!

ハハハハ、ここからが本題なのですが、

あなた: さようなら、ベイビー、戻って (初めて手を振る)

ガールフレンド: わかった、ベイビー、それでは帰るよ (二度目に手を振る)

ガールフレンド: じゃあ戻って、ベイビー ( 3度目に手を振る)

あなた:分かった、それでは帰るよ、バイバイ(4度目に手を振る

それだけです。ガールフレンドにさよならを言うのと同じくらい名残惜しそうに別れを告げるようなものです。

 写真には手を振っている4人が写っています

おすすめ

転載: blog.csdn.net/nuhao/article/details/130663577