Stream Control Transmission Protocol(ストリーム制御伝送プロトコル、ストリーム コントロール トランスミッション プロトコル、SCTP)は、2000年にSIGTRAN ワーキンググループによって定義されたトランスポート層のプロトコルである。
輻輳制御を行い、到着順序を保証する信頼性のあるメッセージ転送を行うという点で、同じ層のプロトコルであるTCPと同様のサービスを提供する。TCP はバイト (byte) 指向であり、SCTP はフレーム・メッセージのやり取りである。
SCTPの利点は以下の通り。
- マルチ・ホーミングのサポート。コネクションのエンドポイントは複数のIPアドレスを持つことができ、ホストやネットワーク・カードの障害時にフェイルセーフが可能。
- 別個のストリーム内のチャンクによるデータ転送。これにより、TCPのバイトストリーム転送に見られるような、不必要なhead-of-the-lineブロッキング(待ち行列の先頭のデータがその後ろの転送を妨げること)を解消することができる。
- 経路選択とモニタリング。「プライマリ」データ転送経路を選択し、その転送経路の接続性をテストする。
- 検証と応答確認メカニズム。フラッディング攻撃からの保護や、重複あるいは欠損したデータ・チャンクの通知を提供する。
元々SCTPは電話網のシグナリング・プロトコルであるNo.7共通線信号方式 (SS7) をIP上で転送することを意図しており、SS7信号網の信頼性をIP網で再現することを目的としている。このIETFの作業はSIGTRANとして知られている。一方で他の用途も提案されており、その一例としてRADIUSの後継であるDIAMETERでの利用が挙げられる。
SCTP は次のオペレーティングシステムで実装・導入されている。
この他、様々なサードパーティ製の実装が他のオペレーティングシステムで利用可能である。
ユーザスペースで実装されたライブラリ:
- The SCTP library (sctplib)
- Microsoft Windows XP で動くSCTPlibの実装
The following applications implement SCTP:
LTEやその後継規格のLTE-Advancedでは制御信号の送受信のトランスポート層にSCTPを使用している[1]。
- RFC 5062 - Security Attacks Found Against the Stream Control Transmission Protocol (SCTP) and Current Countermeasures
- RFC 5061 - Stream Control Transmission Protocol (SCTP) Dynamic Address Reconfiguration
- RFC 5043 - Stream Control Transmission Protocol (SCTP) Direct Data Placement (DDP) Adaptation
- RFC 4960 - Stream Control Transmission Protocol
- RFC 4895 - Authenticated Chunks for the Stream Control Transmission Protocol (SCTP)
- RFC 4820 - Padding Chunk and Parameter for the Stream Control Transmission Protocol (SCTP)
- RFC 4460 - Stream Control Transmission Protocol (SCTP) Specification Errata and Issues
- RFC 3873 - Stream Control Transmission Protocol (SCTP) Management Information Base (MIB)
- RFC 3758 - Stream Control Transmission Protocol (SCTP) Partial Reliability Extension
- RFC 3554 - On the Use of Stream Control Transmission Protocol (SCTP) with IPsec
- RFC 3436 - Transport Layer Security over Stream Control Transmission Protocol
- RFC 3309 - Stream Control Transmission Protocol (SCTP) Checksum Change(RFC 4960 により廃止)
- RFC 3286 - An Introduction to the Stream Control Transmission Protocol
- RFC 3257 - Stream Control Transmission Protocol Applicability Statement
- RFC 2960 - Stream Control Transmission Protocol(RFC 3309 により更新 RFC 4960 により廃止)