низкоприоритетная передача информации в сетях tcp/ip

advertisement
НИЗКОПРИОРИТЕТНАЯ ПЕРЕДАЧА ИНФОРМАЦИИ В СЕТЯХ TCP/IP
С УПРАВЛЕНИЕМ НА ПРОГРАММНОМ УРОВНЕ
С.В. Рощин, В.Г. Прокошев, С.М. Аракелян
Владимирский государственный университет
В данной статье рассматривается алгоритм низкоприоритетной передачи данных
в сетях TCP/IP, который позволяет использовать не занятую основными приложениями
пропускную способность канала связи и управлять процессом передачи на уровне
приложений модели DARPA. Особенностью алгоритма является то, что передача
данных не влияет на работу основных приложений и сервисов, использующих данный
канал связи, и его реализация относительно проста, так как не требует специального
оборудования и модификации логики стека протокола.
Организация низкоприоритетной передачи данных в крупных сетях со сложной
топологией, таких, как Интернет, является весьма полезной в целом раде случаев.
Например, такая задача возникает в случае, когда необходимо синхронизировать
содержимое между основным и вторичными серверами в Интернет, причем процесс
синхронизации не должен влиять на скорость обслуживания запросов пользователей.
Среди других можно выделить задачи фонового обновления приложений на
компьютере пользователя, которое не должно влиять на работу пользователя,
различные варианты кэширования информации, загрузка последних версий
антивирусных баз и др.
На сегодняшний день существует довольно большой спектр технологических
решений, позволяющих организовать разделение сетевых сервисов по уровням
приоритета. Все их можно сгруппировать по различным уровням упрощенной сетевой
модели DARPA. Как известно, в процессе разработки протоколов TCP/IP [1] более
выгодным оказалось использование упрощенной по сравнению с OSI (Open Systems
Interconnection) модели DARPA, которая рассматривает не семь, а только четыре
уровня изоляции сервисов: сетевой интерфейс, Интернет, транспорт, приложение
(соответственно Network Interface, Internet, Transport, Application).
Итак, наиболее распространенными технологиями приоритизации потоков
данных на различных уровнях модели DARPA являются:
1)
сетевой интерфейс – назначение приоритета на уровне физического
устройства, например, порт коммутатора (Layer 2), технологии маркировки пакетов
(IEEE 802.1p) и др.;
2)
Интернет – назначение приоритета определенной подсети на уровне
маршрутизатора (Layer 3), различные программные и аппаратные реализации
технологии QoS (Quality of Service);
3)
транспорт – альтернативные варианты протокола TCP – TCP Nice [2] и
TCP-LP [3];
4)
приложение – управление параметрами транспорта на уровне приложений.
Реализация управления на первых трех уровнях модели недоступно в таких
крупных гетерогенных сетях, как Интернет, так как требует, в зависимости от
используемой технологии, либо специального оборудования, либо модификации стека
TCP/IP операционной системы, что связано со значительными затратами при
внедрении.
Таким образом, наиболее эффективно (в плане затрат) низкоприоритетная
передача информации в Интернет может быть реализована на уровне приложения.
Отметим, однако, что скорость реакции у подобных алгоритмов несколько ниже, чем,
например, у TCP-LP, но все же приемлема для большинства рассмотренных случаев.
В данной работе рассматривается алгоритм фоновой передачи данных с
управлением на уровне приложения. В качестве используемого транспортного
протокола рассматривается TCP (Transport Control Protocol).
Алгоритм предусматривает совместную работу двух модулей: 1) определения
незанятой пропускной способности канала и 2) настройки параметров передачи данных
для соединения.
В существующей литературе можно встретить большое количество работ,
рассматривающих проблему определения незанятой полосы пропускания канала. В
основе одних лежит принцип тестирования маршрута передачи, требующий
координации работы отправителя и получателя информации [3]. Кроме того, пакеты
проб с использованием в реальной сети Интернет UDP чаще всего будут блокироваться
брандмауэром. В других методиках используется непосредственно протокол TCP, что,
как правило, приводит к получению завышенных характеристик [4].
В нашем алгоритме скорость передачи управляется изменением анонсируемого
получателем размера окна (receiver window) протокола TCP. Доступная пропускная
полоса канала определяется на основе скорости передачи, достигаемой при
анонсированном размере окна получателя, исходя из того принципа, что размер окна
отправителя (sender window) есть минимум из величин размер окна отправителя (receiver
window) и размер так называемого окна блокировки (congestion window). Управление
размером окна получателя также позволяет избежать завышенного определения
характеристик незанятой полосы пропускания канала связи [4].
Разработанный на указанных принципах алгоритм был подвергнут детальному
исследованию с использованием симулятора сетевых процессов NLBL ns-2 [6].
Разработан и развивается ns (Network Simulator) в рамках проекта под названием VINT
совместно UC Berkeley, LBL, USC/ISI и Xerox PARC. Проект поддерживается
организацией DARPA (Defense Advanced Research Project Agency). Для моделирования
использовалась вторая версия симулятора (ns-2).
В процессе моделирования анализировалась работа алгоритма при различных
топологиях сети и сочетаниях параметров сетевых устройств. Так, исходные принципы,
положенные в основу алгоритма, были доказаны на простейшей топологии сети – два
хоста непосредственно связаны друг с другом каналом связи на основе технологии
Ethernet без каких либо дополнительных устройств. При наличии нескольких
первичных соединений запускалась фоновая передача. Скорость реакции и качество
работы алгоритма доказали корректность математической модели. Исследования при
более сложных топологиях сети и различных вариантах загрузки канала так же
подтвердили корректность работы алгоритма.
На основе созданного алгоритма был разработан сервис низкоприоритетной
передачи информации с рабочим названием LPTS (Low Priority Transfer Service). В
качестве системной платформы была выбрана Microsoft Windows 2000/XP/2003.
Сервис
спроектирован
с
использованием
унифицированного
языка
моделирования UML в среде Rational XDE.NET Developer 2003. Реализация выполнена
на языке C++ с использованием среды разработки Microsoft Visual Studio 2003
Professional.
Практическое исследование работы сервиса выполнялось для следующих задач:

