Jump to content

Протокол передачи управления потоком

Протокол передачи управления потоком
Стек протоколов
Аббревиатура SCTP
Введение 2000
Уровень OSI Транспортный уровень (4)
RFC(ы) RFC   9260

Протокол передачи управления потоком ( SCTP ) — это компьютерной сети протокол связи на транспортном уровне Интернета набора протоколов . Первоначально предназначенный для транспортировки сообщений Системы сигнализации 7 (SS7) в телекоммуникациях, протокол обеспечивает ориентированную на сообщения функцию Протокола пользовательских дейтаграмм (UDP), обеспечивая при этом надежную, последовательную транспортировку сообщений с контролем перегрузки , например, Протокол управления передачей ( ПТС). В отличие от UDP и TCP, протокол поддерживает множественную адресацию и резервные пути для повышения отказоустойчивости и надежности.

SCTP стандартизирован Инженерной группой Интернета (IETF) в РФК   9260 . Эталонная реализация SCTP была выпущена как часть FreeBSD версии 7 и с тех пор широко портирована на другие платформы.

Формальный надзор [ править ]

Рабочая группа IETF . Signaling Transport ( SIGTRAN ) определила протокол (номер 132) [1] ) в октябре 2000 года, [2] и его поддерживает рабочая группа IETF Transport Area (TSVWG). RFC   9260 определяет протокол. RFC   3286 содержит введение.

Многопоточная передача сообщений на основе сообщений [ править ]

Приложения SCTP передают данные для передачи в сообщениях (группах байтов) на транспортный уровень SCTP. SCTP помещает сообщения и управляющую информацию в отдельные фрагменты (блоки данных и фрагменты управления), каждый из которых идентифицируется заголовком фрагмента . Протокол может фрагментировать сообщение на несколько фрагментов данных, но каждый фрагмент данных содержит данные только из одного пользовательского сообщения. SCTP объединяет фрагменты в пакеты SCTP. Пакет SCTP, передаваемый в Интернет-протокол , состоит из заголовка пакета, блоков управления SCTP (при необходимости), за которыми следуют фрагменты данных SCTP (если они доступны).

SCTP можно охарактеризовать как ориентированный на сообщения, то есть он передает последовательность сообщений (каждое из которых представляет собой группу байтов), а не непрерывный поток байтов, как в TCP. Как и в UDP, в SCTP отправитель отправляет сообщение за одну операцию, и это точное сообщение передается принимающему процессу приложения за одну операцию. Напротив, TCP — это потоково-ориентированный протокол, который передает потоки байтов надежно и упорядоченно . Однако TCP не позволяет получателю узнать, сколько раз приложение-отправитель вызывало транспорт TCP, передавая ему группы байтов для отправки. У отправителя TCP просто добавляет дополнительные байты в очередь байтов, ожидающих отправки по сети, вместо того, чтобы хранить очередь отдельных исходящих сообщений, которые должны сохраняться как таковые.

Термин «мультипотоковая передача» относится к способности SCTP передавать несколько независимых потоков фрагментов параллельно, например, передавая изображения веб-страницы одновременно с текстом веб-страницы. По сути, он предполагает объединение нескольких соединений в одну ассоциацию SCTP, работающую с сообщениями (или фрагментами), а не с байтами.

TCP сохраняет порядок байтов в потоке, включая порядковый номер байта в каждый сегмент . SCTP, с другой стороны, назначает порядковый номер или идентификатор сообщения. [примечание 1] к каждому сообщению, отправленному в потоке. Это позволяет независимо упорядочивать сообщения в разных потоках. Однако порядок сообщений в SCTP не является обязательным; принимающее приложение может обрабатывать сообщения в порядке получения, а не в порядке отправки.

Особенности [ править ]

