Structure of Stream Control Transmission Protocol packets
Биты
Биты 0–7
8–15
16–23
24–31
+0
Исходный порт
Порт назначения
32
Тег подтверждения
64
Контрольная сумма
96
Чанк 1 типа
Флаги чанка 1
Длина куска 1
128
Данные блока 1
...
...
...
блока N Тип
блоков N Флаги
Длина N блока
...
блока N Данные
Протокол передачи управления потоком (SCTP) имеет более простую базовую структуру пакетов, чем TCP . Каждый состоит из двух основных разделов:
Общий заголовок , занимающий первые 12 байт. На соседней диаграмме этот заголовок выделен синим цветом.
Фрагменты данных , которые образуют оставшуюся часть пакета. На диаграмме первый фрагмент выделен зеленым цветом, а последний из N фрагментов (Чанк N ) выделен красным. Существует несколько типов, включая данные полезной нагрузки и различные управляющие сообщения.
Каждый пакет SCTP, помимо общего заголовка, состоит из фрагментов .
Каждый фрагмент имеет общий формат, но содержимое может различаться.
Зеленые байты на диаграмме выше обозначают один фрагмент.
Тип чанка
8-битное значение, предварительно определенное IETF для идентификации содержимого поля значения фрагмента.
Флаги чанка
Восемь битов-флагов, определение которых зависит от типа фрагмента. Значение по умолчанию равно нулю.
Длина куска
16-битное беззнаковое значение, определяющее общую длину фрагмента в байтах (исключая любые дополнения), включающее поля типа фрагмента, флагов, длины и значения.
Частичные данные
Поле данных общего назначения, определение которого зависит от типа фрагмента.
Если длина фрагмента не кратна 4 байтам, протокол неявно дополняет фрагмент конечными нулями.
Определение необязательного параметра/параметра переменной длины
+
Биты 0–15
16–31
0
Тип параметра
Длина параметра
32
Значение параметра
Кроме того, каждый тип фрагмента может определять набор параметров, которые он включает в поле значения фрагмента (и, следовательно, их длину в длине фрагмента).
Существует два типа параметров:
фиксированные параметры — они должны появляться и в указанном порядке,
параметры переменной длины или необязательные — они появляются после фиксированных параметров и могут появляться в любом порядке и в любом количестве.
Для необязательных параметров/параметров переменной длины поля типа параметра, длины параметра и значения параметра ведут себя так же, как и их аналоги в фрагменте.
Минимальный размер параметра составляет 4 байта, и это происходит, когда поле значения параметра пусто и параметр состоит только из полей типа и длины.
в настоящее время есть [update] используется только 4 флага
I — порция SACK должна быть отправлена обратно без задержки.
U — Если установлено, это означает, что эти данные представляют собой неупорядоченный фрагмент и порядковый номер потока недействителен. Если неупорядоченный фрагмент фрагментирован, то этот флаг установлен для каждого фрагмента.
B — Если установлено, это отмечает начальный фрагмент. Этот флаг установлен для нефрагментированного фрагмента.
E — Если установлено, это отмечает конечный фрагмент. Этот флаг установлен для нефрагментированного фрагмента.
Длина куска
Длина фрагмента имеет минимальное значение 17, поскольку данные размером менее одного байта не допускаются.
Фиксированные параметры:
Порядковый номер передачи (TSN)
Порядковый номер всего потока ДАННЫХ (используется при фрагментации для повторной сборки).
Идентификатор потока
Идентификатор потока, которому принадлежит этот фрагмент данных.
Порядковый номер потока
Идентификатор порядкового номера сообщения в этом потоке. Если сообщение фрагментировано, это значение сохраняется для всех фрагментов.
Идентификатор протокола полезной нагрузки
Идентификатор протокола, специфичный для приложения. [4] SCTP не использует это или не модифицирует это. Однако устройства на пути или конечные точки могут его использовать. Значение 0 указывает, что протокол полезной нагрузки не указан.
Рекомендуемый прирост срока действия файлов cookie (миллисекунды)
448
Тип параметра = 11
Длина параметра
480
Имя хоста, завершающееся нулем
512
Тип параметра = 12
Длина параметра
544
Тип адреса №1
Тип адреса №2
576
Тип адреса №3
...
608
Тип параметра = 32768
Длина параметра
640
Явное уведомление о перегрузке (зарезервировано)
Тип чанка
всегда 1 для инициализации (INIT).
Флаги чанка
В настоящее время флаги не используются.
Длина куска
Это длина чанка, которая имеет минимальное значение 20, когда значение чанка пусто и не используются дополнительные параметры.
Фиксированные параметры имеют то же значение, что и INIT ACK:
Инициировать тег
32-битное число без знака, которое используется в каждом пакете SCTP в теге проверки в общем заголовке.
Рекламируемый кредит окна получателя (a_rwnd)
Объем выделенного буферного пространства для этой ассоциации, который никогда не следует уменьшать.
# исходящих потоков
Количество исходящих потоков (от отправителя INIT), которые он хочет использовать для этой ассоциации. Ноль — недопустимое значение, и получатель должен ПРЕКРАТИТЬ ассоциацию после получения нуля.
# входящих потоков
Идентичен количеству исходящих потоков, но количеству входящих потоков. По установленному числу переговоры не ведутся, но следует использовать минимум запрашиваемого и предлагаемого.
Начальный ТСН
Используемый начальный порядковый номер передачи может иметь любое значение.
Дополнительные параметры отображаются с чередующимся фоном зеленого и синего цветов:
Тип параметра = 5
В этом параметре перечислены все адреса IPv4 , используемые в отправляющей конечной точке. Если это многосетевое соединение, то можно указать IP-адрес каждого из них.
Тип параметра = 6
В этом параметре перечислены все адреса IPv6 , используемые в конечной точке отправки. Если это многосетевое соединение, то можно указать IP-адрес каждого из них.
Тип параметра = 9
Этот параметр предоставляет рекомендуемый прирост срока действия, который получатель должен добавить к сроку действия файла cookie по умолчанию (в миллисекундах).
Тип параметра = 11
Этот параметр представляет собой имя хоста, определенное в RFC 1123, раздел 2.1. Фактическое разрешение этого имени выходит за рамки SCTP. Кроме того, необходимо включить нулевой завершающий символ, который должен быть включен в длину параметра.
Тип параметра = 12
В этом параметре перечислены типы адресов, которые поддерживает отправитель (например, IPv4 = 5, IPv6 = 6, имя хоста = 11).
Тип параметра = 32768
Этот параметр зарезервирован для поддержки явного уведомления о перегрузке.
Блок INIT ACK копирует блок INIT, за исключением того, что тип фрагмента всегда равен 2.
Обязательные параметры, только в INIT ACK:
Тип параметра = 7 (состояние файла cookie)
Файл cookie состояния содержит минимальную информацию для воссоздания блока управления передачей и подписывается закрытым ключом отправителя. Формат файла cookie не указан.
Это длина фрагмента, которая имеет минимальное значение 16, если не отправляются пробелы или дубликаты.
Фиксированные параметры:
Совокупный TSN ACK
Подтверждает все порядковые номера до этого номера включительно. Чанки с TSN выше этого числа еще не были получены – за исключением тех, которые включены в дополнительные блоки ACK с пробелами (см. ниже).
Рекламируемый кредит окна получателя
Объем выделенного буферного пространства для этой ассоциации, который никогда не следует уменьшать.
Количество блоков ACK с пробелами
Указывает количество блоков ACK с пробелами (т. е. пар начального и конечного TSN), включенных в этот фрагмент.
Количество дубликатов TSN
Указывает количество повторяющихся номеров TSN, зарегистрированных в этом фрагменте.
Дополнительные параметры отображаются с чередующимся фоном зеленого и синего цветов:
Разрыв блока ACK # N старт
Указывает положительное смещение (относительно совокупного значения TSN ACK) первого TSN дополнительного блока подтвержденных TSN.
Разрыв блока ACK # N конец
Указывает положительное смещение (по отношению к совокупному значению TSN ACK) последнего TSN дополнительного блока подтвержденных TSN.
Дубликат ТСН № Х
TSN, полученный более одного раза. TSN будет появляться в этом списке каждый раз, когда он будет получен после первого раза.
Установите, отправил ли отправитель собственный тег проверки (что получатель должен проверить); не устанавливается, если отправитель отправил проверочный тег узла (который в любом случае следует проверить).
Длина куска
Это длина фрагмента, которая имеет минимальное значение 4 без указания причин ошибок.
Необязательные параметры (причины ошибки) определяются в блоке ERROR.
Это длина фрагмента, которая имеет минимальное значение 8, когда отправляется только одна ошибка без значения параметра. Размер составляет 4 байта плюс размер всех причин ошибок.
Фиксированные параметры: Нет.
Дополнительные параметры отображаются с чередующимся фоном зеленого и синего цветов:
Тип параметра = 1
Этот параметр указывает, что отправитель получил неверный идентификатор потока.
Тип параметра = 2
Этот параметр указывает, что отправитель получил фрагмент INIT или INIT ACK с отсутствующими обязательными параметрами.
Тип параметра = 3
Этот параметр указывает на получение действительного файла cookie состояния, но он устарел в течение заданного количества микросекунд.
Тип параметра = 4
Этот параметр указывает, что у отправителя закончились ресурсы; обычно это сопровождает фрагмент ABORT.
Тип параметра = 5
Этот параметр идентифицирует адрес, который отправитель не смог разрешить (возможно, потому, что он не поддерживает тип адреса); обычно это сопровождает фрагмент ABORT.
Тип параметра = 6
Этот параметр идентифицирует нераспознанный фрагмент, если старшие биты типа фрагмента равны 01 или 11.
Тип параметра = 7
Этот параметр указывает, что обязательный параметр в фрагменте INIT или INIT ACK имеет недопустимое значение.
Тип параметра = 8
Этот параметр направляется отправителю фрагмента INIT ACK, содержащего нераспознанный параметр.
Тип параметра = 9
Этот параметр указывает, что фрагмент DATA не содержит пользовательских данных; обычно это сопровождает фрагмент ABORT.
Тип параметра = 10
Этот параметр указывает, что отправитель получил COOKIE ECHO, в то время как конечная точка находилась в состоянии SHUTDOWN-ACK-SENT.
всегда 130 для фрагмента реконфигурации потока (RE-CONFIG).
Флаги чанка
В настоящее время флаги не используются.
Длина куска
Зависит от количества и длины параметров реконфигурации.
Фиксированные параметры:
Параметр переконфигурации 1
Параметр реконфигурации первого потока.
Дополнительные параметры:
Параметр переконфигурации 2
Параметр реконфигурации второго потока.
В этом фрагменте могут присутствовать не более двух параметров реконфигурации из перечисленных ниже. Не все комбинации действительны, подробности см. в RFC 6525.
Этот параметр используется отправителем, чтобы сообщить получателю, что он желает сбросить порядковые номера (или идентификаторы сообщений, если используется I-DATA) для его исходящих потоков.
+
Биты 0–15
16–31
0
Тип параметра = 13
Длина параметра
32
Порядковый номер запроса на реконфигурацию
64
Порядковый номер ответа на реконфигурацию
96
Отправителям последний раз присвоен TSN
128
Поток номер 1
Поток номер 2
...
...
96 + 16 Н
Номер потока N − 1
Номер потока N
Тип параметра
всегда 13 для параметра исходящего запроса на сброс SSN.
Длина параметра
2 Н. 16 +
Фиксированные параметры:
Порядковый номер запроса на реконфигурацию
Порядковый номер этого запроса на реконфигурацию.
Порядковый номер ответа на реконфигурацию
Порядковый номер последнего полученного запроса на реконфигурацию.
Последний присвоенный отправителю TSN
Последний TSN, назначенный отправителем (строго говоря: на один меньше, чем следующий TSN, который будет присвоен).
Дополнительные параметры:
1..N Поток номер
Номера потоков, для которых необходимо сбросить SSN или MID. Если ничего не указано, все номера SSN/MID будут сброшены.
Этот параметр используется отправителем, чтобы запросить у получателя сброс порядковых номеров (или идентификаторов сообщений, если используется I-DATA) для исходящих потоков.
+
Биты 0–15
16–31
0
Тип параметра = 14
Длина параметра
32
Порядковый номер запроса на реконфигурацию
64
Поток номер 1
Поток номер 2
...
...
32 + 16 Н
Номер потока N − 1
Номер потока N
Тип параметра
всегда 14 для параметра входящего запроса на сброс SSN.
Длина параметра
8+ 2Н .
Фиксированные параметры:
Порядковый номер запроса на реконфигурацию
Порядковый номер этого запроса на реконфигурацию.
Дополнительные параметры:
1..N Поток номер
Номера потоков, для которых необходимо сбросить SSN или MID. Если ничего не указано, все номера SSN/MID будут сброшены.
Этот параметр используется в качестве ответа на запрос реконфигурации, за исключением, возможно, входящего запроса на сброс SSN, который вызывает параметр запроса на исходящий сброс SSN, если он предоставлен.
+
Биты 0–15
16–31
0
Тип параметра = 16
Длина параметра
32
Порядковый номер ответа на реконфигурацию
64
Результат
96
Следующий TSN отправителя
128
Следующий TSN получателя
Тип параметра
всегда 16 для параметра ответа на реконфигурацию
Длина параметра
12 или 20
Фиксированные параметры:
Порядковый номер ответа на реконфигурацию
Порядковый номер соответствующего запроса на реконфигурацию.
Результат
Код результата
Результат код
Описание
Результат код
Описание
0
Успех – нечего делать
4
Ошибка – запрос уже выполняется.
1
Успех – Выполнено
5
Ошибка – неправильный порядковый номер.
2
Отклонен
6
В ходе выполнения
3
Ошибка – неправильный SSN
Необязательные параметры: (должны присутствовать оба или ни один)
Следующий TSN отправителя
Следующий TSN, который будет использовать отправитель ответа. Только в ответ на запрос сброса SSN/TSN.
Следующий TSN получателя
Следующий TSN, который должен использовать получатель ответа. Только в ответ на запрос сброса SSN/TSN.
Блок I-DATA был введен, чтобы избежать блокировки передачи большого сообщения в одном потоке сообщений во всех других потоках: SCTP в первую очередь использует TSN для достижения надежности. В некоторых случаях TSN также необходим для различения разных фрагментов ДАННЫХ. [8]
Когда сообщение фрагментировано, DATA TSN дополнительно удваивается как порядковый номер фрагмента. Это означает, что все фрагменты сообщения должны отправляться с использованием последовательных номеров TSN, эффективно блокируя все остальные данные. Блок I-DATA распутывает различные варианты использования TSN в блоках DATA.
Поскольку фрагменты DATA и I-DATA несовместимы, их нельзя использовать в одной ассоциации.
+
Биты 0–7
8–11
12
13
14
15
16–31
0
Тип чанка = 64
Сдержанный
я
В
Б
И
Длина куска
32
ТСН
64
Идентификатор потока
Сдержанный
96
Идентификатор сообщения
128
Идентификатор протокола полезной нагрузки/порядковый номер фрагмента
160
Данные
Тип чанка
всегда 64 для полезных данных, поддерживающих чередование (I-DATA).
Флаги чанка
в настоящее время есть [update] используется только 4 флага
I — порция SACK должна быть отправлена обратно без задержки.
U — Если установлено, это означает, что эти данные представляют собой неупорядоченный фрагмент. Если неупорядоченный фрагмент фрагментирован, то этот флаг установлен для каждого фрагмента.
B — Если установлено, это отмечает начальный фрагмент. Этот флаг установлен для нефрагментированного фрагмента.
E — Если установлено, это отмечает конечный фрагмент. Этот флаг установлен для нефрагментированного фрагмента.
Длина куска
Длина фрагмента имеет минимальное значение 21, поскольку данные размером менее одного байта не допускаются.
Фиксированные параметры:
Порядковый номер передачи (TSN)
Порядковый номер всего потока ДАННЫХ (используется для подтверждения и повторной передачи).
Идентификатор потока
Идентификатор потока, которому принадлежит этот фрагмент данных.
Идентификатор сообщения (MID)
Идентификатор сообщения в этом потоке. Если сообщение фрагментировано, то для всех фрагментов используется одно и то же значение. Для упорядоченных сообщений MID также определяет порядок, в котором сообщения должны быть доставлены на верхний уровень. Упорядоченные и неупорядоченные сообщения в одном потоке используют независимые последовательности MID.
Идентификатор протокола полезной нагрузки
Идентификатор протокола, специфичный для приложения, [4] присутствует только в том случае, если установлен флаг B. SCTP не использует это или не модифицирует это. Однако устройства на пути или конечные точки могут его использовать. Значение 0 указывает, что протокол полезной нагрузки не указан.
Порядковый номер фрагмента
Номер фрагмента для фрагментированных пакетов. Присутствует только в том случае, если флаг B не установлен. Если флаг B установлен, то порядковый номер фрагмента неявно равен нулю, а вместо этого идентификатор протокола полезной нагрузки занимает то же пространство.
Блок FORWARD-TSN был введен для поддержки выборочной ненадежности: он позволяет отправителю сообщить получателю, что он не будет повторно передавать некоторое количество фрагментов, и запрашивает, чтобы получатель считал все эти фрагменты полученными.
+
Биты 0–7
8–15
16–31
0
Тип чанка = 192
Флаги чанка
Длина куска
32
Новый накопительный ТСН
64
Идентификатор потока 1
Порядковый номер потока 1
...
...
...
32 + Н × 32
Идентификатор потока N
Порядковый номер потока N
Тип чанка
всегда 192 для прямого фрагмента TSN (FORWARD-TSN).
Флаги чанка
В настоящее время флаги не используются.
Длина куска
Зависит от количества включенных порядковых номеров новых потоков.
Фиксированные параметры:
Новый совокупный порядковый номер передачи (TSN)
Следующий TSN, который должен ожидать получатель. Любые предыдущие TSN следует считать полученными.
Дополнительные параметры:
Идентификатор потока 1.. N
Идентификаторы потоков, которые были пропущены этим куском.
Последовательность потоков 1.. N
Новые порядковые номера потоков, связанные с пропущенными потоками.
^ Кастаньоли, Г.; С. Брауэр; М. Херрманн (июнь 1993 г.). «Оптимизация циклических кодов проверки избыточностью с 24 и 32 битами четности». Транзакции IEEE в области коммуникаций . 41 (6): 883. дои : 10.1109/26.231911 . . Кастаньоли и др. работа над алгоритмическим выбором полиномов CRC
^ Хотя в RFC 4895 упоминается заполнение, строго говоря, заполнение не является частью чанка AUTH: оно не включено в длину чанка, и его наличие уже обеспечивается самим протоколом SCTP, предписанным RFC 4960 (раздел 3.2) .
^ RFC 4821 - Обнаружение MTU пути уровня пакетирования
^ Порядок двух упорядоченных фрагментов может зависеть от комбинации TSN и SSN, а два в остальном идентичных неупорядоченных фрагмента можно отличить только по их TSN.
Arc.Ask3.Ru Номер скриншота №: fcee8a8c369b76dd8dae01ebf68eb793__1697008200 URL1:https://arc.ask3.ru/arc/aa/fc/93/fcee8a8c369b76dd8dae01ebf68eb793.html Заголовок, (Title) документа по адресу, URL1: SCTP packet structure - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)