RFC: 4340
Оригинал: Datagram Congestion Control Protocol (DCCP)
Категория: Предложенный стандарт
Дата публикации:
Авторы: , ,
Перевод: Николай Малых

5.8. Опции

Любой пакет DCCP может содержать опции, которые размещаются в конце заголовка DCCP. Размер каждой опции кратен 8 битам. Отдельные опции не дополняются для выравнивания по 32-битовой границе и каждая опция может начинаться на границе любого байта. Однако полный набор опций должен дополняться соответствующим числом байтов для выравнивания по 32-битовой границе; для добавочных байтов должна использоваться опция Padding. Все имеющиеся в пакете опции учитываются при расчете контрольной суммы заголовка.

Первый байт каждой опции определяет ее тип. Опции типов 0-31 являются однобайтовыми. В остальных опциях второй байт указывает размер опции. Размер учитывает два первых байта, определяющих тип и размер опции, а также поле данных опции, следовательно значение поля размера во всех случаях должно быть не меньше 2.

Опции должны обрабатываться последовательно, начиная с первой опции в заголовке пакета. Опции неизвестных типов должны игнорироваться. Так же должны игнорироваться опции некорректного размера (значение поля размера опции меньше 2 или больше оставшейся части пространства опций в заголовке пакета) вместе с любым дополнительным пространством опций вслед за опцией с некорректно указанной длиной. Если явно не указано иное, разные экземпляры одной опции в заголовке пакета должны обрабатываться независимо. Для некоторых опций это может означать, что будет использоваться только последнее корректное значение данной опции в заголовке пакета.

Определенные на сегодняшний день опции перечислены в таблице 3:

Опция DCCP-Data? Описание
Тип Размер Значение
0 1 Padding Y 5.8.1
1 1 Mandatory N 5.8.2
2 1 Slow Receiver Y 11.6
3-31 1 Резерв
32 переменный Change L N 6.1
33 переменный Confirm L N 6.2
34 переменный Change R N 6.1
35 переменный Confirm R N 6.2
36 переменный Init Cookie N 8.1.4
37 3-8 NDP Count Y 7.7
38 переменный Ack Vector [Nonce 0] N 11.4
39 переменный Ack Vector [Nonce 1] N 11.4
40 переменный Data Dropped N 11.7
41 6 Timestamp Y 13.1
42 6/8/10 Timestamp Echo Y 13.3
43 4/6 Elapsed Time N 13.2
44 6 Data Checksum Y 9.2
45-127 переменный Резерв
128-255 переменный Опции, связанные с CCID - 10.3
 
Таблица 3: Опции DCCP

Не все опции подходят для конкретного типа пакетов. Например, поскольку опция Ack Vector интерпретируется относительно номера подтверждения, она не может использоваться в пакетах DCCP-Request и пакетах DCCP-Data packets, не содержащих поля Acknowledgement Number. Если опция включена в неподходящий тип пакета, в общем случае она должна игнорироваться; такие случаи рассматриваются при описании отдельных опций. В таблице указаны ограничения общего значения — если в колонке DCCP-Data? Указано «-», соответствующая опция должна игнорироваться при ее получении в пакетах DCCP-Data (в параграфе 7.5.5 рассматриваются причины этого).

Опции с некорректными значениями должны игнорироваться, если явно не указано иное. Например, любая опция Data Checksum со значением 4 в поле размера должна игнорироваться, поскольку все корректные опции Data Checksum имеют размер 6.

В этой главе описываются две базовых опции — Padding и Mandatory. Остальные опции рассматриваются позднее.

Страница 21 из 113

2007 - 2022 © Русские переводы RFC, IETF, ISOC.