Как работает интернет


Принципы работы интернета


Основные принципы


Всемирная паутина (World Wide Web - WWW), широко известная как Интернет, является неотъемлемой частью Интернета и облегчает доступ к информации через взаимосвязанные документы и ресурсы. Принципы Интернета и Всемирной паутины основаны на сочетании технических протоколов, стандартов и децентрализованной архитектуры.

Вот ключевые принципы:
  • Децентрализация: Интернет разработан как децентрализованная сеть, что означает отсутствие центрального органа, регулирующего ее работу. Вместо этого это набор взаимосвязанных сетей, каждая из которых управляется независимо, что позволяет свободно передавать информацию между ними.
  • Открытые стандарты: Интернет опирается на открытые общедоступные стандарты, которые позволяют различным устройствам, приложениям и системам беспрепятственно взаимодействовать друг с другом. Открытые стандарты обеспечивают совместимость и взаимодействие между различными технологиями.
  • Протоколы. Интернет-протоколы — это наборы правил и соглашений, которые устройства используют для связи и обмена данными. Некоторые из основных протоколов включают: HTTP (протокол передачи гипертекста) для веб-коммуникаций, SMTP (простой протокол передачи почты) для электронной почты и TCP/IP (протокол управления передачей/Интернет-протокол) для передачи данных.
  • URL-адрес (унифицированный указатель ресурсов): URL-адреса используются для идентификации ресурсов в Интернете. Они обеспечивают стандартный способ поиска и доступа к веб-страницам, файлам, изображениям и другому содержимому, размещенному на веб-серверах. Типичный URL-адрес выглядит как «https://www.example.com/page».
  • Гиперссылки. Гиперссылки, часто называемые просто ссылками, являются основой Интернета. Это интерактивные элементы, которые соединяют одну веб-страницу с другой, позволяя пользователям легко перемещаться по различным веб-сайтам и ресурсам.
  • Модель клиент-сервер: Интернет работает по модели клиент-сервер. Когда вы заходите на веб-сайт, ваш веб-браузер (клиент) отправляет запросы на веб-сервер, на котором размещен веб-сайт. Сервер обрабатывает запрос и отправляет запрошенную информацию клиенту, который затем отображает веб-страницу.
  • HTML (язык гипертекстовой разметки): HTML — это стандартный язык разметки, используемый для создания веб-страниц. Он структурирует содержимое и элементы на веб-странице, позволяя браузерам интерпретировать и отображать макет страницы, текст, изображения и другие медиаданные.
  • DNS (система доменных имен): DNS — это важнейшая система, которая переводит удобочитаемые доменные имена (например, www.example.com) в IP-адреса, которые представляют собой числовые идентификаторы, используемые компьютерами для обнаружения и связи друг с другом в Интернете.

Как работает Интернет:
1. Передача пакетов данных. Когда вы отправляете или получаете данные через Интернет, они разбиваются на более мелкие пакеты. Эти пакеты перемещаются по сети независимо, при необходимости выбирая разные маршруты, и снова собираются в пункте назначения.
2. Маршрутизация. Маршрутизаторы играют жизненно важную роль в направлении пакетов данных по назначению. Они анализируют IP-адрес назначения и используют таблицы маршрутизации, чтобы определить наилучший путь для пакетов, чтобы достичь своей цели.
3. Интернет-провайдеры (ISP): Интернет-провайдеры — это компании, которые предоставляют доступ в Интернет отдельным лицам и организациям. Они действуют как мост, соединяющий пользователей с более широким Интернетом, предлагая различные типы соединений (например, DSL, кабель, оптоволокно, спутник).
4. Пиринг и точки обмена интернет-трафиком (IXP). Чтобы соединить разные сети вместе, интернет-провайдеры и другие организации заключают соглашения о пиринге. Пиринг позволяет им напрямую обмениваться трафиком, повышая эффективность и снижая зависимость от сторонних подключений.
5. Магистральные сети: Интернет-магистраль состоит из высокоскоростных каналов дальней связи, которые соединяют между собой крупные города и страны. Эти магистральные сети образуют инфраструктуру, поддерживающую глобальную интернет-связь.


Таким образом, Интернет работает через комбинацию децентрализованных сетей, открытых стандартов, протоколов и модели клиент-сервер, что позволяет пользователям по всему миру получать доступ и обмениваться информацией через всемирную паутину.


Как работает современный браузер


Веб-браузер (browser) — это программное обеспечение, которое позволяет пользователям получать доступ к контенту во Всемирной паутине и взаимодействовать с ним. Вот как работает веб-браузер:

  • Пользовательский интерфейс (UI). Браузер предоставляет графический пользовательский интерфейс (UI), который позволяет пользователям вводить веб-адреса (URL-адреса), перемещаться по Интернету и взаимодействовать с веб-страницами. Он включает в себя такие компоненты, как адресная строка, кнопки «Назад/Вперед», закладки и настройки.
  • Обработка пользовательского ввода: когда пользователь вводит URL-адрес или нажимает на ссылку, браузер обрабатывает эти действия по вводу. Он интерпретирует URL-адрес, проверяет его и проверяет, находится ли запрошенная веб-страница в кеше браузера. Если нет, он переходит к получению веб-страницы.
  • HTTP-запрос: браузер отправляет HTTP-запрос (протокол передачи гипертекста) на веб-сервер, указанный в URL-адресе. Этот запрос обычно отправляется через сетевое соединение, например Wi-Fi или мобильную передачу данных.
  • Разрешение DNS. Если URL-адрес содержит имя домена (например, www.example.com), браузеру необходимо преобразовать его в IP-адрес с помощью системы доменных имен (DNS). Этот IP-адрес используется для поиска веб-сервера в Интернете.
  • Соединение с сервером: как только IP-адрес определен, браузер устанавливает соединение с веб-сервером через Интернет. Это соединение часто защищается с помощью HTTPS (безопасный протокол передачи гипертекста) для шифрования передачи данных.
  • Ответ веб-сервера: веб-сервер обрабатывает запрос браузера и отправляет ответ HTTP. Этот ответ обычно включает HTML, CSS, JavaScript и другие веб-ресурсы, необходимые для отображения веб-страницы.
  • Рендеринг: браузер получает ответ и начинает отображать веб-страницу. Он анализирует разметку HTML для создания объектной модели документа (DOM), которая представляет структуру и содержимое веб-страницы. Стили CSS применяются для макета и форматирования страницы, а JavaScript выполняется для добавления интерактивности.
  • Отображение: отображаемая веб-страница отображается в окне браузера, и пользователи могут просматривать ее содержимое и взаимодействовать с ним. Браузер также обрабатывает элементы мультимедиа, такие как изображения, видео и аудио.
  • Навигация: пользователи могут перемещаться между веб-страницами с помощью элементов управления навигацией браузера (например, кнопок «Назад» и «Вперед») или нажимая ссылки на страницах. Браузер ведет историю посещенных страниц.
  • Кэширование. Чтобы оптимизировать производительность, браузеры часто кэшируют ресурсы, такие как изображения, таблицы стилей и скрипты, локально. Это означает, что если вы снова посетите тот же веб-сайт, некоторые элементы из кеша вашего компьютера могут загружаться быстрее.
  • Безопасность. Браузеры реализуют функции безопасности, такие как песочница, для изоляции веб-страниц друг от друга и защиты от вредоносного кода. Они также отображают индикаторы безопасности (например, висячие замки) для сайтов, защищенных HTTPS.
  • Файлы cookie и управление сеансами. Браузеры управляют файлами cookie и сеансами для хранения пользовательских данных и поддержания состояния между посещениями веб-страниц.
  • Расширения и плагины. Браузеры поддерживают расширения и плагины, которые добавляют дополнительные функции, такие как блокировщики рекламы, менеджеры паролей и инструменты разработчика.
  • Обновления. Современные браузеры регулярно получают обновления для повышения производительности, безопасности и совместимости с веб-стандартами.
Это если кратко. Если более детально, то можно посмотреть серию статей от Google на тему работы браузера:

Клиент-серверное взаимодействие


Принципы

