Конспект лекций По дисциплине «Свети эвм» Для специальности

Вид материалаКонспект
Подобный материал:
1   ...   9   10   11   12   13   14   15   16   17

10.3 Proxy-серверы


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

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

Proxy-серверы «разрывают» прямое соединение между клиентом и сервером при этом все внутренние IP-адреса сети отображаются на один-единственный «надежный» IP-адрес. Благодаря функционированию на прикладном уровне модели OSI proxy-серверы могут делать многое. Любой proxy-сервер состоит из множества специфических посредников для конкретных приложений: посредника HTTP для страниц Web, посредника ftp, посредника SMTP/POP для электронной почты; посредника HTTP для серверов новостей, посредника RealAudio/RealVideo и т. д. Каждый из этих посредников принимает пакеты только тех служб, для копирования, передачи и фильтрации которых он создан.

Недостаток proxy-серверов для соединений состоит в том, что они не способны анализировать содержимое пакетов на прикладном уровне. Эту проблему решает такая программная технология, как SOCKS. SOCKS представляет собой не зависящий от платформы стандарт для доступа к посредникам для соединений. Доступ может осуществляться либо через специальное «SOCKS-ифицированное» приложение с клиентского компьютера, в других отношениях не подвергавшегося никаким изменениям, либо с каждого приложения, выполняющегося на компьютере, на котором установлено передаточное звено SOCKS (разделяемые или динамически компонуемые библиотеки).

Помимо стандартизации SOCKS поддерживает идентификацию как с помощью имен/паролей, так и на базе API. Кроме того, она поддерживает шифрование с помощью открытых и личных ключей.

Основная функция proxy-сервера — это организация кэширования. Базовая функция кэширования proxy-сервера работает во многом аналогично встроенной в браузеры Web за тем отличием, что содержимое кэша proxy-сервера доступно для множества пользователей. Всякий раз, когда какой-либо пользователь локальной сети запрашивает страницу из Internet, она сохраняется локально, что значительно ускоряет скорость доступа (см. рисунок)



Рис. 7 Модель работы сети с использованием Proxy-сервера

Кэширование позволяет оптимизировать функционирование соединения с Internet посредством преобразования случайных нерегулярных запросов HTTP в эффективный поток на базе правил.

Некоторые proxy-серверы предлагают упреждающее кэширование, т. е. они загружают в кэш изображения и другие содержащиеся на странице Web объекты до того, как браузер их запросит. Кэш может заполняться заранее с помощью механизма, известного как «множитель последних изменений». При этом proxy-сервер анализирует даты создания часто запрашиваемых страниц, прогнозирует вероятный срок изменения и запрашивает их по его наступлении. И конечно, proxy-серверы позволяют администраторам проводить плановое пакетное копирование страниц Web в любое время дня и ночи, когда объем сетевого трафика невелик.

Некоторые proxy-серверы имеют такую дополнительную функцию, как обратное кэширование. При этом кэш-серверы сохраняют не только страницы из Internet для локальных пользователей, но и локальные страницы для пользователей в Internet.

Как бы быстро он ни работал, ни один кэш-сервер не в состоянии сохранить все. Неизбежно наступает момент, когда какой-либо пользователь запрашивает отсутствующие в кэше данные, которые затем медленно передаются по Internet. Однако эту проблему можно смягчить посредством организации взаимодействия между несколькими кэш-серверами так, чтобы они могли получать информацию друг от друга. Для этого предназначен протокол кэширования Internet (Internet Cache Protocol, ICP), с помощью которого организуется иерархическая структура кэшей.

В иерархической (или многосвязной) структуре каждый кэш устанавливает отношения с другим кэшем. Отношения бывают двух типов: подчиненные и равноправные. При отсутствии запрошенного объекта кэш посылает запрос ICP о наличии требуемого объекта у какого-либо из равноправных кэшей. В случае его отсутствия и у равноправных кэшей запрос направляется вышестоящему серверу. Типичная иерархия кэшей показана на рисунке 19.




Рис. 8 Иерархия кэшей

Протокол кэширования Internet (Internet Cache Protocol, ICP) связывает между собой кэш-серверы в равноправно-подчиненную иерархию. Локальный кэш может запрашивать отсутствующие у него объекты как у равноправных, так и у вышестоящих кэшей.

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

Другая проблема с ICP состоит в том, что со временем такие группы серверов оказываются избыточными. В конечном итоге у каждого из серверов в группе появляются свои копии часто запрашиваемых URL. По этой причине ICP постепенно вытесняется протоколом маршрутизации для группы кэш-серверов (Cache Array Routing Protocol, CARP), предложенным Microsoft.

В случае CARP кэш-серверы отслеживаются посредством «списка членства в группе», автоматически обновляемого с помощью функции Time-to-Live (TTL), регулярно проверяющей дееспособность активных серверов. Затем с помощью алгоритма хэширования определяется, кто из членов группы должен обслуживать запрос к конкретному URL.

Кэш-серверы долгое время рассматривались как полезные бесплатные приложения к proxy-серверам. Теперь, когда нагрузка на Internet неизмеримо возросла, и все большее число клиентов имеет высокоскоростные соединения, термины «кэш-сервер» и «proxy-сервер» вряд ли можно по-прежнему использовать взаимозаменяемо.

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