Web-кешування - Комп’ютерні мережі

Багаторівнева архітектура Інтернету

Web-кешування

Web-кеш, часто званий проксі-сервером, є мережею, яка виконує HTTP-запити від імені сервера-джерела. Web-кеш має власний дисковий пристрій зберігання інформації, що містить копії об'єктів, що раніше запитувалися. Як показано на рис. 2.25, браузер користувача можна налаштувати таким чином, щоб усі створювані HTTP-запити спочатку направлялися в web-кеш (дана процедура у браузерах Microsoft і Netscape виконується дуже просто).

web-кешування

Після того як браузер налаштований вказаним чином, будь-який об'єкт, що запитується, спочатку шукається в web-кеші. Як приклад припустимо, що браузер запитує об'єкт _http://www.someschool.edu/campus.gif. Алгоритм використання кеш-сервера виглядає так.

1. Браузер встановлює TCP-з'єднання з кеш-сервером та надсилає йому запит об'єкта. 2. Кеш-сервер перевіряє наявність локальної копії необхідного об'єкта і у разі її виявлення формує повідомлення у відповідь і надсилає об'єкт браузеру. 3. Якщо локальна копія відсутня, кеш-сервер встановлює ТСР-з'єднання з сервером-джерелом http://www.someschool.edu та надсилає йому запит на отримання об'єкта. Сервер-джерело обробляє запит і надсилає необхідний об'єкт кеш-серверу. 4. Після отримання об'єкта кеш-сервер зберігає його копію на локальному накопичувачі інформації та передає об'єкт браузеру через відкрите раніше ТСР-з'єднання.

Веб-кеш може грати роль як клієнта, так і сервера: він є сервером при взаємодії з браузерами та клієнтом при взаємодії з серверами-джерелами.

Зазвичай кеш-сервери орендуються та встановлюються Інтернет-провайдерами. Наприклад,Університет може створити кеш-сервер у своїй локальній мережі та виконати конфігурацію всіх браузерів так, щоб вони зверталися до кеш-сервера.

Web-кешування є формою розподілу ресурсів, оскільки дублює об'єкти серверів-джерел та організує доступ користувачів до локальних копій об'єктів. Зверніть увагу, що постачальник ресурсів ніяк не впливає на процес дублювання; навпаки, дублювання залежить лише від запитів користувачів.

Кешування набуло широкого поширення в Інтернеті з трьох причин. Перша полягає в тому, що кеш-сервери здатні значно скоротити час виконання запиту користувача, якщо швидкість передачі між користувачем і кеш-сервером перевищує швидкість передачі між користувачем і сервером-джерелом. Найчастіше для з'єднання користувача з кеш-сервером використовуються високошвидкісні лінії зв'язку, тому за наявності на кеш-сервері необхідного об'єкта його доставка користувачеві відбувається за дуже короткий час. Друга причина популярності механізму кешування полягає в тому, що він здатний значно знизити трафік між локальними мережами та Інтернетом. Це дозволяє у свою чергу скоротити витрати на дорогі лінії зв'язку, що з'єднують локальні мережі з Інтернетом. Крім того, значне скорочення трафіку при кешуванні відбувається і в Інтернеті в цілому, що призводить до кращої якості обслуговування програм усіх користувачів глобальної Мережі. Нарешті, третя причина успіху кешування полягає в тому, що воно дозволяє швидко поширювати ресурси серед користувачів. Навіть у випадку, якщо постачальник використовує недороге низькошвидкісне мережеве обладнання, найпопулярніші ресурси незабаром опиняться у web-кешах, і, отже, користувачізможуть завантажувати їх із прийнятною якістю обслуговування.

