|
2005 г.
Ускоряем интернет
Роман Дунайцев, Евгений Кучерявый,
Сегодня в общем трафике глобальной интернет-сети преобладает трафик службы World Wide Web (WWW). Какие же проблемы возникают при его передаче по протоколу TCP/IP?
Стремительный рост числа информационных ресурсов и экспоненциальный рост количества вэб-пользователей обуславливают значительное увеличение объема WWW-трафика. В связи с этим для оптимизации протоколов, разработки схем распределения трафика и т.п. важно понимание особенностей этого трафика. Служба World Wide Web состоит из большого набора документов, которые называют "вэб-страницами", и доступ к ним можно получить из любой точки глобальной интернет-сети. Каждая вэб-страница относится к виду так называемых "гипермедиадокументов" (hypermedia), где слово "медиа" означает, что документ может содержать не только текст, но и другие элементы (например, графику, видео), а приставка "гипер" – что документ может содержать выбираемые ссылки, которые ведут к другим связанным с ними элементам. Помимо доступа к гипермедиадокументам, на основе службы World Wide Web реализуется также вэб-чат и электронная почта (с доступом через вэб-браузер).
Для реализации службы вэб в интернете используются два основных структурных элемента – клиент и сервер. Для получения доступа и отображения вэб-страницы используется вэббраузер, представляющий собой пользовательское приложение. Браузер – это клиент, который связывается с соответствующим вэб-сервером для получения копии запрашиваемой страницы. Для связи между браузером и вэб-сервером используется протокол передачи гипертекста – HTTP (HyperText Transfer Protocol). Протокол HTTP работает на уровне приложения и основан на принципе "запрос/ответ", то есть после установки сеанса связи с сервером одна из сторон (браузер) должна послать HTTP-запрос (GET), в ответ на который другая сторона (сервер) посылает данные. Для надежной передачи информации HTTP использует протокол транспорт Транспорт(от лат.trans — через и portare — нести) — совокупность средств, предназначенных для перемещения людей, грузов из одного места в другое. В данной статье раскрывается понятие транспорта именно в этом значении.ного уровня – протокол управления передачей – TCP (Transmission Control Protocol).
В первоначальной версии протокола HTTP/1.0 для каждого сеанса передачи данных открывалось новое TCP-соединение, то есть клиент открывал это соединение и отсылал серверу запрос GET. Передав клиенту копию требуемого документа, сервер закрывал TCP-соединение. Клиент считывал данные из открытого TCP-соединения до тех пор, пока не получал признак конца файла. После этого клиент закрывал свою сторону соединения. В июне 1999 года была определена новая версия протокола HTTP/1.1. Вместо использования для каждой передачи данных отдельного TCP-соединения в версии 1.1 по умолчанию стало применяться одно постоянное TCP-соединение (persistant connection), то есть открыв соединение с сервером, клиент будет использовать его для передачи нескольких запросов и ответов. На сегодняшний день версия 1.1 протокола HTTP является наиболее распространенной.
Анализ Анализ (др.-греч. — разложение, расчленение)— операция мысленного или реального расчленения целого (вещи, свойства, процесса или отношения между предметами) на составные части, выполняемая в процессе познания или предметно-практической деятельности человека. WWW-трафика
На трафик, создаваемый вэб-пользователями, оказывают влияние следующие факторы:
- интересы пользователей;
- скорость доступа;
- тарифы интернет-провайдера;
- место подключения к интернету (дом/работа/интернет-кафе и т.п.), то есть возможность загружать и сохранять информацию для последующего использования;
- ограничения (использование фильтров, ограничения, накладываемые на объем и тип загружаемой информации);
- контент
Информация (от лат.informatio, разъяснение, изложение, осведомленность) — сведения о чем-либо, независимо от формы их представления. WWW и т.д.
Таким образом, определение основных типов вэб-пользователей по создаваемому трафику является комплексной задачей, требующей статистического анализа и учета множества факторов. Согласно данным, получаемым с помощью поисковой системы "Рамблер" и рейтинга Top100, темы, интересующие пользователей русскоязычного сегмента интернета (Рунет), в среднем распределяются так (с незначительными колебаниями в зависимости от дня недели):
- 33% – Компьютеры и интернет;
- 18 % – Развлечения;
- 9% – Новости и СМИ;
- 7% – Бизнес;
- 5% – Музыка;
- 28% – Остальное (Общественная жизнь, Авто/мото, Дом и семья, Отдых и спорт, Наука и образование, Связь, путешествия
Путешествие— передвижение по какой-либо территории или акватории с целью их изучения, а также с общеобразовательными, познавательными, спортивными и другими целями. и транспорт, Культура Культура (лат.cultura— земледелие, воспитание, почитание)— понятие, имеющее множество значений в различных областях. В основном, под культурой понимают области человеческой деятельности, связанные с самовыражением (религиозный культ, подражание) человека, проявлением его субъективности (характера, компетентностей, навыков, умений и знаний). Культура является предметом изучения культурологии. и искусство, Литература, Здоровье).
Интересно отметить, что по некоторым официальным данным, в настоящее время в России доступ к интернету есть у 8,5 миллионов пользователей, из них почти 3 миллиона человек подключаются к интернету из дома, 3 миллиона 800 тысяч – с работы, а остальные 1 миллион 700 тысяч – из публичных учреждений (интернет-кафе Интернет-кафе— публичное заведение, предоставляющее доступ к Интернету. Обычно в интернет-кафе можно также перекусить, выпить кофе (или другие напитки), пообщаться. и т.п.). Из этого можно сделать вывод, что наиболее типичным поведением вэб-пользователя является вэб-серфинг, то есть просмотр вэб-страниц, и поиск информации в WWW. Однако подобные предпочтения вэб-пользователей создают незначительный трафик, поскольку в основном пользователь Пользователь— лицо или организация, которое использует действующую систему для выполнения конкретной функции. работает с текстовой информацией.
Менее распространенным, но создающим больший (по объему загружаемой информации) трафик, является поведение пользователя, связанное с загрузкой из сети WWW графической и мультимедийной информации (аудио и видео). Далее будут смоделированы следующие типы поведения вэб-пользователей:
- вэб-серфинг и поиск информации в WWW (Web-surfing);
- загрузка пользователем графики (Pictures);
- загрузка пользователем аудио-/видеоклипов (Clips);
- общие случаи, когда пользователь осуществляет вэб-серфинг и поиск информации в WWW, а также просмотр и загрузку графической и мультимедийной информации (General case).
В таблице приведены данные моделирования различного поведения пользователей.
Несмотря на то, что в спецификации протокола HTTP/1.1 определено использование постоянных соединений для передачи нескольких запросов и ответов между клиентом и сервером, в действительности при обращении пользователя к вэбстранице инициируется несколько TCP-соединений (иногда до нескольких десятков). Это объясняется использованием всевозможных баннеров, счетчиков и т.п. при создании и оформлении вэб-страниц. Баннеры представляют собой картинку (графический файл gif- или jpg-формата, размещенный, как правило, на другом сервере), при нажатии на которую осуществляется переход на рекламируемую страницу. Таким образом, при открытии вэб-страницы, помимо TCP-соединений с данным сервером, для передачи копии запрашиваемой страницы будут инициироваться соединения с другими серверами, баннеры которых расположены на конкретной странице. Количество подобных соединений и их трафик прямо пропорциональны количеству объектов и их размеру.
Например, большинство отечественных баннерных служб ограничивают размер файла до 15 Кб, поскольку при большом объеме баннера пользователь не успевает его просмотреть, а следовательно, осуществить переход по нему. Поэтому средний размер для статичного баннера – 5–6 Кб, для анимированного – 7–12 Кб. Еще один часто используемый при разработке вэб-страниц способ – CGI-программы. CGI (Common Лонни Рашид Линн-мл. (англ.Lonnie Rashid Lynn, Jr.; 13 марта 1972), известный как Common (рус. Коммон)— актёр и рэпер. Gateway Interface) – это интерфейс, позволяющий вэб-серверу по запросу браузера запускать у себя какие-либо программы, а результат их работы отправлять браузеру в http-формате. CGI-программа – это программа Программа - (от греч. — пред, греч. — запись) термин, в переводе означающий «предписание», т.е. (скрипт), работающая на сервере и обменивающаяся данными с браузером через вышеупомянутый интерфейс. На основе CGI-программ реализуются счетчики Счётчик (англ.counter, webrating)— сервис, предназначенный для внешнего независимого измерения посещаемости сайтов. посещений на вэб-страницах и динамически создаваемые документы. Инициируемые TCP-соединения здесь также имеют небольшой размер – как правило, от нескольких единиц до десятков килобайт.
Распределение числа TCP-соединений в зависимости от объема передаваемой информации
Функция распределения вероятности (ФРВ) числа TCP-соединений в зависимости от объема передаваемой информации
Распределение числа TCP-соединений в зависимости от количества передаваемых в соединении пакетов
На первых двух рисунках сверху представлено распределение числа TCP-соединений в зависимости от объема передаваемой информации, а также функция распределения вероятности (ФРВ) числа TCP-соединений в зависимости от объема передаваемой информации для рассматриваемых моделей поведения пользователя. Анализ данных этого моделирования показывает, что соединения с трафиком меньше 1 Кб относятся к неуспешным соединениям (Connect Failed Connections). Также необходимо отметить, что при любом поведении пользователя значительное количество соединений (от 25% до 70%) имеют трафик от 1 до 3 Кб (рис.). Причем доля этих соединений тем больше, чем выше активность вэб-пользователя, то есть чем чаще он открывает новые вэб-страницы. Практически все соединения в данном диапазоне трафика в большей степени обусловлены использованием вышеупомянутой баннерной рекламы, в меньшей степени – CGI-скриптов.
Наблюдаемый в диапазоне от 5 до 10 Кб второй Второй — второй по счёту альбом песен Владимира Высоцкого в исполнении Григория Лепса, записанный и вышедший в 2007 году пик (рис. слева вверху) менее выражен и определяется баннерной рекламой, а также загрузкой ярлыков графических изображений (thumbnails). Именно поэтому данный пик наиболее заметен при просмотре и загрузке пользователем графической информации (вариант с загрузкой графики – 30% соединений). Последующие пики в распределении числа соединений в зависимости от трафика обусловлены размером загружаемых пользователем файлов, то есть текстовых документов в формате doc и pdf, графических файлов в формате jpg, видеоклипов в формате mpeg и avi, а также музыки в формате mp3.
Вывод напрашивается сам собой: в распределении числа TCP-соединений в зависимости от объема передаваемой информации значительное количество соединений имеет трафик в диапазоне 1–3 Кб независимо от поведения и интересов вэб-пользователя, а число соединений зависит лишь от активности пользователя при вэб-серфинге и количества баннерной рекламы в вэбстраницах. В диапазоне свыше 3 Кб распределение числа соединений будет определяться вышеуказанными факторами, влияющими на поведение пользователя.
На гребне волны
Говоря о типах поведения вэб-пользователей, особо следует рассмотреть вариант "Общие случаи", когда пользователь осуществляет вэб-серфинг и поиск информации в WWW, а также просмотр и загрузку графической и мультимедийной информации.
На рисунке представлено распределение числа TCP-соединений в зависимости от количества пакетов (включая SYN, ACK и др.) в соединении.
Из анализа этого распределения следует, что более половины всех соединений (66%) состоят из обмена менее чем 20-ю пакетами с суммарным трафиком меньше 10 Кб (рис. слева внизу). Исходя из того, что в протоколе TCP для соединения используется трехэтапное квитирование (то есть три пакета), для завершения соединения требуется от одного (в случае использования RESET) до четырех пакетов (в случае использования FIN и ACK). Также учитывая использование пакетов подтверждения приема (ACK) и объема команды запроса GET протокола HTTP, получается, что в указанных соединениях непосредственно передача данных осуществляется с помощью менее чем 10-ти пакетов.
Следовательно, можно заключить, что данные соединения завершаются в фазе медленного запуска (Slow Start) протокола TCP и не успевают перейти в фазу предотвращения перегрузки (Congestion Avoidance). Причем доля таких соединений составляет от 50 до 85% в зависимости от поведения пользователя (рис. слева посередине). На верхнем рисунке справа представлено суммарное количество пакетов в TCP-соединениях в зависимости от объема передаваемой информации.
Рисунок наглядно иллюстрирует известный феномен "мышей и слонов", то есть в то время как большинство соединений имеет малый трафик ("мыши"), основная доля пакетов в интернет-трафике принадлежит незначительному количеству соединений с большим объемом передаваемых данных ("слоны").
Обращает на себя внимание точка пересечения (90 Кб) статистических распределений TCPсоединений и суммарного количества пакетов в данных соединениях в зависимости от трафика, которую (точку) в данном случае можно условно определить как границу между "мышами" и "слонами". Причем данное значение оказывается достаточно близким к пороговой величине, отмечаемой рядом авторов и равной 100 Кб. Однако необходимо отметить, что подобная граница может использоваться лишь для условной классификации соединений по их количеству и передаваемому трафику. Выбор порога и критериев для определения "слонов" в целях распределения нагрузки в интернете требует комплексного подхода с учетом последующей стабильности данных соединений.
Быстрый транспорт для вэб
Итак, средний объем вэб-сессий достаточно мал, и между успешными загрузками страницы, инициированными клиентом, зачастую имеется пауза, определяемая временем размышления пользователя (в среднем 15 секунд). Эти особенности передачи вэб-трафика плохо взаимодействуют со свойствами протокола TCP.
А теперь рассмотрим пять методов ускорения коротких передач данных: TCP c разделенным пассивным мониторингом сети (TCP/Shared Pаssive Network Discovery – TCP/SPAND), быстрый запуск ТСР (TCP fast start), медленный запуск TCP, адаптированный к сети (network adaptive TCP slow start), большое исходное окно (larger initial window) и приоритетное обслуживание коротких передач ().
Анализ интернет-трафика показывает, что характеристики соединения между клиентом и сервером являются стабильными в диапазоне от нескольких до десятков минут и идентичны характеристикам других соседних узлов. На основании этого была разработана архитектура Архитектура (лат.architectura от др.-греч. — старший, главный и др.-греч. — строитель, плотник) — искусство проектировать и строить здания и другие сооружения (также их комплексы), создающие материально организованную среду, необходимую людям для их жизни и деятельности, в соответствии с назначением, современными техническими возможностями и эстетическими воззрениями общества. SPAND, которая определяет сетевые характеристики посредством разделенных пассивных измерений от набора хостов. Основная идея этого метода заключается в следующем: клиенты передают сетевую статистику серверу характеристик (performance server) путем отправки отчетов о характеристиках (performance reports), и данный сервер обобщает собранную информацию для оценки дальнейшего состояния сети.
В алгоритме TCP/SPAND информация о характеристиках сети разделена между многими совмещенными хостами для оценки равномерного распределения сетевых ресурсов на каждое из соединений. На основании такой оценки и объема передаваемой информации передатчик TCP определяет оптимальный исходный размер окна перегрузки. Вместо выполнения медленного запуска он использует схему, задающую скорость для плавной отправки пакетов в своем исходном окне перегрузки. Когда все пакеты в исходном окне отправлены, передатчик Радиопередатчик (радиопередающее устройство) — электронное устройство, которое с помощью антенны излучает электромагнитные сигналы в радиоволновом участке спектра, такие как радио, телевидения и других телекоммуникационных приложений. переключается на стандартный сценарий TCP.
Суммарное количество пакетов в TCP-соединениях в зависимости от объема передаваемой информации
Статистическое распределение числа TCP-соединений и статистическое распределение суммарного количества пакетов в данных TCP- соединениях в зависимости от объема передаваемой информации
Использование метода быстрого запуска основано на том, что параметры состояния сети, определяющие доступную полосу пропускания, имеют тенденцию оставаться стабильными в течение неопределенного периода, который по длительности значительно превосходит обычные паузы (время размышления пользователя) во время интерактивной сессии вэб, и таким образом разумно инициировать быстрый запуск после подобной паузы. Метод быстрого запуска позволяет TCP-соединениям, особенно тем, в которых передаются небольшие объемы информации с паузами, повторно использовать информацию недавнего прошлого вместо повторения каждый раз процедуры медленного запуска.
Алгоритм Алгоритм, от имени учёного аль-Хорезми (перс. [al-Khwrazm])— точный набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное время. В старой трактовке вместо слова «порядок» использовалось слово «последовательность», но по мере развития параллельности в работе компьютеров слово «последовательность» стали заменять более общим словом «порядок». Это связано с тем, что работа каких-то инструкций алгоритма может быть зависима от других инструкций или результатов их работы. Таким образом, некоторые инструкции должны выполняться строго после завершения работы инструкций, от которых они зависят. Независимые инструкции или инструкции, ставшие независимыми из-за завершения работы инструкций, от которых они зависят, могут выполняться в произвольном порядке, параллельно или одновременно, если это позволяют используемые процессор и операционная система. адаптированного медленного запуска TCP обращается к истории предыдущих соединений, чтобы определить доступный объем сетевых ресурсов. Методика Методика в образовании — описание конкретных приёмов, способов, техник педагогической деятельности в отдельных образовательных процессах; «собирание правил воспитательной деятельности». сетевых измерений идентична той, что используется в TCP/SPAND. На основании оценки доступной полосы пропускания и объема передаваемой информации алгоритм выбирает один из трех методов передачи. Использование большого исходного окна уменьшает количество времени, необходимое для того, чтобы достигнуть значения размера окна перегрузки приемника. Такая экономия времени может быть существенной для коротких передач данных, но для длительных передач этот выигрыш во времени не так значим, поскольку в данном случае влияние фазы медленного запуска на общую продолжительность передачи незначительно.
Изучение протокола TCP позволяет выявить следующие факторы, влияющие на эффективность передачи небольших объемов данных:
- протокол TCP медленно увеличивает свою скорость передачи до максимально допустимой. Таким образом, окно передачи устанавливается минимально возможным независимо от реально допустимого значения;
- протокол TCP связывает алгоритм защиты от ошибок с алгоритмом управления
Управление— воздействие субъекта, направленное на достижение абстрактной (неконкретной), но вынужденно-корректируемой цели (задачи, идеи) в уже сложившихся рамках правил, которые неизбежно-совершенствуются когда субъект непротиворечивее познаёт реальность, с которой сосуществует. перегрузкой. Потеря пакета определяется либо по истечении времени повторной передачи, либо по получении последовательности двойных подтверждений. Как правило, повторная передача после тайм-аута может серьезно снизить скорость передачи протокола TCP. Для коротких соединений, у которых большую часть времени величина Величина — одно из основных математических понятий, смысл которого с развитием математики подвергался ряду обобщений. окна перегрузки относительно мала и недостаточно пакетов, чтобы активировать механизм двойных подтверждений, потеря пакетов всегда требует тайм-аута для обнаружения;
- протокол TCP всегда
«Всегда» — кинофильм. Детям рекомендуется просмотр совместно с родителями. основывается на собственных выборках пакетов, чтобы установить соответствующее значение тайм-аута повторной передачи RTO (Retransmission TimeOut). Для первых пакетов установления соединения (SYN, SYN-ACK) и для первого пакета данных, когда еще нет данных выборки, TCP использует значение Значение— ассоциативная связь между знаком и предметом обозначения. исходного тайм-аута ITO (Initial TimeOut) в качестве RTO. Рекомендованное значение ITO равно трем секундам и используется в большинстве современных операционных систем. Некоторые ранние системы используют значение, равное шести секундам. Потеря таких пакетов ведет к серьезному снижению эффективности доставки коротких передач из-за продолжительного тайм-аута.
По этим причинам короткие передачи, как правило, проигрывают продолжительным в борьбе за полосу пропускания узкого участка сети. Метод приоритетного обслуживания коротких передач данных основывается на обеспечении приоритетов коротким передачам с помощью алгоритма активного управления очередью AQM (Active Queue Management) внутри сети.
Данный метод использует архитектуру дифференцированных услуг DiffServ (Differentiated Services), чтобы классифицировать потоки на короткие и длинные в оконечных точках сети. В состав этой архитектуры входят оконечные и магистральные маршрутизаторы. Оконечные маршрутизаторы выполняют задачи разделения потоков по классам обслуживания, а магистральные осуществляют управление потоками на основе этой информации. Сравнивая данные методы с TCP/NewReno (наиболее распространенной версией протокола TCP) и учитывая результаты моделирования, полученные с помощью сетевого имитатора ns2 (network simulator), можно составить сравнительную таблицу (.).
Подводя итоги
Произошедшие в последние годы перемены – стремительный рост интернет-аудитории, переход от версии 1.0 протокола HTTP к версии 1.1 с более широкими возможностями, изменение вэб-контента и расширение его мультимедийной части (видео, музыка), появление новых технологий вэб-дизайна (баннеры, динамическое создание страниц и т. д.), применение пользователями менеджеров загрузки – требуют качественного и количественного анализа изменений в вэб-трафике, а также внедрения новых механизм Механизм (греч. mechan— машина)— это совокупность совершающих требуемые движения тел (обычно— деталей машин), подвижно связанных и соприкасающихся между собой. Механизмы служат для передачи и преобразования движения.ов транспортного протокола TCP. Проанализировав полученные результаты, можно сказать, что, во-первых, рассмотренные методы позволяют значительно ускорить передачу небольших объемов данных, а во-вторых, наибольший выигрыш в сокращении времени передачи обеспечивают методы, использующие информацию о состоянии сети и размере передаваемого файла (TCP/SPAND, медленный запуск TCP, адаптированный к сети).
|