1

Вот пример промежуточного запроса и ответа от ns-запроса с поддержкой рекурсии:

Промежуточный ответ

Как видите, ответ включает в себя раздел вопросов. Но почему? Разрешить ли сопоставителю сопоставить ответ с сделанным запросом? Но распознаватель также может сопоставить ответ, используя поле ID, верно? Так зачем включать вопрос в ответ?

И вот окончательный запрос и ответ того же запроса:

Окончательный ответ На этот раз запрашиваемое доменное имя включается как в раздел вопросов, так и в раздел ответов. Так что дублируется дважды. Какова цель этого? Зачем дублировать информацию?

Я думаю, что и в промежуточном ответе, и в окончательном ответе раздел вопросов может быть опущен, поскольку у нас есть поле идентификатора. Кроме того, в последнем ответе в разделе ответов есть двойное дублирование.

Не могли бы вы объяснить, почему необходимо было дублировать информацию?

1 ответ1

3

DNS традиционно работает через UDP, протокол без установления соединения, поэтому ответ не может указать через сетевую информацию, на какой запрос он отвечает.

Предоставление вопроса позволяет серверу, выполняющему рекурсивный запрос, отправить ответ правильному клиенту, передать дейтаграмму хостам, не изменяя ее, и позволяет расширенным брандмауэрам определить, что данная дейтаграмма udp, поступающая на 53, является частью запроса пара запрос-ответ.

Поскольку UDP не может передать эту информацию, приложение может определить свою структуру данных так, чтобы она могла выполнить задачу.

См. Раздел 4.1.1 RFC 1035 для описания каждого из элементов в структуре сообщения. В частности для удостоверения личности:

Я БЫ
16-битный идентификатор, назначенный программой, которая генерирует любой вид запроса. Этот идентификатор копируется в соответствующий ответ и может использоваться запрашивающей стороной для сопоставления ответов на невыполненные запросы.

Итак, ID - это то, как окно рабочей станции конечного пользователя может определить, какое приложение запросило поиск. Это может быть важно, если несколько приложений делают запросы в узком окне. Эта информация будет относиться только к машине, генерирующей запрос, поскольку она произвольно назначает идентификатор, и никакое другое приложение, сервер или система не знает, что это такое. Поэтому возможны столкновения ID.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .