Разработчики протокола маршрутизации B.A.T.M.A.N. («Better Approach To Mobile Adhoc Networking) опубликовали отчет с последними достижениями проекта. Протокол B.A.T.M.A.N. разрабатывается в рамках проекта Open Mesh с целью развития технологий для mesh-сетей, т.е. децентрализованных сетей, не требующих наличия маршрутизаторов или точек доступа. Каждый узел в такой сети связан через соседние узлы, участвует в процессе маршрутизации и динамически перенаправляет данные к другим узлам в зависимости от текущих условий связности между элементами сети.
В частности, представлена концепция «Network Coding», которая представляет собой методику, нацеленную на расширение пропускной способности беспроводной сети, благодаря объединению нескольких фреймов в один, чтобы снизить количество требуемого эфирного времени. С помощью математических алгоритмов и определённых манипуляций, принимающие узлы могут декорировать и извлекать тот фрейм, который им нужен. На приведенной ниже схеме ретранслятор R присылает комбинированную передачу для A и B. A и B вычисляют свои данные и извлекают из общего фрейма только принадлежащую себе информацию.
После теоретического анализа механизмов и преимуществ Network Coding, был подготовлен рабочий прототип данной технологии. На основании созданного кода эффективность метода была оценена на практике. Результаты тестирования можно найти на следующих графиках, которые иллюстрируют пропускную способность сети с использованием Network Coding (синяя линии) и без него (зелёная линия). На втором графике рассмотрен выигрыш в пропускной способности с использованием Network Coding (красная линия) в цепи из трёх узлов при передаче данных с одного конца на другой.
Код был написан группой студентов в рамках инициативы Google Summer Of Code. Так как проект стал дипломной работой этих студентов, была подготовлена исчерпывающая документация, подробно объясняющая особенности реализации и анализирующая результаты. Поддержка Network Coding уже добавлена в пакет batman-adv, который можно загрузить с GitHub. После приведения кода в порядок, планируется добиться его включения в состав основного ядра Linux. В последней версии batman-adv 2011.3.0 наблюдается ряд известных недоработок, например, нарушена обратная совместимость с предыдущими версиями и прекращена поддержка ядра Linux старше 2.6.29. Кроме реализации Network Coding в ветке batman-adv добавлена поддержка обработки событий через uevent, алгоритм маршрутизации улучшен в направлении увеличения отзывчивости при передаче мультимедиа потоков (устранена проблема с возникновением длинных маршрутов при большой нагрузке).
