TCP/UDPの仕組み

SCTP えすしーてぃーぴー

SCTPStream Control Transmission Protocolマルチホーミングマルチストリーミング電話網
SCTPについて教えて

簡単に言うとこんな感じ!

TCPUDPの「いいとこ取り」をした第3のトランスポートプロトコルだよ。信頼性はTCPと同様だけど、複数のIPアドレスや複数のストリームを同時に使える「マルチホーミング・マルチストリーミング」が強みなんだ!


SCTPとは

SCTP(Stream Control Transmission Protocol)は、TCPとUDPの特性を組み合わせた第3のトランスポート層プロトコルです。2000年にRFC 2960として標準化され、元々は電話網(SS7信号)のIP移行のために設計されました。

SCTPの主な特長は3つです。第1にマルチホーミング:1つのアソシエーション(接続)で複数のIPアドレスを使い、片方が切れると自動でもう一方に切り替えます。第2にマルチストリーミング:1つの接続内に複数の独立したストリームを持ち、一部のストリームが詰まっても他のストリームは影響を受けません(TCPのHOL Blocking問題を解消)。第3に信頼性と順序保証:TCPと同様の再送・順序保証を持ちます。


TCP・UDP・SCTPの比較

項目TCPUDPSCTP
接続方式コネクション型コネクションレスコネクション型(アソシエーション)
信頼性ありなしあり
順序保証ありなしあり(ストリーム単位)
マルチホーミングなしなしあり
マルチストリーミングなしなしあり
HOL Blockingありなしなし
4ウェイハンドシェイクなしなしあり(INIT/INIT-ACK/COOKIE-ECHO/COOKIE-ACK)
主な用途Web, メール等ゲーム, DNS電話網IP化, WebRTC

歴史と背景

  • 2000年:RFC 2960でSCTPが標準化。電話網のIP移行を目的に開発
  • 2007年:RFC 4960でSCTPの改訂版が公開
  • 2012年:WebRTCのデータチャネルにSCTPが採用される
  • 現在:通信キャリアのコアネットワーク(Diameter, SIGTRAN)で使われている。一般的なWebアプリではほとんど使われていない

マルチホーミングの仕組み

SCTPマルチホーミング(冗長化) クライアント IP: 10.0.0.1 IP: 10.0.1.1 サーバー IP: 192.168.1.1 IP: 192.168.2.1 プライマリパス(通常通信) セカンダリパス(待機中 → 切替時に自動使用) プライマリパスが切れると自動でセカンダリに切り替わる

関連する規格・RFC

規格・RFC番号内容
RFC 4960SCTPの基本仕様
RFC 6458SCTPのソケットAPI
RFC 8261DTLS over SCTP(WebRTCで使用)

関連用語

  • TCP — SCTPと対比されるコネクション型プロトコル
  • UDP — SCTPと対比されるコネクションレス型プロトコル
  • ポート番号 — SCTPでも使われる宛先識別子