Jump to content

Структура пакета SCTP

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

Протокол передачи управления потоком (SCTP) имеет более простую базовую структуру пакетов, чем TCP . Каждый состоит из двух основных разделов:

  1. Общий заголовок , занимающий первые 12 байт. На соседней диаграмме этот заголовок выделен синим цветом.
  2. Фрагменты данных , которые образуют оставшуюся часть пакета. На диаграмме первый фрагмент выделен зеленым цветом, а последний из N фрагментов (Чанк N ) выделен красным. Существует несколько типов, включая данные полезной нагрузки и различные управляющие сообщения.

Общий заголовок

[ редактировать ]

Для всех пакетов SCTP требуется общий раздел заголовка (показан синим фоном).

Исходный порт
Это поле идентифицирует порт отправки.
Порт назначения
В этом поле указывается принимающий порт, который хосты используют для маршрутизации пакета к соответствующей конечной точке/приложению.
Тег подтверждения
32- битное случайное значение, создаваемое во время инициализации, чтобы отличать устаревшие пакеты от предыдущего соединения.
Контрольная сумма
Первоначальный проект SCTP рассчитан на Адлер-32 ; но RFC 3309 изменил протокол, чтобы использовать алгоритм CRC32c . [1] [2]

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

Тип чанка
8-битное значение, предварительно определенное IETF для идентификации содержимого поля значения фрагмента.
Флаги чанка
Восемь битов-флагов, определение которых зависит от типа фрагмента. Значение по умолчанию равно нулю.
Длина куска
16-битное беззнаковое значение, определяющее общую длину фрагмента в байтах (исключая любые дополнения), включающее поля типа фрагмента, флагов, длины и значения.
Частичные данные
Поле данных общего назначения, определение которого зависит от типа фрагмента.

Если длина фрагмента не кратна 4 байтам, протокол неявно дополняет фрагмент конечными нулями.

Определение необязательного параметра/параметра переменной длины
+ Биты 0–15 16–31
0 Тип параметра Длина параметра
32 Значение параметра

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

Существует два типа параметров:

  • фиксированные параметры — они должны появляться и в указанном порядке,
  • параметры переменной длины или необязательные — они появляются после фиксированных параметров и могут появляться в любом порядке и в любом количестве.

Для необязательных параметров/параметров переменной длины поля типа параметра, длины параметра и значения параметра ведут себя так же, как и их аналоги в фрагменте. Минимальный размер параметра составляет 4 байта, и это происходит, когда поле значения параметра пусто и параметр состоит только из полей типа и длины.

Список типов чанков

[ редактировать ]

RFC 2960 определяет следующий список типов фрагментов. Более подробная информация о каждом типе представлена ​​в следующих подразделах.

Следуя этой таблице, определяются каждый чанк и его параметры. Обратите внимание на следующую цветовую схему:

  • серый: поля фрагментов,
  • красный: фиксированные параметры,
  • зеленый/синий: необязательные параметры/параметры переменной длины, которые чередуют цвета.