Архитектура клиент-сервер — это вычислительная модель, которая разделяет задачи обработки и хранения данных между двумя разными типами компьютеров: клиентами и серверами. В этой архитектуре клиенты — это устройства или приложения, которые запрашивают и потребляют ресурсы, службы или данные, а серверы — это компьютеры или системы, предоставляющие эти ресурсы, службы или данные в ответ на запросы клиентов. Эта модель распространена в различных вычислительных средах, включая веб-приложения, системы электронной почты, файловые серверы и системы управления базами данных. Вот обзор клиент-серверной архитектуры:

  • Клиенты. Клиенты — это устройства конечных пользователей или программные приложения, которые инициируют запросы на определенные услуги или данные с серверов. Это могут быть настольные компьютеры, ноутбуки, смартфоны, планшеты или любые другие устройства с сетевыми возможностями. Клиенты отвечают за уровень представления, предоставляя пользовательские интерфейсы, которые позволяют пользователям взаимодействовать с нужными им услугами или данными.
  • Серверы: Серверы — это мощные компьютеры или системы с более высокими вычислительными возможностями и емкостью хранения. Они используют специализированное программное обеспечение и предназначены для эффективного реагирования на запросы клиентов. Серверы управляют бизнес-логикой, обрабатывают данные и хранят информацию в базах данных или других системах хранения.
  • Модель «запрос-ответ». Связь между клиентами и серверами в архитектуре «клиент-сервер» следует модели «запрос-ответ». Когда клиенту нужна конкретная услуга или данные, он отправляет запрос на сервер. Сервер обрабатывает запрос и отправляет соответствующий ответ, удовлетворяя потребности клиента.
  • Отсутствие состояния: во многих взаимодействиях клиент-сервер каждый запрос от клиента к серверу является независимым и не сохраняет никаких сведений о предыдущих взаимодействиях. Это отсутствие состояния упрощает архитектуру и позволяет серверам обрабатывать запросы от нескольких клиентов одновременно, не путая их контексты.
  • Масштабируемость. Архитектура клиент-сервер обеспечивает масштабируемость за счет распределения вычислительной нагрузки между несколькими серверами. По мере роста числа клиентов или сложности услуг могут быть добавлены дополнительные серверы, чтобы справиться с возросшим спросом, гарантируя, что система останется отзывчивой и будет работать хорошо.
  • Безопасность и контроль доступа. Архитектуры клиент-сервер обеспечивают централизованные меры безопасности. Механизмы управления доступом и аутентификации могут быть реализованы на стороне сервера, гарантируя, что только авторизованные клиенты могут получить доступ к определенным ресурсам или службам.
  • Централизованная служба: централизованная служба в архитектуре клиент-сервер относится к идее, что определенные службы, ресурсы или функции предоставляются из центрального места (сервера), а не распределяются между несколькими местами или отдельными устройствами (клиентами). Такая централизация позволяет более эффективно управлять, обслуживать и контролировать эти службы, упрощая обеспечение согласованности и безопасности.

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

Примеры

Общие примеры клиент-серверной архитектуры включают веб-приложения, в которых веб-браузеры действуют, как клиенты, запрашивающие веб-страницы с веб-серверов; системы электронной почты, в которых почтовые клиенты (например, Outlook, Gmail) запрашивают и отправляют электронные письма через почтовые серверы; и системы управления базами данных, где клиентские приложения извлекают данные, хранящиеся на серверах баз данных, и управляют ими.
Ниже разбирается конкретный пример.

Библиотека

