Структура пакетов протокола передачи управления потоком
Биты | Биты 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 фрагменты (Chunk 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 | INIT ACK | Подтверждение инициации |
3 | МЕШОК | Выборочное подтверждение |
4 | СЕРДЦЕБИЕНИЕ | Запрос сердцебиения |
5 | ПОДТВЕРЖДЕНИЕ СЕРДЦА | Подтверждение сердцебиения |
6 | ABORT | Прервать |
7 | НЕИСПРАВНОСТЬ | Неисправность |
8 | ПОДТВЕРЖДЕНИЕ ВЫКЛЮЧЕНИЯ | Подтверждение выключения |
9 | ОШИБКА | Ошибка работы |
10 | ПЕЧЕНЬЕ ЭХО | Государственный файл cookie |
11 | ПРИНЯТЬ ПЕЧЕНЬЕ | Подтверждение cookie |
12 | ECNE | Явное эхо уведомления о перегрузке (зарезервировано) |
13 | CWR | Окно перегрузки уменьшено (зарезервировано) |
14 | ВЫКЛЮЧЕНИЕ ЗАВЕРШЕНО | Завершение работы |
15 | AUTH | Блок аутентификации |
16-62 | Нет данных | Зарезервировано IETF |
63 | Определенные IETF расширения фрагментов |
64 | I-DATA | Данные полезной нагрузки, поддерживающие чередование пакетов |
65-126 | Нет данных | Зарезервировано IETF |
127 | Определенные IETF расширения фрагментов |
128 | АСКОНФ-АСК | Подтверждение изменения конфигурации адреса |
129 | Нет данных | Не назначен[3] |
130 | ПЕРЕКОНФИГ. | Реконфигурация потока |
131 | Нет данных | Не назначен[3] |
132 | PAD | Заполнение пакетов |
133-190 | Нет данных | Зарезервировано IETF |
191 | Определенные IETF расширения фрагментов |
192 | ВПЕРЕД-ТСН | Ожидаемое увеличение TSN |
193 | АСКОНФ | Изменение конфигурации адреса |
194 | I-FORWARD-TSN | Ожидаемое увеличение TSN с поддержкой чередования пакетов |
195-254 | Нет данных | Зарезервировано IETF |
255 | Определенные IETF расширения фрагментов |
Блок данных
+ | Биты 0-7 | 8 - 11 | 12 | 13 | 14 | 15 | 16 - 31 |
---|
0 | Тип чанка = 0 | Зарезервированный | я | U | B | E | Длина чанка |
---|
32 | ТСН |
---|
64 | Идентификатор потока | Порядковый номер потока |
---|
96 | Идентификатор протокола полезной нагрузки |
---|
128 | Данные
|
---|
|
- Тип чанка
- всегда 0 для данных полезной нагрузки (DATA).
- Флаги чанков
- В настоящее время есть[Обновить] использовано всего 4 флага
- I - блок SACK должен быть отправлен обратно без задержки.
- U - Если установлено, это указывает на то, что данные являются неупорядоченным фрагментом и порядковый номер потока недействителен. Если неупорядоченный кусок фрагментирован, то этот флаг установлен для каждого фрагмента.
- B - Если установлено, это отмечает начальный фрагмент. Этот флаг установлен в нефрагментированном чанке.
- E - Если установлено, это отмечает конец фрагмента. Этот флаг установлен в нефрагментированном чанке.
- Длина чанка
- Длина блока имеет минимальное значение 17, поскольку данные размером менее одного байта не допускаются.
- Фиксированные параметры:
- Порядковый номер передачи (TSN)
- Порядковый номер для всего потока ДАННЫХ (используется при фрагментации для повторной сборки).
- Идентификатор потока
- Идентификатор потока, которому принадлежит этот блок данных
- Порядковый номер потока
- Идентификатор порядкового номера сообщения в этом потоке. Если сообщение фрагментировано, это значение сохраняется для всех фрагментов.
- Идентификатор протокола полезной нагрузки
- Идентификатор протокола для конкретного приложения.[4] SCTP не использует это или его модификации. Однако устройства на пути или конечные точки могут его использовать. Значение 0 указывает, что протокол полезной нагрузки не указан.
- Данные
- Данные для конкретного приложения.
- Необязательные параметры: нет.
Блок INIT
+ | Биты 0-7 | 8 - 15 | 16 - 31 |
---|
0 | Тип чанка = 1 | Флаги чанков | Длина чанка |
---|
32 | Инициировать тег |
---|
64 | Рекламируемый кредит окна получателя |
---|
96 | # исходящих потоков | # входящих потоков |
---|
128 | Начальный TSN |
---|
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), которое он желает использовать для этой связи. Ноль является недопустимым значением, и получатель должен ПРЕРЫВАТЬ ассоциацию после получения нуля.
- # входящих потоков
- Идентично количеству исходящих потоков, но количеству входящих потоков. По установленному количеству переговоров не ведется, но следует использовать минимум запрошенных и предложенных.
- Начальный TSN
- Используемый начальный порядковый номер передачи может быть любым значением.
- Дополнительные параметры отображаются с чередующимися цветами фона зеленого и синего:
- Тип параметра = 5
- В этом параметре перечислены все IPv4 адреса, используемые в отправляющей конечной точке. Если это многосетевое соединение, то можно указать IP-адрес каждого.
- Тип параметра = 6
- В этом параметре перечислены все IPv6 адреса, используемые в отправляющей конечной точке. Если это многосетевое соединение, то можно указать IP-адрес каждого.
- Тип параметра = 9
- Этот параметр обеспечивает предполагаемое увеличение продолжительности жизни, которое получатель должен добавить к продолжительности жизни куки по умолчанию (в миллисекундах).
- Тип параметра = 11
- Этот параметр - имя хоста, как определено в RFC 1123, раздел 2.1. Фактическое разрешение этого имени выходит за рамки SCTP. Кроме того, должен быть включен нулевой завершающий символ, который должен быть включен в длину параметра.
- Тип параметра = 12
- В этом параметре перечислены типы адресов, которые поддерживает отправитель (например, IPv4 = 5, IPv6 = 6, имя хоста = 11).
- Тип параметра = 32768
- Этот параметр зарезервирован для поддержки явного уведомления о перегрузке.
Блок INIT ACK
Блок INIT ACK копирует блок INIT, за исключением того, что тип блока всегда равен 2.
- Обязательные параметры, только в INIT ACK:
- Тип параметра = 7 (State Cookie)
- Файл cookie состояния содержит минимальную информацию для воссоздания блока управления передачей и подписан личным ключом отправителя. Формат файла cookie не указан.
Кусок SACK
+ | Биты 0-7 | 8 - 15 | 16 - 31 |
---|
0 | Тип чанка = 3 | Флаги чанков | Длина чанка |
---|
32 | Накопительный TSN ACK |
---|
64 | Рекламируемый кредит окна получателя |
---|
96 | Количество блоков ACK разрыва = N | Количество повторяющихся TSN = X |
---|
128 | Начало блока ACK №1 | Gap ACK block # 1 конец |
---|
... | ... | ... |
---|
96 + Н * 32 | Gap ACK block #N start | Gap ACK block #N конец |
---|
128 + N * 32 | Дубликат ТСН №1 |
---|
... | ... |
---|
96 + Н * 32 + Х * 32 | Дубликат TSN №X |
---|
|
- Тип чанка
- Всегда 3 для выборочного подтверждения (SACK).
- Флаги чанков
- В настоящее время флаги не используются.
- Длина чанка
- Это длина блока, которая имеет минимальное значение 16, когда не отправляются пробелы или дубликаты.
- Фиксированные параметры:
- Накопительный TSN ACK
- Подтверждает все порядковые номера до этого номера включительно. Блоки с TSN выше этого числа еще не получены - за исключением тех, которые включены в дополнительные блоки ACK промежутка (см. Ниже).
- Рекламируемый кредит окна получателя
- Объем выделенного буферного пространства для этой связи, который никогда не должен уменьшаться.
- Количество блоков ACK разрыва
- Указывает количество блоков ACK разрыва (т. Е. Пар начальных и конечных TSN), включенных в этот блок.
- Количество повторяющихся TSN
- Указывает количество повторяющихся TSN, сообщаемых в этом блоке.
- Дополнительные параметры отображаются с чередующимися фоновыми цветами зеленого и синего:
- Gap ACK block #n start
- Указывает положительное смещение (со ссылкой на кумулятивное значение ACK TSN) к первому TSN дополнительного блока подтвержденных TSN.
- Gap ACK block #n конец
- Указывает положительное смещение (со ссылкой на совокупное значение ACK TSN) к последнему TSN дополнительного блока TSN, которые подтверждены.
- Дубликат TSN #x
- TSN, полученный более одного раза. TSN будет отображаться в этом списке каждый раз, когда он будет получен после первого раза.
Чанк HEARTBEAT
+ | Биты 0-7 | 8 - 15 | 16 - 31 |
---|
0 | Тип чанка = 4 | Флаги чанков | Длина чанка |
---|
32 | Тип параметра = 1 | Длина параметра |
---|
64+ | Информация о сердцебиении |
---|
|
- Тип чанка
- Для сердцебиения (HEARTBEAT) это значение всегда равно 4.
- Флаги чанков
- В настоящее время флаги не используются.
- Длина чанка
- Это длина блока, которая имеет минимальное значение 8 без добавления значения параметра.
- Фиксированные параметры: Нет
- Дополнительные параметры отображаются с чередующимися фоновыми цветами зеленого и синего:
- Тип параметра = 1
- Этот параметр содержит информацию о пульсе отправителя.
Чанк HEARTBEAT ACK
+ | Биты 0-7 | 8 - 15 | 16 - 31 |
---|
0 | Тип чанка = 5 | Флаги чанков | Длина чанка |
---|
32 | Тип параметра = 1 | Длина параметра |
---|
64+ | Информация о сердцебиении |
---|
|
- Тип чанка
- Для подтверждения сердцебиения (HEARTBEAT ACK) это значение всегда равно 5.
- Флаги чанков
- В настоящее время флаги не используются.
- Длина чанка
- Это длина блока, которая имеет минимальное значение 8 без добавления значения параметра.
- Фиксированные параметры: Нет
- Дополнительные параметры отображаются с чередующимися фоновыми цветами зеленого и синего:
- Тип параметра = 1
- Этот параметр содержит информацию о пульсе отправителя, полученную в запросе.
ABORT кусок
+ | Биты 0-7 | 8 - 14 | 15 | 16 - 31 |
---|
0 | Тип чанка = 6 | Зарезервированный | Т | Длина чанка |
---|
32 | Ноль или более причин ошибок |
---|
|
- Тип чанка
- всегда 6 для прерывания (ABORT).
- Флаги чанков
- В настоящее время используется только один флаг:
- Т
- Установите, если отправитель отправил свой собственный тег подтверждения (этот получатель должен проверять); не устанавливается, если отправитель отправил проверочный тег партнера (который в любом случае должен быть проверен).
- Длина чанка
- Это длина блока, которая имеет минимальное значение 4 без указания причин ошибки.
- Необязательные параметры (причины ошибки) определены в блоке ERROR.
SHUTDOWN кусок
+ | Биты 0-7 | 8 - 15 | 16 - 31 |
---|
0 | Тип чанка = 7 | Флаги чанков | Длина чанка |
---|
32 | Накопительный TSN ACK |
---|
|
- Тип чанка
- Для выключения (SHUTDOWN) это значение всегда равно 7.
- Флаги чанков
- В настоящее время флаги не используются.
- Длина чанка
- Это длина блока, имеющая фиксированную длину 8.
- Фиксированные параметры:
- Накопительный TSN ACK
- Содержит последний номер TSN, полученный отправителем в последовательности.
Блок SHUTDOWN ACK
+ | Биты 0-7 | 8 - 15 | 16 - 31 |
---|
0 | Тип чанка = 8 | Флаги чанков | Длина блока = 4 |
---|
|
- Тип чанка
- Для подтверждения выключения (SHUTDOWN ACK) это значение всегда равно 8.
- Флаги чанков
- В настоящее время флаги не используются.
- Длина чанка
- Это длина блока, имеющая фиксированную длину 4.
ERROR фрагмент
+ | Биты 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 | Значение TSN |
---|
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.
Блок COOKIE ECHO
+ | Биты 0-7 | 8 - 15 | 16 - 31 |
---|
0 | Тип чанка = 10 | Флаги чанков | Длина чанка |
---|
32+ | Cookie-файлы |
---|
|
- Тип чанка
- всегда 10 для эхо cookie (COOKIE ECHO).
- Флаги чанков
- В настоящее время флаги не используются.
- Длина чанка
- Это длина чанка.
- Значение чанка
- Содержит данные cookie.
Блок COOKIE ACK
+ | Биты 0-7 | 8 - 15 | 16 - 31 |
---|
0 | Тип чанка = 11 | Флаги чанков | Длина блока = 4 |
---|
|
- Тип чанка
- Для подтверждения cookie (COOKIE ACK) это значение всегда равно 11.
- Флаги чанков
- В настоящее время флаги не используются.
- Длина чанка
- Это длина блока, всегда равная 4.
Блок ECNE
Еще не определено.
Чанк CWR
Еще не определено.
SHUTDOWN COMPLETE кусок
+ | Биты 0-7 | 8 - 14 | 15 | 16 - 31 |
---|
0 | Тип чанка = 14 | Зарезервированный | Т | Длина блока = 4 |
---|
|
- Тип чанка
- Для завершения выключения (SHUTDOWN COMPLETE) это значение всегда равно 14.
- Флаги чанков
- В настоящее время определен только один флаг
- Т
- Устанавливается, если у отправителя не было TCB; не устанавливается, если он был у отправителя (уничтожен).
- Длина чанка
- Это длина блока, имеющая фиксированную длину 4.
Чанк AUTH
+ | Биты 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
- Ответы параметра реконфигурации адреса (переменной длины).
Чанк RE-CONFIG
+ | Биты 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.
- Длина параметра
- 16 + 2 * С.
- Фиксированные параметры:
- Порядковый номер запроса на изменение конфигурации
- Порядковый номер этого запроса на изменение конфигурации.
- Порядковый номер ответа при повторной настройке
- Порядковый номер последнего полученного запроса на изменение конфигурации.
- Последний назначенный 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 + 2 * н.
- Фиксированные параметры:
- Порядковый номер запроса на изменение конфигурации
- Порядковый номер этого запроса на изменение конфигурации.
- Необязательные параметры:
- Поток номер 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
Чанк 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 | Зарезервированный | я | U | B | E | Длина чанка |
---|
32 | ТСН |
---|
64 | Идентификатор потока | Зарезервированный |
---|
96 | Идентификатор сообщения |
---|
128 | Идентификатор протокола полезной нагрузки / порядковый номер фрагмента |
---|
160 | Данные
|
---|
|
- Тип чанка
- всегда 64 для данных полезной нагрузки, поддерживающих чередование (I-DATA).
- Флаги чанков
- В настоящее время есть[Обновить] использовано всего 4 флага
- I - блок SACK должен быть отправлен обратно без задержки.
- U - если установлено, это означает, что данные являются неупорядоченным фрагментом. Если неупорядоченный кусок фрагментирован, то этот флаг установлен для каждого фрагмента.
- B - Если установлено, это отмечает начальный фрагмент. Этот флаг установлен в нефрагментированном чанке.
- E - Если установлено, это отмечает конец фрагмента. Этот флаг установлен в нефрагментированном чанке.
- Длина чанка
- Длина фрагмента имеет минимальное значение 21, поскольку данные размером менее одного байта не допускаются.
- Фиксированные параметры:
- Порядковый номер передачи (TSN)
- Порядковый номер для всего потока DATA (используется для подтверждения и повторной передачи).
- Идентификатор потока
- Идентификатор потока, которому принадлежит этот блок данных
- Идентификатор сообщения (MID)
- Идентификатор сообщения в этом потоке. Если сообщение фрагментировано, то для всех фрагментов используется одно и то же значение. Для упорядоченных сообщений MID также определяет порядок, в котором сообщения должны быть доставлены на верхний уровень. Упорядоченные и неупорядоченные сообщения в одном потоке используют независимые последовательности MID.
- Идентификатор протокола полезной нагрузки
- Идентификатор протокола для конкретного приложения,[4] присутствует только если установлен флаг B. SCTP не использует это или его модификации. Однако устройства на пути или конечные точки могут его использовать. Значение 0 указывает, что протокол полезной нагрузки не указан.
- Порядковый номер фрагмента
- Номер фрагмента для фрагментированных пакетов. Присутствует, только если флаг B не установлен. Если установлен флаг B, то порядковый номер фрагмента неявно равен нулю, и вместо этого идентификатор протокола полезной нагрузки занимает то же место.
- Данные
- Данные для конкретного приложения.
- Необязательные параметры: нет.
Фрагмент FORWARD-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
- Новые порядковые номера потоков, связанные с пропущенными потоками.
Чанк ASCONF
+ | Биты 0-7 | 8 - 15 | 16 - 31 |
---|
0 | Тип чанка = 193 | Флаги чанков | Длина чанка |
---|
32 | Порядковый номер |
---|
64 | Тип параметра = 5 или 6 | Длина параметра = 8 или 20 |
---|
96 | Адрес IPv4 или IPv6 (4 или 16 байтов) |
---|
128 или 224 | Параметр ASCONF 1 |
---|
... | ... |
---|
... | Параметр ASCONF N |
---|
|
- Тип чанка
- всегда 193 для блока реконфигурации адреса (ASCONF).
- Флаги чанков
- В настоящее время флаги не используются.
- Длина чанка
- Зависит от типа IP-адреса и количества и длины включенных параметров ASCONF.
- Фиксированные параметры:
- Порядковый номер
- Порядковый номер пакета ASCONF.
- Параметр адреса
- Тип параметра: Тип адреса в параметре адреса: 5 для IPv4, 6 для IPv6.
- Параметр адреса
- длина параметра: Длина параметра адреса: 8 для IPv4, 20 для IPv6.
- Параметр адреса
- IP-адрес: 4 байта для IPv4, 16 байтов для IPv6.
- Необязательные параметры:
- Параметр ASCONF 1..N
- Параметры реконфигурации адреса (переменная длина).
Блок I-FORWARD-TSN
Блок I-FORWARD-TSN был введен для использования вместо FORWARD-TSN, когда I-DATA используется вместо DATA.
+ | Биты 0-7 | 8 - 15 | 16 - 30 | 31 |
---|
0 | Тип чанка = 194 | Флаги чанков | Длина чанка |
---|
32 | Новый накопительный ТСН |
---|
64 | Идентификатор потока 1 | Зарезервированный | U |
---|
96 | Идентификатор сообщения 1 |
---|
... | ... | ... | |
---|
... | 32 + N * 64 | Идентификатор потока N | Зарезервированный | U |
---|
64 + N * 64 | Идентификатор сообщения N |
---|
|
- Тип чанка
- всегда 194 для фрагмента прямого TSN с поддержкой чередования (I-FORWARD-TSN).
- Флаги чанков
- В настоящее время флаги не используются.
- Длина чанка
- Зависит от количества включенных идентификаторов новых потоковых сообщений.
- Фиксированные параметры:
- Новый совокупный порядковый номер передачи (TSN)
- Следующий TSN, который должен ожидать получатель. Любые предыдущие TSN следует считать полученными.
- Необязательные параметры:
- Идентификатор потока 1..N
- Идентификаторы потоков, которые были пропущены этим блоком.
- U
- 0, если новый идентификатор сообщения связан с упорядоченными сообщениями, 1, если он связан с неупорядоченными сообщениями в потоке.
- Идентификатор сообщения 1..N
- Новые идентификаторы сообщений, связанные с пропущенными потоками.
Примечания
Рекомендации
- RFC 8260 Планировщики потоков и чередование сообщений пользователей для протокола передачи управления потоками
- RFC 7053 SACK-НЕМЕДЛЕННО Расширение для протокола передачи управления потоком
- 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 Протокол передачи управления потоком