Протоколы TCP против SCTP
И TCP (протокол управления передачей), и SCTP (протокол управления передачей данных) находятся на транспортном уровне и обеспечивают транспортные функции в основном в интернет-приложениях. TCP обеспечивает надежную передачу данных со строгим порядком доставки пакетов, но некоторым приложениям требуется надежная передача, но не 100% последовательность доставки пакетов. В этих случаях TCP может вызвать ненужную задержку во втором варианте, когда важна надежность, но не 100% последовательная доставка.
При транспортировке пакетов существует два основных ограничения: одно - надежность, другое - время ожидания. Надежность гарантируется доставкой пакета, а задержка - своевременной доставкой пакета. Оба не могут быть достигнуты пика одновременно, но могут быть оптимизированы.
SCTP разработан в основном для передачи сигналов PSTN по IP-сетям. (СИГТРАН). Но в наши дни другие приложения также считают, что SCTP хорошо соответствует их требованиям.
TCP:
Определено в RFC 793
TCP - это сквозной надежный протокол, ориентированный на соединение, обеспечивающий гарантированную передачу данных. TCP гарантирует надежность от самого установления соединения. Некоторые из основных функций TCP: трехстороннее подтверждение (SYN, SYN-ACK, ACK), обнаружение ошибок, медленный запуск, управление потоком, управление перегрузкой.
TCP - надежный транспортный механизм, поэтому он будет использоваться там, где доставка пакетов необходима даже в условиях перегрузки. Типичный пример для приложений TCP и номеров портов: данные FTP (20), управление FTP (21), SSH (222), Telnet (23), почта (25), DNS (53), HTTP (80), POP3 (110)., SNMP (161) и HTTPS (443). Это хорошо известные приложения TCP.
SCTP:
Определено в RFC4960
SCTP (Stream Control Transmission Protocol) - это транспортный протокол IP, например TCP и UDP. SCTP - это протокол одноадресной рассылки, который поддерживает сквозную доставку данных ровно через две конечные точки. Но конечные точки могут иметь более одного IP-адреса.
SCTP - это полнодуплексный протокол передачи с такими функциями, как повторная передача, управление потоком и поддержание последовательности.
Помимо TCP, SCTP имеет больше функций, некоторые из которых перечислены ниже.
Функция многопотоковой передачи SCTP
SCTP позволяет разделять данные на несколько потоков, и каждый поток имеет свою собственную последовательность доставки. Рассмотрим случай телефонной сигнализации: необходимо поддерживать последовательность пакетов, которая влияет на один и тот же сеанс или ресурс. (Пример: тот же вызов или та же внешняя линия). Таким образом, отслеживания последовательности на основе потоков достаточно, и это приведет к большей производительности, чем одна полная потоковая передача.
SCTP множественная адресация
Эта функция позволяет одной конечной точке SCTP иметь несколько IP-адресов. Основная причина этого состоит в том, чтобы поддерживать доступность конечной точки через несколько избыточных маршрутов маршрутизации.
Выбор пути
Счетчик поддерживается для отслеживания неуспешных подтверждений передачи конкретному адресату. Определен порог, и если он превышает адрес назначения, он объявляется неактивным, и SCTP начинает отправлять на альтернативный адрес.
Резюме:
(1) TCP и SCTP поддерживают надежные транспортные службы.
(2) TCP поддерживает единый поток доставки данных, тогда как SCTP поддерживает множественные потоки доставки данных.
(3) TCP поддерживает одну конечную точку TCP, чтобы иметь один IP-адрес, тогда как, поскольку SCTP поддерживает, одна конечная точка SCTP может иметь несколько IP-адресов в основном для целей избыточности.
(4) Скорее TCP, SCTP более безопасен.
(5) Процессы инициации и завершения SCTP отличаются от TCP.