Давайте воспользуемся архитектурой клиент-сервер, чтобы объяснить, как работает библиотека.
В примере ниже клиент-серверная архитектура демонстрируется через ваше взаимодействие с персоналом библиотеки (сервером) для поиска и заимствования книг (услуги) из коллекции библиотеки (ресурсы сервера). Модель клиент-сервер помогает сделать процесс выдачи книг организованным и эффективным для таких посетителей библиотеки, как вы!

  • Клиент (Вы, посетитель библиотеки): Представьте, что вы пришли в библиотеку, чтобы взять книгу для своего школьного проекта. В этом примере вы являетесь «клиентом», потому что ищете услугу — взять книгу в библиотеке.
  • Сервер (сотрудники библиотеки и книжные полки): сотрудники библиотеки и книжные полки действуют как «сервер». Сотрудники библиотеки всегда готовы помочь вам найти книги, ответить на вопросы и помочь с получением книг, а книги, которые вы можете взять напрокат, находятся на книжных полках.
  • Запрос-ответ: вы подходите к стойке библиотеки и спрашиваете у библиотекаря (сервера) конкретную книгу или информацию по теме. Библиотекарь (сервер) просматривает книжные полки или библиотечный каталог (как меню), чтобы найти нужную книгу (ваш запрос). Затем они дают вам книгу или проводят вас туда, где она находится (ответ).
  • Масштабируемость: библиотека может обслуживать множество клиентов (посетителей) одновременно, поскольку у них есть несколько библиотекарей (серверов) и обширная коллекция книг на книжных полках (серверные ресурсы).
  • Централизованная служба: вместо того, чтобы обращаться к каждому отдельному автору или книжному издателю (которые могут находиться во всем мире), чтобы получить книгу, библиотека действует как централизованная служба (сервер), которая предоставляет вам доступ к широкому спектру книг от разных авторов и издателей, которые вы можете взять напрокат. Или более детально:
    • Коллекция книг: вместо того, чтобы разбрасывать книги по домам разных людей или в разных местах, библиотека хранит централизованную коллекцию книг на своих книжных полках. Такая централизация облегчает посетителям библиотеки поиск и доступ к нужным им книгам в одном месте.
    • Процесс заимствования: библиотека следует стандартному процессу заимствования для всех посетителей. Когда вы хотите взять книгу, вы идете к стойке библиотеки (серверу), чтобы попросить книгу. Библиотекарь (сервер) управляет процессом, обеспечивая согласованность и эффективность того, как книги берутся и возвращаются.
    • Управление ресурсами: благодаря централизации коллекции книг и процесса выдачи персонал библиотеки (сервер) может эффективно управлять ресурсами (книгами) и организовывать их, а также обеспечивать их доступность для всех авторизованных пользователей (посетителей/клиентов библиотеки).
    • Обновления и обслуживание. Благодаря централизованному сервису персонал библиотеки может централизованно управлять любыми обновлениями, добавлениями или удалениями книг из коллекции. Это гарантирует, что коллекция актуальна и поддерживается в хорошем состоянии.
  • Отсутствие состояния (для этого примера): в отличие от цифровых систем, в этом примере библиотеки нет сохранения состояния. Каждый раз, когда вы посещаете библиотеку и просите книгу, процесс начинается заново, и библиотекарь не помнит ваши предыдущие посещения или запросы на
  • Безопасность и контроль доступа:
    • Аутентификация пользователя: при посещении библиотеки вам может потребоваться предъявить читательский билет или предоставить удостоверение личности, чтобы подтвердить, что вы являетесь зарегистрированным членом библиотеки. Этот процесс называется аутентификацией пользователя. Это гарантирует, что только авторизованные лица (клиенты) могут получить доступ к услугам библиотеки, например, брать книги напрокат.
    • Доступ к книгам: после того, как вы пройдете аутентификацию в качестве действительного члена библиотеки (клиента), персонал библиотеки (сервер) предоставит вам доступ к книгам в соответствии с правилами библиотеки. Например, у вас может быть установлен лимит заимствования, и библиотекарь (сервер) позаботится о том, чтобы вы могли брать только разрешенное количество книг.
    • Безопасность книг: библиотеки используют различные меры безопасности для защиты своих книг от кражи и повреждения. У них могут быть датчики безопасности на выходе, чтобы определить, попытается ли кто-то покинуть библиотеку с книгой, которая не была должным образом проверена. Кроме того, они могут помечать книги бирками или этикетками, чтобы их можно было легко идентифицировать как собственность библиотеки.
    • Конфиденциальность данных: библиотеки также обеспечивают конфиденциальность данных своих пользователей. Они не передают вашу историю заимствований или личную информацию другим лицам, обеспечивая уважение и защиту вашей конфиденциальности.

IP


что такое IP

IP-адрес — это уникальный адрес, который идентифицирует устройство в Интернете или локальной сети. IP расшифровывается, как «Internet Protocol» и означает «Интернет-протокол», который представляет собой набор правил, регулирующих формат данных, отправляемых через Интернет или локальную сеть.

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

Выделяют несколько типов IP-адресов.

