SCTP erfordert mehr Design innerhalb der Anwendung, um es optimal nutzen zu können. Es gibt mehr Optionen als TCP, die Sockets-ähnliche API wurde später eingeführt und ist noch jung. Ich denke jedoch, dass die meisten Leute, die sich die Zeit nehmen, um es zu verstehen (und die die Mängel von TCP kennen), es zu schätzen wissen - es ist ein gut konzipiertes Protokoll, das auf unserem ~ 30-jährigen Wissen über TCP und UDP aufbaut.
Einer der Aspekte, die einige Überlegungen erfordern, sind Streams. Streams bieten (normalerweise können Sie sie deaktivieren) eine Bestellgarantie (ähnlich wie bei einer TCP-Verbindung), es können jedoch mehrere Streams pro SCTP-Verbindung vorhanden sein. Wenn die Daten Ihrer Anwendung über mehrere Streams gesendet werden können, vermeiden Sie Head-of-Line-Blockierungen, bei denen der Empfänger aufgrund eines verlegten Pakets verhungert. Über dieselbe Verbindung können effektiv unterschiedliche Gespräche geführt werden, ohne sich gegenseitig zu beeinflussen.
Eine weitere nützliche Ergänzung ist die Multi-Homing-Unterstützung: Eine Verbindung kann über mehrere Schnittstellen an beiden Enden erfolgen und Fehler bewältigen. Sie können dies in TCP emulieren, jedoch auf Anwendungsebene.
Der richtige Link-Heartbeat, der das erste ist, was jede Anwendung, die TCP für nicht transiente Verbindungen verwendet, implementiert, ist kostenlos.
Meine persönliche Zusammenfassung von SCTP ist, dass es nichts tut, was Sie nicht anders machen könnten (in TCP oder UDP), mit umfassender Anwendungsunterstützung. Das, was es bietet, ist die Fähigkeit, diesen Code nicht (schlecht) selbst implementieren zu müssen.
Zu Ihrer Information, SCTP wird als für Durchmesser unterstützt vorgeschrieben (siehe RADIUS next gen). siehe RFC 3588
Durchmesser-Clients MÜSSEN entweder TCP oder SCTP unterstützen, während Agenten und
Server MÜSSEN beide unterstützen. Zukünftige Versionen dieser Spezifikation können
Mandat, dass Clients SCTP unterstützen.