Ценить Аббревиатура Описание
0 ДАННЫЕ Данные полезной нагрузки
1 ГОРЯЧИЙ Инициация
2 ИНИЦИАТИВНОЕ ПОДТВЕРЖДЕНИЕ Подтверждение инициации
3 МЕШОК Выборочное признание
4 СЕРДЦЕБЕНИЕ Запрос пульса
5 ПОДТВЕРЖДЕНИЕ СЕРДЕЧНОГО БИЕНИЯ Подтверждение сердцебиения
6 ПРЕРВАТЬ Прервать
7 НЕИСПРАВНОСТЬ Неисправность
8 ПОДТВЕРЖДЕНИЕ ВЫКЛЮЧЕНИЯ Подтверждение отключения
9 ОШИБКА Ошибка операции
10 ЭХО ПЕЧЕНЬЯ Государственный файл cookie
11 ПОДТВЕРЖДЕНИЕ КУКИ Подтверждение использования файлов cookie
12 ЭКНЕ Явное эхо-уведомление о перегрузке (зарезервировано)
13 КВР Окно перегрузки уменьшено (зарезервировано)
14 ВЫКЛЮЧЕНИЕ ЗАВЕРШЕНО Выключение завершено
15 АУТ Блок аутентификации
16–62 Н/Д Зарезервировано IETF
63 Расширения фрагментов, определенные IETF
64 Я-ДАННЫЕ Полезные данные, поддерживающие чередование пакетов
65–126 Н/Д Зарезервировано IETF
127 Расширения фрагментов, определенные IETF
128 АСКОНФ-АКТ Подтверждение изменения конфигурации адреса
129 Н/Д Неназначенный [3]
130 ПЕРЕКОНФИГУРАЦИЯ Реконфигурация потока
131 Н/Д Неназначенный [3]
132 ПАД Заполнение пакетов
133–190 Н/Д Зарезервировано IETF
191 Расширения фрагментов, определенные IETF
192 ФОРВАРД-ТСН Ожидаемый прирост TSN
193 АСКОНФ Изменение конфигурации адреса
194 Я-ФОРВАРД-ТСН Увеличение ожидаемого TSN с поддержкой чередования пакетов.
195–254 Н/Д Зарезервировано IETF
255 Расширения фрагментов, определенные IETF

Блок данных

[ редактировать ]
+ Биты 0–7 8–11 12 13 14 15 16–31
0 Тип чанка = 0 Сдержанный я В Б И Длина куска
32 ТСН
64 Идентификатор потока Порядковый номер потока
96 Идентификатор протокола полезной нагрузки
128
Данные

Тип чанка
всегда 0 для данных полезной нагрузки (DATA)
Флаги чанка
в настоящее время есть используется только 4 флага
  • I — порция SACK должна быть отправлена ​​обратно без задержки.
  • U — Если установлено, это означает, что эти данные представляют собой неупорядоченный фрагмент и порядковый номер потока недействителен. Если неупорядоченный фрагмент фрагментирован, то этот флаг установлен для каждого фрагмента.
  • B — Если установлено, это отмечает начальный фрагмент. Этот флаг установлен для нефрагментированного фрагмента.
  • E — Если установлено, это отмечает конечный фрагмент. Этот флаг установлен для нефрагментированного фрагмента.
Длина куска
Длина фрагмента имеет минимальное значение 17, поскольку данные размером менее одного байта не допускаются.
Фиксированные параметры:
Порядковый номер передачи (TSN)
Порядковый номер всего потока ДАННЫХ (используется при фрагментации для повторной сборки).
Идентификатор потока
Идентификатор потока, которому принадлежит этот фрагмент данных.
Порядковый номер потока
Идентификатор порядкового номера сообщения в этом потоке. Если сообщение фрагментировано, это значение сохраняется для всех фрагментов.
Идентификатор протокола полезной нагрузки
Идентификатор протокола, специфичный для приложения. [4] SCTP не использует это или не модифицирует это. Однако устройства на пути или конечные точки могут его использовать. Значение 0 указывает, что протокол полезной нагрузки не указан.
Данные
Данные для конкретного приложения.
Необязательные параметры: нет.

ИНИЦИТНЫЙ фрагмент

[ редактировать ]
+ Биты 0–7 8–15 16–31
0 Тип чанка = 1 Флаги чанка Длина куска
32 Инициировать тег
64 Рекламируемый кредит окна получателя
96 # исходящих потоков # входящих потоков
128 Начальный ТСН
160 Тип параметра = 5 Длина параметра = 8
192 IPv4- адрес конечной точки отправки
224 Тип параметра = 6 Длина параметра = 20
256 IPv6- адрес конечной точки отправки
288
320
352
384 Тип параметра = 9 Длина параметра = 8
416 Рекомендуемый прирост срока действия файлов 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 ACK копирует блок INIT, за исключением того, что тип фрагмента всегда равен 2.

Обязательные параметры, только в INIT ACK:
Тип параметра = 7 (состояние файла cookie)
Файл cookie состояния содержит минимальную информацию для воссоздания блока управления передачей и подписывается закрытым ключом отправителя. Формат файла cookie не указан.
+ Биты 0–7 8–15 16–31
0 Тип чанка = 3 Флаги чанка Длина куска
32 Совокупный TSN ACK
64 Рекламируемый кредит окна получателя
96 Количество блоков ACK с пробелами = N Количество дубликатов TSN = X
128 Начало блока ACK #1 Конец блока ACK #1
... ... ...
96 + Н × 32 Разрыв блока ACK # N начало Разрыв блока ACK # N конец
128 + Н × 32 Дубликат ТСН №1
... ...
96 + Н × 32 + Х × 32 Дубликат ТСН № Х
Тип чанка
Всегда 3 для выборочного подтверждения (SACK).
Флаги чанка
В настоящее время флаги не используются.
Длина куска
Это длина фрагмента, которая имеет минимальное значение 16, если не отправляются пробелы или дубликаты.
Фиксированные параметры:
Совокупный TSN ACK
Подтверждает все порядковые номера до этого номера включительно. Чанки с TSN выше этого числа еще не были получены – за исключением тех, которые включены в дополнительные блоки ACK с пробелами (см. ниже).
Рекламируемый кредит окна получателя
Объем выделенного буферного пространства для этой ассоциации, который никогда не следует уменьшать.
Количество блоков ACK с пробелами
Указывает количество блоков ACK с пробелами (т. е. пар начального и конечного TSN), включенных в этот фрагмент.
Количество дубликатов TSN
Указывает количество повторяющихся номеров TSN, зарегистрированных в этом фрагменте.
Дополнительные параметры отображаются с чередующимся фоном зеленого и синего цветов:
Разрыв блока ACK # N старт
Указывает положительное смещение (относительно совокупного значения TSN ACK) первого TSN дополнительного блока подтвержденных TSN.
Разрыв блока ACK # N конец
Указывает положительное смещение (по отношению к совокупному значению TSN ACK) последнего TSN дополнительного блока подтвержденных TSN.
Дубликат ТСН № Х
TSN, полученный более одного раза. TSN будет появляться в этом списке каждый раз, когда он будет получен после первого раза.

Фрагмент HEARTBEAT

[ редактировать ]
+ Биты 0–7 8–15 16–31
0 Тип чанка = 4 Флаги чанка Длина куска
32 Тип параметра = 1 Длина параметра
64+ Информация о сердцебиении
Тип чанка
Для пульса (HEARTBEAT) это значение всегда равно 4.
Флаги чанка
В настоящее время флаги не используются.
Длина куска
Это длина фрагмента, имеющая минимальное значение 8 без добавления значения параметра.
Фиксированные параметры: Нет
Дополнительные параметры отображаются с чередующимся фоном зеленого и синего цветов:
Тип параметра = 1
Этот параметр содержит информацию о пульсе для конкретного отправителя.

Подтверждение HEARTBEAT

[ редактировать ]
+ Биты 0–7 8–15 16–31
0 Тип чанка = 5 Флаги чанка Длина куска
32 Тип параметра = 1 Длина параметра
64+ Информация о сердцебиении
Тип чанка
Для подтверждения тактового сигнала (HEARTBEAT ACK) это значение всегда равно 5.
Флаги чанка
В настоящее время флаги не используются.
Длина куска
Это длина фрагмента, имеющая минимальное значение 8 без добавления значения параметра.
Фиксированные параметры: Нет
Дополнительные параметры отображаются с чередующимся фоном зеленого и синего цветов:
Тип параметра = 1
Этот параметр содержит информацию о контрольном сигнале отправителя, полученную в запросе.

