TCPは、新興対処するために、信頼性の高いトランスポートです。4回振って、3ウェイハンドシェイク:信頼性を達成するために、TCPは、制御、輻輳制御、および接続を閉じる前に行うための仕組みの確立を流れます。
スリーウェイハンドシェイクは、接続は、それぞれがメッセージを受信、送信できることを保証するために確立される前に、クライアント、サーバーをできるようにすることです。
四つは、すべて互いに近接して、接続を閉じることを確認するために、クライアントも、サーバーを振りました。
設立された場合は、近くに直接接続する前に、このような保証の不在は、メッセージを送信したり、リードをオフにし、パケットロスおよびその他のリスクが存在します。
(これは百パーセントを意味するものではありませんように注意)
だからこそ、3ウェイハンドシェイクのですか?代わりに2つ、4つの?
携帯電話とのアナロジーを行うクライアントA、サーバB、場合:
A氏:ねえ、私を聞きますか?
(B聞いた後、あなたはAが言って聞くことができます知っています。)
Bは答え:はい。あなたはそれを聞くことができますか?
(A聞いた後、彼はBが話され、彼自身の言葉を聞くことができます知っているだろう、と私はBを聞くことができました
Aはまた、回答したいと思いますので、今回は、A、Bはそれを彼自身の言葉を聞くことができないかわかりません。)
回答:ああ、聞きます。
この場合、Aは、Bは(つまり、接続を確立するために、データの送信を開始)、聞いて、そしてあなたがチャットを開始することができ、互い缶話すを知ることができるようになります。
それは2ウェイハンドシェイクの場合
電池は、A死んだときにシャットダウンされた場合に2つだけのハンドシェイクは、Bは、音声は、ケースとなっているか分からない可能性がある場合には、上記の例から分かります。
接続が確立される前に、あなたは信頼性の高い伝送をしたいのであれば、我々は最初の相互確認する必要があり、通常のメッセージを受信します。
4ウェイハンドシェイクの場合
四、五は、より多くのことができますが、これは実際にはビット冗長です。だから、3ウェイハンドシェイクをすることができます。
なぜ4回振っていますか?そしてない1回、2回、3回?
上記の例のように、クライアントA、呼び出しでサーバB:
Aは言った:私は、眠い眠りたいです。
B返信:OKは、私はあなたを伝えるためにいくつかのものを持っています。
Bが終了した後、彼は言った:私は終わりだ、あなたはさようなら、スリープ状態に入ります。
回答:ああ、良い夜。
この場合、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さんからのメッセージを受信します。