Прочитав очередной пост на хабре на тему самоорганизующихся сетей автор понял, что в этой теме до сих пор нет ясности. В большинстве случаев о самоорганизующихся радиосетях говорят «mesh», «ad hoc», «mobile ad hoc» и т.д., подразумевая, что это одно и тоже. И это касается не только простого хабро-обывателя, пусть даже технически подкованного, но и большинства инженеров с PhD. К тому же, зачастую такие сети преподносятся как универсальное средство на все случаи жизни [1] или даже как чуть-ли не единственный вектор развития и эволюции телеком индустрии [2]. Смею уверить, что без четкого понимания места и роли этих сетей, такие утверждения, по крайней мере, преждевременны, хотя и недалеки от реальности.
Итак, начнем с определения, что же такое сети типа Mesh, Ad Hoc, mobile Ad Hoc и в чем разница между ними.
Mesh сети – радиосети ячеистой структуры, состоящие из беспроводных стационарных маршрутизаторов, которые создают беспроводную магистраль и зону обслуживания абонентов) и мобильных/стационарных абонентов, имеющих доступ (в пределах зоны радиосвязности) к одному из маршрутизаторов. Топология – звезда, со случайным соединением опорных узлов.
Ad hoc сети – радиосети со случайными стационарными абонентами, реализующие полностью децентрализованное управление при отсутствии базовых станций или опорных узлов. Топология – фиксированная со случайным соединением узлов.
MANET (Mobile Ad hoc NETworks) сети – радиосети со случайными мобильными абонентами, реализующие полностью децентрализованное управление при отсутствии базовых станций или опорных узлов. Топология – быстро меняющаяся со случайным соединением узлов.
К этому надо добавить WSN (Wireless Sensor Networks) — беспроводные сенсорные (телеметрические) сети, состоящие из малогабаритных сенсорных узлов с интегрированными функциями мониторинга определенных параметров окружающей среды, обработки и передачи данных по радиоканалам. Они могут, в зависимости от задачи, строиться как топологии mesh, ad hoc так и MANET; автомобильные сети VANET (Vehicle Ad hoc NETworks) – сети связи транспортных средств; и всевозможные гибриды вышеизложенного.
Почему именно MANET?
Сегодня подавляющее большинство наземных мобильных беспроводных сетей связи имеют фиксированную инфраструктуру и соединены между собой с помощью различных, как правило проводных или радиорелейных, каналов передачи данных. В последнее десятилетие большое внимание уделяется созданию мобильных пакетных радиосетей, которые не имеют фиксированной инфраструктуры – сети стационарных (Ad Hoc) и мобильных абонентов (MANET).
Такие сети являются самоорганизующимися, поскольку их узлы являются не только оконечными пользовательскими терминалами, но и являются ретрансляторами-маршрутизаторами, ретранслируя пакеты других абонентов и участвуя в нахождении маршрутов к ним, следовательно, эти сети способны к самоорганизации. Такие сети могут состоять из десятков, сотен и даже тысяч узлов. Сфера применения таких сетей достаточно широка. Так, сети MANET полезны в поисково-спасательных операциях, на театре военных действий тактического уровня, местах большого скопления людей (например, для обслуживания участников конференций), и там, где нет телекоммуникационной инфраструктуры (например, в экспедициях в удаленные от «цивилизации» регионы). Возможно, что эти сети во многих случаях могут стать альтернативой массовым сетям мобильной связи.
В противоположность сетям c иерархической структурой и централизованным управлением, одноранговые сети без инфраструктуры состоят из однотипных узлов, где каждый узел обладает комплексом программно-аппаратных средств, позволяющих организовать передачу данных от источника к получателю напрямую при физическом наличии такого пути и тем самым распределить нагрузку на сеть и повысить суммарную пропускную способность сети. Передача данных от одного абонента к другому может происходить, даже в случае если эти узлы находятся вне зоны прямой радио видимости. В этих случаях пакеты данных этих абонентов ретранслируются другими узлами сети, которые имеют связь с корреспондирующими абонентами. Сети с многократной ретрансляцией называются многопролетными или многоскачковыми (multihop). При разработке таких сетей основными проблемами являются маршрутизация пакетов от узла источника к узлу получателю, масштабируемость сетей, адресация оконечных устройств, поддержание связности в условиях переменной топологии.
Таким образом, практическая польза от реализации таких сетей была бы действительно огромна. Начиная от бесплатных звонков внутри такой сети, до восстановления связи в разрушенных стихией районах.
О технологиях и стандартах
В большинстве научных работ и коммерческих проектах (прожектах) подразумевается использование стандартов IEEE 802.11, известного в народе как WiFi, IEEE 802.15.4 (ZigBee) или же IEEE 802.15.1 (Bluetooth). На этом практически исчерпываются предлагаемые радио технологии по данной теме. Объясняется такое неразнообразие подходов просто: у нас уже есть WiFi и Bluetooth в каждом смартфоне, так не лучше ли переиспользовать их для задач самоорганизации радиосетей. При этом рисуется красивая картинка, как в [3], и объясняются преимущества от их использования в сценарии ...MANET.
Вот тут и «зарыта собака». Дело в том, что ни IEEE 802.15.4, ни тем более IEEE 802.11 не разрабатывались для сетей типа MANET. Они разрабатывались для mesh-сетей (см. выше определение) и имеют иерархический принцип построения. Тот же стандарт ZigBee подразумевает 3 типа устройств в сети: координатор, маршрутизатор (роутер) и конечное устройство. Ну и что скажете вы? А дело в том, что даже если на столе у вас будут лежать 2 конечных ZigBee-устройства, скажем торшер и чайник, то они никогда не будут «говорить» друг с другом напрямую, а только через роутер. К тому же, новое устройство никогда не войдет в сеть без предварительного «ОК» и кучи других параметров от координатора. На все это надо время, во время которого пользователь просто ждет. Это особенно важно для сетей с быстро меняющейся топологией, например VANET.
То же касается технологии Bluetooth, где всегда есть один координатор, который раздает тайм-слоты и управляет доступом в канал. Абоненты, как и в ZigBee, всегда общаются через координатора. Координаторы могут образовывать между собой scatternet, но реально это не работает (см. дальше почему). Bluetooth 4.0, известный как Bluetooth Low Energy, и вовсе предназначен для передачи «раз в час» пакетов длины не более 20 байт прикладных данных [4]. Так что он физически не подходит для высокоскоростных сервисов.
О проблемах
А теперь представьте себе машину, которая мчится по магистрали и ей необходимо обменяться информацией со светофором и проезжающей машиной и сравните это со временем, которое вы тратите на вход в обычную WiFi сеть или подсоединяетесь по Bluetooth к новому устройству. Сравнили? Плюс ко всему, соединение должно быть надежным (с подтверждением доставки), защищенным (шифрование + аутентификация) и быстрым (пропускная способность желательно > 1 Мбит/с).
Или другой пример – MANET. Представьте солдата на поле боя, где ситуация меняется ежесекундно, а ему надо в реальном времени доложить обстановку командованию, получить приказ, загрузить тактическую карту и тд. Такое соединение помимо надежности и безопасности должно быть еще и устойчивым к изменениям топологии, маршрутизация должна обладать быстрой сходимостью, т.е. гарантировать нахождение маршрута заданного качества за разумное время, гарантировать отсутствие зацикливаний, обеспечивать многоадресатную рассылку. А если таких солдат много. Скажем, рота или батальон?
Вот теперь можно представить, какого рода проблемы стоят перед этими сетями.
Так все-таки, почему же, при всех вышеупомянутых требованиях, нельзя создать гибридную или полностью распределенную радиосеть типа MANET на стандарте IEEE 802.11 или ZigBee или Bluetooth? Можно! Но давайте скажем честно, что это будет за сеть.
1. МАС уровень
Наиболее важным для эффективной работы радиосетей с коммутацией пакетов является канальный уровень, точнее его МАС-подуровень из-за его концептуальной сложности и глобального сетевого влияния, т.к. нерациональная организация коллективного доступа к радиоканалу может значительно снизить скорость передачи пакетов по сети или даже совсем заблокировать ее работу вне зависимости от качества функционирования других уровней эталонной модели OSI.
В WiFi, как и в ZigBee, используется протокол множественного доступа с контролем несущей и предотвращением коллизий — CSMA/CA. Он предполагает, что «один говорит-остальные молчат». При этом производится обмен управляющими фреймами RTS/CTS для решения проблемы скрытого абонента и среда передачи резервируется для передающей станцией. Не буду утомлять техническими подробностями как это делается – кто захочет узнать, в Интернете тонны информации на эту тему. Скажу лишь, что резервирование среды по методу CSMA/CA требует строгой симметричности линий и определенных элементов координированного управления, что для MANET – невозможно/нежелательно.
Итого, имеем деградацию параметров производительности протокола множественного доступа при высокой динамике изменения топологии и интенсивном трафике.
2. Адресация
Сейчас только ленивый не знает о том, что адресное пространство IPv4 исчерпано.
Понятно, что поднимать DHCP и раздавать адреса внутри сети MANET – идея нежизнеспособная хотя бы потому, что это потребует времени на поиск маршрута к серверу, да и как маршрутизировать изначальный адрес типа 0.0.0.0 при многоскачковой ретрансляции пакета?
Принято считать, что IPv6 является тем протоколом, который ляжет в основу сетей будущего. Согласимся с этим. Но тогда возникает некоторое недоумение по поводу неповсеместной поддержки нового протокола разработчиками маршрутизации. Даже такие основополагающие ad hoc документы IETF, как RFC 3561, RFC 4728, не предлагают конкретных механизмов поддержки IPv6. Таким образом, эта проблема отдается на откуп вендорам железа, а те в свою очередь решают задачу как могут.
Еще одним неприятным фактом для WiFi, в контексте самоорганизующихся сетей, является обязательная адресация на канальном уровне. Это кажется мелочью, но как показывает практика – эта мелочь способна положить всю сеть. Поясняю. Если мы работаем в сети IPv4, то заголовок канального фрейма формируется с помощью протокола ARP, который определяет МАС адрес вызываемого абонента по его IP путем периодического опроса. В протоколе IP версии 6, протокола ARP нет. Он заменен протоколом ICMP версии 6, который предполагает обмен специальными сообщениями ”Neighbor solicitation” – ”Neighbor Advertisement” для привязки МАС адреса к IPv6. Естественно, что в классическом LAN эти запросы не идут далее 1 маршрутизатора, т.к. там все пользователи предполагается сидят на одной общей шине. В радиосетях, в силу их беспроводной природы, все абоненты физически не могут «сидеть» на общем канале и слышать всех остальных, тем более в MANET. А заполнение сети ARP или ICMPv6 запросами ведет к увеличению неинформативного обмена между абонентами и, как следствие, к снижению реальной пропускной способности.
Как видим, на пустом месте получили необходимость в обмене канальными фреймами между соседними абонентами сети.
3. Маршрутизация
Принято делить протоколы маршрутизации на проактивные (табличные), реактивные (зондовые) и их гибриды (есть еще волновые, но о них в другой раз). На заре развития mesh-сетей пытались использовать стандартный протокол маршрутизации OSPF. Из этого ничего не вышло, естественно, т.к. он разрабатывался для совсем иных условий эксплуатации. В результате появилась масса работ, как научных так и не очень, где предлагаются десятки протоколов маршрутизации для самоорганизующихся радиосетей. Кому интересна эта тема, советую сайт www.ieee.org, раздел publications. Проблема, однако, заключается в том, что реально разработанные протоколы маршрутизации сетей MANET либо не реализованы физически в языке С, либо ориентированы на достижение оптимального использования сетевых ресурсов при квазистатичных условиях работы сети, т.е. когда топология меняется медленно или вообще не меняется. Последнее актуально для таблично-ориентированных протоколов типа OLSR, DSDV, WRP, BATMAN, Babel и т.п.
Опять же, зачем все это нужно в таких подробностях? А нужно потому, что эти протоколы подразумевают наличие в маршрутных таблицах информации обо всей сети сразу. Короче говоря, они постоянно строят маршруты до всех известных им узлов, вне зависимости от того нужен нам этот абонент или нет. Получили вторую необходимость в генерации неинформативного трафика в сети.
Зондовые протоколы, как напр. AODV, DSR, SSR, TORA, предполагают маршрутизацию по запросу, но не до конца стандартизированы (см.выше проблему адресации). К тому же из-за несимметричных каналов маршрутизация должна поддерживать режим построения множества маршрутов как от адресата-к получателю, так и в обратном направлении. А это поддерживают только протоколы DSR и TORA. Поэтому тут пока свободное поле для вольной мысли девелопера. А девелопер бывает разный…
4. Транспортный уровень
Автору по роду научной деятельности довелось работать над адаптацией ТСР и реализацией нового транспортного протокола для MANET. Можно писать на эту тему очень долго и нудно. Поэтому приведу лишь основные выводы из своего опыта. Стандартный протокол TCP, в реализации RFC 793 и RFC 5681 работает плохо при многоскачковой ретрансляции и случайном доступе. Сеть или недогружена или перегружена, связано это не с отсутствием собственно пропускной полосы, а с большими флуктуациями в параметрах соединения между абонентами: задержка, джиттер, процент потерь пакетов; и особенно частым изменением собственно маршрута передачи. К тому же, оказалось, что ТСР должен иметь доступ к нижестоящим уровням – сетевому и канальному для более адекватного реагирования на изменения в такой сети. А концепция cross-layer существует только в статьях разных умных людей и ее практической реализацией никто не занимался. Почти никто. Что делать с этим? Другого ответа кроме как RnD – нет.
Теперь, с учетом всего вышесказанного, какие радиотехнологии «с полки» могут сразу удовлетворить всем требованиям и справиться с вышеописанными проблемами? Ответ очевиден – никакие. Вывод: создать реальную самоорганизующуюся сеть типа MANET можно и на WiFi, но она будет, мягко говоря, не очень хорошо работать. Ровно поэтому мы и не наблюдаем такого бума в беспроводном p2p, как в проводном Интернете, где есть Skype, TOR, торренты и много другого интересного.
Подчеркну, что речь идет не о сенсорных сетях, генерирующих 1 пакет в час, а о высокоскоростных децентрализованных радиосетях с динамически меняющейся топологией, например для передачи голоса.
О перспективах
Но не будем сгущать краски, кое-что сделано и для настоящих сетей MANET. Не будем также заниматься рекламой, тем более что это запрещено правилами хабра-сообщества. Просто скажем, что неким коллективом разработано программно-аппаратное решение для встраиваемых систем в виде радиомодуля, которое позволяет организовывать доступ на скоростях до 2 Мбит/с (около 700 кбит/с в приложении) в полностью децентрализованных мобильных радиосетях, с поддержкой реактивной маршрутизации и протокола IPv6. Сейчас заканчивается разработка комплекта разработчика, куда входят от 3-х радиомодулей с платами сопряжения, к которым могут быть подключены различные сенсоры и другие источники информации, отладочная плата, шлюз MANET-Ethernet и пользовательское ПО управления и конфигурирования сети. На базе этого решения возможна также реализация пользовательского терминала в формате защищенного смартфона или модема с USB.
В связи с этим, хотелось бы провести небольшой опрос на тему какой сервис был бы наиболее интересен и полезен юзерам.
Спасибо за внимание и буду признателен за обратную связь!
[1] — www.russianelectronics.ru/leader-r/review/doc/59295/
[2] — habrahabr.ru/company/infomania/blog/102814/
[3] — habrahabr.ru/post/79360/
[4] — e2e.ti.com/support/low_power_rf/f/538/t/71381.aspx
Автор: YuriiVoitenko