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=100OutputSYN-ACK seq=200 ack=101The three-way handshake
よくあるエラー
- TIME_WAIT buildup exhausts ports
- Tune tcp_tw_reuse or use a connection pool
関連用語
UDP
UDP(User Datagram Protocol)はコネクションレスで信頼性のない順序なしのトランスポート層プロトコルである。オーバーヘッドが小さく遅延が最小で、リアルタイムやブロードキャストトラフィックに適する。 用語集
Socket
ソケットは(プロトコル、ローカル IP、ローカルポート、リモート IP、リモートポート)で識別されるネットワーク通信のエンドポイントで、アプリケーション層とトランスポート層の界面となる。 用語集
Port
ポートとは、トランスポート層の16ビットアドレス(0〜65535)であり、1台のホスト上で複数のネットワークアプリケーションを区別する。IPアドレスと組み合わされてソケットを構成する。 用語集
TLS
TLS(Transport Layer Security)はトランスポート層で暗号化・完全性・認証を提供する。SSL を置き換え、HTTPS や SMTPS などの基盤となる。 用語集