Сергей Шавров, Вадим Панферов

 

В зрывной рост Web-трафика в сети Internet ставит перед провайдерами услуг (ISP) первоочередную задачу эффективного использования существующих каналов связи. Чтобы оптимизировать Web-трафик, ISP очень часто прибегают к разнообразным техническим хитростям, например используют серверы-посредники (proxy). Именно этой цели служит устройство Cache Engine компании Cisco Systems, осуществляющее управление и обслуживание Web-запросов.

Это устройство работает с маршрутизаторами, функционирующими под управлением ОС Cisco IOS, по протоколу WCCP (Web Cache Control Protocol), который направляет к нему трафик HTTP (Web- или специализированный трафик, использующий 80-й порт TCP). Можно сказать, что маршрутизатор и устройство Cache Engine работают в паре для того, чтобы обеспечить обработку трафика, содержащего пользовательские запросы на просмотр страниц и графическое оформление внутренних и внешних серверов World Wide Web, а также ответы на пользовательские запросы.

При получении от пользователя запроса на загрузку той или иной страницы маршрутизатор в первую очередь передает его на устройство Cache Engine. Если в его накопителях есть копия запрошенной страницы, она пересылается пользователю. В противном случае устройство Cache Engine обращается к серверу WWW, получает оригинал запрошенной страницы и все объекты, связанные с ней, сохраняет копию в своих накопителях и одновременно передает содержимое страницы пользователю.

Благодаря кэшированию WWW-объектов устройство Cisco Cache Engine обеспечивает увеличение скорости обработки пользовательских запросов при работе с Internet, особенно при одновременной работе нескольких пользователей с одним сервером WWW.

Максимальное количество TCP-сессий для каждого устройства Cache Engine ограничивает объем трафика, который оно может обслужить в данный момент времени. Это следует предусмотреть во избежание перегрузок. Как только будет достигнуто предельное количество открытых сессий, пользователи при обращении к WWW-серверу будут получать сообщения о том, что он перегружен или недоступен. Для обеспечения доступа запросы придется повторять до тех пор, пока оборудование не будет в состоянии их обработать.

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

- количеством сессий TCP, которые необходимы при запуске программ просмотра. Некоторые такие программы пытаются открыть новую сессию для каждого объекта загружаемой страницы. Например, если на странице содержится 25 независимых рисунков, то программа просмотра откроет 26 сессий - по одной для каждого рисунка и одну собственно для страницы. Если пользователи внутренней сети работают со страницами, насыщенными графическими материалами, то устройства Cache Engine будут достигать предельного количества открытых сессий значительно чаще, чем при использовании только текстовых страниц;

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

Аппаратные требования Cache Engine

Устройство Cache Engine может быть включено в состав внутренней сети при выполнении следующих условий:

- маршрутизатор, работающий непосредственно с устройством, должен функционировать под управлением ОС Cisco IOS, поддерживающей протокол WCCP. Например, Cache Engine может работать с различными версиями IOS: Cisco IOS Release 11.1 (14)CA (маршрутизаторы Cisco 7500 и 7200); Cisco IOS Release 11.2 (10)P (маршрутизаторы Cisco 2500, 36xx, 4x00, RSP7000, 7200, и 7500); с модулями маршрутизации для коммутаторов семейства Catalyst 5000;

- физическое подключение устройства к сети выполняется по топологии Ethernet (10 Мбит/с) или Fast Ethernet (100 Мбит/с) с использованием разъемов RJ-45.

Необходимо сказать, что устройство имеет консольный порт, обеспечивающий функции управления и начальной конфигурации. К нему можно подключить либо обычный терминал VT100, либо настольный (блокнотный) ПК через последовательный порт. После проведения первичной конфигурации управление устройством может осуществляться через браузер из любого места интрасети. Один маршрутизатор обеспечивает работу до 32 таких устройств.    

Основная задача устройств Cisco Cache Engine

