技術共有

【コンピュータネットワーク】TCPプロトコルの3ウェイハンドシェイクと4ウェイウェーブを深く理解する 1. はじめに

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


序文

コンピュータ ネットワークにおける TCP プロトコルは、コネクション指向で信頼性の高い、バイト ストリーム ベースのトランスポート層通信プロトコルです。その中心的な機能は、信頼性の高いデータ伝送を提供することです。この信頼性は主に、接続の確立 (3 ウェイ ハンドシェイク) と切断 (4 ウェイ ウェーブ) のプロセスに反映されます。このブログでは、両方のプロセスについて詳しく説明します。


1. 説明

2.1 図

ここに画像の説明を挿入します

2.2 スリーウェイハンドシェイク

3 ウェイ ハンドシェイクは、TCP プロトコルを通じて接続を確立するプロセスです。具体的な手順は次のとおりです。

  • 最初のハンドシェイク: クライアントは SYN セグメントをサーバーに送信して、接続の確立を要求します。メッセージにはクライアントの初期シーケンス番号 X が含まれます。

  • 2 回目のハンドシェイク: SYN セグメントを受信した後、サーバーは SYN+ACK セグメントをクライアントに送信して、接続の確立に同意したことを示します。このメッセージ セグメントには、サーバーの初期シーケンス番号 Y と、クライアントの初期シーケンス番号の確認番号 X+1 が含まれます。

  • 3 回目のハンドシェイク: クライアントは SYN+ACK セグメントを受信した後、サーバーの初期シーケンス番号を確認するために ACK セグメントをサーバーに送信します。このセグメントの確認番号は Y+1 です。

2.3 4回ウェーブする

4 回手を振ると、TCP プロトコルで切断されます。具体的な手順は次のとおりです。

  • 第 1 の波: クライアントが接続を閉じることを決定すると、FIN メッセージ セグメントがサーバーに送信され、メッセージには現在のシーケンス番号が含まれます。これは、クライアントには送信するデータがもうないことを意味します。

  • 第 2 の波: FIN セグメントを受信した後、サーバーは ACK セグメントをクライアントに送信して、FIN セグメントの受信を確認します。このセグメントの確認番号は、クライアントのシーケンス番号 + 1 です。

  • 3 番目の波: サーバーに送信するデータがない場合、サーバーは FIN メッセージ セグメントをクライアントに送信し、メッセージには現在のシーケンス番号が含まれます。

  • 4 番目のウェーブ: FIN セグメントを受信した後、クライアントは ACK セグメントをサーバーに送信して、FIN セグメントの受信を確認します。このセグメントの確認番号は、サーバーのシーケンス番号 + 1 です。次に、クライアントは一定時間 (セグメントの最大有効期間の 2 回分) 待機して、サーバーが ACK セグメントを受信したことを確認してから、実際に接続を閉じます。


2. まとめ

TCP プロトコルの 3 方向ハンドシェイクと 4 方向ウェーブはその中核機能であり、TCP 接続の信頼性を保証します。これら 2 つのプロセスを理解することは、TCP プロトコルとネットワーク通信の原理を深く理解するのに非常に役立ちます。このブログが、TCP プロトコルの仕組みをより深く理解するのに役立つことを願っています。