По доступности:

  • общественный (внешний)
  • частный (внутренний)

По изменяемости:

  • статический
  • динамический

Общедоступный IP-адрес — это адрес, где один основной адрес связан со всей вашей сетью. В этом типе IP-адреса каждое из подключенных устройств имеет один и тот же IP-адрес.

Пример: IP-адрес, предоставленный вашему маршрутизатору провайдером.

Частный IP-адрес — это уникальный IP-номер, присваиваемый каждому устройству, которое подключается к вашей интернет-сети, включая такие устройства, как компьютеры, планшеты и смартфоны, которые используются в вашей семье.

Пример: IP-адреса, сгенерированные вашим домашним маршрутизатором для ваших устройств.

Статический IP-адрес не меняется и создается вручную, а не назначается. Эти адреса обычно дороже, но более надежны.

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

Динамический IP-адрес время от времени меняется и не всегда одинаков. Он был назначен сервером протокола динамической конфигурации хоста (DHCP). Динамические IP-адреса являются наиболее распространенным типом адресов интернет-протокола. Они дешевле в развертывании и позволяют нам повторно использовать IP-адреса в сети по мере необходимости.

Пример: они чаще используются для потребительского оборудования и личного пользования.

Версии IP-адресов

IPv4

Первоначальным интернет-протоколом является IPv4, в котором используется 32-разрядная цифровая запись с десятичной точкой, что позволяет использовать только около 4 миллиардов IP-адресов. Поначалу этого было более чем достаточно, но по мере распространения Интернета нам требовалось что-то получше.

Пример: 102.22.192.181

IPv6

IPv6 — это новый протокол, который был представлен в 1998 году. Его развертывание началось в середине 2000-х годов, и, поскольку количество интернет-пользователей росло в геометрической прогрессии, оно все еще продолжается.

Этот новый протокол использует 128-битную буквенно-цифровую шестнадцатеричную запись. Это означает, что IPv6 может предоставить около ~340e+36 IP-адресов. Этого более чем достаточно, чтобы удовлетворить растущий спрос на ближайшие годы.

Пример: 2001:0db8:85a3:0000:0000:8a2e:0370:7334


Модель OSI


Модель OSI — это логическая и концептуальная модель, которая определяет сетевое взаимодействие, используемое системами, открытыми для взаимодействия и связи с другими системами. Взаимосвязь открытых систем (модель OSI) также определяет логическую сеть и эффективно описывает передачу компьютерных пакетов с использованием различных уровней протоколов.

Модель OSI можно рассматривать как универсальный язык для компьютерных сетей. Он основан на концепции разделения системы связи на семь абстрактных уровней, каждый из которых накладывается на предыдущий.

Почему модель OSI имеет значение?

Модель взаимодействия открытых систем (OSI) определила общую терминологию, используемую в сетевых обсуждениях и документации. Это позволяет нам разобрать очень сложный коммуникационный процесс и оценить его компоненты.

Хотя эта модель не реализована напрямую в наиболее распространенных сегодня сетях TCP/IP, она все же может помочь нам сделать гораздо больше, например:

  • Упростите устранение неполадок и помогите выявить угрозы во всем стеке.
  • Поощряйте производителей оборудования создавать сетевые продукты, которые могут взаимодействовать друг с другом по сети.
  • Необходим для развития мышления, ориентированного на безопасность.
  • Разделите сложную функцию на более простые компоненты.

Слои OSI

За стеклом

