Перейти до вмісту
MeshCore Україна
Приєднатись

Як працює мережа

LoRa — це спосіб радіопередачі, який жертвує швидкістю заради дальності та завадостійкості. Повідомлення передаються повільно (сотні байтів за секунду), зате їх можна прийняти на відстані кілометрів при потужності передавача в десятки міліват.

Три параметри визначають, як саме звучить сигнал:

  • Частота — на якій «хвилі» працює мережа (у нас 869.618 МГц).
  • Смуга (BW) — ширина каналу. Вужча смуга — нижчий рівень шуму і краща чутливість.
  • Коефіцієнт розширення (SF) — наскільки «повільно» передається кожен символ. Вищий SF — більша дальність, але довша передача.

Щоб пристрої чули одне одного, ці параметри мають збігатися в усіх. Тому в мережі України використовується один пресет — див. Радіопараметри мережі.

Кожен вузол має пару криптографічних ключів. Публічний ключ — це його «адреса». Щоб інші дізналися про вузол, він надсилає адверт (оголошення): ім’я, публічний ключ і, за бажанням, координати. Адверт підписаний, тож його не можна підробити.

  • Адверт на нуль переходів чують лише вузли в прямій досяжності.
  • Флуд-адверт ретранслятори передають далі по мережі.

Пристрої користувачів надсилають адверт лише за вашою командою. Ретранслятори — автоматично, раз на кілька десятків годин.

Як повідомлення знаходить адресата

Section titled “Як повідомлення знаходить адресата”

MeshCore поєднує два способи доставки:

  1. Флуд (заливка). Перше повідомлення до нового співрозмовника йде «всім»: кожен ретранслятор, що його почув, передає далі. Так воно гарантовано знаходить адресата, якщо той досяжний.
  2. Прямий маршрут. Отримавши повідомлення, адресат надсилає підтвердження зі списком ретрансляторів, через які воно пройшло. Відправник запам’ятовує цей шлях, і наступні повідомлення йдуть лише через ці ретранслятори.

Завдяки цьому мережа не захлинається: ефір зайнятий лише тими ретрансляторами, що справді потрібні.

Якщо знайомий маршрут перестав працювати (ретранслятор вимкнули), застосунок кілька разів спробує старий шлях, а потім знову надішле повідомлення флудом і знайде новий.

Хто пересилає повідомлення

Section titled “Хто пересилає повідомлення”

Лише ретранслятори (і кімнати з увімкненим режимом ретрансляції). Пристрої користувачів чужі повідомлення не пересилають — це свідоме рішення: сотні кишенькових пристроїв, що повторюють усе підряд, забили б ефір.

Звідси головне правило мережі: покриття створюють ретранслятори. Один ретранслятор на даху багатоповерхівки відкриває зв’язок для цілого району.

Повідомлення в канал адресоване не одній людині, а всім, хто знає ключ каналу. Тому канали завжди поширюються флудом. Ретранслятори можуть обмежувати, на скільки переходів поширюється флуд (flood.max), щоб віддалені частини мережі не заважали одна одній.

  • До 64 переходів на одне повідомлення (у режимі хешу шляху 1 байт).
  • Повідомлення — до ~150 символів. Кирилиця в UTF-8 займає по 2 байти на літеру, тож вміщується менше тексту, ніж латиницею.
  • Ефір спільний: поки один вузол передає, інші поруч чекають. Чим менше зайвих передач, тим краще мережа працює для всіх.