コンテンツへスキップ
uencoder

TCP

TCP(Transmission Control Protocol)はコネクション型の信頼できる順序付きトランスポート層プロトコルである。3 ウェイハンドシェイクで接続を確立し、スライディングウィンドウによるフロー制御と ACK ベースの確認応答を提供する。

目的

完全かつ順序どおりに到着する信頼性の高いデータ転送を提供し、ファイル転送や Web に適する。

メカニズム

3 ウェイハンドシェイク(SYN、SYN-ACK、ACK)で接続を確立し、4 ウェイクローズで切断する。データにはシーケンス番号が付き、受信側が確認応答する。フロー制御はスライディングウィンドウ、輻輳制御はスロースタートと AIMD を使う。タイムアウトで再送される。状態機械は 11 状態である。

ユースケース

  • HTTP/HTTPS の Web 通信
  • SSH によるリモートログイン
  • SMTP によるメール転送
  • ファイル転送(FTP/SFTP)

例

  • 入力
    SYN seq=100
    Output
    SYN-ACK seq=200 ack=101

    The three-way handshake

よくあるエラー

TIME_WAIT buildup exhausts ports
Tune tcp_tw_reuse or use a connection pool

関連用語

関連ツール

References