Устройства Cisco Cache Engine взаимодействуют с маршрутизаторами при управлении Web-трафиком. Получив запрос по 80-му порту TCP (обычно HTTP- или WWW-трафик), маршрутизатор прозрачно направляет его на Cisco Cache Engine. Последнее в свою очередь пытается удовлетворить поступивший запрос за счет содержимого собственных накопителей. Если содержимое запрашиваемой страницы уже есть на накопителях, Cache Engine возвращает ее пользователю. С точки зрения пользователя страница приходит к нему непосредственно с сервера WWW, к которому идет обращение. Выполняя таким образом обработку запросов, устройство Cache Engine блокирует их передачу в Internet и освобождает полосу пропускания каналов связи для других нужд. При таком положении вещей пользователь быстрее получает интересующую его информацию.

Если содержимого запрашиваемой страницы в накопителях нет, устройство Cache Engine получает его самостоятельно, обратившись на сервер WWW. После этого производятся две операции: передача содержимого пользователю и сохранение полученных данных в накопителях устройства (кэширование). А если содержание той же самой страницы запросит другой пользователь, то его запрос будет обработан локально, без передачи запросов в Internet.

Таким образом, весь трафик WWW независимо от направления проходит через устройство Cache Engine, управляющее связью пользователей с Internet. По этой причине может возникнуть необходимость в предотвращении доступа пользователей к тем или иным серверам и страницам. Более того, в параметрах конфигурации можно указать, какие типы объектов страниц не следует кэшировать (например, аплеты языка Java).    

Home Router и Cache Engine

Устройство Cache Engine и маршрутизатор работают в паре, т. е. соответствуют друг другу. Маршрутизатор, к которому относится Cache Engine, называется по отношению к нему home router (мы будем его называть основным маршрутизатором). Хотя эта пара не обязательно должна находиться в одной и той же подсети, такое подключение является предпочтительным, так как позволяет ограничить распространение трафика, возникающего при взаимодействии устройств, в рамках одной подсети.

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

Основной маршрутизатор имеет информацию о каждом устройстве Cache Engine, к одному маршрутизатору можно подключить несколько таких устройств. Все они в таком случае будут называться cache farm (фермой). Устройства, входящие в состав фермы, могут находиться в разных подсетях.    

Кэш-иерархия

Каждый основной маршрутизатор направляет трафик WWW к подключенным к нему устройствам Cache Engine, которые управляют передачей данных между серверами WWW и пользователями. Если этот трафик проходит через два или несколько основных маршрутизаторов, то запрос обрабатывается несколькими фермами. Взаимоотношения между этими фермами называются cache hierarchy (иерархией ферм).

Сеть, содержащая устройства Cache Engine

Рассмотрим пример. Пользователь PC-2 (см. рисунок) запрашивает некую страницу с сервера Internet. Запрос пройдет следующий путь.

1. Основной маршрутизатор 3 направляет его к устройству Cache Engine, входящему в состав фермы F2 (это означает, что трафик WWW сосредотачивается на интерфейсе, связывающем маршрутизаторы 3 и 2).

2. Если устройства фермы F2 располагают копией запрошенной страницы, они возвращают страницу пользователю PC-2 и завершают обработку запроса.

3. В противном случае устройства фермы F2 посылают ответный запрос маршрутизатору 3, который передает его маршрутизатору 2.

4. Маршрутизатор 2 передает запрос непосредственно маршрутизатору 1, потому что маршрутизатор 2 не обслуживает устройства Cache Engine.

5. Маршрутизатор 1 посылает запрос ферме F1 (это означает, что трафик WWW сосредотачивается на интерфейсе, связывающем маршрутизатор 1 с Internet).

6. Если устройства фермы F1 имеют копию запрошенной страницы, то она (копия) передается ферме F2, так как именно эта группа устройств занимается обслуживанием пользователя PC-2. Когда страница достигает маршрутизатора 3, он передает ее на устройства фермы F2. Устройства фермы F2 помещают копию страницы на свои накопители, одновременно направляя оригинал пользователю PC-2.

7. Если копии нет, устройства фермы F1 посылают ответный запрос маршрутизатору 1, который передает его в Internet непосредственно на сервер www.cisco.com. На обратном пути запрошенная страница копируется сначала устройствами фермы F1, а затем F2, которые и осуществляют передачу страницы пользователю PC-2.