Семь уровней абстракции модели OSI можно определить следующим образом сверху вниз:

  • Приложение

    Это единственный слой, который напрямую взаимодействует с данными от пользователя. Программные приложения, такие как веб-браузеры и почтовые клиенты, полагаются на прикладной уровень для инициирования связи. Но следует четко указать, что клиентские программные приложения не являются частью прикладного уровня, скорее, прикладной уровень отвечает за протоколы и манипулирование данными, на которые полагается программное обеспечение для представления значимых данных пользователю. Протоколы прикладного уровня включают HTTP, а также SMTP.

  • Презентация

    Уровень представления также называется уровнем перевода. Здесь извлекаются данные прикладного уровня и обрабатываются в соответствии с требуемым форматом для передачи по сети. Функции уровня представления — трансляция, шифрование/дешифрование и сжатие.

  • Сессия

    Это уровень, отвечающий за открытие и закрытие связи между двумя устройствами. Время между открытием и закрытием связи называется сеансом. Сеансовый уровень гарантирует, что сеанс остается открытым достаточно долго для передачи всех данных, которыми обмениваются, а затем быстро закрывает сеанс, чтобы не тратить ресурсы впустую. Сеансовый уровень также синхронизирует передачу данных с контрольными точками.

  • Транспорт

    Транспортный уровень (также известный как уровень 4) отвечает за сквозную связь между двумя устройствами. Это включает в себя получение данных с уровня сеанса и разбиение их на фрагменты, называемые сегментами, перед отправкой на сетевой уровень (уровень 3). Он также отвечает за повторную сборку сегментов на принимающем устройстве в данные, которые может использовать сеансовый уровень.

  • Сеть

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

  • Канал передачи данных

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

  • Физический

    Этот уровень включает физическое оборудование, участвующее в передаче данных, такое как кабели и коммутаторы. Это также уровень, на котором данные преобразуются в битовый поток, который представляет собой строку из 1 и 0. Физический уровень обоих устройств также должен согласовываться с соглашением о сигналах, чтобы можно было отличить 1 от 0 на обоих устройствах.


Протоколы TCP и UDP


TCP

Протокол управления передачей (TCP) ориентирован на установление соединения, то есть после установления соединения данные могут передаваться в обоих направлениях. TCP имеет встроенные системы для проверки на наличие ошибок и гарантии того, что данные будут доставлены в том порядке, в котором они были отправлены, что делает его идеальным протоколом для передачи информации, такой как неподвижные изображения, файлы данных и веб-страницы.

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

UDP

Протокол пользовательских дейтаграмм (UDP) — это более простой интернет-протокол без установления соединения, в котором не требуются службы проверки ошибок и восстановления. При использовании UDP нет дополнительных затрат на открытие соединения, поддержание соединения или завершение соединения. Данные непрерывно отправляются получателю, независимо от того, получают они их или нет.

Он в значительной степени предпочтителен для связи в реальном времени, такой как широковещательная или многоадресная передача по сети. Мы должны использовать UDP поверх TCP, когда нам нужна наименьшая задержка, а поздние данные хуже, чем потеря данных.

TCP vs UDP

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

TCP обеспечивает упорядоченную доставку данных от пользователя к серверу (и наоборот), тогда как UDP не предназначен для сквозной связи и не проверяет готовность получателя.

Сравнение TCP и UDP

Особенность TCP UDP
Подключение Требуется установленное соединение Протокол без установления соединения
Гарантированная доставка Может гарантировать доставку данных Не может гарантировать доставку данных
Ретрансляция Возможна повторная передача потерянных пакетов Без повторной передачи потерянных пакетов
Скорость Медленнее, чем UDP Быстрее, чем TCP
Вещание Не поддерживает вещание Поддерживает вещание
Варианты использования HTTPS, HTTP, SMTP, POP, FTP и т. д. Потоковое видео, DNS, VoIP и т. д.

Система доменных имен (Domain Name System - DNS)


Ранее мы узнали об IP-адресах, которые позволяют каждой машине соединяться с другими машинами. Но, как мы знаем, людям удобнее обращаться к именам, чем к числам. Легче запомнить имя вроде google.com, чем что-то вроде 122.250.192.232.

Это подводит нас к системе доменных имен (DNS), которая представляет собой иерархическую и децентрализованную систему именования, используемую для преобразования удобочитаемых доменных имен в IP-адреса.

Как работает DNS

За стеклом

Поиск DNS включает следующие восемь шагов: Клиент вводит example.com в веб-браузере, запрос отправляется в Интернет и принимается преобразователем DNS. Затем преобразователь рекурсивно запрашивает корневой сервер имен DNS. Корневой сервер отвечает распознавателю адресом домена верхнего уровня (TLD). Затем преобразователь отправляет запрос в TLD .com. Затем сервер TLD отвечает IP-адресом сервера имен домена, example.com. Наконец, рекурсивный преобразователь отправляет запрос серверу имен домена. Затем IP-адрес для примера.com возвращается распознавателю с сервера имен. Затем преобразователь DNS отвечает веб-браузеру с IP-адресом домена, запрошенного изначально. После разрешения IP-адреса клиент должен иметь возможность запрашивать содержимое с разрешенного IP-адреса. Например, разрешенный IP-адрес может возвращать веб-страницу для отображения в браузере.