ОТМЕНИТЬ фрагмент

[ редактировать ]
+ Биты 0–7 8–14 15 16–31
0 Тип чанка = 6 Сдержанный Т Длина куска
32 Ноль или более причин ошибок
Тип чанка
всегда 6 для прерывания (ABORT).
Флаги чанка
В настоящее время используется только один флаг:
Т
Установите, отправил ли отправитель собственный тег проверки (что получатель должен проверить); не устанавливается, если отправитель отправил проверочный тег узла (который в любом случае следует проверить).
Длина куска
Это длина фрагмента, которая имеет минимальное значение 4 без указания причин ошибок.
Необязательные параметры (причины ошибки) определяются в блоке ERROR.

ВЫКЛЮЧЕНИЕ фрагмента

[ редактировать ]
+ Биты 0–7 8–15 16–31
0 Тип чанка = 7 Флаги чанка Длина куска
32 Совокупный TSN ACK
Тип чанка
Для выключения (SHUTDOWN) это значение всегда равно 7.
Флаги чанка
В настоящее время флаги не используются.
Длина куска
Это длина фрагмента, которая имеет фиксированную длину 8.
Фиксированные параметры:
Совокупный TSN ACK
Содержит последний номер TSN, полученный отправителем по порядку.

Блок подтверждения завершения работы

[ редактировать ]
+ Биты 0–7 8–15 16–31
0 Тип чанка = 8 Флаги чанка Длина чанка = 4
Тип чанка
Для подтверждения завершения работы (SHUTDOWN ACK) это значение всегда равно 8.
Флаги чанка
В настоящее время флаги не используются.
Длина куска
Это длина фрагмента, имеющая фиксированную длину 4.

ОШИБКА фрагмента

[ редактировать ]
+ Биты 0–7 8–15 16–31
0 Тип чанка = 9 Флаги чанка Длина куска
32 Тип параметра = 1 Длина параметра = 8
64 Идентификатор потока Нули (зарезервировано)
96 Тип параметра = 2 Длина параметра
128 Количество недостающих параметров = N
160 Отсутствует тип параметра № 1. Отсутствует тип параметра № 2.
192 ... Отсутствует тип параметра # N
224 Тип параметра = 3 Длина параметра = 8
256 Мера устаревания (микросекунды)
288 Тип параметра = 4 Длина параметра = 4
320 Тип параметра = 5 Длина параметра
352 Неразрешимый адрес
384 Тип параметра = 6 Длина параметра
416 Нераспознанный фрагмент
448 Тип параметра = 7 Длина параметра = 4
480 Тип параметра = 8 Длина параметра
512 Нераспознанные параметры
544 Тип параметра = 9 Длина параметра = 8
576 Значение ТСН
608 Тип параметра = 10 Длина параметра = 4
Тип чанка
Для ошибки (ERROR) это значение всегда равно 9.
Флаги чанка
В настоящее время флаги не используются.
Длина куска
Это длина фрагмента, которая имеет минимальное значение 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.
[ редактировать ]
+ Биты 0–7 8–15 16–31
0 Тип чанка = 10 Флаги чанка Длина куска
32+ печенье
Тип чанка
всегда 10 для эха cookie (COOKIE ECHO).
Флаги чанка
В настоящее время флаги не используются.
Длина куска
Это длина фрагмента.
Значение чанка
Содержит данные cookie.
[ редактировать ]
+ Биты 0–7 8–15 16–31
0 Тип чанка = 11 Флаги чанка Длина чанка = 4
Тип чанка
Для подтверждения файлов cookie (COOKIE ACK) это значение всегда равно 11.
Флаги чанка
В настоящее время флаги не используются.
Длина куска
Это длина фрагмента, которая всегда равна 4.

ECNE-кусок

[ редактировать ]

Еще не определено.

Еще не определено.

