Служба имен доменов (DNS)
И-хосты имеют множество идентификаторов. Одним из них является имя хоста, представляет собой мнемоническую, а сл-но удобную для восприятия человеком запись, например www.mail.ru. Недостатки: 1) не содержат инфу о конкретном месторасположении хоста, единственным указателем на месторасположение может служить код страны. 2) значительная длина, существенные затраты на обработку маршрутизаторами. Введен другой идентификатор - IP-адрес. - представляет собой совокупность 4 однобайтовых чисел и имеет жесткую иерархическую структуру. Используют десятично-точечную нотацию. Иерархичность в том, что при чтении слева направо получаем всё более точную инфу о местонах хоста в И.
Функции DNS: Для установления связи между именем хоста и его IP-адресом используется система доменных имен (DNS). Представляет собой с одной стороны БД, распределенную между иерархически структурированными серверами имен, и, с другой стороны, протокол прикладного уровня, организующий взаимодействие между хостами и серверами имен для выполнения операций преобразования. Порт 53. Работает поверх протокола UDP транспортного уровня. Обычно используется другими протоколами прикладного уровня: HTTP, SMTP, FTP для получения IP-адресов вместо вводимых пользователем имен хостов. Помимо преобразования имен хостов в IP-адреса DNS выполняет ещё несколько важных функций: 1) Поддержка псевдонимов серверов (хосты с длинными именами могут иметь 1 или несколько серверов, например, хосту relay1.west-coast.enterprise.com (каноническое имя) можно присвоить 2 псевдонима - enterprise.com и www.enterprise.com) 2) Поддержка псевдонимов почтовых адресов 3) Распределение загрузки (популярные сайты расположены на различных серверах с различными IP-адресами, ТО в случае дублирующих серверов с одним именем хоста связано несколько IP-адресов, которые хранятся в бд DNS.
Общие принципы функционирования DNS: («черный ящик» на входе имя хоста, на выходе IP-адрес) Службу DNS можно представить в виде единственного центрального сервера имен, который содержит всю инфу об именах хостов и их IP-адресах. Этот сервер принимает запросы и отсылает ответы без посредников напрямую каждому DNS-клиенту. Недостатки: 1) Единственная точка возможного отказа. Является узким местом с точки зрения надежности - отказ парализует всю работу И. 2) Объем трафика. Узкое место с точки зрения загрузки (обрабатывает запросы с сотен миллионов хостов всего мира) 3) Удаленность централизованной базы. Невозможно расположить единственный сервер на приемлемом расстоянии для всех клиентов. 4) Обслуживание. Бд должна хранить не только Ареса всех сущ хостов, но и постоянно обновляться с появлением новых хостов. ТО создание единственного сервера имен с централизованной БД невозможно. DNS - пример реализации в И - распределенная бд. Ни один сервер не содержит инфу о всех адресах, она распределена между множеством серверов. Можно классифицировать:
Локальные серверы имен имеются у каждого И-провайдера (сервера имен по умолчанию). Расположен не относительно небольшом расстоянии от пользовательского хоста
Корневые серверы имен являются следующей ступенью в иерархии серверов DNS. Немногим более 10. Если в его бд не найден IP-адрес, то в ответ отсылается IP-адрес полномочного сервера имен, который располагает искомым IP-адресом.
Полномочный сервер имен - это сервер, на котором зарегистрирован данных хост (обычно локальный сервер И-провайдера). Содержит инфу о связи имени хоста с его IP-адресом. Многие серверы имен одновременно являются локальными и полномочными.
хост или сервер имен А обращается к серверу имен В, последний предпринимает необходимые для получения требуемого IP-адреса действия от имени А и предает его А - рекурсивные запросы. Также есть итеративные запросы, отличаются тем, что в случае отсутствия искомого IP-адреса сервер имен В возвращает А IP-адрес следующего сервера имен в цепочке к которому А должен обратиться самостоятельно.
Механизм кэширования активно используется DNS Для того, чтобы сократить число запросов и время получения IP-адреса. При получении ответа с IP-адресом хоста, сохраняет пару в памяти.
DNS-записи: Серверы имен, в совокупности образующие бд DNS хранят ресурсные записи (RR), связывающие имена хостов с их IP-адресами. RR(Name, Value, Type, TTL), TTL - время жизни.
Type: 1) A: Name=имя хоста, Value=IP 2) NS: Name=домен, value = имя зоята или полномочного сервера. 3) CNAME: Value - каноническое имя хоста, Name - псевдоним хоста. 4) MX Value = каноническое имя почтового сервера, Name - псевдоним.
DNS-сообщения: запрос, ответ
Идентификатор | Флаги | 12 байт |
Кол-во вопросов | Кол-во ответных RR-записей | |
Кол-во RR-записей полномочного источника | Количество дополнительных RR-записей | |
Вопросы (кол-во вопросов переменное) | Имя, поля типов для запроса | |
Ответы (кол-во RR-записей переменное) | RR-записи в ответ на запрос | |
Полномочный источник (кол-во RR-записей переменное) | Записи для полномочного сервера | |
Дополнительная информация (кол-во RR-записей переменное) | Дополнительная «полезная» информация |
Первые 12 байт составляют заголовочную секцию. Id - 16-разрядное число, Флаг - 1 разряд - запрос(0)/ответ(1)
Секция вопросов содержит инфу о запросе и включает поле имени, в котором указано имя запрашиваемого хоста, и поле типа. определяющее содержание ответа. Секция ответов присутствует в ответных сообщениях. Секция полномочности включает записи о других полномочных серверах. Дополнительная секция содержит прочие «полезные» записи.
Распределение нагрузки (CDN, основные варианты организации). Web-proxy, принцип действия. P2P-сети (основные варианты организации).
Web-proxy, является объектом сети, который отвечает на HTTP запрос от имени клиента. Proxy имеет собственную дисковую память, в которой хранится копия запрошенных объектов (Web-кэш). После того, как браузер настроен определенным образом, любой запрашиваемый объект сначала ищется в web-кэше.
Прокси-сервер - служба в компьютерных сетях, позволяющая клиентам выполнять косвенные запросы к другим сетевым службам. Сначала клиент подключается к прокси-серверу и запрашивает какой-либо ресурс (например, файл), расположенный на другом сервере. Затем прокси-сервер либо подключается к указанному серверу и получает ресурс у него, либо возвращает ресурс из собственного кэша. В некоторых случаях запрос клиента или ответ сервера может быть изменён прокси-сервером в опр целях.
кэширование - процесс сохранения часто запрашиваемых документов на промежуточных прокси-серверах или машине пользователя, с целью предотвращения их постоянной загрузки с сервера-источника и уменьшения трафика. Т.е. перемещение информации поближе к пользователю. Управление кэшированием осуществляется при помощи HTTP-заголовков.
Прокси-сервер может играть роль как клиента, так и сервера. Является формой распределенных ресурсов, тк дублируют объекты серверов-источников и организуют доступ пользователей к локальным копиям объектов.
Получило распространение: 1) способны значительно сократить время выполнения запроса пользователя (в особенности, если скорость передачи между пользователем и кэш-сервером превышает скорость между пользователем и сервером-источником. 2) способен значительно снизить трафик между локальными сетями и И. 3) позволяет с большей ск распр-ть ресурсы среди пользователей.
Несколько территориально распределенных кэш-серверов могут объединяться и функционировать совместно. Например локальный кэш-сервер организации в случае необходимости направлял запрос к магистральному кэш-серверу И-провайдера. Это обеспечит двухступенчатый поиск. Альтернативным вариантом системы кэширования являются кластеры кэшей, расположенных внутри одной локальной сети. Такая система порождает проблему: к какому обратиться при поиске. Это решается маршрутизацией с использованием хэш-функций.
CDN: Применение кэш-серверов способно значительно сократить время доставки наиболее востребованных ресурсов.
Также широкое распространение получила технология CDN (сети распределенных ресурсов). Потребитель услуг - поставщики ресурсов. План функционирования: 1. Компания устанавливает мн-во И-серверов, распределенных в И (в центрах И-хостинга, принадлежащих сторонним компаниям, здания с большим числом хостов). 2. Копирует ресурсы своих потребителей на CDN-северы,
при обновлении компания заменяет старое содержимое новым. 3. Обеспечивается такое обслуживание при котором CDN осущ обработку запроса за мин время (территориально близок, нет перегруженных узлов). Схема: 1. поставщик ресурсов определяет объекты 2. нужные объекты отсылаются узлу распределения CDN, который доставляет их на все CDN-серверы. 3. Когда браузер пользователя формирует запрос используется механизм DNS-перенаправления, указывающий браузерам адрес нужного сервера.
Одноранговое разделение файлов: P2P.Каждая одноранговая система одновременно является поставщиком и потребителем ресурсов. Все объекты передаются между хостами без участия 3 стороны (создается прямое TCP-соединение). Не смотря на то, что обмен происходит децентрализовано, фактически используется парадигма клиент/сервер. Обычно в каждый момент времени сущ мн-во подключенных к P2P-системе пользователей, каждый из которых обладает доступными ресурсами. В каждый момент времени происходит отключение и подключение новых пользователей, для поиска нужно получить IP-адреса.
Варианты поиска ресурсов: Централизованный каталог: создается сервер или объединение серверов (при запуске сообщает свой IP и список файлов), ТО - это динамическая БД, с помощью которой все системы могут получить инфу друг о друге. Необходимо следить за активностью (генерация сообщений, TCP-соединение). Недостатки: (одна точка возможного отказа, возможность перегрузки, защита авторских прав). Децентрализованный каталог: Распределение ресурсов центрального каталога между одноранговыми системами. Выделяется часть систем и они становятся лидерами групп. Система разбивается на мн-во связанных между собой одноранговых подсистем, в которых лидер групп играет роль центрального сервера. Одноранговые системы с их взаимосвязью образуют абстрактную логическую структуры - оверлейная сеть. Достоинство: отсутствие выделенного сервера для базу данных каталога. Недостатки: необходим сложный протокол взаимодействия, лидеры групп не являются истинно одноранговыми по отношению к остальным членам групп, присутствует непрерывно функционирующий сервер, выполняющий функции узла начальной загрузки. Поток запросов: Одноранговые системы самоорганизуются в оверлейную сеть, имеющую плоскую, неструктурированную топологию. Все пользователи равны между собой. Присоединение нового узла происходит с помощью узла начальной загрузки. Каждая система располагает сведениями только о своих соседях. Требуется сложный протокол. Для поиска - поток запросов. Отсутствует БД. Запрос по всей системе - трафик - ограничение.