Поволжский Государственный Университет Телекоммуникаций и Информатики Кафедра Информационных Систем и Технологий Кэширующие системы Выполнили: Уксусов К. С., Гусев М. В. Введение Итак, что же называется «кэшированием»? Это помещение данных в особую память, называемую кэш(от английского cache) - промежуточный буфер с быстрым доступом, который содержит копию той информации, что хранится в памяти с менее быстрым доступом, но с наибольшей вероятностью будет оттуда запрошена. Зачем использовать кэширование? Как уже указывалось, кэш - память с более высокой скоростью работы, следовательно доступ к данным хранящимся в нём будет быстрее, нежели выборка исходных данных из более медленной памяти, или итого хуже - их перевычисление. Следовательно мы имеем, что среднее время доступа к данным сокращается, когда в большей степени, когда в меньшей. История появления Впервые слово «кэш» в компьютерном контексте было использовано в 1967 году во время подготовки статьи для публикации в журнале «IBM Systems Journal». Статья касалась усовершенствования памяти в разрабатываемой модели 85 из серии IBM System/360. Редактор журнала Лайл Джонсон попросил придумать более описательный термин, нежели «высокоскоростной буфер», но из-за отсутствия идей сам предложил слово «кэш». Статья была опубликована в начале 1968 года, авторы были премированы IBM, их работа получила распространение и впоследствии была улучшена, а слово «кэш» вскоре стало использоваться в компьютерной литературе как общепринятый термин. Использование кэширования ► Кэширование в ЦПУ Современные процессоры обладают собственным кэшем. Существуют три кэша, каждый следующий больше по объёму, но обладает меньшей скоростью. ► Кэширование внешних накопителей Самый старый вид кэширования. Скорость доступа к оперативной памяти значительно выше чем к дисковым накопителям, гибким дискам, flash-памяти CD и DVD дисков. ► Кэширование выполняемое операционной системой Помещение операционной системой буферов в оперативную память. ► Кэширование Интернет-страниц Сохранение объектов Интернет-страниц на локальной машине или в общем кэше прокси-сервера провайдера Кэширование Web-страниц Для оптимизации работы с сетью используется механизм сохранения однажды полученных по HTTP документов в кэше с целью их повторного использования без обращения к серверуисточнику. Документ, сохраненный в кэше будет доступен при следующем обращении к нему, без выгрузки с сервера-источника, что призвано повысить скорость доступа клиента к нему и уменьшить расход трафика сети. Виды кэшей Сами кэши бываю двух видов - локальные и общие. Локальный это кэш, хранимый непосредственно на диске у клиента, создаваемый и управляемый его браузером. Общий - кэш проксисервера организации или провайдера и может состоять из одного или нескольких прокси-серверов. Программное и аппаратное обеспечение Squid Squid это результат усилий нескольких людей из сообщества Internet. Возглавляет проект Duane Wessels из National Laboratory for Applied Network Research (основанной National Science Foundation). Squid это высокопроизводительный кэширующий прокси для web клиентов, поддерживающий ftp, gopher, и http. В отличии от традиционных кэширующих программ, Squid все запросы выполняет как один, неблокируемый процесс ввода/вывода. Squid сохраняет часто запрашиваемые данные в ОЗУ, кэширует DNS запросы, не блокируется при выполнении DNS запросов, и не кэширует неудавшиеся запросы. Также поддерживает SSL, расширенный контроль доступа и полную регистрацию запросов. Используя Internet Cache Protocol (ICP), кэши Squid можно расположить иерархически для дополнительного выигрыша в пропускной способности канала. CoolProxy CoolProxy прокси-сервер для Microsoft Windows, предназначенный для организации доступа к ресурсам интернет из локальной сети через модемное или сетевое соединение. Осуществляет кэширование посещаемых в online веб-страниц на диске с возможностью просмотра посещённых страниц в режиме offline. Программа может стартовать различными способами. При установке ее, как службы, из папки «Автозагрузка», либо вручную. Определение текущего состояния определяется по наличию в системе сетевого интерфейса с реальным IP адресом, либо при наличии установленного RAS-соединения ( диалап ). HandyCache HandyCache от других локальных кэширующих систем отличается рядом особенностей. Во-первых, он обладает практически беспредельными возможность по управлению трафиком: что загружать из Интернет, что блокировать, что брать только из кэша, для разных сайтов можно устанавливать свои, особые, правила. Подробнее обо всём этом будет рассказано ниже. Вовторых, автор HandyCache очень оперативно реагирует на разумные предложения по улучшению программы. Третьим, и несомненно важным, преимуществом является то, что программа HandyCache абсолютно бесплатной. Аппаратные прокси Cobalt Cache - Web-кэш сервер В эту группу входят два устройства: CacheQube и CacheRaQ. Функционально они практически не различаются. В отличие от многих традиционных решений, CobaltCache может работать как прозрачный кэш, то есть не требует обязательной настройки всех браузеров на всех компьютерах компании. Проходящие через него запросы к WWW будут автоматически кэшироваться, если установить его в сеть должным образом. CacheRaQ, кроме этого, позволяет фильтровать доступ к Интернет и закрывать от браузеров те или иные сайты Интернет. Алгоритмы кэширования Самый старый из используемых (LRU-Least Recently Used) Является одним из наиболее протестированных алгоритмов. Этот алгоритм просто удаляет из кэша самый старый объект (с точки зрения времени его последнего использования). Идея подхода весьма прямолинейна - объект, который запрашивался недавно, скорее всего, будет запрошен снова в ближайшее время, и необходимо заместить более старые объекты до удаления любого из более новых ресурсов. Ряд исследований показали, что этот алгоритм не является лучшим для максимизации доли наиболее часто используемых объектов. Среди причин можно указать отсутствие временной локализации в ссылках на документы и то, что многие объекты запрашиваются только однократно. Самый редко используемый (LFU-Least Frequently Used) Этот алгоритм ранжирует документы по частоте доступа к ним и удаляет документы, которые имеют самую маленькую частоту. Размер объекта (SIZE) Другим критерием для выбора объекта, подлежащего замещению, является его размер. Удаляя из кэша объект самого большого размера, можно освободить место для нескольких объектов меньшего размера. Hyper-G (LFU/LRU/SIZE) Объединяет три предыдущие стратегии. Первыми кандидатами на замещение в этом алгоритме являются наименее часто используемые объекты (LFU). Если имеется несколько ресурсов, удовлетворяющих этому критерию, то удаляется самый старый из них (LRU). Если предыдущие операции все еще не определяют единственного ресурса, то удаляется тот из них, который имеет самый большой размер (SIZE). Протоколы кэширования Internet Cache Protocol (ICP) Этот протокол является примером протокола запросов сообщение, посланное клиентским кэшем, является запросом о наличии кэшированной копии определенного ответа, необходимого клиентскому кэшу. Популярность ICP основана на том, что он реализован в свободно распространяемом и широко используемом кэширующем прокси-сервере Squid. Протокол ICP оказался подходящим и для иерархических наборов кэшей, взаимодействующих на каждом уровне иерархии и имеющих общего родителя. При перемещении вверх по иерархии эта схема повторяется, соответствуя перемещению к центральному кэшу, который может быть подключен к другому центральному кэшу в другой локальной сети по такой же схеме. Cache Array Resolution Protocol (CARP) Этот протокол определяет механизм, с помощью которого группа кэширующих прокси-серверов может функционировать как единый логический кэш. Набор ответов, который коллективно кэшируется группой прокси-серверов трактуется как один большой кэш. Специальные хэш-функции используются для кодирования URL ресурсов, хранящихся в различных кэшах. Клиент, пытающийся найти кэшированный ресурс, может направить запрос соответствующему кэшу, кодированный с помощью этой функции. Хэш-функция преобразует запрошенный URL и идентификатор требуемого прокси-сервера, создавая специальный путь разрешения запроса. Cache Digest Protocol (CADP) Протокол Cache Digest Protocol является расширением протокола ICP. Основная его цель заключается в обмене дайджестами кэшированных ресурсов. Дайджест представляет собой сжатое описания кэшированных ресурсов и определяет наличие набора ресурсов в кэше. Когда кэш имеет дайджесты всех других кэшей на данном уровне иерархии, то можно быстро проверить наличие искомого объекта. Если поиск в дайджесте оказывается успешным, то кэш становится кандидатом на получение запроса на искомый объект. Запрашивающий кэш может даже выбрать из нескольких кэшей, для которых поиск в оказался успешным. Если проверка по дайджесту оказалась неудачной, то взаимодействие с кэшем не осуществляется. Web Cache Coordination Protocol (WCCP) Назначением WCCP является перехват HTTP-запросов и переадресации их кэшу. Поскольку запрос может оказаться отвергнутым (если кэш по какой-либо причине будет недоступен), то необходим координационный механизм. Задача координатора заключается в выравнивании нагрузки между множеством кэшей. Периодически проверяя работоспособность кэша, данная технология гарантирует, что пакеты не будут посланы неработоспособному кэшу. Такой координационный механизм заложен в ядро протокола WCCP, который реализован как часть технологии Cisco Cache Engine. Этот механизм настроен на получение Web-запросов, перенаправленных ему маршрутизатором.