Передача голоса поверх IP — одно из популярных ныне направлений развития телекоммуникаций. Однако не существует подходящих протоколов сеансового уровня, которые соответствовали бы требованиям передачи мультимедийных потоков: TCP слишком медленный для потоковой обработки пакетов, а UDP не добавляет новых функций к базовому протоколу IP. Поэтому создателям приложений IP-телефонии приходится разрабатывать на основе UDP собственные протоколы прикладного уровня для решения определенных задач, которые с успехом решаются на более низком сеансовом уровне. Именно поэтому международная группа IETF приняла в текущем году новый протокол сеансового уровня Stream Control Transmission Protocol (SCTP), предназначенный для организации потокового взаимодействия вместо TCP.
Основой концепции SCTP является передача упорядоченного потока пользовательских сообщений. В одном сеансе связи может быть организовано несколько независимых потоков, но протокол гарантирует сохранение последовательности сообщений внутри каждого из них. Это сделано для отделения голосовых и видеоканалов от управляющих сигнализаций, чтобы блокировка одного из каналов не повлияла на передачу информации по другому. С помощью TCP транспортируется не последовательность сообщений, а единый блок информации. Протокол «заботится» о сохранении последовательности блоков, и если какой-то блок не доставлен, блокируется передача всей информации.
Другой особенностью SCTP является поддержка списка IP-адресов для отправителя и получателя. Обе взаимодействующие стороны идентифицируются не по отдельным IP-адресам, а по спискам адресов. А поскольку в одном сеансе связи могут участвовать несколько разнотипных потоков данных, маршрутизацию пакетов допускается настроить так, чтобы различные типы потоков обрабатывались на разных серверах. Для такой настройки используется уникальная для SCTP служба управления путями (path management).
Собственно, существование набора дополнительных служб и является ключевым отличием SCTP от TCP. Службы нового протокола можно разделить на три группы: прямые аналоги TCP, модификации существующих служб для многопотоковых приложений и принципиально новые. К прямым аналогам относятся фрагментация пользовательских данных (user data fragmentation), проверка пакетов (packet validation), механизмы подтверждения и исключения дублирования.
Многопоточная природа SCTP потребовала изменения процедуры установления сеансов, которая теперь называется службой установления и расторжения ассоциаций (association startup and takedown). Она отличается от аналогичной службы TCP использованием механизма cookie, который позволяет произвести быстрый старт с ранее применявшимися параметрами. Кроме того, предусмотрены различные режимы сеансового соединения, поскольку отправителями и получателями являются многоадресные узлы. Еще одна служба, аналог которой есть в TCP, — это последовательная доставка сообщений внутри потоков.
Абсолютно новыми являются службы управления (они устанавливают маршруты для передачи данных между многоадресными узлами) и сборки больших блоков (chunk bundling). Разработчики стандарта обеспечили механизмы обработки нештатных ситуаций при недоступности одного из IP-адресов узла или при восстановлении связи с ним.
Служба сборки больших блоков применяется для объединения фрагментов данных из разных потоков в один большой пакет. Она может задействоваться для передачи данных в составе множества низкоскоростных потоков. Уменьшение количества IP-пакетов с помощью такой службы позволяет увеличить эффективность использования пропускной способности канала.
Новый протокол RFC2960 принят IETF в качестве стандарта лишь летом нынешнего года, тем не менее его допускается использовать в существующей инфраструктуре IP-сетей. Для работы этого протокола достаточно, чтобы его поддерживали узлы отправителей и получателей, поэтому введение RFC 2960 в эксплуатацию можно проводить постепенно. А пригодится он для организации не только каналов передачи мультимедиа-данных, но и больших порталов, состоящих из нескольких узлов, а также распределенных систем повышенной надежности.