B.A.T.M.A.N. IV (TQ) з’єднання¶

B.A.T.M.A.N. III (Вступ) ¶

B.A.T.M.A.N. є проактивним протоколом маршрутизації для бездротових спеціальних мережевих мереж, включаючи (але не обмежуючись цим) мобільні спеціальні мережі (MANET). Протокол попередньо зберігає інформацію про існування всіх вузлів у сітці, доступних за допомогою однокаскадних або багатоскачкових ліній зв'язку. Стратегія B.A.T.M.A.N. полягає у визначенні для кожного пункту призначення в сітці одного сусіда з одним стрибком, який може бути використаний як найкращий шлюз для зв'язку з вузлом призначення. Для того, щоб виконати багатокористувальну IP-маршрутизацію, таблиця маршрутизації вузла повинна містити локальний шлюз для кожного хосту або мережевого маршруту. Щоб дізнатись про найкращий наступний стрибок для кожного пункту призначення, це все, що B.A.T.M.A.N. алгоритм піклується про. Не потрібно з’ясовувати або розраховувати повний маршрут, що робить можливим дуже швидке та ефективне впровадження.

якість передачі

B.A.T.M.A.N. III (Короткий огляд) ¶

B.A.T.M.A.N. IV (TQ) ¶

B.A.T.M.A.N. Алгоритм III має серйозні проблеми, коли йдеться про асиметричні посилання. Перевірка двонаправленого посилання намагається обмежити його вплив, але результат далеко не ідеальний. Часові рамки, протягом яких B.A.T.M.A.N. приймає власні ОГМ, які ретранслирує його сусід, дозволяє змінити поведінку. Якщо цей термін є досить коротким B.A.T.M.A.N. дуже строго вибирає посилання. Це може призвести до багатьох ігнорованих посилань, які можуть бути використані в одному напрямку. Враховуватимуться лише симетричні зв’язки. Якщо значення часових рамок є менш суворим B.A.T.M.A.N. прийме більше посилань, але має тенденцію спрямовуватися в неправильному напрямку.

Приклад: OGM з вузла A поширюються на B. Зв'язок асиметричний, тому B отримує всі пакети від A на відміну від A, який майже нічого не отримує від B. Оскільки всі пакети з A потрапляють до B, кількість пакетів на стороні B зростає . B припустить, що він має ідеальний зв'язок до A, що не так.

Щоб подолати цю ваду, B.A.T.M.A.N. IV покращений за допомогою алгоритму передачі якості (TQ). У наступних розділах буде викладено його дизайн і те, як він посилює можливості маршрутизації B.A.T.M.A.N. в асиметричних середовищах.

B.A.T.M.A.N. IV Формат повідомлення оригінатора¶

00 01 02 03
00-03 Версія Прапори TTL GW прапори
04-07 Послідовний номер Порт GW
08-11 Адреса ініціатора
11-15 Попередня адреса відправника
16-19 TQ Довжина HNA (...)

Таблиця: B.A.T.M.A.N. IV (рівень 3) Формат пакета

Якість передачі¶

B.A.T.M.A.N. IV ділить задану якість зв'язку на 2 різні частини: якість отримання посилання та якість переданої лінії зв'язку. Якість приймаючого каналу виражає ймовірність успішної передачі пакетів до вузла. Якість лінії передачі описує ймовірність успішної передачі до сусіднього вузла. Очевидно, що B.A.T.M.A.N. більше зацікавлений у якості лінії передачі, оскільки якість лінії прийому не може бути використана для впливу на рішення про маршрутизацію.

Як пояснювалося в попередньому розділі, підрахунок пакетів заповнює мережу якістю прийому лінії зв'язку, а не якістю лінії передачі. На локальному рівні лінії зв'язку якість лінії передачі може бути отримана з якості прийому лінії зв'язку, застосовуючи деякі обчислення щодо кількості пакетів.

B.A.T.M.A.N. знає якість приймальної лінії зв'язку (RQ), підраховуючи пакети своїх сусідів.

B.A.T.M.A.N. знає якість ехо-зв'язку (EQ) шляхом підрахунку ретрансляцій власних OGM від своїх сусідів.