ВЫКЛЮЧЕНИЕ ЗАВЕРШЕНО.

[ редактировать ]
+ Биты 0–7 8–14 15 16–31
0 Тип чанка = 14 Сдержанный Т Длина чанка = 4
Тип чанка
Для завершения выключения (SHUTDOWN COMPLETE) это значение всегда равно 14.
Флаги чанка
В настоящее время определен только один флаг
Т
Устанавливается, если у отправителя не было TCB; не устанавливается, если он был у отправителя (который был уничтожен).
Длина куска
Это длина фрагмента, имеющая фиксированную длину 4.

АУТ-фрагмент

[ редактировать ]
+ Биты 0–7 8–15 16–31
0 Тип чанка = 15 Флаги = 0 Длина куска
32 Идентификатор общего ключа Идентификатор HMAC
64 HMAC
...
Тип чанка
Для блока аутентификации (AUTH) это значение всегда равно 15.
Флаги чанка
В настоящее время флаги не используются.
Длина куска
Длина HMAC + 8.
Фиксированные параметры:
Идентификатор общего ключа
идентифицирует использованный общий ключ.
Идентификатор HMAC
определяет тип используемого HMAC. [5]
HMAC
Значение HMAC . Может быть не кратно 4 байтам. Протокол SCTP заботится о дополнении до 4-байтовой границы. [6]
Дополнительные параметры: нет

Часть ASCONF-ACK

[ редактировать ]
+ Биты 0–7 8–15 16–31
0 Тип чанка = 128 Флаги чанка Длина куска
32 Порядковый номер
64 Ответ параметра ASCONF 1
... ...
... Ответ параметра ASCONF N
Тип чанка
всегда 128 для фрагмента подтверждения реконфигурации адреса (ASCONF-ACK).
Флаги чанка
В настоящее время флаги не используются.
Длина куска
Зависит от количества и длины включенных ответов параметров ASCONF.
Фиксированные параметры:
Порядковый номер
Порядковый номер подтверждающего пакета ASCONF.
Дополнительные параметры:
Ответ параметра ASCONF 1.. N
Ответы на параметры реконфигурации адреса (переменной длины).

ПЕРЕНАСТРОЙКА фрагмента

[ редактировать ]
+ Биты 0–7 8–15 16–31
0 Тип чанка = 130 Флаги чанка Длина куска
32 Параметр переконфигурации 1
...
... Параметр переконфигурации 2
...
Тип чанка
всегда 130 для фрагмента реконфигурации потока (RE-CONFIG).
Флаги чанка
В настоящее время флаги не используются.
Длина куска
Зависит от количества и длины параметров реконфигурации.
Фиксированные параметры:
Параметр переконфигурации 1
Параметр реконфигурации первого потока.
Дополнительные параметры:
Параметр переконфигурации 2
Параметр реконфигурации второго потока.

В этом фрагменте могут присутствовать не более двух параметров реконфигурации из перечисленных ниже. Не все комбинации действительны, подробности см. в RFC 6525.

Параметр запроса на сброс исходящего SSN

[ редактировать ]

