Если я запрашиваю www.yahoo.com от моего веб-клиента (Firefox). Является ли первый запрос сетевым уровнем для получения IP-адреса wwww.yahoo.com по DNS-запросу? Тем не менее, в моем URL я только что сказал получить http://www.yahoo.com. Почему до получения данных сетевой уровень сначала интеллектуально получает IP, соответствующий yahoo.com? Как сетевой уровень знает IP-адрес DNS-сервера? Таким образом, это означает, что, хотя я попросил получить yahoo.com, но он внутренне интеллектуально создает пакет для получения IP-адреса из URL, вызывая DNS-сервер? Как это возможно? Пожалуйста, объясните, я запутался здесь.
3 ответа
Вы, кажется, правильно поняли это.
HTTP-запросы от вашего веб-браузера упакованы в сегменты TCP, а эти сегменты TCP упакованы в дейтаграммы IP. Заголовок IP в начале дейтаграммы должен иметь IP-адрес источника и назначения - числовой IP-адрес. Невозможно указать имя хоста сервера (то есть его полное доменное имя или полное доменное имя, например «www.yahoo.com») в качестве адреса назначения в заголовке IP. Адрес назначения в заголовке IP может быть только числовым IP-адресом.
Ваша машина знает IP-адреса одного или нескольких DNS-серверов, потому что вы либо ввели их вручную, либо они были автоматически установлены через какой-либо протокол, такой как DHCP или PPPoE. Это один из немногих фрагментов информации о конфигурации, который должен иметь компьютер, подключенный к Интернету, для правильной работы в Интернете.
Таким образом, когда вы направляете свой веб-браузер на URL-адрес, ваш браузер анализирует URL-адрес, чтобы найти имя хоста, а затем отправляет запрос DNS на IP-адрес DNS-сервера, чтобы преобразовать это имя хоста в IP-адрес. Как только ваш браузер получает ответ на свой DNS-запрос, он может создавать пакеты HTTP-in-TCP/IP, которые он должен создать, чтобы отправить свой первый HTTP-запрос на сервер.
Программное обеспечение для DNS-запросов на вашем клиентском компьютере (иногда называемое программным обеспечением "DNS resolver") кэширует DNS-ответы в течение определенного периода времени, поэтому, если вы проводите много времени, просматривая один и тот же веб-сайт, вы не будете делать DNS-запросы для каждого клика. на том же сайте. Вы только что сделали один запрос в первый раз, когда вашему браузеру понадобилось что-то с этого сайта, а затем ваш компьютер запоминает свой IP-адрес от нескольких минут до нескольких часов.
Когда ваш провайдер назначает вашему модему / маршрутизатору IP-адрес, вы становитесь частью сети вашего провайдера. Ваш провайдер назначает IP-адрес сетевому интерфейсу глобальной сети, который должен знать, как маршрутизировать генерируемые вами сетевые пакеты, в Интернет.
Так что, вообще говоря, когда у вашего модема есть IP-адрес, он знает шлюз по умолчанию провайдера для маршрутизации пакетов в Интернет. А это значит, что он умеет переводить домены в IP.
Когда вы открываете URL в своем браузере, у вас уже есть IP-адрес, и процесс такой же, как вы описали. Сначала браузер запрашивает IP-адрес полного доменного имени вашего запроса, а затем TCP передает данные с сервера на ваш сервер.
Короткий ответ на ваш первый вопрос - "Да". Остальные ваши вопросы не могут быть хорошо объяснены в кратком ответе. Есть целая книга, которая объясняет, как работает разрешение DNS. Ищите книгу DNS и BIND на сайте О'Рейли . Или ваш любимый сайт продавцов книг. Первые две главы объясняют, о чем вы спрашиваете, на ~ 100 страницах ..