Возможности SCTP включают в себя:

  • Надежная передача как упорядоченных, так и неупорядоченных потоков данных.
  • Поддержка множественной адресации, при которой одна или обе конечные точки соединения могут состоять из более чем одного IP-адреса, что обеспечивает прозрачное переключение между резервными сетевыми путями.
  • Доставка фрагментов в независимых потоках исключает ненужную блокировку начала строки , в отличие от доставки байтового потока TCP.
  • Явная частичная надежность
  • Выбор и мониторинг пути для выбора основного пути передачи данных и проверки возможности подключения пути передачи.
  • Механизмы проверки и подтверждения защищают от атак лавинной рассылки и обеспечивают уведомление о дублированных или отсутствующих фрагментах данных.
  • Улучшенное обнаружение ошибок, подходящее для больших кадров Ethernet.

Разработчики SCTP изначально предназначали его для передачи телефонии (т. е. системы сигнализации 7) по Интернет-протоколу с целью дублирования некоторых атрибутов надежности сигнальной сети SS7 в IP. Эта инициатива IETF известна как SIGTRAN . Тем временем были предложены и другие варианты использования, например Diameter . протокол [3] и надежное объединение серверов (RSerPool). [4]

и принятие Мотивация

TCP предоставил основное средство для надежной передачи данных через Интернет. Однако TCP наложил ограничения на несколько приложений. От RFC   4960 :

  • TCP обеспечивает как надежную передачу данных, так и строгий порядок передачи данных. Некоторым приложениям требуется надежная передача без поддержания последовательности, в то время как другим достаточно частичного упорядочения данных. В обоих этих случаях свойство блокировки начала строки TCP вызывает ненужную задержку.
  • Для приложений, обменивающихся отдельными записями или сообщениями, потоковая природа TCP требует добавления явных маркеров или другого кодирования для разграничения отдельных записей.
  • Чтобы избежать отправки множества небольших IP-пакетов там, где было бы достаточно одного более крупного пакета, реализация TCP может задерживать передачу данных, ожидая, пока приложение, возможно, поставит в очередь больше данных ( алгоритм Нэгла ). Если такая небольшая задержка нежелательна, приложение должно явно запрашивать передачу без задержки в каждом конкретном случае, используя функцию push (т. е. путем установки флага PSH в заголовке пакета TCP). SCTP, с другой стороны, позволяет настроить передачу без задержки по умолчанию для ассоциации, устраняя любые нежелательные задержки, но за счет более высоких накладных расходов на передачу. [5]
  • Ограниченная сфера применения [ нечеткий ] Количество TCP-сокетов усложняет задачу обеспечения возможности высокодоступной передачи данных с использованием многосетевых хостов.
  • TCP относительно уязвим для атак типа «отказ в обслуживании», таких как SYN-атаки .

Внедрение замедляется из-за недостаточной осведомленности, отсутствия реализации (особенно в Microsoft Windows), отсутствия поддержки приложений и поддержки сети. [6]

SCTP получил распространение в сфере мобильной телефонии в качестве транспортного протокола для нескольких основных сетевых интерфейсов . [7]

Многоадресность [ править ]

Многоадресная адресация SCTP
Асимметричная множественная адресация: локальная множественная адресация к удаленной одиночной адресации.
Асимметричная множественная адресация: локальная одиночная адресация к удаленной множественной адресации

SCTP предоставляет резервные пути для повышения надежности.

Каждая конечная точка SCTP должна проверять доступность основного и резервного адресов удаленной конечной точки с помощью контрольного сигнала . Каждая конечная точка SCTP должна подтверждать контрольные сигналы, которые она получает от удаленной конечной точки.

Когда SCTP отправляет сообщение на удаленный адрес, исходный интерфейс будет определяться только таблицей маршрутизации хоста (а не SCTP).

При асимметричной множественной адресации одна из двух конечных точек не поддерживает множественную адресацию.

При локальной множественной адресации и удаленной одинарной адресации, если удаленный основной адрес недоступен, ассоциация SCTP завершается неудачей, даже если альтернативный путь возможен.

Структура пакета [ править ]

Пакет SCTP состоит из двух основных разделов:

  1. Общий заголовок , занимающий первые 12 байт и выделенный синим цветом.
  2. Фрагменты данных , занимающие оставшуюся часть пакета. Первый фрагмент выделен зеленым цветом, а последний из N фрагментов (Чанк N) выделен красным.
Биты 0–7 8–15 16–23 24–31
+0 Исходный порт Порт назначения
32 Тег подтверждения
64 Контрольная сумма
96 Чанк 1 типа Флаги чанка 1 Длина куска 1
128 Данные блока 1
блока N Тип блоков N Флаги Длина N блока
блока N Данные

Каждый фрагмент начинается с однобайтового идентификатора типа, при этом 15 типов фрагментов определяются RFC   9260 и еще как минимум 5, определенных дополнительными RFC. [примечание 2] Восемь битов флага, двухбайтовое поле длины и данные составляют оставшуюся часть фрагмента. Если фрагмент не кратен 4 байтам (т. е. длина не кратна 4), то он дополняется нулями, которые не включаются в длину фрагмента. Поле длины в два байта ограничивает длину каждого фрагмента до 65 535 байт (включая поля типа, флагов и длины).

Безопасность [ править ]

Хотя шифрование не было частью исходной конструкции SCTP, SCTP был разработан с функциями для повышения безопасности, такими как 4-стороннее рукопожатие (по сравнению с 3-сторонним рукопожатием TCP ) для защиты от атак SYN-флудинга и большие файлы cookie для проверки ассоциации. и подлинность.

Надежность также была ключевой частью системы безопасности SCTP. Многодомность позволяет ассоциации оставаться открытой, даже если некоторые маршруты и интерфейсы не работают. Это имеет особое значение для SIGTRAN , поскольку он передает SS7 по IP-сети с использованием SCTP и требует высокой устойчивости во время сбоев канала для поддержания телекоммуникационных услуг даже при постоянных сетевых аномалиях.

SCTP иногда является хорошим кандидатом для снятия отпечатков пальцев . Некоторые операционные системы поставляются с включенной поддержкой SCTP, и, поскольку он не так известен, как TCP или UDP, его иногда игнорируют в конфигурациях межсетевого экрана и обнаружения вторжений, что часто позволяет проверять трафик.

Реализации [ править ]

Эталонная реализация SCTP работает на FreeBSD, Mac OS X, Microsoft Windows и Linux. [8]

Следующие операционные системы реализуют SCTP:

Сторонние драйверы:

  • Microsoft Windows :
    • Драйвер ядра SctpDrv — это порт стека BSD SCTP для Windows (заброшен после 2012 года). [17]
  • МакОС :
    • Расширение сетевого ядра SCTP для Mac OS X [18]

пользовательского пространства Библиотека :

Следующие приложения реализуют SCTP:

Туннелирование через UDP [ править ]

При отсутствии встроенной поддержки SCTP в операционных системах можно туннелировать SCTP через UDP. [22] а также сопоставлять вызовы TCP API с вызовами SCTP, чтобы существующие приложения могли использовать SCTP без изменений. [23]

RFC [ править ]

См. также [ править ]

Примечания [ править ]

  1. ^ Чанк DATA использует порядковый номер для упорядоченных сообщений, чанк I-DATA , который решает некоторые проблемы с исходным чаном DATA, использует идентификатор сообщения для всех сообщений.
  2. ^ см . в структуре пакета SCTP . Более подробную информацию

Ссылки [ править ]

  1. ^ «Номера протоколов» . iana.org . ИАНА . Проверено 9 сентября 2014 г.
  2. ^ Протокол передачи управления потоком . IETF . Октябрь 2000 г. doi : 10.17487/RFC2960 . РФК 2960 .
  3. ^ «Транспорт» . Базовый протокол диаметра . IETF . сек. 2.1. дои : 10.17487/RFC3588 . РФК 3588 . Проверено 18 мая 2012 г.
  4. ^ «Пример сценария использования служб сеансов RSerPool» . Обзор надежных протоколов объединения серверов . IETF . п. 10. сек. 4.2. дои : 10.17487/RFC5351 . РФК 5351 .
  5. ^ RFC 9260, раздел 1.5.5.
  6. ^ Хогг, Скотт. «А как насчет протокола передачи управления потоком (SCTP)?» . Сетевой мир . Архивировано из оригинала 30 августа 2014 года . Проверено 4 октября 2017 г.
  7. ^ Олссон, Магнус; Маллиган, Кэтрин; Султана, Шабнам; Роммер, Стефан; Фрид, Ларс (2013). Пакетные сети EPC и 4G: движущая сила революции мобильного широкополосного доступа (2-е изд.). Амстердам Бостон: Elsevier/AP, Academic Press является отпечатком Elsevier. п. 491. ИСБН  978-0-12-394595-2 .
  8. ^ «Справочная реализация SCTP — RFC4960» . Гитхаб . Проверено 14 октября 2013 г. Это эталонная реализация SCTP. Он портативен и работает на FreeBSD/MAC-OS/Windows и в пользовательском пространстве (включая Linux).
  9. ^ "sys/netinet/sctp.h" . Перекрестная ссылка BSD . НетБСД . 27 июня 2017 г. Проверено 21 января 2019 г.
  10. ^ "man4/scctp.4" . Перекрестная ссылка BSD . НетБСД . 31 июля 2018 г. Проверено 21 января 2019 г.
  11. ^ «DragonFly удаляет SCTP» . Lists.dragonflybsd.org . Проверено 28 апреля 2016 г.
  12. ^ «О технологических достижениях FreeBSD» . Проект FreeBSD. 09.03.2008 . Проверено 13 сентября 2008 г. SCTP: FreeBSD 7.0 является эталонной реализацией нового протокола IETF Stream Control Transmission Protocol (SCTP), предназначенного для поддержки VoIP, телекоммуникаций и других приложений с высокой надежностью и переменным качеством передачи с помощью таких функций, как многопутевая доставка, аварийное переключение. и многопотоковая передача.
  13. ^ «Протокол передачи управления потоком (SCTP)» . Девелоперская компания Хьюлетт-Паккард. Архивировано из оригинала 3 января 2013 г.
  14. ^ «Сеть TCP/IP» . Поддержка разработчиков QNX . Программные системы QNX . Проверено 13 сентября 2008 г. «Что нового в этом справочнике» . Справочник по библиотеке QNX . Программные системы QNX . Проверено 18 декабря 2012 г.
  15. ^ «Платформа разработки программного обеспечения QNX 6.4.0» .
  16. ^ «Сеть операционной системы Solaris 10 — высочайшая производительность сети» . Сан Микросистемс . Проверено 13 сентября 2008 г.
  17. ^ «SctpDrv: драйвер SCTP для Microsoft Windows» . Архивировано из оригинала 08.10.2017 . Проверено 4 января 2022 г.
  18. ^ «Расширение сетевого ядра SCTP для Mac OS X» . Гитхаб . 23 сентября 2021 г.
  19. ^ "sctplab/usrsctp" . Гитхаб . Проверено 21 сентября 2021 г.
  20. ^ «Страница загрузки SCTP» . 29 мая 2006 г. Проверено 4 февраля 2011 г.
  21. ^ «Установщик библиотеки Windows SCTP» . Проверено 4 февраля 2011 г.
  22. ^ Туксен, Майкл; Стюарт, Рэндалл Р. (май 2013 г.). UDP-инкапсуляция пакетов протокола передачи управления потоком (SCTP) для связи между конечными хостами . IETF . дои : 10.17487/RFC6951 . РФК 6951 .
  23. ^ Бикхарт, Райан; Пол Д. Амер; Рэндалл Р. Стюарт (2007). «Прозрачный слой трансляции TCP-SCTP» (PDF) . Проверено 13 сентября 2008 г.
  24. ^ Д. Винг; А. Юрченко (апрель 2012 г.). «Счастливые глаза: успех с хостами с двумя стеками» . www.tools.ietf.org . IETF .
  25. ^ Хадеми, Наим; Брунстрем, Анна; Хуртиг, Пер; Гриннемо, Карл-Йохан (21 июля 2016 г.). «Счастливые глаза при выборе транспорта» . www.tools.ietf.org . IETF . Проверено 9 января 2017 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ded0e5759e2faf709594ad4d93b6f6e2__1714150980
URL1:https://arc.ask3.ru/arc/aa/de/e2/ded0e5759e2faf709594ad4d93b6f6e2.html
Заголовок, (Title) документа по адресу, URL1:
Stream Control Transmission Protocol - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)