B.A.T.M.A.N. може обчислити якість каналу передачі (TQ), поділивши якість ехо-каналу на якість приймаючого каналу.

Це показує, що B.A.T.M.A.N. IV може обчислити місцеву якість передачі, використовуючи ті ж механізми, що і B.A.T.M.A.N. III без додаткових накладних витрат.

Поширення якості передачі¶

Якість локальної лінії зв'язку має поширюватися по всій мережі, щоб інформувати інші вузли про якість передачі. Тому B.A.TM.A.N. IV представляє нове поле під назвою “TQ”, яке має 1 байт. Це поле додано до відомого B.A.T.M.A.N. III пакет. Кожного разу, коли створюється OGM, для цього поля встановлюється максимальна довжина (255) перед тим, як воно транслюється. Приймаючий сусід обчислює власну якість локальної лінії зв'язку в отриманому значенні TQ і ретранслює пакет. Отже, кожен вузол, який отримує пакет, знає про якість передачі до вузла-ініціатора.

Щоб додати якість місцевого зв'язку в значення TQ, виконується такий розрахунок:

Приклад: Вузол A транслює пакет із макс. TQ. Вузол B отримує його, застосовує обчислення TQ і ретрансляє його. Коли вузол C отримує пакет, він знає про якість передачі до вузла A.

B.A.T.M.A.N. IV не завжди може повторно транслювати нещодавно розрахований TQ, який поставляється з останньою OGM. Натомість TQ, отриманий через найкращого сусіда, ретрансляється, щоб краще підтримувати сценарії асиметричного зв'язку.

Приклад: Вузол A і B є сусідами. Вузол A має хороший зв’язок з вузлом B, але не навпаки. Вузол C має хороший зв’язок з вузлом A і поганий зв’язок назад, а C має хорошу якість приймальної лінії та погану якість передачі до B.

Завдяки такому розташуванню повідомлення-ініціатори з вузла A мають великі шанси дійти до B, але значення TQ, що поширюється вузлом B, є дуже низьким через велику втрату пакетів у напрямку до вузла A. Повідомлення з вузла A, які рухаються через вузол C, мають низька ймовірність прибуття до вузла B через втрату пакетів до вузла B, але мають набагато кращі значення TQ. Вузол B поширюватиме багато повідомлень із низьким значенням TQ (отриманих безпосередньо від вузла A) та декілька повідомлень із високим значенням TQ (отриманих від вузла A через вузол C), хоча зв’язок із вузлом A дуже хороший.

Тому B.A.T.M.A.N. IV буде ретранслирувати отриманий OGM із значенням TQ найкращого сусіда до оригінатора. У наведеному прикладі вузол B розмістить значення TQ, отримане через вузол C, у повідомленні від вузла A перед його ретрансляцією. Він заполонить лише найкращі показники TQ.

Місцевий TQ проти Global TQ¶

A B.A.T.M.A.N. IV вузол повинен відстежувати 2 різні значення TQ:

  1. Локальний TQ, який представляє якість передачі до кожного окремого сусіда стрибка (отриманий за допомогою підрахунку пакетів плюс розрахунку TQ).
  2. Глобальна якість посилання, яка описує якість зв'язку до кожного сусіднього мульти-хопу (отримана через пакети B.A.T.M.A.N. IV).

Для обчислення місцевого TQ потрібен кількість пакетів OGM сусідів та власна кількість пакетів OGM, які ретранслируються тим самим сусідом. Тому B.A.T.M.A.N. вузол відстежує отримані пакети протягом певного інтервалу. Розмір вікна зв’язування цієї статистики називається TQ_LOCAL_WINDOW_SIZE.

Глобальний TQ - це середнє значення всіх отриманих значень TQ від одного ініціатора через певного сусіда. Пакети зі значенням TQ 0 також враховуються як не отримані пакети. B.A.T.M.A.N. IV використовує розмірне розсувне вікно TQ_GLOBAL_WINDOW_SIZE більше 1 для середнього значення TQ.

Обробка асиметричних посилань¶

