videocalling
Illustration of SCTP(ストリーム制御伝送プロトコル) in video calling

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はすべての強力な機能を保持しながら、ファイアウォールを安全にトラバースできます。