SCTP вимагає більшого дизайну в програмі, щоб найкраще використовувати його. Варіантів більше, ніж у TCP, API-подібний Sockets з'явився пізніше, і він молодий. Однак я думаю, що більшість людей, які потребують часу, щоб зрозуміти це (і які знають недоліки TCP) цінують це - це добре розроблений протокол, який базується на наших 30-річних знаннях TCP та UDP.
Один із аспектів, який потребує певної думки, - це потоки. Потоки надають (як правило, я думаю, ви можете вимкнути його) гарантію замовлення всередині них (приблизно як з'єднання TCP), але може бути декілька потоків на з'єднання SCTP. Якщо дані вашої програми можуть надсилатися через декілька потоків, то ви уникаєте прямого блокування, де приймач голодує через один неправильно введений пакет. Ефективно різні розмови можна проводити через один і той же зв’язок, не впливаючи один на одного.
Ще одним корисним доповненням є підтримка мультиварки - одне з'єднання може бути через декілька інтерфейсів на обох кінцях, і воно справляється з відмовами. Емулювати це можна в TCP, але на рівні програми.
Належне серцебиття, яке перше, що будь-яке додаток, що використовує TCP для непрохідних з’єднань, існує безкоштовно.
Моє особисте резюме SCTP полягає в тому, що він не робить нічого, чого не вдалося б зробити іншим способом (в TCP або UDP) за допомогою суттєвої підтримки додатків. Що вона надає - це можливість не потрібно самостійно реалізовувати цей код.
FYI, SCTP призначений для підтримки діаметра (див. RADIUS наступного покоління). див. RFC 3588
Клієнти діаметру ОБОВ'ЯЗКОВО підтримують TCP або SCTP, а агенти та
Сервери ОБОВ'ЯЗКОВО підтримують обоє. Майбутні версії цієї специфікації МОЖУТЬ
мандат клієнтів підтримувати SCTP.