Введение к работе
Актуальность работы. Компьютерные коммуникационные системы, представляющие собой сети передачи информации, играют очень важную роль в современном мире и являются одним из важнейших направлений научно-технического прогресса в настоящее время. Сети передачи данных являются распределенной системой, в которой процессы передачи информации управляются с помощью коммуникационных протоколов.
Транспортный уровень занимает ключевое место в иерархии протоколов передачи данных. На этом уровне обеспечивается сквозной обмен данными между пользователями транспортных услуг (реализующими протоколы прикладного уровня), который обладает необходимыми пользователю характеристиками, такими как контроль надежности доставки данных, восстановление порядка пакетов. Наибольшее распространение среди транспортных протоколов, обеспечивающих контроль доставки данных, является TCP. Помимо указанных возможностей, TCP реализует алгоритм управления потоком данных, цель которого - достичь максимально возможной скорости передачи данных, не вызывающей перегрузку в сети.
На сегодняшний момент известен ряд недостатков алгоритма управления потоком TCP. Наиболее существенными недостатками являются увеличение задержек при передаче данных в сетях с очередями большого размера, неполное использование пропускной способности канала в высокоскоростных сетях и сетях с ненадежной средой передачи данных. Эти недостатки связаны с использующимися в TCP алгоритмами обнаружения перегрузки и борьбы с ней. TCP интерпретирует потерю сегмента данных как индикацию перегрузки, вследствие чего алгоритмы управления потоком и коррекции ошибок являются связанными, что приводит к неэффективной работе в сетях, использующих ненадежную среду передачи данных (например, в беспроводных сетях).
Для определения доступной пропускной способности TCP постоянно увеличивает скорость передачи данных, пока не происходит потеря сегмента. В надежных сетях потеря произойдет при достижении состояния перегрузки, так как очередь маршрутизатора, расположенного в самом «узком» участке сети, окажется переполненной. При больших размерах очередей в момент переполнения очереди скорость отправки может в значительной степени превосходить доступную пропускную способность, также заполнение очереди большого размера приводит к существенному увеличению задержек при доставке новых данных вследствие увеличения времени пребывания пакетов в очередях маршрутизаторов.
Другой проблемой постоянно заполненных очередей являются множественные потери, происходящие из-за отсутствия свободного буферного пространства, необходимого для обработки входящих данных, поступление которых носит всплесковый характер в силу использования TCP отправки данных всплесками в пределах окна.
Так как TCP реагирует на любую потерю сегмента уменьшением порогового значения в два раза, а рост размеров окна перегрузки после достижения порогового значения производится линейно, TCP неэффективен при работе в высокоскоростных сетях с большими значениями RTT (Round Trip Time, интервал времени между отправкой сегмента и получением подтверждения о его доставке), потому что даже незначительное количество ошибок в сети приводит к существенному недоиспользованию доступных ресурсов.
Разработка алгоритма управления потоком, лишенного этих недостатков, является темой большого числа исследований. В целом, алгоритмы борьбы с перегрузкой можно разделить на две категории: алгоритмы, использующие потерю в качестве индикатора перегрузки (в англоязычной литературе они обозначаются loss-based), и алгоритмы, использующие для контроля перегрузки темпоральные характеристики потока (например, RTT) (в англоязычной литературе они обозначаются delay- based). Также проводятся исследования, направленные на создание гибридных алгоритмов, сочетающих в себе черты алгоритмов обоих типов. Ярким примером подобного алгоритма является разработанный в Microsoft Research алгоритм Compound TCP.
Большинство исследований, целью которых является улучшение характеристик TCP, направлены на улучшение характера изменения размера окна перегрузки в высокоскоростных сетях, разработку проактивных схем избежания перегрузки, более корректную обработку потери сегмента, предполагающую более быстрое восстановление скорости передачи данных. В исследованиях, направленных на улучшение работы TCP в беспроводных сетях (см. работы Casetti, Ferorelli, Fu, Liew, Grieco, Mascolo и др.), применяются способы определения доступной пропускной способности сети для более быстрого восстановления после мультипликативного сброса путем более гибкого манипулирования пороговым значением медленного старта. Однако предложенные модификации используют те же принципы управления потоком, что и стандартная реализация TCP, и предоставляют реактивные методы борьбы с перегрузкой, что приводит к переполнениям очередей маршрутизаторов, «искусственным» потерям и неконтролируемым задержкам.
Проактивные алгоритмы борьбы с перегрузкой основаны на измерении задержек при доставке данных. Классическим примером проактивного алгоритма является TCP Vegas. Такие алгоритмы в своем большинстве измеряют задержки с помощью RTT. Использование данного индикатора может привести к некорректным выводам, так как в составлении значений RTT участвует время передачи данных по прямому каналу, а также время передачи подтверждения по обратному каналу. Алгоритм, использующий RTT, вынужден иметь дело с такими явлениями как отложенная отправка подтверждений. Также он не в состоянии отличить задержки, произошедшие из-за пребывания сегмента с данными в очередях маршрутизаторов в прямом направлении передачи данных, от задержек, вызванных пребыванием сегмента с подтверждением в очередях маршрутизаторов в обратном направлении передачи данных. Таким образом, эти алгоритмы могут неверно интерпретировать перегрузку в обратном направлении передачи данных, вызываемую действиями других соединений, как собственную перегрузку, борьба с которой приведет к неэффективному использованию доступной пропускной способности сети.
Другим слабым местом многих проактивных алгоритмов избежания перегрузки, а также алгоритмов, направленных на оценку доступной пропускной способности, является использование пороговых значений задержки (таких как BaseRTT (базовое значение RTT)). Как показано в работах Hayes, La, Warland, Tan и др., неправильный выбор порогового значения может существенно повлиять на работу таких алгоритмов.
Большинство алгоритмов, направленных на работу в высокоскоростных сетях (например, Highspeed TCP, CUBIC, Scalable TCP, H- TCP), модифицируют характер изменения размеров окна, делая его в определенных ситуациях более агрессивным. Для достижения пропускной способности сети они используют способ, схожий с применяемым в стандартном TCP, и не контролируют рост задержек. В надежных сетях с чрезмерной буферизацией это может вылиться в значительное увеличение RTT и неэффективное использование канала.
Из вышесказанного можно заключить, что TCP обладает рядом недостатков, а существующие модификации TCP не предлагают их комплексного решения. Вследствие этого имеется необходимость модернизации TCP, а задачу создания эффективного алгоритма управления потоком данных, применимого для совместимого с TCP транспортного протокола, нельзя считать решенной.
Цели работы. Цель диссертационной работы — предложить комплексное решение для преодоления недостатков TCP, разработав совместимый с TCP протокол TCP TIPS (TIPS является конкатенацией названий дополнительных полей, используемых протоколом, TI (Time Interval) и PS (Packet Sequence)), не имеющий проблем, присущих существующим модификациям. Совместимость с TCP в данном случае подразумевает возможность прозрачной замены TCP на разрабатываемый протокол для приложений, использующих TCP, без необходимости какой- либо модернизации этих приложений и возможность возврата к использованию TCP на этапе установки соединения в случае, если один из участников соединения не поддерживает новый протокол.
Создание нового протокола предусматривает разработку алгоритма управления потоком данных, предлагающего проактивную схему избежания перегрузки и разделяющего логику управления скоростью передачи и логику коррекции ошибок. Перед разрабатываемым алгоритмом поставлены следующие требования: высокий коэффициент использования пропускной способности сети, минимизация задержек при передаче данных (посредством минимизации роста длин очередей маршрутизаторов), высокая эффективность работы в ненадежных сетях и в сетях с частой сменой маршрута передачи данных, отсутствие проблем, характерных алгоритмам, основанным на использовании RTT (невозможность отложенной отправки подтверждений, неверная индикация перегрузки при наличии перегрузки в направлении, обратном направлению передачи данных). Также при использовании в сетях, содержащих потоки данных постоянной скорости, TCP TIPS должен уступать этим потокам необходимую долю пропускной способности сети при их появлении и занимать ее при их завершении, при этом не вызывая роста задержек передачи данных. Это требование накладывается на TCP TIPS для возможности его применения в сетях, передающих потоки данных, чувствительные к задержке (например, IP- телефония, IP-телевидение и др.). Такие потоки должны считаться высокоприоритетными, поэтому TCP TIPS должен уступать им требуемую долю пропускной способности сети, обеспечивая одновременно сервис надежной передачи данных, обладающий меньшим приоритетом, но эффективно использующий доступную долю пропускной способности.
Для изучения свойств и характеристик протокола TCP TIPS и сравнения его с TCP и различными модификациями TCP необходимо разработать имитационную модель сети, позволяющую проводить адекватные сравнительные эксперименты с участием TCP TIPS и различных модификаций TCP в рамках одной имитационной модели. Для решения этой задачи следует использовать заслужившие доверие, широко известные и проверенные на наличие ошибок средства симуляции. На роль такого средства хорошо подходит среда ns-2. Одной из целей данной работы является реализация TCP TIPS в рамках данной модели, проведение имитационного моделирования для изучения свойств TCP TIPS в различных ситуациях, сравнение его поведения с поведением имеющихся модификаций TCP и анализ полученных результатов.
Научная новизна и полученные результаты. Основные научные результаты диссертации состоят в следующем:
Разработан метод оценки доступной пропускной способности сети, использующий значения межсегментных интервалов, задаваемых на стороне отправителя и наблюдаемых на стороне получателя.
Разработан алгоритм управления потоком данных, применяющий этот метод и реализующий метод борьбы с перегрузкой, полностью основанный на анализе значений межсегментных интервалов. На базе этого алгоритма разработан совместимый с TCP в плане формата сообщений протокол TCP TIPS.
Разработана программная модель протокола TCP TIPS для симулятора ns-2, что позволило моделировать поведение протокола в сетях с различными характеристиками. Также наличие реализации в ns-2 позволило провести наряду с исследованиями поведения TCP TIPS в рамках единой программной модели эксперименты с участием ряда модификаций TCP и получить результат сравнительного анализа свойств этих протоколов и TCP TIPS.
На основании результатов экспериментов можно заключить, что TCP TIPS превосходит по коэффициенту использования пропускной способности сети большинство модификаций TCP, сохраняя при этом низкое значение задержки передачи данных. Его превосходство наиболее ярко выражено в ненадежных сетях и при частой смене маршрутов в сети. Также TCP TIPS реализует предъявленные к нему требования при работе с потоками, использующими фиксированную скорость передачи данных, и при наличии перегрузки в направлении, обратном направлению передачи данных.
Практическая ценность результатов. Практическая ценность результатов заключается в разработке совместимого с TCP протокола, предлагающего проактивные методы борьбы с перегрузкой. Модельные испытания предложенного протокола показали возможность применимости анализа значений межсегментных интервалов для обнаружения перегрузки и управления потоком данных. Созданная программная модель протокола может служить базой для его реализации в операционных системах.
Апробация работы и публикации. Результаты работы докладывались на коллоквиумах Spring/Summer Young Researcher's Colloquium on Software Engineering (SYRCoSE) (Екатеринбург, 2011 и Пермь, 2012), VIII международной научно-практической конференции «Современное состояние естественных и технических наук» (Москва, 2012), III международной научно-практической конференции «Научная дискуссия: вопросы физики, математики, информатики» (Москва, 2012), международной научно-практической конференции «Тенденции развития прикладной информатики» (Ярославль, 2012), семинаре по теоретической информатике
Ярославского государственного университета (Ярославль, 2012), семинаре отдела «Технологий программирования» Института Системного Программирования РАН (Москва, 2012). Разработка поддержана грантом РФФИ 12-07-31173-мол_а («Разработка, моделирование и анализ коммуникационных протоколов транспортного уровня с управлением потоком передачи данных, минимизирующим задержку»), грантом Федеральной Целевой Программы «Научные и научно-педагогические кадры инновационной России» на 2009-2013 годы, соглашение 14.132.21.1366 («Разработка, моделирование и анализ производительности транспортных протоколов в коммуникационных сетях»).
Результаты диссертации опубликованы в 8 работах, в том числе в 3 работах - в изданиях из списка ВАК. Получено свидетельство о государственной регистрации программы для ЭВМ №2013611466 «Модуль протокола TCP TIPS для среды ns-2».
Структура и объем работы. Диссертация состоит из введения, четырёх глав, заключения, списка литературы и двух приложений. Список литературы включает 136 наименований. Основной текст диссертации (без приложений и списка литературы) составляет 176 страниц, содержит 72 рисунка и 18 таблиц.