Этот параметр используется отправителем, чтобы сообщить получателю, что он желает сбросить порядковые номера (или идентификаторы сообщений, если используется 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 будут сброшены.

Параметр запроса на сброс входящего SSN

[ редактировать ]

Этот параметр используется отправителем, чтобы запросить у получателя сброс порядковых номеров (или идентификаторов сообщений, если используется I-DATA) для исходящих потоков.

+ Биты 0–15 16–31
0 Тип параметра = 14 Длина параметра
32 Порядковый номер запроса на реконфигурацию
64 Поток номер 1 Поток номер 2
... ...
32 + 16 Н Номер потока N − 1 Номер потока N
Тип параметра
всегда 14 для параметра входящего запроса на сброс SSN.
Длина параметра
8+ .
Фиксированные параметры:
Порядковый номер запроса на реконфигурацию
Порядковый номер этого запроса на реконфигурацию.
Дополнительные параметры:
1..N Поток номер
Номера потоков, для которых необходимо сбросить SSN или MID. Если ничего не указано, все номера SSN/MID будут сброшены.

Параметр запроса сброса SSN/TSN

[ редактировать ]

Этот параметр используется отправителем, чтобы сообщить получателю, что он желает сбросить все TSN и все SSN/MID для всех потоков.

+ Биты 0–15 16–31
0 Тип параметра = 15 Длина параметра = 8
32 Порядковый номер запроса на реконфигурацию
Тип параметра
всегда 15 для параметра запроса сброса SSN/TSN
Длина параметра
8
Фиксированные параметры:
Порядковый номер запроса на реконфигурацию
Порядковый номер этого запроса на реконфигурацию.
Дополнительные параметры: нет

Параметр ответа на реконфигурацию

[ редактировать ]

Этот параметр используется в качестве ответа на запрос реконфигурации, за исключением, возможно, входящего запроса на сброс 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.

Добавить параметр запроса исходящих потоков

[ редактировать ]

Этот параметр используется отправителем для запроса добавления в ассоциацию дополнительных исходящих потоков (т. е. входящих потоков для получателя).

+ Биты 0–15 16–31
0 Тип параметра = 17 Длина параметра = 12
32 Порядковый номер запроса на реконфигурацию
64 Количество новых потоков Сдержанный
Тип параметра
всегда 17 для параметра запроса добавления исходящих потоков
Длина параметра
12
Фиксированные параметры:
Порядковый номер запроса на реконфигурацию
Порядковый номер этого запроса на реконфигурацию.
Количество новых потоков
Количество исходящих потоков (от отправителя к получателю), добавляемых в ассоциацию.
Дополнительные параметры: нет

Добавить параметр запроса входящих потоков

[ редактировать ]

Этот параметр используется отправителем для запроса добавления в ассоциацию дополнительных входящих потоков (т. е. исходящих потоков для получателя).

+ Биты 0–15 16–31
0 Тип параметра = 18 Длина параметра = 12
32 Порядковый номер запроса на реконфигурацию
64 Количество новых потоков Сдержанный
Тип параметра
всегда 18 для параметра запроса добавления входящих потоков
Длина параметра
12
Фиксированные параметры:
Порядковый номер запроса на реконфигурацию
Порядковый номер этого запроса на реконфигурацию.
Количество новых потоков
Количество входящих потоков (от получателя к отправителю), добавляемых в ассоциацию.
Дополнительные параметры: нет

Чанк PAD был введен для облегчения обнаружения MTU пути . [7] позволяя отправителю произвольно увеличивать размер пакета SCTP.

+ Биты 0–7 8–15 16–31
0 Тип чанка = 132 Флаги чанка Длина куска
32 Заполнение данных
...
Тип чанка
всегда 132 для фрагмента заполнения (PAD).
Флаги чанка
В настоящее время флаги не используются.
Длина куска
Зависит от размера заполняющих данных. Минимальная длина — 4 байта.
Фиксированные параметры: нет
Дополнительные параметры:
Заполнение данных
Произвольные данные – будут проигнорированы и бесцеремонно отброшены получателем.

Часть I-DATA

[ редактировать ]

Блок 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).
Флаги чанка
в настоящее время есть используется только 4 флага
  • I — порция SACK должна быть отправлена ​​обратно без задержки.
  • U — Если установлено, это означает, что эти данные представляют собой неупорядоченный фрагмент. Если неупорядоченный фрагмент фрагментирован, то этот флаг установлен для каждого фрагмента.
  • B — Если установлено, это отмечает начальный фрагмент. Этот флаг установлен для нефрагментированного фрагмента.
  • E — Если установлено, это отмечает конечный фрагмент. Этот флаг установлен для нефрагментированного фрагмента.
