logo

伝送制御プロトコル (TCP) とは何ですか?

TCPはの略です 伝送制御プロトコル 。これは、送信元から宛先へのパケットの送信を容易にするトランスポート層プロトコルです。これは接続指向のプロトコルであり、ネットワーク内のコンピューティング デバイス間で行われる通信の前に接続を確立することを意味します。このプロトコルは IP プロトコルとともに使用されるため、これらを合わせて TCP/IP と呼びます。

TCP の主な機能は、アプリケーション層からデータを取得することです。次に、データをいくつかのパケットに分割し、これらのパケットに番号を付け、最終的にこれらのパケットを宛先に送信します。一方、TCP はパケットを再組み立てしてアプリケーション層に送信します。ご存知のとおり、TCP は接続指向のプロトコルであるため、送信者と受信者の間で通信が完了するまで接続は確立されたままになります。

Javaの日付を文字列に変換する

TCPプロトコルの特徴

TCP プロトコルの特徴は次のとおりです。

    トランスポート層プロトコル

TCP は、送信者から受信者へのデータの送信に使用されるトランスポート層プロトコルです。

    信頼性のある

TCP は、フローおよびエラー制御メカニズムに従っているため、信頼性の高いプロトコルです。また、データの状態と音声到着を確認する確認応答メカニズムもサポートしています。確認応答メカニズムでは、受信者は肯定応答または否定応答を送信者に送信し、送信者がデータ パケットが受信されたか、再送信する必要があるかを知ることができます。

    データの順序は維持されます

このプロトコルは、データが送信されたのと同じ順序で目的の受信者に到達することを保証します。各セグメントに順序と番号を付けて、宛先側の TCP 層が順序に基づいてセグメントを再構築できるようにします。

    接続指向

これは接続指向のサービスであり、接続の確立後にのみデータ交換が行われることを意味します。データ転送が完了すると、接続は終了します。

    全二重

全二重とは、データを同時に両方向に転送できることを意味します。

git すべて追加
    ストリーム指向

TCP は、送信者がバイト ストリームの形式でデータを送信できるようにするだけでなく、受信者がバイト ストリームの形式でデータを受け入れることもできるため、ストリーム指向のプロトコルです。 TCP は、送信者と受信者の両方が仮想回線と呼ばれる架空のチューブで接続される環境を作成します。この仮想回線は、インターネット上でバイト ストリームを伝送します。

トランスポート制御プロトコルの必要性

ネットワーク モデルの階層化アーキテクチャでは、タスク全体がより小さなタスクに分割されます。各タスクは、そのタスクを処理する特定のレイヤーに割り当てられます。の中に TCP/IPモデル 、 5 つの層は、アプリケーション層、トランスポート層、 ネットワーク層 、データリンク層、および物理層。トランスポート層は、アプリケーション プロセスにエンドツーエンドの通信を直接提供する上で重要な役割を果たします。 65,000 個のポートを作成して、複数のアプリケーションに同時にアクセスできるようにします。上位層からデータを取得し、そのデータを小さなパケットに分割してネットワーク層に送信します。

TCP

TCPの仕組み

TCP では、3 ウェイ ハンドシェイクを使用して接続が確立されます。クライアントはシーケンス番号を付けてセグメントを送信します。これに対し、サーバーは、独自のシーケンス番号と、クライアントのシーケンス番号より 1 つ大きい確認シーケンスを含むセグメントを送信します。クライアントはセグメントの確認応答を受信すると、その確認応答をサーバーに送信します。このようにして、クライアントとサーバーの間に接続が確立されます。

TCP

TCPの利点

  • これは、接続指向の信頼性の高いサービスを提供します。つまり、データ パケットの配信が保証されます。データ パケットがネットワーク上で失われた場合、TCP は失われたパケットを再送信します。
  • スライディング ウィンドウ プロトコルを使用したフロー制御メカニズムを提供します。
  • チェックサムを使用したエラー検出と、Go Back または ARP プロトコルを使用したエラー制御を提供します。
  • 加算増加/乗算減少 (AIMD)、スロー スタート、輻輳ウィンドウなどのさまざまなスキームを含むネットワーク輻輳回避アルゴリズムを使用して輻輳を解消します。

TCPの欠点

各セグメントが独自の TCP ヘッダーを取得するため、ルーターによる断片化によりオーバーヘッドが増加します。

TCPヘッダー形式

TCP
    送信元ポート:データを送信するアプリケーションのポートを定義します。したがって、このフィールドには 16 ビットの送信元ポート アドレスが含まれます。宛先ポート:受信側のアプリケーションのポートを定義します。したがって、このフィールドには 16 ビットの宛先ポート アドレスが含まれます。シーケンス番号:このフィールドには、特定のセッションのデータ バイトのシーケンス番号が含まれます。確認番号:ACK フラグが設定されている場合、これにはデータ バイトの次のシーケンス番号が含まれ、以前に受信したデータに対する確認応答として機能します。たとえば、受信機がセグメント番号「x」を受信した場合、受信確認番号として「x+1」を応答します。ヘレン:ヘッダー内の 4 バイトのワードで示されるヘッダーの長さを指定します。ヘッダーのサイズは 20 ~ 60 バイトです。したがって、このフィールドの値は 5 ~ 15 になります。予約済み:これは将来の使用のために予約されている 4 ビットのフィールドで、デフォルトではすべて 0 に設定されます。フラグ
    6 つの制御ビットまたはフラグがあります。
      URG:緊急ポインタを表します。設定されている場合、データは緊急に処理されます。応答:ACK が 0 に設定されている場合は、データ パケットに確認応答が含まれていないことを意味します。PSH:このフィールドが設定されている場合、データをバッファリングせずに受信アプリケーションにプッシュするよう受信デバイスに要求します。RST:設定されている場合は、接続の再開を要求します。SYN:ホスト間の接続を確立するために使用されます。終わり:これは接続を解放するために使用され、それ以上のデータ交換は行われません。
    ウィンドウサイズ
    16 ビットのフィールドです。これには、受信側が受け入れることができるデータのサイズが含まれます。このフィールドは、送信者と受信者間のフロー制御に使用され、受信者によってセグメントに割り当てられるバッファーの量も決定します。このフィールドの値は受信機によって決定されます。チェックサム
    16 ビットのフィールドです。このフィールドは UDP ではオプションですが、TCP/IP の場合は必須です。緊急の指示
    これは、URG フラグが 1 に設定されている場合に緊急データ バイトを指すポインタです。最後の緊急バイトのシーケンス番号を取得するためにシーケンス番号に追加される値を定義します。オプション
    追加のオプションが提供されます。オプションのフィールドは 32 ビットで表されます。このフィールドに 32 ビット未満のデータが含まれている場合は、残りのビットを取得するためにパディングが必要です。