Теперь давайте рассмотрим четыре ключевые группы серверов, составляющих инфраструктуру DNS.

DNS-преобразователь

Преобразователь DNS (также известный как рекурсивный преобразователь DNS) — это первая остановка в DNS-запросе. Рекурсивный преобразователь действует как посредник между клиентом и сервером имен DNS. После получения DNS-запроса от веб-клиента рекурсивный преобразователь либо ответит кэшированными данными, либо отправит запрос на корневой сервер имен, за которым следует еще один запрос на сервер имен TLD, а затем последний запрос на авторитетный сервер имен. После получения ответа от авторитетного сервера имен, содержащего запрошенный IP-адрес, рекурсивный преобразователь отправляет ответ клиенту.

корневой DNS-сервер

Корневой сервер принимает запрос рекурсивного преобразователя, который включает доменное имя, а корневой сервер имен отвечает, направляя рекурсивный преобразователь на сервер имен TLD на основе расширения этого домена (.com, .net, .org и т. д.). Корневые серверы имен контролируются некоммерческой организацией Интернет-корпорация по присвоению имен и номеров (ICANN).

Каждому рекурсивному преобразователю известно 13 корневых серверов имен DNS. Обратите внимание, что хотя существует 13 корневых серверов имен, это не означает, что в системе корневых серверов имен всего 13 машин. Существует 13 типов корневых серверов имен, но по всему миру существует несколько копий каждого из них, которые используют маршрутизацию Anycast для обеспечения быстрых ответов.

сервер имен ДВУ

Сервер имен TLD хранит информацию обо всех доменных именах, которые имеют общее расширение домена, такое как .com, .net или что-то еще, что следует после последней точки в URL-адресе.

Управление серверами имен TLD осуществляется Управлением по присвоению номеров в Интернете (IANA), которое является филиалом ICANN. IANA разделяет серверы TLD на две основные группы: - Общие домены верхнего уровня: это такие домены, как .com, .org, .net, .edu и .gov. - Домены верхнего уровня с кодом страны: к ним относятся любые домены, относящиеся к стране или штату. Примеры включают .uk, .us, .ru и .jp.

Авторитетный DNS-сервер

Авторитетный сервер имен обычно является последним шагом распознавателя на пути к IP-адресу. Полномочный сервер имен содержит информацию, относящуюся к доменному имени, которое он обслуживает (например, google.com), и может предоставить рекурсивному преобразователю IP-адрес этого сервера, найденный в записи A DNS, или если домен имеет запись CNAME (псевдоним). он предоставит рекурсивному распознавателю псевдоним домена, после чего рекурсивный распознаватель должен будет выполнить совершенно новый поиск DNS, чтобы получить запись с авторитетного сервера имен (часто запись A, содержащая IP-адрес). Если он не может найти домен, возвращает сообщение NXDOMAIN.

Типы запросов

