ストリーム コントロール トランスミッション プロトコル(SCTP)とは、TCPやUDPと同様に、OSI参照モデルの中では第4層となるトランスポート レイヤに位置付けられるプロトコルです。元々はIPネットワーク上で電話網のシグナリング プロトコルを実現するために設計されましたが、最終的には汎用性の高いトランスポート プロトコルとして、2000年に定義されました。
SCTPには以下の特徴があります。
- マルチホーミングのサポート
マルチホーミングとは、複数のネットワーク インターフェースを併用することで、可用性を高める技術です。SCTPでは2つのエンドポイント間の通信経路を「アソシエーション」と呼びますが、例えば有線LANとWi-Fiを組み合わせてアソシエーションを構成し、有線LANに接続された場合には有線LANを使用、それ以外の場合はWi-Fiを使用して通信を行う、といったことが可能です。
- マルチストリーミングのサポート
1つのアソシエーションの中に複数のストリームを置くことができます。これによって例えば、データをやり取りするストリームと制御のためのストリームを分離し、制御のレスポンス速度を向上させてリアルタイム性を高める、といったことが可能になります。
- SYNフラッド攻撃からの保護
クライアントからの接続リクエストを受けた段階で接続用リソースを確保するTCPは、送信元アドレスを偽装した接続リクエスト(SYN)を大量に送りつけ、サーバの接続用リソースを枯渇させるDoS攻撃の一手段「SYNフラッド攻撃」に弱いという問題があります。SCTPでは4-wayハンドシェイクを行い、接続要求元のIPアドレスが適正であることを確認してから接続用リソースを確保するため、SYNフラッド攻撃の影響を受けにくくなっています。
- メッセージ境界を維持可能
TCPはバイト ストリーム方式のプロトコルであるため、メッセージ境界を維持できません。UDPはメッセージ指向型のプロトコルであるため、メッセージ境界は維持できますが、メッセージの順序に関しては保証を行いません。SCTPはメッセージ指向型であるためメッセージ境界を維持でき、さらにメッセージの順序も保証可能です(保証しないという選択も可能です)。
このようにSCTPは、TCPとUDPの双方の利点を持ちながら、高可用性とリアルタイム性を確保しやすいという、パワフルなプロトコルです。すでにLTE等で活用されています。