L4 トランスポート層(Transport Layer)
エンドツーエンドの通信制御
トランスポート層とは
トランスポート層(L4)は、アプリケーション間のエンドツーエンド通信を提供します。 ポート番号でアプリケーションを識別し、TCPでは信頼性を、UDPでは低レイテンシを実現します。
ポート番号
192.168.1.10:443
IPアドレス
ホストの識別
ホストの識別
ポート番号
アプリケーションの識別
アプリケーションの識別
ウェルノウンポート
0-1023(SSH:22, HTTP:80, HTTPS:443)
登録済みポート
1024-49151(MySQL:3306等)
エフェメラルポート
49152-65535(クライアント側)
TCP vs UDP
| 特性 | TCP | UDP |
|---|---|---|
| 接続方式 | コネクション型(3-way handshake) | コネクションレス |
| 信頼性 | 確認応答・再送制御あり | 保証なし(best effort) |
| 順序保証 | あり(シーケンス番号) | なし |
| フロー制御 | スライディングウィンドウ | なし |
| オーバーヘッド | 大きい(20バイト〜) | 小さい(8バイト) |
| 用途 | HTTP, SSH, FTP, SMTP | DNS, NTP, 動画/音声配信 |
TCP 3-way Handshake
クライアント
SYN →
サーバー
← SYN+ACK
ACK →
コネクション確立完了 → データ転送開始
TCPの重要概念
輻輳制御
- • スロースタート: 徐々にウィンドウ拡大
- • 輻輳回避: 線形増加
- • 高速再送: 3重複ACKで即再送
コネクション終了
- • FIN: 正常終了(4-way handshake)
- • RST: 異常終了(即座に切断)
- • TIME_WAIT: 終了後2MSL待機
SRE/インフラ観点
監視項目
- • コネクション状態: ESTABLISHED, TIME_WAIT, CLOSE_WAIT
- • 再送率: パケットロスの指標
- • RTT: ラウンドトリップタイム
よくある問題
- • TIME_WAIT蓄積: エフェメラルポート枯渇
- • CLOSE_WAIT蓄積: アプリがcloseしていない
- • SYN Flood: DoS攻撃(SYN cookie で対策)
チューニング
- •
net.ipv4.tcp_tw_reuse: TIME_WAITソケット再利用 - •
net.core.somaxconn: listenキューサイズ - •
net.ipv4.tcp_max_syn_backlog: SYNキューサイズ