SCTPを最大限に活用するには、アプリケーション内でより多くの設計が必要です。TCPよりも多くのオプションがあり、SocketsのようなAPIは後で登場しました。しかし、時間をかけてそれを理解する(そしてTCPの欠点を知っている)ほとんどの人はそれを高く評価すると思います-これは、TCPとUDPに関する30年以上の知識に基づいて設計されたプロトコルです。
いくつかの考慮が必要な側面の1つは、ストリームの側面です。ストリームは(通常はオフにできると思います)ストリーム内の順序保証を提供します(TCP接続と同様)。ただし、SCTP接続ごとに複数のストリームが存在する可能性があります。アプリケーションのデータが複数のストリームを介して送信できる場合は、1つのパケットが誤って配置されたためにレシーバーが餓死するような行頭ブロッキングを回避できます。実質的には、互いに影響を与えることなく、同じ接続を介して異なる会話を行うことができます。
もう1つの便利な追加は、マルチホーミングサポートの追加です。1つの接続が両端の複数のインターフェースにまたがることができ、障害に対処します。これはTCPでエミュレートできますが、アプリケーション層で実行できます。
非一時的な接続にTCPを使用するアプリケーションが最初に実装する適切なリンクハートビートは無料で利用できます。
SCTPの私の個人的な要約は、それが実質的なアプリケーションサポートで(TCPまたはUDPで)別の方法で行うことができなかったことは何もしないということです。それが提供するものは、そのコードを自分で(ひどく)実装する必要がない能力です。
ちなみに、SCTPはDiameterのサポートとして義務付けられています(RADIUS次世代を参照)。RFC 3588を参照
DiameterクライアントはTCPまたはSCTPのいずれかをサポートする必要がありますが、エージェントと
サーバーは両方をサポートする必要があります。この仕様の将来のバージョンは
クライアントがSCTPをサポートすることを義務付けます。