### ###### 一歩ずつ。
TCP プロトコルについて簡単に紹介しましょう。 TCP (伝送制御プロトコル) は、コネクション指向で信頼性の高い、バイト ストリーム ベースのトランスポート層プロトコルです。複雑ではありますが、プログラマーと運用保守担当者の両方が知っておく必要がある基本的なスキルです。
内容: ポート番号 [16 ビット]、シーケンス番号 [32 ビット]、オフセット [4 ビット]、予約済み [6 ビット]、フラグ [6 ビット]、ウィンドウ サイズ (ウィンドウ) [16 ビット]、チェックサム [16 ビット]、緊急ポインタ [16 ビット]、TCP オプション
ここで注意すべき点: TCP パケットには IP アドレスがありません。これは IP 層の問題ですが、送信元ポートと宛先ポートがあります。はネットワークパケットの並べ替えの問題を解決するために使用されます。
はパケットを失わないという問題を解決するために使用されます。
はフロー制御を解決するために使用されます 。
は、主に TCP ステート マシン を制御するために使用されます。 URG: 緊急ポインタは有効です
ACK: 確認シーケンス番号は有効です PSH: 受信機はこのセグメントをできるだけ早くアプリケーション層に渡す必要があります RST : 接続の再構築 SYN: 接続の開始に使用される同期シーケンス番号 FIN: 発信者が送信タスクを完了 (アクティブに終了) スリーウェイ ハンドシェイクが確立されました Link1. 要求側 (クライアント) は、クライアントが接続するサーバーのポートを示すために SYN=1 を送信します。TCP SYN=1 の場合はデータを伝送できないと規定されていますが、シーケンス番号が消費されるため、初期シーケンス番号 seq を seq=x として乱数として宣言します。
なぜ 3 ウェイ ハンドシェイクなのかを詳しく見てみましょう。
無効なリンクリクエストセグメントが突然サーバーに送信され、エラーが発生するのを防ぐため。栗をあげましょう。クライアントによって送信された最初の接続要求メッセージ セグメントは失われませんでしたが、特定のネットワーク ノードに長時間留まったため、接続が解放されてからサーバーに到達するまでに一定の時間が遅延しました。これは、かなり前に期限が切れたメッセージ セグメントであることが判明しました。ただし、サーバーはこの無効な接続要求セグメントを受信すると、それがクライアントによって再度送信された新しい接続要求であると誤って認識します。したがって、確認メッセージ セグメントをクライアントに送信し、接続の確立に同意します。 「スリーウェイ ハンドシェイク」が使用されていないと仮定すると、サーバーが確認を送信する限り、新しい接続が確立されます。クライアントは接続を確立するリクエストを発行していないため、サーバーの確認には注意を払わず、サーバーにデータを送信しません。しかし、サーバーは新しいトランスポート接続が確立され、クライアントがデータを送信するのを待っていると考えます。このようにして、サーバーの多くのリソースが無駄になります。 「スリーウェイハンドシェイク」方式を採用することで、上記の現象を防ぐことができます。たとえば、先ほどの状況では、クライアントはサーバーの確認に確認を送信しません。サーバーは確認を受信できないため、クライアントが接続の確立を要求しなかったことを認識します。 "
これは非常に明白で、サーバーが待機してリソースを浪費することがなくなります。
では、なぜ 4 つの波があるのでしょうか?
TCP プロトコルは、A 接続型で、信頼性が高く、バイト ストリーム ベースのトランスポート層通信プロトコルです。TCP は全二重モードです。つまり、ホスト 1 が FIN セグメントを送信するとき、それはホスト 1 に送信するデータがないことだけを意味します。1 はホスト 2 に、そのすべてのデータが送信されたことを伝えます。送信されました。ただし、ホスト 1 はこの時点でもホスト 2 からのデータを受け入れることができます。ホスト 2 が ACK メッセージ セグメントを返した場合、ホスト 1 には送信するデータがないことがすでにわかっていることを意味します。ただし、ホスト 2 は引き続きホストにデータを送信できます。 1; ホスト 2 も FIN セグメントを送信すると、ホスト 2 には送信するデータがないことを意味し、送信するデータがないことをホスト 1 に伝え、お互いが喜んで TCP 接続を終了します。 4 つの別れの原理を正しく理解するには、4 つの別れの間の状態の変化を理解する必要があります。
以上がリンクを確立するための TCP 3 方向ハンドシェイクとリンクを切断するための 4 方向ウェーブの分析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。