2.1 Двоичный формат
Стандартный двоичный формат обособленной информации DNS показан на рисунке:
1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | first retrieval time | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RR count | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Resource Records (RRs) | / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| | next retrieval time | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RR count | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Resource Records (RRs) | / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / ... / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | hex 20 | +-+-+-+-+-+-+-+-+
- Retrieval time
- Значение времени, отмеченное сразу же после получения информации от подключенной системы DNS. Временные метки задаются числом секунд, прошедших с 1 января 1970 г по Гринвичу (GMT) и сохраняются в форме беззнакового целого числа с сетевым порядком (big-endian) байтов.
Отметим, что значение этого поля не может быть раньше момента предложения этого стандарта. Следовательно, первый байт временной метки, рассматриваемой как 32-битовое целое число без знака, всегда должен быть больше шестнадцатеричного число 20. Завершение обособленной информации DNS указывается фиксированным полем, содержащим значение 0x20. Использование поля "retrieval time" с нулевым значением старшего байта говорит о том, что данное поле имеет размер 64 бита (на самом деле 56, поскольку первые 8 битов всегда имеют значение 0) вместо 32. 64-битовый формат требуется в тех случаях, когда значение временной метки превышает 0xFFFFFFFF (это произойдет в 2106 г.). Значения первого байта поля retrieval time в диапазоне от 0x01 до 0x1F зарезервированы (см. параграф 5). Временные метки в общем случае не выравниваются по 32-битовой границе, поскольку записи RR имеют переменную длину.
- RR count
- Беззнаковое целое число (сетевой порядок байтов), указывающее количество записей RR, полученных к моменту записи временной метки retrieval time.
- Resource Records
- Данные DNS в том же формате, который используется при передаче откликов DNS. В частности, допускается сжатие имен с помощью указателей с включением поля origin в начале того или иного раздела обособленной информации после поля RR count.