ネットワーク
上級

TCP (Transmission Control Protocol)(ティーシーピー)

インターネットの基本トランスポートプロトコル。1974年RFC 675・Vint Cerf / Bob Kahn 設計、信頼性 / 順序保証 / フロー制御で IP 上の信頼性通信を実現。

0 回閲覧
0 いいね
2026/5/15 更新
関連タグ
ネットワーク
TCP
プロトコル

概要

TCP (Transmission Control Protocol) はVint Cerf / Bob Kahn が1974年に IETF RFC 675「Specification of Internet Transmission Control Program」で発表、1981年RFC 793 で正式標準化したInternet の基本トランスポートプロトコル。OSI モデルのトランスポート層 (Layer 4) プロトコル、3-way Handshake (SYN/SYN-ACK/ACK) で接続確立・パケット順序保証・再送・ACK・Window 制御・輻輳制御で信頼性通信を実現する、Internet 通信の柱。

TCP 主要機能

機能説明
接続確立3-way Handshake (SYN / SYN-ACK / ACK)
切断4-way Handshake (FIN / ACK)
順序保証Sequence Number
信頼性ACK + 再送
Flow ControlWindow Size
Congestion ControlReno / NewReno / CUBIC / BBR
Reliabilityチェックサム検証
多重化Port 番号 (16bit・0-65535)
Half-Close片方向クローズ可
Keep-Alive接続維持

3-way Handshake

TCP 接続確立の仕組み:

Client                  Server
  |                       |
  |--- SYN (seq=x) ------>| (1)
  |                       |
  |<-- SYN-ACK (ack=x+1, seq=y) (2)
  |                       |
  |--- ACK (ack=y+1) ---->| (3)
  |                       |
  |   接続確立完了        |
  |                       |

3往復で接続確立 → データ送信開始。HTTP リクエストごとの接続には100-300ms オーバーヘッド。

輻輳制御 (Congestion Control) 進化

アルゴリズム年特徴
Tahoe1988初期・Slow Start
Reno1990Fast Recovery
NewReno1999改良Reno
Vegas1995RTT ベース (Linux 採用なし)
CUBIC2008立方曲線・Linux default
BBR2016Bottleneck Bandwidth (Google・YouTube採用)
BBR v32023改良版

CUBIC は伝統的ロス検知ベース・BBR は帯域・RTT 推定ベースで違うアプローチ、長距離高帯域回線で BBR が圧倒。

TCP vs UDP

項目TCPUDP
接続あり (3-way)なし
順序保証ありなし
信頼性あり (ACK + 再送)なし
Flow Controlありなし
Congestion Controlありなし
ヘッダサイズ20-60 byte8 byte
Latency高 (Handshake)低
主な用途HTTP / SSH / SMTP / FTPDNS / VoIP / DASH / 動画ストリーミング

主要TCP 拡張・RFC

RFC年内容
RFC 7931981TCP 標準
RFC 13231992High Performance Extensions (Window Scale)
RFC 20181996SACK (Selective ACK)
RFC 25811999Congestion Control Reno
RFC 62982011RTO Computation
RFC 73232014TCP Extensions for High Performance
RFC 74132014TCP Fast Open
RFC 83122018CUBIC

TCP Fast Open (TFO・2014)

接続確立中にデータ送信可能化:

  • 通常: 3-way Handshake → データ送信 (3RTT)
  • TFO: SYN にデータ含め (1RTT)
  • 再接続時に効果大
  • Google Chrome / iOS / Linux 5.0+ 対応

関連用語との違い

  • vs UDP: 信頼 / 高速
  • vs QUIC: TCP 後継・UDP 上で動作
  • vs HTTP: アプリケーション層 / トランスポート層

FAQ

Q1: 3-way Handshake 不要な改良? A: QUIC (Google 2013-) はUDP 上で0-RTT 接続可能、TCP の遅延問題を解決。HTTP/3 (2022) は TCP→QUIC へ移行中。

Q2: BBR の効果? A: YouTube が2016年BBR 採用で世界平均14%スループット向上・遅延30% 削減。Cloudflare / Spotify / Dropbox 等が採用。

Q3: TCP は廃れる? A: 当面廃れない。HTTP/3 (QUIC) 採用拡大中だが、SSH / Database 等の標準TCP依存アプリは継続。Linux Kernel に深く統合済み。

この記事について
カテゴリーネットワーク
難易度上級
作成日2026/5/15