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

特性TCPUDP
接続方式コネクション型(3-way handshake)コネクションレス
信頼性確認応答・再送制御あり保証なし(best effort)
順序保証あり(シーケンス番号)なし
フロー制御スライディングウィンドウなし
オーバーヘッド大きい(20バイト〜)小さい(8バイト)
用途HTTP, SSH, FTP, SMTPDNS, 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キューサイズ

トピック詳細