Щоб краще оцінити переваги кешування, звернімося до прикладу. На рис. 2.26 зображено дві комп'ютерні мережі: локальна високошвидкісна університетська мережа та Інтернет. Маршрутизатори локальної мережі та Інтернету з'єднані між собою лінією зв'язку, що забезпечує швидкість передачі 1,5 Мбіт/с. Сервери-джерела мають пряме з'єднання з Інтернетом, проте знаходяться у різних частинах земної кулі. Припустимо, що середній розмір об'єктів дорівнює 100 ТОВ біт, а середня частота запитів браузерів університетських комп'ютерів до web-серверів-джерел становить 15 разів на секунду. Вважатимемо, що розмір HTTP-запитів зневажливо малий і не створює додаткового трафіку на лінії зв'язку між локальною мережею та Інтернетом. Припустимо також, що середній час, що проходить з моменту передачі запиту (у вигляді однієї IP-дейтаграми) першим маршрутизатором Інтернету, показаним на малюнку, до отримання відповіді (як правило, у вигляді декількох дейтаграм), становить 2 с. Цю величину ми неформально назвемо затримкою Інтернету.

доступу

Повний час відповіді, тобто час, що проходить з моменту формування запиту браузером до завершення прийому необхідного об'єкта, складається з трьох складових: затримки локальної мережі, часу доступу (затримки між двома вказаними маршрутизаторами) і затримки Інтернету. Проведемо грубу оцінку часу відповіді. Інтенсивність трафіку локальної мережі (див. розділ «Затримки та втрати даних у мережах з комутацією пакетів» у розділі 1) становить:

(15 запитів за секунду) х (100 Кбіт/запит) / (10 Мбіт/с) = 0,15,

а інтенсивність трафіку на лінії доступу дорівнює:

(15 запитів за секунду) х (100 Кбіт/запит) / (1,5 Мбіт/с) = 1.

Інтенсивність трафіку влокальної мережі, що становить 0,15, здатна призвести до затримок, що не перевищують десятків мілісекунд. З іншого боку, поодинока інтенсивність лінії доступу може призвести до необмеженого зростання затримок. Таким чином, середній час відповіді в нашому прикладі може легко досягати декількох хвилин і більше, що, очевидно, є неприйнятним з точки зору якості обслуговування користувачів.

Одним із можливих вирішень проблеми є збільшення пропускної спроможності лінії доступу, наприклад, до 10 Мбіт/с. Це призведе до зниження інтенсивності трафіку на лінії до 0,15, тим самим зменшивши затримку доступу до малих значень. У цьому випадку час відповіді приблизно дорівнює затримці Інтернету і складе 2 с. На жаль, таке рішення потребує чималих фінансових витрат.

Тепер розглянемо, що станеться, якщо замість збільшення швидкості передачі лінії доступу ми встановимо кеш-сервер в університетської мережі. Це рішення ілюструє рис. 2.27.

web-кешування

На практиці ймовірність того, що кеш здатний задовольнити запит користувача лежить в інтервалі від 0,2 до 0,7; ми покладемо цю ймовірність 0,4.

Оскільки користувачі з'єднані з кеш-сервером високошвидкісними лініями зв'язку локальної мережі, час відповіді запитів, що виконуються кеш-сервером, дуже мало; ми вважатимемо його рівним 10 мілісекундам. Зазначений час відповіді відповідає значенню 40 % від загальної кількості запитів; 60% запитів, що залишилися, будуть змушені обслуговуватися серверами-джерелами. Тим не менш, це дозволяє знизити коефіцієнт інтенсивності трафіку на лінії доступу з 1 до 0,6 і вирішує проблему перевантаження. Як правило, коефіцієнт інтенсивності нижче 0,8 для лінії зв'язку з пропускною здатністю 1,5 Мбіт/с призводить до незначних затримок, неперевищує десятки мілісекунд. Враховуючи двосекундне значення затримки Інтернету, ми можемо знехтувати час доступу, і середній час відповіді складе:

0,4 х (0,01 с) + 0,6 х (2,01 с) = 1,21 с.

Таким чином, застосування кеш-сервера дає кращі результати, ніж збільшення пропускної спроможності лінії доступу і не вимагає заміни мережевого обладнання. Зрозуміло, оренда та встановлення кеш-сервера не є безкоштовною, проте витрати університету у разі заміни лінії доступу були б значно вищими. Зазначимо, що для створення web-кешу досить недорогого персонального комп'ютера і, крім того, для кеш-серверів існує безкоштовне програмне забезпечення.

Відповідальність за всі зміни, внесені в систему за порадами цієї статті, Ви берете на себе.