2015-05-07 2 views
2

Я видел раздел «формат заголовка» rfc 1035, но он только говорит, что идентификатор может быть случайным. Теперь это случайное значение может быть 0 или нет, это то, что я хочу знать.Является ли значение «0» допустимым в заголовке запроса DNS в качестве идентификатора запроса?

ответ

0

RFC1035 не делает никаких ограничений на идентификатор транзакции, за исключением того, что он имеет длину 16 бит, поэтому 0 отлично. Все, что вы отправляете, будет скопировано в ответ.

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

  • Unbound: ID - произвольное значение от 0 до 0xffff.
  • ARSoft.Tools.Net: ID - любое случайное значение между 0 - 0xffff.
  • Synapse (сетевая библиотека Delphi): идентификатор - любое случайное значение между 0 - 0xffff.
+0

Я согласен с вами. Это то, о чем я думал. Я использую инструмент nsupdate для отправки запросов DNS и, по-видимому, в некоторых пакетах, «0» также принимается как идентификатор запроса. Я просто хотел убедиться, что это был не какой-то неправильный пакет, который я получал. Не могли бы вы также подтвердить о nsupdate? –

+0

@ibrararshad: Я попытался заглянуть в исходный код bind9, который должен включать 'nsupdate', но было столько уровней абстракции, что я сдался, поэтому я не могу подтвердить это. Однако RFC совершенно ясен. Кроме того, хотя ни ARSoft.Tools.Net, ни Synapse это то, что я бы рассматривал как источник ссылок, по моему мнению, Unbound в этом отношении так же хорош, как и само связывание. – PeterK