
SCTP(ストリーム制御伝送プロトコル)
プロトコルWebRTCデータチャネルで非メディアデータの送信に使用されるプロトコル。
SCTPとは?
ストリーム制御伝送プロトコル(SCTP)は、TCPの信頼性とUDPのメッセージ指向の性質を組み合わせたコンピュータネットワーキングプロトコルです。WebRTCでは、データチャネル専用に使用され、開発者がチャットメッセージ、ファイル転送、ゲーム状態などの任意のデータをピア間で直接送信できるようにします。
なぜWebRTCにSCTPなのか?
WebRTCはTCPやUDP単独よりも柔軟なデータ送信方法を必要としていました。SCTPはP2Pデータに最適なユニークな機能を提供します:
- 設定可能な信頼性: データチャネルごとに信頼性あり(TCP的、ロストパケット再送信)または信頼性なし(UDP的、リアルタイムゲーム向け)を選択できます。
- メッセージ指向: バイトのストリームであるTCPとは異なり、SCTPは個々のメッセージを区別して保持します。
- 多重化: 単一のSCTPアソシエーションで複数の個別のデータチャネルを持つことができます。1つのチャネルがブロックされても(ヘッドオブラインブロッキング)、他のチャネルは自由に流れ続けます。
DTLS上のSCTP
SCTPはほとんどのコンシューマールーター(NAT)でネイティブにサポートされていないため、WebRTCではSCTPパケットをDTLSパケット内にカプセル化し、UDP上で実行します。これにより、SCTPはすべての強力な機能を保持しながら、ファイアウォールを安全にトラバースできます。