詳細なTCP / IPスリーウェイハンドシェイク

  • スリーウェイハンドシェイクの定義
  • スリーウェイハンドシェイクの目的
  • 3つのハンドシェイクのプロセス
  • なぜ3回握手しなければならないのですか?

> 3ウェイハンドシェイクの定義

スリーウェイハンドシェイク(3回のハンドシェイク;スリーウェイハンドシェイク)いわゆる「スリーウェイハンドシェイク」とは、受信したデータの量に応じて、データセグメントの送信と受信を同期するために毎回送信されるデータの量を追跡する方法を指します。データ確認の数、およびデータが送受信された後にコンタクトをキャンセルし、仮想接続を確立するタイミング。信頼性の高い伝送を提供するために、TCPは新しいデータを送信する前に特定の順序でデータパケットのシーケンス番号を送信し、これらのパケットがターゲットマシンに送信された後に確認メッセージを必要とします。TCPは常に大量のデータを送信するために使用されます。TCPは、アプリケーションがデータを受信した後に確認応答を行う必要がある場合にも使用されます。

> 3ウェイハンドシェイクの目的

古い接続要求SYNメッセージの新しい接続への干渉を排除し、接続の両側のシリアル番号と確認番号を同期して、TCPウィンドウサイズ情報を交換します。

> 3つのハンドシェイクプロセス

ここに写真の説明を書きます

最初のハンドシェイク:クライアントはサーバーにSynパケット(syn = x)を送信してSYN_SEND状態に入り、サーバーの確認を待ちます;
2番目のハンドシェイク:サーバーはSyn パケットを受信し、クライアントのSYNを確認する必要があります(ack = x + 1) 、同時にSYNパケット(syn = y)、つまりSYN + ACKパケットも送信し、サーバーはSYN_RECV状態に入ります。3
番目のハンドシェイク:クライアントはサーバーからSYN + ACKパケットを受信し、確認パケットACKを送信しますy + 1)、パケットが送信された後、クライアントとサーバーはESTABLISHED状態に入り、3つのハンドシェイクを完了します。
ハンドシェイク中に送信されるパケットにはデータが含まれていないため、3つのハンドシェイクが完了すると、クライアントとサーバーが正式にデータの送信を開始します。理想的には、TCP接続が確立されると、2つのパーティのどちらかがアクティブに接続を閉じるまで、TCP接続が維持されます。

>なぜ3回握手しなければならないのですか?

1. 3ウェイハンドシェイクを使用して、無効な接続要求メッセージセグメントがホストBに突然送信されてエラーが発生するのを防ぎます。無効な接続要求メッセージセグメントは、ホストAによって送信された接続要求がホストBから確認を受信して​​いないことを意味します。しばらくして、ホストAはホストBに接続要求を再度送信し、確立は成功し、データ送信は順番に完了します。このような特殊なケースを考えてみます。ホストAが送信した最初の接続要求は失われませんが、ネットワークノードがホストBに到達するまでに遅延が発生するため、ホストBはそれをホストAが開始した新しい接続であると見なし、ホストBが接続することに同意します。確認はホストAに返送されますが、現時点ではホストAは単にそれを無視し、ホストBはホストAがデータを送信するのを待っているため、ホストBのリソースが無駄になります。
2.もちろん、その理由は上記のとおりです。

19件の元の記事を公開 賞賛5 訪問7742

おすすめ

転載: blog.csdn.net/qq_38119372/article/details/79538381