Сети доставки
АрхивИнтернет создавался как военная сеть, устойчивая к повреждениям, и его основной задачей было передать сообщение из одного пункта в другой, передать любой ценой - даже если часть сети разрушена вражеской ядерной атакой. Никто не предполагал, что Сеть спустя несколько десятилетий попытаются использовать противно ее первоначальной природе - как среду, в которой транслируются новости, музыка и видео.
Винных магазинов в городе было, конечно, не один и не два, но продавали в них всегда одно и то же; даже пиво кончалось одновременно и в подвале на улице Спинного мозга, и в бакалее на Сухоточном проезде, на противоположном конце Уран-Батора, так что жители любого района думали обобщенно: «винный» - о какой бы конкретной точке ни шла речь.
В. Пелевин. День бульдозериста
Интернет создавался как военная сеть, устойчивая к повреждениям, и его основной задачей было передать сообщение из одного пункта в другой, передать любой ценой - даже если часть сети разрушена вражеской (тогда думали - советской) ядерной атакой. Никто не предполагал, что Сеть спустя несколько десятилетий попытаются использовать противно ее первоначальной природе - как среду, в которой транслируются новости, музыка и видео.
Действительно, сеть, основанная на коммутации пакетов, хорошо подходит для обмена электронными письмами и загрузки файлов. Нас не очень-то интересует судьба отдельных кусков сообщения. Неважно, как придут они в пункт назначения. Если даже часть пакетов потеряется, они будут запрошены вновь и сообщение будет в конце концов успешно собрано. Но если отдельные куски видеоролика не попадут к нам вовремя, то в окне плейера будут в лучшем случае видны разноцветные квадратики, которыми в телевизионных передачах закрывают лица важных свидетелей.
Даже если медиасайт и не транслирует видеоролики, поток данных, который ему нужно передать, легко может превысить пропускную способность Сети. Возьмем, к примеру, сайт CNN. Предположим, что его заглавную страницу посещают одновременно 100000 человек. Эта цифра - весьма средняя и в неспокойные дни может быть многократно превышена. Если все пользуются модемами на 33,6 Кбит/с, то для одновременной загрузки 100000 копий страницы потребуется передать порядка 3 Гбит/с, что примерно соответствует пропускной способности бэкбона, соединяющего Америку с Европой или Канадой! То есть при попытке трансляции новостей узким становится уже самое широкое место в Сети.
Частично проблему трансляции могут решить прокси-серверы, стоящие между браузером и провайдером доступа. Если запрашиваемый объект (картинки, CSS-стили, сценарии JavaScript и т. д.) уже есть в памяти сервера, незачем обращаться к удаленному сайту. На этом можно сэкономить до половины трафика; получить больший выигрыш позволяет реализация очень старой идеи сетей доставки 1.
В свое время газета «Правда» выпускалась быстро и огромным тиражом только за счет того, что ее печатала вся страна. Печатные формы доставлялись самолетами во все крупные города, где и производился местный тираж. Сейчас мы не ездим в Голливуд, чтобы посмотреть кино, а ждем, когда кассеты появятся на местных рынках. Точно так же и сайт CNN.com использует для доставки новостей сеть из более чем 10 тысяч серверов, разбросанных по всему миру (см. рис.). Эта сеть принадлежит компании Akаmai и ее, помимо CNN, используют еще 2800 медиасайтов.
Чтобы распространение частей веб-странички шло через сеть Akamai, все адреса на центральном сервере нужно подвергнуть дополнительной обработке. Для этого специальная программа FreeFlow Akamaizer обходит центральный сервер и превращает URL помеченных объектов в ARL (Akamai Resource Locator). Типичный ARL, вставленный в заглавную страницу www.cnn.com, выглядит так:
<img src=http://a388.g.akamai.net/f/388/21/1d/www.cnn.com/images/hub2000/1.gif…>
В нем ARL картинки содержит не www.cnn.com, а a388.g.akamai.net - адрес, который ведет к одному из DNS-серверов сети Akamai. Обращаясь к сайту CNN, браузер сначала читает текст его заглавной страницы. Из этого текста извлекаются все ссылки на включенные объекты (картинки, CSS-стили, сценарии JavaScript), после чего браузер формирует несколько запросов - уже к одному из DNS-серверов первого уровня сети Akamai. Эти серверы, в отличие от стандартных, выдают IP-адрес с учетом места, откуда пришел запрос 2. DNS-сервер первого уровня выдает IP-адрес сервера второго уровня, который ближе всего к месту запроса (в сети их несколько тысяч). Сервер DNS второго уровня выдает IP-адрес ближайшего к месту запроса и наименее загруженного прокси-сервера сети, после чего браузер направляется по этому адресу. Если нужный объект есть на сервере, он читается, если нет - сеть Akamai пытается найти его на своем ближайшем сервере. Если его нет и там, объект загружается с сервера CNN. Это удается сделать потому, что адрес объекта на центральном сервере включается в ARL (у нас - www.cnn.com/images/hub2000/1.gif). В ARL есть несколько полей, по которым можно определить тип объекта и его пригодность для загрузки. В нашем примере буква «f» соответствует объекту с жестко заданным временем жизни на сервере Akamai («1d» означает 1 день). Устаревший объект автоматически удаляется, а его место (при следующем запросе) займет новый 3. Загрузка объектов не с центрального сервера, а с ближайшего прокси-сервера сети доставки позволяет (согласно оценке Akamai) уменьшить исходящий трафик примерно в 8 раз.
Выводы: в Интернете развиваются сети доставки (CDN) с новой архитектурой, предназначенные для поддержки медиасайтов 4. Эти сети состоят из тысяч разбросанных по всему миру прокси-серверов, собственных систем интеллектуальной маршрутизации, способных направить запрос браузера к географически ближайшему и наименее загруженному серверу. Кроме того, в таких сетях есть собственная служба доставки, которая ответственна за обновление и распространение контента. И если старый добрый Интернет, где каждый маршрутизатор отвечает только за себя, больше похож на дикий капитализм, то появление сетей доставки с их учетом, контролем и балансировкой из единого центра спроса и предложения контента напоминает попытки построения успешно действующей модели социализма.
[i41346]
1 (обратно к тексту) - По-английски их называют content delivery network - CDN.
2 (обратно к тексту) - Для этого нужна база данных, которая по IP-адресу запроса определяет его географическое положение.
3 (обратно к тексту) - Подробнее о типах ARL см. www.cs.washington.edu/homes/ratul/akamai/freeflow.pdf.
4 (обратно к тексту) - Akamai - всего лишь одна из нескольких десятков таких сетей. Подробный список сетей доставки см. по адресу.