なぜスリーウェイハンドシェイクのTCPがあります

参照

なぜTCP 3ウェイハンドシェイクではなく、2または4よりも、ありますか?

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

7547741-359a7c576806c253.png
image.png

図は、3ウェイハンドシェイクTCPキー、確認応答シーケンス番号seqを切り替えることを示しています。

2.なぜ2ウェイハンドシェイクすることができます

クライアントとサーバーなので、他の側の2つの辺のシリアル番号は、信頼性の高い伝送するための鍵ていることを確認します。
次のように双方向ハンドシェイクは次のとおりです。

  1. Aは、同期信号SYN + Aの初期シーケンス番号を送信します
  2. Bは、同期信号SYN + Bの初期シーケンス番号+ BのACKシーケンス番号を送信します

アクションの第二段階が完了すると、我々ができBは、そのシリアル番号Aを有することを保証第二段階のみ成功への最初の工程の後に行われるので、。しかし、それは、そのシリアルナンバーBは保証しない、送信から第2のステップは失敗する可能性があります。

7547741-da608c79e5ec7cb0.png
この2ウェイハンドシェイクで= 1送信SYNの詳細は示されていません

我々が想定するように2つのハンドシェイクが完了した後、TCPのみ第二のハンドシェイクその後、二次のハンドシェイクが完了し、 Bは接続は関係なく握手第二の伝送に成功した、確立されていないと思うしなければなりません
第二の伝送がハンドシェイクに失敗した場合、Aは、シリアル番号Bを受信しません、Bは、最初のいくつかの数のデータ伝送の開始を決定することができません。
この場合、送信されたデータBのいくつかのシリアル番号20000と共に、Aに(TCP全二重通信が、サーバBがクライアントAにメッセージを送信するためのイニシアチブを取ることができる)、受信されました:
7547741-0fe00213b03c571a.png

この時、2つの選択肢の恥ずかしに直面しています:

  1. データパケットを維持することができます。しかし、B社の開始シーケンス番号は順番にそれをACKに応答するとき、パケットを保存する、知りませんでしたか?
  2. A可以回复ACK。ACK的含义表示它的序号之前的字节数据都已收到,可是A连B的起始序列号都不知道:起始序列号可能是100,也可以是1000,A根本无法确定还缺哪些序号的字节,也就更不敢回复ACK了。

所以,不管哪个选择,都是不妥当的。这正是因为A没有确认B的序列号。
而在tcp中,通过三次握手,和丢包的处理机制,A和B都会确定自己的序列号被对方接收。

3. tcp对三次握手中丢包的处理

照搬自TCP 为什么是三次握手,而不是两次或四次?
tcp除了采用三次握手,还要对丢包意外进行适当的处置,以保证A、B双方序列号的传输和确认。

  1. 如果第一个包,即A发给B的SYN 中途被丢,没有到达B
    A会周期性超时重传,直到收到B的确认
  2. 如果第二个包,即B发给A的SYN +ACK 中途被丢,没有到达A
    B会周期性超时重传,直到收到A的确认
  3. 第3のパケットの場合、すなわち、ACK Aが途中でBが失われ、Bが届かないお送り
    AはTCP、TCPおよびBは明らかにそのアクティブ状態にあることを一方的にACK、設立の状態を終えた:
    。場合は、どちらも想定されますデータ伝送、再送タイムアウトB定期的に、それの確認を受信するまで、Bは、TCP接続を受信した後
    にも状態を確立し、双方向の契約であってもよいです。
    B.場合は、データが送信されているものと、Bデータ+ ACKはAさんを受け、自然の状態が確立され、A受け入れに切り替えられる
    (テープデータながらACK方法を送信)データ。
    C。Bは、それがAの確認は、Aは、確認を受けなかった(データを送信することができる受信するまで、接続が確立されていない、周期的な再送タイムアウトSYN + ACKを持つことになり、データ送信、データ送信を想定かどうか、それがデータを送信することができません)。

このように、ハンドリング機構の喪失と相まって、TCPスリーウェイハンドシェイクは、シリアル番号の両側に肯定応答A、Bことを確実にします。それは信頼性の高い伝送のための基礎を確立します。

4.ハンドシェイクできないのはなぜ

合わせた四方向ハンドシェイクにおける第二および第三のステップは、スリーウェイハンドシェイクです。効率を改善するために、それは第二及び第三段階の合併です。

おすすめ

転載: blog.csdn.net/weixin_33694620/article/details/90976677