Длина куска
Длина фрагмента имеет минимальное значение 21, поскольку данные размером менее одного байта не допускаются.
Фиксированные параметры:
Порядковый номер передачи (TSN)
Порядковый номер всего потока ДАННЫХ (используется для подтверждения и повторной передачи).
Идентификатор потока
Идентификатор потока, которому принадлежит этот фрагмент данных.
Идентификатор сообщения (MID)
Идентификатор сообщения в этом потоке. Если сообщение фрагментировано, то для всех фрагментов используется одно и то же значение. Для упорядоченных сообщений MID также определяет порядок, в котором сообщения должны быть доставлены на верхний уровень. Упорядоченные и неупорядоченные сообщения в одном потоке используют независимые последовательности MID.
Идентификатор протокола полезной нагрузки
Идентификатор протокола, специфичный для приложения, [4] присутствует только в том случае, если установлен флаг B. SCTP не использует это или не модифицирует это. Однако устройства на пути или конечные точки могут его использовать. Значение 0 указывает, что протокол полезной нагрузки не указан.
Порядковый номер фрагмента
Номер фрагмента для фрагментированных пакетов. Присутствует только в том случае, если флаг B не установлен. Если флаг B установлен, то порядковый номер фрагмента неявно равен нулю, а вместо этого идентификатор протокола полезной нагрузки занимает то же пространство.
Данные
Данные для конкретного приложения.
Необязательные параметры: нет.

ФОРВАРД-TSN чанк

[ редактировать ]

Блок 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
Новые порядковые номера потоков, связанные с пропущенными потоками.

АСКОНФ чанк

[ редактировать ]
+ Биты 0–7 8–15 16–31
0 Тип чанка = 193 Флаги чанка Длина куска
32 Порядковый номер
64 Тип параметра = 5 или 6 Длина параметра = 8 или 20
96 Адрес IPv4 или IPv6 (4 или 16 байт)
128 или 224 АСКОНФ параметр 1
... ...
... Параметр АСКОНФ N
Тип чанка
всегда 193 для блока реконфигурации адреса (ASCONF).
Флаги чанка
В настоящее время флаги не используются.
Длина куска
Зависит от типа IP-адреса, а также количества и длины включенных параметров ASCONF.
Фиксированные параметры:
Порядковый номер
Порядковый номер пакета ASCONF.
Параметр адреса
Тип параметра: Тип адреса в параметре адреса: 5 для IPv4, 6 для IPv6.
Параметр адреса
Длина параметра: Длина параметра адреса: 8 для IPv4, 20 для IPv6.
Параметр адреса
IP-адрес: 4 байта для IPv4, 16 байт для IPv6.
Дополнительные параметры:
Параметр АСКОНФ 1.. Н
Параметры реконфигурации адреса (переменная длина).

I-FORWARD-TSN чанк

[ редактировать ]

Блок I-FORWARD-TSN был введен для использования вместо FORWARD-TSN, когда вместо DATA используется I-DATA.

+ Биты 0–7 8–15 16–30 31
0 Тип чанка = 194 Флаги чанка Длина куска
32 Новый накопительный ТСН
64 Идентификатор потока 1 Сдержанный В
96 Идентификатор сообщения 1
... ... ...
...
32 + Н × 64 Идентификатор потока N Сдержанный В
64 + Н × 64 Идентификатор сообщения N
Тип чанка
всегда 194 для прямого фрагмента TSN с поддержкой чередования (I-FORWARD-TSN).
Флаги чанка
В настоящее время флаги не используются.
Длина куска
Зависит от количества включенных идентификаторов сообщений нового потока.
Фиксированные параметры:
Новый совокупный порядковый номер передачи (TSN)
Следующий TSN, который должен ожидать получатель. Любые предыдущие TSN следует считать полученными.
Дополнительные параметры:
Идентификатор потока 1.. N
Идентификаторы потоков, которые были пропущены этим куском.
В
0, если идентификатор нового сообщения связан с упорядоченными сообщениями, 1, если он связан с неупорядоченными сообщениями в потоке.
Идентификатор сообщения 1.. N
Идентификаторы новых сообщений, связанные с пропущенными потоками.

Примечания

[ редактировать ]
  1. ^ Кастаньоли, Г.; С. Брауэр; М. Херрманн (июнь 1993 г.). «Оптимизация циклических кодов проверки избыточностью с 24 и 32 битами четности». Транзакции IEEE в области коммуникаций . 41 (6): 883. дои : 10.1109/26.231911 . . Кастаньоли и др. работа над алгоритмическим выбором полиномов CRC
  2. ^ Купман, П. (июнь 2002 г.). «32-битные циклические избыточные коды для интернет-приложений» . Материалы Международной конференции по надежным системам и сетям . стр. 459–468. дои : 10.1109/DSN.2002.1028931 . ISBN  0-7695-1597-5 . S2CID   14775606 . . Проверка результатов Кастаньоли исчерпывающим перебором и некоторыми новыми хорошими полиномами.
  3. ^ Jump up to: а б См. https://www.iana.org/assignments/sctp-parameters/sctp-parameters.xhtml ; возможно, использовано в интернет-проекте.
  4. ^ Jump up to: а б на https://www.iana.org/assignments/sctp-parameters/sctp-parameters.xhtml#sctp-parameters-25 . Список назначенных PPID см.
  5. ^ на https://www.iana.org/assignments/sctp-parameters/sctp-parameters.xhtml#sctp-parameters-26 . Список присвоенных идентификаторов HMAC см.
  6. ^ Хотя в RFC 4895 упоминается заполнение, строго говоря, заполнение не является частью чанка AUTH: оно не включено в длину чанка, и его наличие уже обеспечивается самим протоколом SCTP, предписанным RFC 4960 (раздел 3.2) .
  7. ^ RFC 4821 - Обнаружение MTU пути уровня пакетирования
  8. ^ Порядок двух упорядоченных фрагментов может зависеть от комбинации TSN и SSN, а два в остальном идентичных неупорядоченных фрагмента можно отличить только по их TSN.
  • Планировщики потоков RFC 8260 и чередование пользовательских сообщений для протокола передачи управления потоком
  • RFC 7053 Расширение SACK-IMMEDIATELY для протокола передачи управления потоком
  • RFC 6525 Протокол передачи управления потоком (SCTP) Реконфигурация потока
  • RFC 5061 Протокол передачи управления потоком (SCTP) Динамическая реконфигурация адреса
  • RFC 4960 Протокол передачи управления потоком (устарело: 2960, 3309)
  • Аутентифицированные фрагменты RFC 4895 для протокола передачи управления потоком (SCTP)
  • RFC 4821 Обнаружение MTU пути уровня пакетной обработки
  • Часть и параметр заполнения RFC 4820 для протокола передачи управления потоком (SCTP)
  • RFC 4460 Ошибки и проблемы спецификации протокола передачи управления потоком (SCTP)
  • RFC 3873 Протокол передачи управления потоком (SCTP) База управляющей информации (MIB)
  • RFC 3758 Протокол передачи управления потоком (SCTP) Расширение частичной надежности
  • RFC 3554 об использовании протокола передачи управления потоком (SCTP) с IPsec
  • RFC 3436 Безопасность транспортного уровня через протокол передачи управления потоком
  • RFC 3309 Изменение контрольной суммы протокола передачи управления потоком (SCTP)
  • RFC 3286. Введение в протокол передачи управления потоком.
  • RFC 3257 Заявление о применимости протокола передачи управления потоком
  • RFC 2960 Протокол передачи управления потоком
Arc.Ask3.Ru: конец переведенного документа.
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 дней с момента нарушения.)