В этом примере фермы F1 и F2 находятся в иерархической зависимости. Обработка каждого запроса проводится в несколько этапов. Сначала проверяется содержимое накопителей устройств фермы F2, затем фермы F1, и только после этого запрос направляется непосредственно на сервер Internet. Конечно же взаимоотношения между фермами не являются строго иерархическими. Иерархия в назначении тех или иных ферм во многом зависит от расположения конкретного пользователя в сети. Например, при обработке запроса пользователя PC-3 к серверу 3 сначала проверяется содержимое накопителей устройств фермы F1, затем F2 (так называемая реверсивная иерархия по отношению к пользователю PC-2). Это значит, что трафик WWW сосредотачивается на интерфейсах, объединяющих маршрутизаторы 1 и 2, маршрутизатор 3 и сервер 3.

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

Всегда ли происходит кэширование

Так как устройства Cache Engine работают в паре с маршрутизатором, обработке подлежит только тот трафик, который проходит через данные маршрутизаторы.

Таким образом, если запрос не требует прохождения через основной маршрутизатор, он и не будет обработан устройствами Cache Engine.

Например, если пользователь PC-1 (см. рисунок) запрашивает некую страницу с сервера 1, его запрос не будет обрабатываться ни одним из устройств Cache Engine. Пользователь PC-1 и сервер 1 находятся в одной подсети, никакой маршрутизации для обеспечения их взаимодействия не требуется.

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

Какие данные не подлежат кэшированию

Устройства Cisco Cache Engine производят обработку трафика, который возникает при передаче данных по 80-му порту TCP. Соответственно, если сервер WWW сконфигурирован для работы через другой порт, его кэширование производиться не будет. Например, серверы, работающие по протоколу Secure Web, обычно не используют 80-й порт, так что и их данные не кэшируются. Следовательно, не будет кэшироваться и трафик FTP.

Ограничить кэширование данных можно несколькими способами.

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

- Исключить при кэшировании некоторые типы данных и объектов, например данные MIME и файлы Java.    

Как обеспечивается обновление информации

Некоторые данные, с которыми работают пользователи, со временем устаревают. Например, биржевые котировки требуют обновления в реальном масштабе времени. Системный администратор может установить параметры кэширования данных определенных серверов Internet. Если сервер, данные которого кэшируются устройствами Cache Engine, использует протокол HTTP 1.1, то администратор может определить, сколько времени следует хранить эти данные. Если же сервер использует протокол HTTP 1.0, можно указать, что его данные вообще кэшировать не следует. Однако при этом невозможно задать временные ограничения на хранение данных в накопителях устройств Cache Engine. В любом случае устройство Cache Engine либо не будет кэшировать данные указанного сервера вообще, либо будет следовать установкам протокола HTTP 1.1, определяющим время хранения данных.

Если администратор сервера не установил каких-либо параметров кэширования, то все его данные подлежат хранению на накопителях устройств Cache Engine. Пользователь может сам затребовать обновление информации, нажав кнопку “Обновить” (Refresh) в программе просмотра Internet. При этом устройство Cache Engine также обновит данные на своих накопителях.    

Сколько времени хранятся страницы и объекты

Устройства Cache Engine хранят данные, страницы и объекты не дольше, чем это указано в параметрах протоколов HTTP 1.1 или 1.0. Например, если администратор сервера установил, что некая страница устаревает по истечении некоторого времени или по достижении определенной даты, то информация об этой странице, ее содержание и связанные с ней объекты автоматически удаляются из накопителей устройств Cache Engine.

Характеристики Cisco Cache Engine (модель CE2050)

Но Cache Engine может удалить страницу или объект не только по достижении определенной даты или по прошествии определенного времени. В случае переполнения накопителей удаляется та страница или тот объект, к которым дольше всего не было обращений. На их место записываются новые данные. Таким образом, нельзя точно сказать, от чего будет зависеть время хранения той или иной страницы - от установок протокола или от состояния накопителей. Ситуация может изменяться ежедневно.

С авторами, специалистами Plus Communications, можно связаться по телефону: (095) 238-3711.    

Протокол Web Cache Control Protocol

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

Для того чтобы маршрутизатор мог распознать сообщения Cache Engine, он должен поддерживать Web Cache Control Protocol. Этот протокол описывает все типы сообщений, которые используются при взаимодействии маршрутизаторов и устройств Cache Engine. Если поддержка WCCP в маршрутизатор не включена, он не будет взаимодействовать ни с одним из подключенных устройств Cache Engine.

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