Хоча якість лінії передачі є найважливішим фактором прийняття рішення B.A.T.M.A.N. IV також відстежує якість отримуваного посилання. На рівні WiFi кожен одноадресний пакет повинен бути підтверджений сусіднім вузлом для схвалення передачі. Якщо цей сусід не може успішно надіслати свої ACK-файли, рівень WiFi вважає цю передачу невдалою і намагається повторно передати, поки не здасться.

Таким чином B.A.T.M.A.N. IV повинен покарати посилання, які мають низьку якість прийому посилань. Щоб уникнути простого гістерезису, який повністю вмикає або вимикає посилання, B.A.T.M.A.N. IV використовує функцію

зважити покарання за якість отримання посилання. Як видно з графіку нижче, невелика втрата пакетів лише трохи вплине на рейтинг посилання, тоді як величезна втрата пакетів все одно матиме сильний вплив на TQ.

Це отримане значення множиться на TQ перед тим, як воно буде ретранслировано. Сусідні вузли можуть зважувати рішення про маршрутизацію на основі цієї інформації. У деяких ситуаціях слабке посилання є єдиним доступним посиланням, тому ви хочете використовувати його, тоді як в інших випадках можуть існувати кращі зв’язки.

Відміна луни¶

B.A.T.M.A.N. IV послаблює сувору політику падіння пакетів, яку використовує B.A.T.M.A.N. III, щоб алгоритм TQ працював. B.A.T.M.A.N. IV перевіряє невідомі порядкові номери через конкретного сусіда, тоді як B.A.T.M.A.N. III перевіряє наявність відомих порядкових номерів. Якщо ця комбінація є «новою», OGM буде прийнято, оброблено та ретранслировано. Це може дублювати відому інформацію, коли повідомлення "повертається" через ретрансляцію (так зване ехо). У щільних районах без великої втрати пакетів це призводить до збільшення пропускної здатності та використання центрального процесора.

Приклад: 3 вузли (A, B і C) поспіль (A може чути B, але не C). Вузол A випромінює OGM, вузол B чує та ретранслює його. Трансляція з вузла B надходить на A і C. Вузол A скине повідомлення, коли A виявить, що він був ініціатором цього OGM. C обробить і повторно передасть повідомлення. Вузол B отримає той самий OGM, який він надсилав раніше, і з радістю повторно транслює (відлуння власного повідомлення), оскільки B не може виявити, що він транслював повідомлення раніше.

Для виявлення відлуння (повідомлень, які вже пройшли через вузол) B.A.T.M.A.N. IV вводить нове поле протоколу під назвою «попередній відправник», яке містить IP-адресу вузла, що ретрансляє OGM. Кожного разу, коли вузол отримує повідомлення від сусіда, він заповнює поле “попередній відправник” адресою сусіда-відправника перед його повторною трансляцією. Якщо вузол виявить свою власну IP-адресу в полі "попередній відправник", пакет буде проігнорований.

Назад до прикладу: Вузол B буде ігнорувати (скидати) пакет, що повертається з вузла C, оскільки вузол C писав IP-адресу вузла B у полі “попередній відправник”.

Навіть у більш складних сценаріях з більшою кількістю вузлів/стрибків ця концепція успішно зменшує пакети. Це гарантує, що пакет проходить лише ті шляхи, які раніше не бачили цього OGM.

Хоп Штраф¶

Поки що B.A.T.M.A.N. IV фокусується лише на якості посилання для оцінки шляхів, але не на кількості стрибків на шляху, оскільки він не знає про топологію за своїм горизонтом. У деяких мережевих налаштуваннях якість зв'язку сусідів дуже схожа, тоді як кількість стрибків - ні. У цих сценаріях дуже бажано вибрати найкоротший шлях для зменшення затримки та безпечної пропускної здатності (на бездротових носіях). Наступний розділ ілюструє проблему та спосіб її вирішення за допомогою мережі Ethernet як приклад для простоти. WiFi та інші середовища менш сприйнятливі як Ethernet, але все ще страждають.

Приклад: Вузли A, B і C, які підключені до мережевого комутатора. Вузол А створює перше повідомлення, яке отримує, обробляє та ретрансляє Б негайно. Припустимо, що ретрансляція з вузла B надходить у вузол C до того, як надійде повідомлення з вузла A. Оскільки якість посилання однакова і досконала (у цьому прикладі) Вузол C передбачає шлях до вузла A через вузол B.