синхронизация содержимого нескольких Веб-серверов без прекращения
обслуживания клиентских запросов;

фоновая загрузка файлов на компьютер пользователя из Интернет при
одновременной работе пользователя.
Особенностью работы сервиса LPTS является возможность определять
расписание начала загрузки информации из указанных источников и продолжать
загрузку в случае нарушения соединения, например из-за особенностей используемого
канала связи и т. п.
В настоящий момент автором проводится анализ динамических характеристик
алгоритма низкоприоритетной загрузки, в частности устойчивости в случае наличия
нескольких фоновых потоков данных.
___________________
1.
Перечень стандартов IETF относительно TCP/IP. http://www.ietf.org.
2.
Venkatatammani A., Kokku R., Dahlin M. TCP Nice: A mechanism for
background transfers // Operating Systems Design and Implementation: Proc. Dec., 2002.
3.
Kuzmanovic A., Knightly E. TCP-LP: A distributed algorithm for low priority
data transfer // IEEE INFOCOM: Proc. 2003.
4.
Melander B., Bjorkman M., Gunningberg P. A new end-to-end probing and
analysis method for estimating bandwidth bottlenecks // IEEE GLOBECOM: Proc. Nov.,
2000.
5.
Jane M., Dovrolis C. End-to-end available bandwidth: measurement
methodology, dynamic and relation with TCP throughput // ACM SIGCOM: Proc. Vol. 1.
2000.
6.
McCanne S., Floyd S. Ns-LNBL network simulator. http://wwwnrg.ee.lbl.gov/ns.
Download