なぜ4を振って、TCP 3ウェイハンドシェイクを行います

TCPは、新興対処するために、信頼性の高いトランスポートです。4回振って、3ウェイハンドシェイク:信頼性を達成するために、TCPは、制御、輻輳制御、および接続を閉じる前に行うための仕組みの確立を流れます。

スリーウェイハンドシェイクは、接続は、それぞれがメッセージを受信、送信できることを保証するために確立される前に、クライアント、サーバーをできるようにすることです。

四つは、すべて互いに近接して、接続を閉じることを確認するために、クライアントも、サーバーを振りました。

設立された場合は、近くに直接接続する前に、このような保証の不在は、メッセージを送信したり、リードをオフにし、パケットロスおよびその他のリスクが存在します。

(これは百パーセントを意味するものではありませんように注意)

だからこそ、3ウェイハンドシェイクのですか?代わりに2つ、4つの?

携帯電話とのアナロジーを行うクライアントA、サーバB、場合:

  1. A氏:ねえ、私を聞きますか?

  2. (B聞いた後、あなたはAが言って聞くことができます知っています。)

    Bは答え:はい。あなたはそれを聞くことができますか?

  3. (A聞いた後、彼はBが話され、彼自身の言葉を聞くことができます知っているだろう、と私はBを聞くことができました

    Aはまた、回答したいと思いますので、今回は、A、Bはそれを彼自身の言葉を聞くことができないかわかりません。

    回答:ああ、聞きます。

    この場合、Aは、Bは(つまり、接続を確立するために、データの送信を開始)、聞いて、そしてあなたがチャットを開始することができ、互い缶話すを知ることができるようになります。

それは2ウェイハンドシェイクの場合

電池は、A死んだときにシャットダウンされた場合に2つだけのハンドシェイクは、Bは、音声は、ケースとなっているか分からない可能性がある場合には、上記の例から分かります。

接続が確立される前に、あなたは信頼性の高い伝送をしたいのであれば、我々は最初の相互確認する必要があり、通常のメッセージを受信します。

4ウェイハンドシェイクの場合

四、五は、より多くのことができますが、これは実際にはビット冗長です。だから、3ウェイハンドシェイクをすることができます。

なぜ4回振っていますか?そしてない1回、2回、3回?

上記の例のように、クライアントA、呼び出しでサーバB:

  1. Aは言った:私は、眠い眠りたいです。

  2. B返信:OKは、私はあなたを伝えるためにいくつかのものを持っています。

  3. Bが終了した後、彼は言った:私は終わりだ、あなたはさようなら、スリープ状態に入ります。

  4. 回答:ああ、良い夜。

    この場合、Aは、Bがハングアップすることができます。

    Bも聞くこと応答をリンクされながら、A 2秒、などは、電話を切った、すなわち、接続を閉じます。

それはかつての場合、二回手を振っ

Aがハングアップするために、完了することができないように、Bを言うために単語があるかもしれないので、上記の例からわかるように。

それは手を振って3倍である場合

Bは、直接オフ別れた後、彼はAさんは、彼が(2-3)の言葉の前に言って聞かなかったかを決定する必要はありません。AとBが聞くだけで別れを言っていない場合は、Aは、携帯電話を持っている可能性があります。

だから我々は、Aの回答のBを待たなければなりません。

そのような時間の後に、クライアントが接続を閉じる2MSL理由として第四の波の後?

(MSLはここにある:最大セグメント寿命、最大の時間スパンは、この時間は破棄されます以上のネットワーク内の既存のパケットの最長であるメッセージ...)

Bは、第四の波を受信しない場合は同上は、直接オフAであれば、彼はAが彼自身の言葉が話さ聞いていません知りません。

一定期間にわたってBがそれを受け取っていないので、再び別れA.を言うだろう 待ち時間が2MSLながら、Aが再びBを復元できるように、再送信されたメッセージを受け取ることができます。(あなたはまだ切断されます受け取っていない場合は、Aは、Bは、タイムアウト機構を有しています。)

また、直接にはもう一つのリスクはこれで閉じ:元プロセスAがちょうど別のポートが他の新しいプロセスによって占有されている場合、新しいプロセスは、Bさんからのメッセージを受信します。

おすすめ

転載: www.cnblogs.com/eycuii/p/11961229.html