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

5.8. Опции

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

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

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

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

ОпцияDCCP-Data?Описание
ТипРазмерЗначение
01PaddingY5.8.1
11MandatoryN5.8.2
21Slow ReceiverY11.6
3-311Резерв
32переменныйChange LN6.1
33переменныйConfirm LN6.2
34переменныйChange RN6.1
35переменныйConfirm RN6.2
36переменныйInit CookieN8.1.4
373-8NDP CountY7.7
38переменныйAck Vector [Nonce 0]N11.4
39переменныйAck Vector [Nonce 1]N11.4
40переменныйData DroppedN11.7
416TimestampY13.1
426/8/10Timestamp EchoY13.3
434/6Elapsed TimeN13.2
446Data ChecksumY9.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. Остальные опции рассматриваются позднее.

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