Для подолання цього питання B.A.T.M.A.N. IV вводить покарання стрибком: Кожного разу, коли OGM проходить вузол, значення TQ зменшується на фіксовану величину незалежно від штрафу асиметричного каналу перед повторною трансляцією пакету. У наведеному прикладі це зменшує значення маршруту через вузол B і сприяє прямому з'єднанню. [штраф2 bild]

Агрегація пакетів¶

У зонах щільних вузлів з низькою втратою пакетів B.A.T.M.A.N. III генерує досить багато пакетів, що збільшує ймовірність зіткнень, витрачає повітряний час і спричиняє більше навантаження на процесор. Кожен OGM має 20 байтів, B.A.T.M.A.N. IV представляє агрегацію пакетів, яка поєднує кілька різних OGM в один пакет. Для досягнення цього B.A.T.M.A.N. IV утримує назад пакети, які мають бути відправлені, і чекає, поки вхідні пакети додадуть їх перед трансляцією єдиного агрегованого пакету.

Кожен OGM складається із статичного B.A.T.M.A.N. Заголовок IV (див. Формат повідомлення повідомлення) та динамічна частина повідомлення HNA.

00 01 02 03
00-03 Адреса HNA
04-07 Маска підмережі

Таблиця: Формат повідомлення HNA (рівень 3)

B.A.T.M.A.N. IV дозволяє додавати жодне, одне або кілька повідомлень HNA. Оскільки кожен OGM може нести кілька інформації HNA, необхідно зберігати кількість повідомлень HNA у новоствореному полі довжини HNA.

00 01 02 03
00-03 Версія Прапори TTL GW прапори
04-07 Послідовний номер Порт GW
08-11 Адреса ініціатора
11-15 Попередня адреса відправника
16-19 TQ Довжина HNA = 2 Адреса HNA №1
20-23 Адреса HNA №1 (продовження) Маска підмережі No1 Адреса HNA №2
24-27 Адреса HNA №2 (продовження) Маска підмережі No2
28-31 наступний B.A.T.M.A.N. IV заголовок

Таблиця: Приклад B.A.T.M.A.N. IV (рівень 3) агрегований пакет

Кілька інтерфейсів¶

Для підтримки вузлів з декількома мережевими інтерфейсами B.A.T.M.A.N. потрібно виявити, яке посилання підключається до якого інтерфейсу. Оскільки кожен вхідний пакет ретранслюється через усі існуючі інтерфейси, B.A.T.M.A.N. IV потрібно використовувати прапор (прапор прямого посилання), щоб розрізнити реальні з'єднання та ретрансляцію.

Процес виявлення: Вузол A випромінює OGM без будь-яких увімкнених прапорів. Сусід В отримує повідомлення та перевіряє, чи однакові адреса відправника UDP та адреса ініціатора. Якщо це так, він буде здійснювати ретрансляцію OGM із увімкненим прапором прямого посилання, інакше прапори не змінюються. Після того, як вузол A отримує цю ретрансляцію власного OGM, він розпізнає цього сусіда як сусіда з одним стрибком через існуючий прапор прямого зв'язку. Якщо вузол A отримав цей пакет через той самий інтерфейс, який був відправлений (адреса вхідного інтерфейсу дорівнює адресі ініціатора), вузол A прийме цей пакет і збільшить кількість пакетів Echo Quality (EQ). Інакше його ігнорують.

Приклади: Вузол A має 2 інтерфейси та транслює OGM одного інтерфейсу через обидва інтерфейси, щоб зробити його відомим у хмарі сіток. Вузол B також має 2 інтерфейси і приймає цю трансляцію через обидва. OGM, що виник через інтерфейс, до якого він належить, приймається до іншого, який ігнорується (для подальшого виявлення інтерфейсу).

Вузол B також ретранслює повідомлення через обидва інтерфейси, але встановлює лише прапор інтерфейсу прямого посилання на пакеті, який залишає вузол через інтерфейс, в який надійшло повідомлення. Вузол A буде ігнорувати пакет без прапора прямого посилання і враховує лише OGM що надходить через інтерфейс, який він залишив спочатку.