SCTP えすしーてぃーぴー
SCTPStream Control Transmission Protocolマルチホーミングマルチストリーミング電話網
SCTPについて教えて
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の比較
| 項目 | TCP | UDP | SCTP |
|---|---|---|---|
| 接続方式 | コネクション型 | コネクションレス | コネクション型(アソシエーション) |
| 信頼性 | あり | なし | あり |
| 順序保証 | あり | なし | あり(ストリーム単位) |
| マルチホーミング | なし | なし | あり |
| マルチストリーミング | なし | なし | あり |
| 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アプリではほとんど使われていない
マルチホーミングの仕組み
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 4960 | SCTPの基本仕様 |
| RFC 6458 | SCTPのソケットAPI |
| RFC 8261 | DTLS over SCTP(WebRTCで使用) |