TCPはの略です 伝送制御プロトコル 。これは、送信元から宛先へのパケットの送信を容易にするトランスポート層プロトコルです。これは接続指向のプロトコルであり、ネットワーク内のコンピューティング デバイス間で行われる通信の前に接続を確立することを意味します。このプロトコルは IP プロトコルとともに使用されるため、これらを合わせて TCP/IP と呼びます。
TCP の主な機能は、アプリケーション層からデータを取得することです。次に、データをいくつかのパケットに分割し、これらのパケットに番号を付け、最終的にこれらのパケットを宛先に送信します。一方、TCP はパケットを再組み立てしてアプリケーション層に送信します。ご存知のとおり、TCP は接続指向のプロトコルであるため、送信者と受信者の間で通信が完了するまで接続は確立されたままになります。
Javaの日付を文字列に変換する
TCPプロトコルの特徴
TCP プロトコルの特徴は次のとおりです。
TCP は、送信者から受信者へのデータの送信に使用されるトランスポート層プロトコルです。
TCP は、フローおよびエラー制御メカニズムに従っているため、信頼性の高いプロトコルです。また、データの状態と音声到着を確認する確認応答メカニズムもサポートしています。確認応答メカニズムでは、受信者は肯定応答または否定応答を送信者に送信し、送信者がデータ パケットが受信されたか、再送信する必要があるかを知ることができます。
このプロトコルは、データが送信されたのと同じ順序で目的の受信者に到達することを保証します。各セグメントに順序と番号を付けて、宛先側の TCP 層が順序に基づいてセグメントを再構築できるようにします。
これは接続指向のサービスであり、接続の確立後にのみデータ交換が行われることを意味します。データ転送が完了すると、接続は終了します。
全二重とは、データを同時に両方向に転送できることを意味します。
git すべて追加
TCP は、送信者がバイト ストリームの形式でデータを送信できるようにするだけでなく、受信者がバイト ストリームの形式でデータを受け入れることもできるため、ストリーム指向のプロトコルです。 TCP は、送信者と受信者の両方が仮想回線と呼ばれる架空のチューブで接続される環境を作成します。この仮想回線は、インターネット上でバイト ストリームを伝送します。
トランスポート制御プロトコルの必要性
ネットワーク モデルの階層化アーキテクチャでは、タスク全体がより小さなタスクに分割されます。各タスクは、そのタスクを処理する特定のレイヤーに割り当てられます。の中に TCP/IPモデル 、 5 つの層は、アプリケーション層、トランスポート層、 ネットワーク層 、データリンク層、および物理層。トランスポート層は、アプリケーション プロセスにエンドツーエンドの通信を直接提供する上で重要な役割を果たします。 65,000 個のポートを作成して、複数のアプリケーションに同時にアクセスできるようにします。上位層からデータを取得し、そのデータを小さなパケットに分割してネットワーク層に送信します。
TCPの仕組み
TCP では、3 ウェイ ハンドシェイクを使用して接続が確立されます。クライアントはシーケンス番号を付けてセグメントを送信します。これに対し、サーバーは、独自のシーケンス番号と、クライアントのシーケンス番号より 1 つ大きい確認シーケンスを含むセグメントを送信します。クライアントはセグメントの確認応答を受信すると、その確認応答をサーバーに送信します。このようにして、クライアントとサーバーの間に接続が確立されます。
TCPの利点
- これは、接続指向の信頼性の高いサービスを提供します。つまり、データ パケットの配信が保証されます。データ パケットがネットワーク上で失われた場合、TCP は失われたパケットを再送信します。
- スライディング ウィンドウ プロトコルを使用したフロー制御メカニズムを提供します。
- チェックサムを使用したエラー検出と、Go Back または ARP プロトコルを使用したエラー制御を提供します。
- 加算増加/乗算減少 (AIMD)、スロー スタート、輻輳ウィンドウなどのさまざまなスキームを含むネットワーク輻輳回避アルゴリズムを使用して輻輳を解消します。
TCPの欠点
各セグメントが独自の TCP ヘッダーを取得するため、ルーターによる断片化によりオーバーヘッドが増加します。
TCPヘッダー形式
6 つの制御ビットまたはフラグがあります。
16 ビットのフィールドです。これには、受信側が受け入れることができるデータのサイズが含まれます。このフィールドは、送信者と受信者間のフロー制御に使用され、受信者によってセグメントに割り当てられるバッファーの量も決定します。このフィールドの値は受信機によって決定されます。
16 ビットのフィールドです。このフィールドは UDP ではオプションですが、TCP/IP の場合は必須です。
これは、URG フラグが 1 に設定されている場合に緊急データ バイトを指すポインタです。最後の緊急バイトのシーケンス番号を取得するためにシーケンス番号に追加される値を定義します。
追加のオプションが提供されます。オプションのフィールドは 32 ビットで表されます。このフィールドに 32 ビット未満のデータが含まれている場合は、残りのビットを取得するためにパディングが必要です。