TCP

 TCP(Transmission Control Protocol)は、インターネットでの信頼性の高いデータ転送を提供するためのプロトコルです。

基本概念

  • TCPは、コネクション指向型のプロトコルであり、データの信頼性と順序付けを確保します。
  • 信頼性のために、データ送信後に確認応答(ACK)を受け取り、再送信が必要な場合には再送します。
  • 順序付けのために、データセグメントにシーケンス番号が付与され、受信側で正しい順序で再構築されます。

TCPヘッダー

  • TCPセグメントには、ヘッダーとペイロード(データ)が含まれます。
  • ヘッダーには、送信元ポート番号、宛先ポート番号、シーケンス番号、確認応答番号、ウィンドウサイズなどの情報が含まれます。

TCPの特徴

フロー制御

受信側が処理できる量のデータを送信側が送るように調整します。

誤り検出と再送信

チェックサムを使用して誤りを検出し、再送信が必要なデータを送り直します。

ポートベースのマルチプレクシング

送受信するアプリケーションを識別するためにポート番号を使用します。

TCP接続の確立と終了
  • 3ウェイハンドシェイクを使用して接続を確立します。これにより、送信側と受信側が通信を開始できるようになります。
  • 接続の終了には、4ウェイハンドシェイクが使用されます。これにより、両方の端点が通信の終了を確認します。

TCPとUDPの比較

  • TCPは信頼性が高く、データの順序が保証されますが、通信の遅延が発生する可能性があります。
  • UDPは信頼性や順序付けが保証されず、高速なデータ転送が可能ですが、パケットの到着が保証されないため、一部のデータが失われる可能性があります。

TCPのセキュリティ

 TCPにはセキュリティの脆弱性があります。TCPハンドシェイクにおけるSYNフラッド攻撃や、セッションハイジャックなどの攻撃が行われることがあります。


まとめ

 TCPは信頼性の高いデータ転送を提供し、多くのインターネットアプリケーションで広く使用されています。データの確実な到達と順序付けを必要とする場合にはTCPを選択し、通信の遅延が許容される場合やリアルタイム性が重視される場合にはUDPなどの他のプロトコルを検討することが重要です。