УДК 004.057.4
Д.И. Иовлев, И.В. Бойченко, В.В. Абрамов
Повышение устойчивости передачи данных в сетях MANET
Приводится решение проблемы применения классического протокола TCP в мобильных беспроводных сетях со случайной топологией - MANET, а также краткий обзор аналогов и модификаций протокола TCP. Предложены новые алгоритмы управления передачей данных в сетях MANET и результаты моделирования работы этих алгоритмов в среде MatLab.
Ключевые слова: MANET, транспортный протокол, управление передачей данных, TCP.
Задача управления передачей в сетях MANET. MANET (Mobile Ad hoc Network) - беспроводные децентрализованные самоорганизующиеся сети, состоящие из мобильных устройств. Каждое такое устройство может независимо передвигаться в любых направлениях и как следствие, часто разрывать и устанавливать соединения c другими мобильными узлами.
Децентрализованные беспроводные сети не имеют постоянной структуры. Клиентские устройства соединяются «на лету», образуя собой сеть со случайной (ad-hoc) топологией. Каждый узел сети пытается переслать данные, предназначенные другим узлам. При этом определение того, какому узлу пересылать данные, производится динамически на основании связности сети.
Минимальное конфигурирование и быстрое развёртывание позволяют применять самоорганизующиеся сети в чрезвычайных ситуациях, при боевых действиях и в других ситуациях, когда отсутствует какая-либо заранее развернутая инфраструктура связи [1-2].
Одной из проблем реализации сетей класса MANET является обеспечение эффективности, безопасности и надежности передачи данных в условиях произвольно изменяющейся физической топологии сети.
На транспортном уровне модели взаимодействия открытых систем (Open System Interconnection -OSI) располагается протокол управления передачей данных - транспортный механизм потоковой передачи данных с предварительной установкой соединения. Протоколы транспортного уровня обеспечивают работу протоколов вышестоящих уровней, вплоть до прикладного. Поэтому протоколы надежной доставки необходимы для обеспечения работы многих сетевых приложений: таких как файловые сетевые сервисы, сервисы сообщений, сервисы передачи гипертекста и др., что также используется и в MANET.
Однако ограничения, накладываемые сетями MANET, не позволяют использовать существующие протоколы управления передачей данных [3-9], рассчитанные на условия стабильной сетевой топологии.
Далее рассмотрим задачу обеспечения транспортного сетевого сервиса надежной доставки данных для сетей MANET, не учитывая существующие проблемы маршрутизации.
Постановка задачи. Предназначение транспортного протокола сети MANET заключается в обеспечении сервиса надежной и эффективной передачи данных на основе пакетной коммутации в беспроводных мобильных сетях.
Надежность подразумевает извещение пользователя об одной из двух возможных ситуаций, которые могут возникнуть при доставке данных: о том, что данные успешно доставлены адресату, или о том, что возникла неустранимая ошибка и доставка данных адресату не произошла.
Под эффективностью понимается минимизация количества повторных передач в случае потери пакетов, нарушения связи, смены маршрута, а также снижение вероятности перегрузки в сети.
Обеспечение транспортным протоколом описанных выше качеств в условиях изменчивости топологии сети характеризует устойчивость передачи данных в сетях MANET.
Применение TCP в MANET. Рассмотрим алгоритмы работы «классического» протокола управления передачей данных - Transfer Control Protocol (TCP) из стека протоколов TCP/IP. Для изучения механизмов работы TCP была использована спецификация протокола RFC 793 [10].
Так как проводным сетям присуща стабильность (разрывы связи происходят очень редко), протокол TCP устроен таким образом, что, как правило, потеря пакета происходит из-за высокой загруженности сети. Чтобы уменьшить так называемые заторы, TCP запускает механизм управления за-
грузкой, который неадекватен в условиях изменчивости физической топологии и вызывает появление в сети большого количества бесполезных сетевых пакетов.
В MANET, состоящей из нескольких мультиузловых беспроводных связей, потери пакетов могут происходить из-за ошибок канального и физического уровней. В таких условиях TCP показывает плохую производительность, что подтверждено путем анализа и моделирования [3-6, 11].
Недостатки применения TCP в сетях MANET можно выделить в следующие группы:
1) ошибки, связанные с конфликтами и коллизиями;
2) недостатки, связанные с мобильностью узлов в MANET;
3) неспособность обрабатывать поток неупорядоченных пакетов;
4) высокое энергопотребление.
В первой группе самой важной является проблема скрытого терминала (или узла). Она возникает, когда два устройства (А и В) удалены настолько, что «не слышат» друг друга, однако оба попадают в зону охвата третьего устройства С (рис. 1).
Рис. 1. Скрытый терминал
Если оба устройства А и В начнут передачу, то они принципиально не смогут обнаружить конфликтную ситуацию и определить, почему пакеты не проходят из-за проблем в контроле доступа в эфир. Нами было принято решение оставить это проблему для нижних уровней стека протоколов.
Недостатки второй группы возникают при разрывах и восстановлениях связи, в результате чего происходят потери пакетов. В такой ситуации TCP посчитает, что в сети возник затор (пробка) и запустит механизмы по его устранению, хотя никакого затора нет. В итоге после восстановления маршрута скорость будет снижена и будет еще снижаться при повторном возникновении такой ситуации. Как решение нами предложено отказаться от таймеров, использовать асинхронную передачу данных и очередь отправленных пакетов.
Недостатки третьей группы проявляются при многонаправленной (multi-path) маршрутизации. В такой ситуации TCP поступает так же, как и в предыдущем случае. Решение: сортировать полученные пакеты по их номеру, последний пакет в передаче помечать специальным флагом.
Недостатки последней группы возникают из-за порождения большого количества пакетов, что расходует большое количество энергии и неэффективно для мобильных узлов связи, использующих автономные источники питания. Поэтому протокол управления передачей данных в сетях MANET должен по возможности минимизировать число ненужных повторных передач.
В настоящее время уже существует решение данных проблем - специализированные транспортные протоколы, полученные как путем модификации TCP, так и разработанные «с нуля». Можно выделить три класса протоколов: TCP с обратной связью (TCP-F, TCP-ELFN, ATCP); TCP без обратной связи (TCP-Fixed-RTO, TCP-DOOR, TPA, ATP, ITP) и протоколы, использующие специальные изменения на других уровнях стека протоколов (Neighbourhood RED и др.) [12].
С помощью обратной связи, по которой поступает информация о причине перегрузки сети, TCP сможет различать действительную перегрузку сети и другие проблемы, такие, как ошибки канала, обрывы маршрутов и т.д. Механизм обратной связи несет с собой дополнительную сложность и стоимость в мобильных сетях.
Управление передачей. Мы предложили протокол, который, с одной стороны, не использует обратную связь, но с другой - реагирует на состояние канала связи и динамически выбирает скорость передачи данных. Осуществляется это с помощью наблюдения за состоянием буфера протокола, очередей пакетов и пошаговой передачи.
Состояние буфера определяется коэффициентом его заполнения, который говорит о направлении изменения количества свободного пространства и используется при перерасчете скорости передачи.
Протокол использует три очереди: очередь на отправку, очередь отправленных пакетов, очередь на ретрансляцию. Собирая статистику по ним, протокол может определять свое дальнейшее поведение.
Пошаговая передача означает, что соединение устанавливается не сразу с протоколом конечного адресата (если нет возможности связаться с ним напрямую), а с протоколом узла, через который проходит маршрут до точки назначения. Таким образом, происходит контроль доставки и скорости между каждой парой соседних узлов маршрута.
Итак, данный протокол можно отнести к классу протоколов без обратной связи.
Формат заголовка. Его структура позаимствована у ТСР (таблица).
________________________________________Формат заголовка__________________________________________
Порт отправителя (l6 бит)
Порт назначения (l6 бит)
Порядковый номер пакета (32 бит)
Порядковый номер подтвержденного пакета (ACKNOWLEDGMENT) (32 бит)
Смещение (4 бит)
Пусто Флаги (7 бит)
(5 бит) ACK PSH RST SYN END | LST WRG
Коэффициент заполнения буфера (l6 бит)
IP-
адрес
источника
IP-адрес конечного получателя
Опции
Данные
Был убран флаг «срочности» и добавлено 2 новых: LST - признак заключительного пакета; WRG - признак нежелательного состояния буфера протокола. Вместо окна использован коэффициент заполнения буфера. Также в заголовок включены ip-адреса источника и конечного получателя.
Стоит заметить, что в заголовке отсутствует контрольная сумма, т. к. предполагается, что она будет рассчитываться и проверяться для пакетов, образованных на канальном уровне.
Надежность. Рассмотрим, за счет чего будет обеспечиваться надежность в новом протоколе.
Каждый новый исходящий пакет получает порядковый номер. После получения пакета адресат отправляет подтверждение доставки - пакет с установленным флагом ACK и полем acknowledgment, равным номеру принятого пакета.
Для проверки доставки пакетов используется очередь отправленных пакетов. В ней хранятся элементы, описывающие отправленные пакеты. Каждый такой элемент имеет следующие поля: номер пакета, указатель на блок данных и длина блока данных (необходимо для восстановления данных потерянного пакета из буфера), количество повторов (это поле увеличивается на l при каждой попытке отправить пакет). Как только количество повторов одного из пакетов превышает порог, генерируется управляющий сигнал для смены маршрута. То же самое произойдет, если за последнее время в очередь отправленных пакетов было добавлено N элементов, но ни одного не изъято.
Алгоритм работы следующий. При получении подтверждения доставки переданного пакета проверяется соответствие между информацией, полученной с подтверждением, и информацией, записанной в элементе стоящего в начале очереди. Если проверка дала отрицательный результат, то из очереди первый стоящий элемент вытесняется в очередь на повторную передачу, а счетчик повторов для данного пакета увеличивается на единицу. Повторно производится проверка. Данный цикл повторяется до тех пор, пока проверка не даст положительный результат. В таком случае элемент, описывающий подтвержденный пакет, удаляется из очереди отправленных пакетов, а блок данных пакета удаляется из буфера.
Данный алгоритм является частью управления передачей данных, который строится на следующих принципах:
• данные передаются по мере освобождения канала. Таким образом, передача следующего пакета происходит без ожидания подтверждения доставки предыдущего пакета;
• во время передачи буфер протокола поддерживается заполненным наполовину. Данный принцип дает возможность иметь достаточно времени для реагирования на изменения в пропускной способности соседнего узла;
• скорость передачи данных на всех узлах маршрута поддерживается на одном уровне, который задается узлом с самой низкой пропускной способностью, что позволяет не перегружать сеть без надобности;
• первыми на отправку выбираются пакеты из очереди на ретрансляцию. Если в ней пакеты отсутствуют, то формируются новые. Этот принцип позволяет обеспечивать надежность доставки;
• в АСК-пакете вместе с подтверждением передается коэффициент заполнения буфера. Он получается из отношения количества полученных данных к общему количеству обработанных данных с момента последнего пришедшего пакета. Обработанными считаются данные, доставка которых подтверждена соседним узлом или процессом-получателем.
Для управления скоростью передачи данных нами были разработаны формулы на основании моделирования.
Если в АСК-пакете не был установлен флаг WRG, то перерасчет скорости производится по формуле (1). В противном случае - по формуле (2).
Ун = (т+3*(1- т))*гг, (1)
К 4 К
Ун = , (2)
К
где Ун - новая скорость передачи; Ут - текущая скорость передачи; К - коэффициент заполнения буфера.
3
В формуле (1) коэффициент — подобран в ходе моделирования. В дальнейшем, в ходе исследований, будет разработан алгоритм по его вычислению.
Результаты моделирования. Для проверки алгоритмов и методов была разработана модель в среде Ма1ЬаЬ. Схематически она изображена на рис. 2. Окружности представляют собой узлы, которые образуют сеть и способны принимать/передавать данные. В участке сети между первым и вторым узлами присутствует помеха, ухудшающая пропускную способность среды, что влечет за собой потери передачи.
Узел 1: скорость передачи: 2097 байт/мс; количество соединений - 1; допустимое количество повторных передач пакета - 5.
Узел 3: скорость передачи: 1048 байт/мс; количество соединений - 1; допустимое количество повторных передач пакета - 5.
Узел 2 и 4: аналогично первому.
Рис. 2. Тестовый пример
Модель узла представлена на рис. 3. Блоки приложений, входящих соединений, канального и физического уровней представляют собой упрощенную реализацию среды, в которой данный протокол будет работать. В блоке транспортного протокола реализованы механизмы и алгоритмы описанные выше. Данный блок способен принимать данные как от приложений внутри узла, так и от входящих соединений. Данные от входящих соединений не поднимаются выше уровня транспортного протокола.
Рис. 3. Модель узла
На данной модели тестировался следующий случай (рис. 2). Имеется 4 узла. Первый инициирует отправку данных через второй узел, причем между первым и вторым узлом есть помехи, из-за которых пакеты с номером, кратным трем, теряются. Моделировалась работа сети в течение промежутка 5 с, достаточного, учитывая моделируемую скорость передачи, для проверки алгоритмов на работоспособность. Задержки, связанные с установкой соединения, работой протоколов, работой оборудования, не учитываются. Во внимание берется задержка, связанная со временем передачи одного пакета. Размер пакета равен 20970 байт.
Передача начинается с пакета под номером 1, за 5 с было отправлено 149 пакетов (рис. 4, а). В течение первых 0,9 с порядок пакетов был нарушен из-за нестабильности связи между первым и вторым узлами (рис. 4, б).
а б
Рис. 4. Порядок отправляемых пакетов на первом узле
Из графика видно, что, передавая пакеты через второй узел, третий пакет отсылается 5 раз в течение 0,7 с. После чего, согласно описанному выше алгоритму, производится смена маршрута, и все потерянные пакеты успешно передаются в течение 0,2 с.
После смены скорость передачи на первом узле постепенно снизилась, т.к. скорость передачи на третьем узле в 2 раза ниже (рис. 5). В итоге скорость передачи на первом узле выровнялась со скоростью передачи на втором узле, что помогает избежать переполнения принимающей стороны.
0 1 2 3 4 5 0 1 2 3 4
Время, с Время, с
Рис. 5. Динамика скорости передачи на первом узле Рис. 6. Свободное пространство в буфере третьего узла
Из рис. 6 видно, что буфер третьего узла начал постепенно заполняться после смены маршрута. В ходе снижения скорости передачи на первом узле свободное пространство в буфере на третьем узле стабилизировалось.
Из рис. 7, а видно, что четвертым узлом были получены все отправленные ему пакеты. В первые 0,7 с порядок принимаемых пакетов был нарушен из-за нестабильности связи. В период с 0,8 с по 1,3 с данным узлом были получены потерянные пакеты (рис. 7, б).
В результате была произведена передача всех пакетов без повторной передачи уже подтвержденных пакетов до смены маршрута из-за потерь части пакетов.
Время, с Время, с
а б
Рис. 7. Номера пакетов, полученные на четвертом узле
Заключение. В результате проведённого исследования рассмотрены недостатки применения реализации протокола управления передачей TCP в сетях MANET.
В качестве решения проблемы неэффективной работы TCP в условиях частой потери пакетов был предложен алгоритм работы нового протокола управления передачей данных в сетях MANET, отличающийся возможностью адаптации к потерям пакетов и повышающий устойчивость при передаче данных. Такая адаптация позволяет использовать предложенный алгоритм управления передачей данных в мобильных беспроводных сетях.
Было проведено моделирование работы протокола, в соответствии с предложенным алгоритмом в среде MatLab. Результаты моделирования подтвердили свойство алгоритма адаптировать интенсивность отправки пакетов в условиях потери пакетов и изменения топологии сети.
Литература
1. Беспроводные ad hoc сети [Электронный ресурс]. - Режим доступа:
http://www.technorate.ru/index.php?id=672, свободный (дата обращения: 03.02.2012).
2. Защита сетей Wi-Fi [Электронный ресурс]. - Режим доступа:
http://milter.ru/index.php/story/39-secwifi, свободный (дата обращения: 03.02.2012).
3. TCP over wireless multihop protocols: simulation and experiments / M. Gerla, R. Bagrodia, L. Zhang et al. // IEEE ICC’99 (Vancouver, Canada). - June 1999. - P. 1089-1094.
4. The impact of multihop wireless channel on TCP throughput and loss / Z. Fu, P. Zerfos, H. Luo et al. // IEEE INFOCOM’03 (San Francisco). - March 2003. - Т. 3. - P. 1744-1753.
5. Fu Z. How bad TCP can perform in mobile ad-hoc networks / Z. Fu, X.Meng, S. Lu // IEEE. Symposium on Computers and Communications, Taormina-Giardini Naxos (Italy). - July 2002. - P. 298-303.
6. Gerla M. TCP performance in wireless multihop networks / M. Gerla, K. Tang, R. Bagrodia // IEEE WMCSA’99 (New Orleans, LA). - Feb. 1999. - P. 41-50.
7. Xu S. Does the IEEE 802.11MAC protocol work well in multihop wireless ad hoc networks? // S. Xu, T. Saadawi // IEEE Communications Magazine (Portland, USA). - 2001. - Т. 39, № 6. - P. 130-137.
8. ATP: a reliable transport protocol for ad-hoc networks / K. Sundaresan, V. Anantharaman, H.-Y. Hsieh, R. Sivakumar // Mobile Computing. IEEE Transactions on. - Nov. 2005. - Т. 4, № 6. -P. 588-603.
9. Liu J. ATCP: TCP for mobile ad hoc networks / J. Liu, S. Singh // IEEE JSAC (California). -2001. - Т. 19, № 7. - P. 1300-1315.
10. RFC: 793 TRANSMISSION CONTROL PROTOCOL [Электронный ресурс]. - Режим доступа: http://www.faqs.org/rfcs/rfc793.html, свободный (дата обращения: 03.02.2012).
11. A comparison of mechanisms for improving TCP performance over wireless links / H. Balakrish-nan, V. Padmanabhan, S. Seshan, R. Katz // IEEE. ACM Transactions on Networking (Stanford, USA). -Dec. 1997. - Т. 5, № 6. - P. 756-769.
12. Xiang Chen, Hongqiang Zhai, Jianfeng Wang, and Yuguang Fang. TCP Performance over Mobile Ad Hoc Networks [Электронный ресурс]. - Режим доступа: http://ieeexplore.ieee.org/xpl/freeabs_ all.jsp?arnumber=1425806, свободный (дата обращения: 24.05.2012).
Иовлев Денис Игоревич
Аспирант каф. автоматизированных систем управления ТУСУРа
Тел.: 8-923-422-92-05
Эл. почта: [email protected]
Бойченко Иван Валентинович
Ст. науч. сотр. Томского филиала Института вычислительных технологий СО РАН (ТФ ИВТ СО РАН)
Тел.: 8-906-958-24-83
Эл. почта: [email protected]
Абрамов Валерий Валерьевич
Инженер ЗАО НПФ «Микран»
Тел.: 8-952-809-84-55
Эл. почта: [email protected]
Iovlev D.I., Boichenko I.V, Abramov V.V.
New data transmission management protocol in the MANET networks
The TCP protocol and the shortcomings of MANET application are considered in the article. Also the short review of analogs and modifications of TCP developed at other universities is provided. Algorithms and principles of the new protocol of management by data transmission in the MANET networks are given and results of their work during modeling in the environment of MatLab are presented.
Keywords: MANET, transport protocol, management of data transmission, TCP.