В системе DNS существует три типа запросов:

  • Рекурсивный

    В рекурсивном запросе DNS-клиент требует, чтобы DNS-сервер (обычно рекурсивный преобразователь DNS) отвечал клиенту либо запрошенной записью ресурса, либо сообщением об ошибке, если преобразователь не может найти запись.

  • Итеративный

    В итеративном запросе DNS-клиент предоставляет имя хоста, а DNS Resolver возвращает лучший из возможных ответов. Если сопоставитель DNS имеет соответствующие записи DNS в своем кэше, он возвращает их. Если нет, он направляет DNS-клиент к корневому серверу или другому полномочному серверу имен, ближайшему к требуемой зоне DNS. Затем DNS-клиент должен повторить запрос непосредственно к DNS-серверу, на который он ссылается.

  • Нерекурсивный

    Нерекурсивный запрос — это запрос, ответ на который DNS Resolver уже знает. Он либо немедленно возвращает запись DNS, поскольку она уже хранится в локальном кеше, либо запрашивает сервер имен DNS, который является авторитетным для записи, что означает, что он определенно содержит правильный IP-адрес для этого имени хоста. В обоих случаях нет необходимости в дополнительных циклах запросов (как в рекурсивных или итерационных запросах). Вместо этого ответ немедленно возвращается клиенту.

  • Типы записей

    Записи DNS (также известные как файлы зон) — это инструкции, которые находятся на авторитетных DNS-серверах и предоставляют информацию о домене, включая IP-адрес, связанный с этим доменом, и способы обработки запросов для этого домена.

    Эти записи состоят из серии текстовых файлов, написанных с использованием так называемого синтаксиса DNS. Синтаксис DNS — это просто строка символов, используемых в качестве команд, которые сообщают DNS-серверу, что делать. Все записи DNS также имеют «TTL», который обозначает время жизни и указывает, как часто DNS-сервер будет обновлять эту запись.

    Есть и другие типы записей, но сейчас давайте рассмотрим некоторые из наиболее часто используемых: A (запись адреса): это запись, содержащая IP-адрес домена. AAAA (запись адреса IP версии 6): запись, содержащая адрес IPv6 для домена (в отличие от записей A, в которых хранится адрес IPv4). CNAME (запись канонического имени): перенаправляет один домен или поддомен в другой домен, НЕ предоставляет IP-адрес. MX (запись почтового обменника): направляет почту на почтовый сервер. TXT (текстовая запись): эта запись позволяет администратору сохранять текстовые заметки в записи. Эти записи часто используются для защиты электронной почты. NS (записи сервера имен): Сохраняет сервер имен для записи DNS. SOA (Start of Authority): хранит административную информацию о домене. SRV (запись местоположения службы): указывает порт для определенных служб. PTR (записи указателя обратного просмотра): предоставляет доменное имя при обратном поиске. CERT (запись сертификата): хранит сертификаты открытого ключа.

  • Субдомены

    Субдомен — это дополнительная часть нашего основного доменного имени. Он обычно используется для логического разделения веб-сайта на разделы. Мы можем создать несколько поддоменов или дочерних доменов на основном домене.

    Например, blog.example.com, где blog — субдомен, example — основной домен, а .com — домен верхнего уровня (TLD). Подобными примерами могут быть support.example.com или careers.example.com.

  • Зоны DNS

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

  • DNS-кэширование

    Кэш DNS (иногда называемый кешем преобразователя DNS) — это временная база данных, поддерживаемая операционной системой компьютера, которая содержит записи обо всех недавних посещениях и попытках посещения веб-сайтов и других интернет-доменов. Другими словами, кеш DNS — это просто память о недавних запросах DNS, к которым наш компьютер может быстро обратиться, когда пытается выяснить, как загрузить веб-сайт.

    Система доменных имен реализует время жизни (TTL) для каждой записи DNS. TTL указывает количество секунд, в течение которых запись может кэшироваться клиентом или сервером DNS. Когда запись хранится в кеше, любое значение TTL, которое было получено вместе с ней, также сохраняется. Сервер продолжает обновлять TTL записи, хранящейся в кеше, отсчитывая каждую секунду. Когда он достигает нуля, запись удаляется или вычищается из кеша. В этот момент, если получен запрос для этой записи, DNS-сервер должен начать процесс разрешения.

  • Обратный DNS

    Обратный поиск DNS — это запрос DNS для доменного имени, связанного с данным IP-адресом. Это противоположно более часто используемому прямому поиску DNS, при котором система DNS запрашивается для возврата IP-адреса. Процесс обратного разрешения IP-адреса использует записи PTR. Если на сервере нет записи PTR, он не может разрешить обратный поиск.

    Обратный поиск обычно используется почтовыми серверами. Серверы электронной почты проверяют и видят, пришло ли сообщение электронной почты с действительного сервера, прежде чем передавать его в свою сеть. Многие почтовые серверы будут отклонять сообщения с любого сервера, который не поддерживает обратный поиск, или с сервера, который вряд ли будет законным.

    Примечание. Обратный поиск в DNS используется не повсеместно, поскольку он не имеет решающего значения для нормальной работы Интернета.

Вот некоторые широко используемые управляемые DNS-решения: