Разработчик (и) | Freifunk |
---|---|
Первоначальный выпуск | batctl 0.2.0 (8 Ноябрь 2008; 11 лет назад (2008-11-08) |
Стабильный выпуск | Batman-adv 2020.0 / 4 марта 2020; 7 месяцев назад (2020-03-04) |
Написано в | C |
Операционной системе | Unix-like |
Тип | протокол маршрутизации |
Лицензия | GPL |
Веб-сайт | www.open-mesh.org |
Better Approach To Mobile Adhoc Networking (BATMAN ) - это протокол маршрутизации для многозвенные мобильные специальные сети, которые разрабатываются немецким сообществом «Freifunk » и предназначены для замены протокола оптимизированной маршрутизации состояния канала (OLSR).
Важнейшим моментом B.A.T.M.A.N. является децентрализация знаний о наилучшем маршруте через сеть - ни один узел не имеет всех данных. Этот метод устраняет необходимость распространять информацию об изменениях в сети на каждый узел в сети. Отдельный узел сохраняет информацию только о «направлении», из которого он получил данные, и соответственно отправляет свои данные. Данные передаются от узла к узлу, а пакеты получают индивидуальные, динамически созданные маршруты. Создана сеть коллективного разума.
В начале 2007 года компания B.A.T.M.A.N. разработчики начали экспериментировать с идеей маршрутизации на уровне 2 (уровень Ethernet) вместо уровня 3. Чтобы отличаться от демона маршрутизации уровня 3, был выбран суффикс «adv» (для: advanced). Вместо того, чтобы манипулировать таблицами маршрутизации на основе информации, передаваемой через UDP /IP, он предоставляет виртуальный сетевой интерфейс и прозрачно транспортирует пакеты Ethernet самостоятельно. Модуль ядра batman-adv был частью официального ядра Linux с версии 2.6.38.
БЭТМЕН имеет элементы классических протоколов маршрутизации: обнаруживает другие B.A.T.M.A.N. узлов и находит лучший путь (маршрут) к ним. Он также отслеживает новые узлы и информирует своих соседей об их существовании.
В статических сетях сетевые администраторы или технические специалисты решают, к какому компьютеру с помощью какого пути или кабеля подключиться. Поскольку радиосети претерпевают постоянные изменения, а низкие пороги участия являются жизненно важной частью фундамента сетей «Фрайфанк», эту задачу необходимо максимально автоматизировать.
Каждый узел регулярно отправляет широковещательную рассылку, тем самым информируя всех своих соседей о своем существовании. Затем соседи передают это сообщение своим соседям и так далее. Он передает информацию каждому узлу в сети. Чтобы найти лучший маршрут к определенному узлу, B.A.T.M.A.N. подсчитывает количество полученных сообщений-отправителей и регистрирует, через какого соседа пришло сообщение.
Подобно протоколам вектора расстояния, B.A.T.M.A.N. не пытается определить весь маршрут, а, используя сообщения-отправителя, только первый шаг пакета в правильном направлении. Данные передаются следующему соседу в этом направлении, который, в свою очередь, использует тот же механизм. Этот процесс повторяется до тех пор, пока данные не достигнут места назначения.
Помимо радиосетей, B.A.T.M.A.N. может также использоваться с обычными проводными кабельными соединениями, такими как Ethernet.
Задача заключалась в создании протокола, который должен был быть таким же простым, таким маленьким и максимально как можно быстрее. Казалось разумным разделить разработку на несколько этапов и реализовать сложные функции с использованием итеративного процесса:
На первом этапе алгоритм маршрутизации был реализован и протестирован на его практичность и пригодность. для поставленной задачи. Для отправки и получения сообщений-отправителей (информации о существовании) был выбран порт UDP 1966.
Алгоритм первой версии сделал важное предположение: как только узел получает данные о существовании от другого узла, он предполагает, что он также может отправлять данные обратно. Однако в радиосетях вполне может быть, что возможна только односторонняя связь, то есть асимметричные каналы. В протокол был включен механизм, позволяющий это делать и решать возникающие проблемы. Этот механизм позволяет узлу определять, обеспечивает ли соседний узел двунаправленную связь. Только двунаправленные узлы считаются частью сети, а односторонние узлы больше не включаются полностью.
Самым большим нововведением в этой версии является поддержка B.A.T.M.A.N. нескольких сетевых устройств. Компьютер или маршрутизатор под управлением B.A.T.M.A.N. могут быть развернуты в центральном месте, например в высоком здании, и иметь несколько подключенных к нему проводных или беспроводных сетевых интерфейсов. В таком случае B.A.T.M.A.N. может ретранслировать сетевые данные в более чем одном направлении без задержки повторной передачи.
Определенные необычные явления и особые обстоятельства могут возникнуть во время определения наилучшего маршрута через сеть. С ними борются и противодействуют, чтобы предотвратить круговую маршрутизацию (которая может помешать достижению данных адресатом).
Узел может информировать сеть о том, что он предоставляет доступ в Интернет. Другие узлы используют эту информацию, чтобы оценить, есть ли поблизости от них подключение к Интернету и какая полоса пропускания доступна. Они могут либо использовать конкретный шлюз , либо разрешить B.A.T.M.A.N. чтобы определить, какой шлюз использовать, на основе таких критериев, как скорость соединения.
Уведомление об устройствах, на которых не запущен B.A.T.M.A.N. сами тоже были включены в эту версию. Обычно этот метод используется для подключения домашних сетей к mesh-сетям. Антенна, установленная на крыше, подключится к беспроводной сети через B.A.T.M.A.N. и остальная часть здания будет просто объявлена, поэтому также будет доступна.
Эта версия B.A.T.M.A.N. было показано, что он демонстрирует высокий уровень стабильности, но немного медленное время сходимости в реальных условиях; это подтверждается теоретическим анализом.
BatMan-eXperimental (BMX) стремится приблизить реальный показатель степени, также отправляя OGM несколько раз в независимых широковещательных дейтаграммах. Он возник как независимая ветвь BATMAN, разработанная Акселем Нойманом. Расширенная версия, которая включает в себя безопасную мульти-топологическую маршрутизацию (SEMTOR), называется BMX7.
В 2017 году B.A.T.M.A.N. был написан на доске в сериале HBO Кремниевая долина (сезон 4, эпизод 2), где главный герой сериала Ричард Хендрикс, похоже, включает в себя B.A.T.M.A.N. как компонент его концепции «нового Интернета» (текст виден в правом верхнем углу доски).