Авторский текст написан без применения ИИ (Ai-free). Все стилистические и пунктуационные ошибки авторские, просьба сильно не пинать, лучше в личку написать, указать на ошибку и похвалить! 😊
Ровно 5 лет назад автором была написана статья о публичной меш-сети под названием «Meshtastic – оперативно-тактический радиочат без сотовой связи и интернета». На тот момент концепция была новым веянием времени и являла собой в мир эпоху МЭШ-технологий для простого народа. Тема в основном была предназначена для технически и програмно подкованных коллег-сотоварищей. Сегодня, по прошествии лет, Mesh-технологии шагнули далеко в мир и получила большое развитие в области WiFi сетей 5…8 поколений… но, сегодня вы узнаете не о Mesh-WiFi сетях, а о трансформации популярной сети Meshtastic в нечто новое и более удобное.
Для первой статьи о мышастике пришлось фантазировать гипотетическую ситуацию с ЧС и обыгрывать вокруг неё возможности этой сети. На дворе 2026 год и ничего выдумывать не нужно. В последнее время всё вокруг нас (в России) происходит в таком негативном ключе и вызывает такое количество нецензурных эмоций, что появление и внедрение новой сетевой концепции передачи данных можно считать вопросом времени. Посему – давайте приступим к ознакомлению и внедрению.
Опустим эмоциональную часть и попытаемся взглянуть на происходящее вокруг холодным разумом.
По началу будет немного разглагольствований, возможно не очень интересных, но важных сведения для понимания контекста и предпосылок к образования сети Meshcore. К середине и концу будут затронуты технические моменты, автор постарается объяснить, почему мешкор – это чертовски здорово и особенно здорово после общения в сети Meshtastic!
Дальше будет много букв, но не будет картинок. Чукча — писатель, а не художник. 😊
Часть 1 — мотивационная
Начнём, пожалуй, немного с эмоций…
Тихий уголок мелкого диванного параноика
В эпоху, когда страна находится в состоянии войны (как бы это не называли) и власти периодически кладут как мобильные, так и проводные сети, наличие +1 резервного канал связи никогда не будет лишним! Это основная идеология и мотивация автора.
Сегодня, любой общественный канал связи, всякие сервисы и приложения, совершенно не парясь по поводу законов пытаются с тебя слить тонны телеметрии и, вообще, всё, что тебе принадлежит и кто тебя окружает в информационном пространстве.
Мы живём в эпоху капитализма и всем заправляет капитал, крупный и мелкий. Когда государство говорит, что кладёт сотовую сеть ради вашей безопасности – многие уже стали догадываться, что все эти релляции для плебса – скорее всего брехня, поскольку, дроны как летели, так и продолжают лететь (на самом деле брехня или нет, нам, конечно, никто не скажет). То, что большой капитал старается себя как-то защитить – в этом сомнений нет, но в любом случае на простой народ капиталу всегда наплевать, особенно когда народ остаётся без связи в неизвестности и в осознании что где-то, кто-то, кого-то на это… ну вы поняли. Что нам, простому плебсу остаётся? А остаётся строить собственные сети своими руками, где ты сам знаешь что, как и кому о себе передаешь. С осознанием, что и как починить в случае аварий технологического или военного характера. Проблема плебса — это не наше уникальное явление — так по всему миру! Более того, в забугорном мире у плебса проблем сильно больше, чем у нас в России, потому, народ там, как ни странно, более сплочённый. При наличии в широком доступе общественных благ, люди объединяются и строят свои сети очень активно. Прям, вот, реально, очень сильно активнее чем в России. На случаи, пожаров, наводнений, ЧС или других неблагоприятных ситуаций, понимая, что власти может быть придут на помошь, а может быть и не придут, а может придут по отаточному принципу так поздно, что больная часть пострадавших уже этот мир покинет.
Благодаря кругу энтузиастов уже построено множество сеток по всему миру и в нашей стране в частности. При передаче короткого сообщения по эфиру можно условно считать себя не под колпаком у государственных и частных коммерческих структур. Условно, потому что радиоэфир все равно слушают, но, передавая мизерные 240 байт ты точно знаешь, что передаешь сам то, что в пакет лично положил и надежду, что до тебя, мелкого плебса, большой системе пока нет дела — у системы идёт война, не до тебя, букашка.
Большая часть читающих коллег, вероятно, уже успели построить в своих городах сеть Meshtastic, многие, даже, скорее всего успели в ней разочароваться, а некоторые и вообще покинуть эту «зловонную клоаку» 😊 (Это я сейчас про Москвичей и Петербуржцев). Тут требуется пояснение с отсылкой к названию статьи…
5 лет назад, когда автор с сотоварищами из разных городов начал развёртывать свои сети Meshtastic, никто ни о войне не думал, ни о катаклизмах, а о том, что власти будут класть сотовую сеть и сети интернета целыми регионами даже в страшном сне не могло присниться! Вспомните, в какое благодатное время мы жили! Пионэрами в вопросе построения независимой сети, как всегда, были гиканутые энтузиасты, повёрнутые на железочках, программировании и радиосвязи, многие из которых – радиолюбители и просто технически подкованные товарищи. Всё начиналось не шатко-не валко и… неспеша. А потом, в 22 году случилось то, о чём не принято говорить на техническом ресурсе, но все всё знают и понимают. И у народа начали закрадываться страхи и опасения за собственные жизни и жизни своих домочадцев. Дополнительно страхи начали по интернетам разгонять блоххеры, что послужило причиной быстрого развития сети Meshtastic в разных городах в количественном отношении пользователей. В детали блоххерства и их шуму автор вдаваться не будет, вы, вероятно и сами видели их неоднократно на ютубах и др ресурсах. Разве что из утюга про «сеть судного дня» не успели провещать. )
Как итог, сеть Meshtastic в короткий промежуток времени начала наводнятся большим количеством абонентов с совершенно непрофильным бэкграундом, «альтернативным» воспитанием и прочими нехорошими «тараканами». Ой, как тут вспоминается Си-Би сообщество конца 90-ых начала 00-ых годов! Особенно Московское. Кто застал и помнит – тот понимает о чём речь. 😊
И… сети по городам, особенно крупным, резко стали захлёбываться, фрагментироваться и, кажется, что понемногу разваливаться.
Технический нонсенс…. Хотя, нет, нюанс! Начнём, как говорится, от печки…
Это сейчас, в 2026 году мы (автор имеет ввиду себя и многих коллег-строителей сети мЫшастик) такие умные и понимаем причины происходящих коллизий и наступивший за этим «глобальный облом», в результате которого народ стал отворачиваться от Meshtastic-а и часто плеваться. А в 21…22 годах мы знать не знали и думать не думали, что в итоге построим и чем всё обернётся. Это не нытьё, а констатация факта, что всё со временем развивается и меняется, а новые неизведанные пути таят неизвестные многим проблемы. Подобный «обломный путь» построения мЫшастой сети прошло не только русскоязычное сообщество, а и многие заграничные сообщества, где пользователей-абонентов было не 200…500 человек на город (Питер/Москва), а пару-тройку тысяч. Они, просто, познали «мЫшастый дзен» сильно раньше нас».
Так, о чём всё же я… простыми словами, без технических подробностей.
Основу одноранговой децентрализованной меш-сети Meshtastic составляет постоянное общение устройств (нод) между собой – это т.н. флуд. В эфир постоянно (раз в 5…30 минут, в зависимости от настроек) летит большое количество телеметрической информация о ноде, питании, сенсорах, геопозиции и др. В этот флуд включаются не частые информационные сообщения, процент которых, даже при самых оптимальных настройках составляет не более 20% от всего трафика. По сети гуляют не единичные данные, а огромный поток дублированных пакетов, количество которых которых нарастает лавинообразно в геометрической прогрессии от одной передачи к другой. Что бы сеть мгновенно не затоплялась флудом и не коллапсировала сразу – количество передач ограничили 5…7 прыжками (hops).
Для дальнейшего понимания и сравнения тем, кто в сетях и радиосвязи не разбирается (для гуманитариев, в общем)…
Техническиая сказка, иллюстрирующая принцип работы сети Meshtastic
Представьте себе умозрительно: вы находитесь в просторной комнате с 10 друзьями и каждый одновременно рассказывает друг другу, что ему рассказал сосед: своё имя, откуда он, какой телефон, какой у него кот, какая погода за окном и анекдот в качестве полезной интересной нагрузки – вот это мешастик в размерах одного квартала или района. Вы слышите лёгкий, но постоянный и назойливый гул разговаривающих в комнате.
А теперь, представьте большую-большую базарную площадь с колокольней, прилегающими зданиями, подворотнями и переулками. Людей много, практически все они незнакомы друг с другом, но рассказывают всё тоже самое. Кто-то крикнул слабым голосом из подворотни – его услышали в первом ряду, даже, вероятно до третьего базарного ряда сообщили, что в подворотне кому-то хорошо после вчерашнего. 😊
У кого-то есть мегафон – тот не просто рассказал голосом о себе, а прокричался аж до середины площади. Молодец! Но, в противоположной стороне базарной площади тебя всё равно вряд ли кто услышал.
Наконец, кому-то повезло рассказать свою интересную историю с высокого окошка ближайшим соседям или, вообще, поорать в мегафон с колокольни. Тут, конечно, хорошо, вся базарная площадь взбодрилась и просмеялась с вашего анекдота. Даже до окраин переулков передали, что там, на базаре, на колокольне сидит прикольный чудик Вася, он приехал с села, у него 2 коровы, и он вещает свежие здоровские анекдоты. И все одновременно начали друг другу всё это пересказывать… 7 раз. Ну, т.е., вы представляете какой гомон стоит на всю базарную площадь, при том, что сам анекдот составляет от силы 5…10% от всего потока сообщений? 😊
Вот — это мЫшастик в пределах большого города и пригорода!
Это не конец, продолжение сказа в следующей секции…
(Примечание автора: Сказ не мой, а честно подсмотрен на одном из сайтов посвященной мешкору и творчески развит в деталях. Ссылку на сайт я приведу в конце статьи)
Так вот, что-то передать серьёзное и, тем более далеко при такой организации связи в принципе невозможно! Ваше сообщение просто потонет во флуде и гомоне. С тем и столкнулись пользователи сети Meshtastic, когда в сеть хлынули толпы перепуганных граждан. Нет, может они, конечно, не были перепуганы, а просто послушали популярных блоххеров-миллионников и решили простодушно из интереса попробовать, что это за зверь такой мЫшастый. 😊
Итого, что мы имеем с гуся…. А, нет… с мышА же.
Данная концепция построения меш-сети, где все говорят со всеми, больше подходит не для передачи городских сообщений, а для связи по месту. На рыбалку, там, сходить, туристический маршрут приправить гаджетами в качестве дополнительного фактора безопасности. Можно использовать при каких-либо спасательных работах.
Главным техническим условием стабильности сети является по возможности связь каждого устройства со всей группой и таких устройств в группе что бы было не более 30. Хоть в протоколе изначально и закладывалось что-то около 128 устройств но, как показала практика, даже с количеством устройств более 50 на город сеть уже работает не очень стабильно. Особенно, это видно, если часть абонентов расположены по дальним окраинам сети или между абонентами большая дальность, когда на маленьких и слабых антеннах связи нет и что бы докричаться до соседнего абонента надо или мощность повышать или использовать мощные направленные антенны. Т.е. децентрализация распадается как основа сети.
В общем, как принято говорить в местных пабликах: развёртывая сеть Meshtastic на город – энтузиасты-пионЭры попытались натянуть сову на глобус. 😊
А теперь, резюмируем всё тоже самое, но кратко:
-
Логически, в сети Meshtastic у всех одна роль – говорить самим и передавать другими сказанное. Хотя, технически, ролей в мешастике много, но, когда сеть посещает птичка «анархия» и нет единого инженерного руководства сетью хотя бы номинально, то сети становится плохо, она начинает фрагментироваться и разваливаться. Было бы не плохо конкретным людям подсказать: вот, у тебя хорошая высокая точка – тебе бы хорошо поставить сюда роль репитера, а тебе бы в подвале не шуметь, выедая чужие хопы, а поставить роль ноде-мьют и просто слушать, что там пролетает мимо. И, когда мышАстая сеть была небольшой – не более 50 человек, то примерно так и было. Под влиянием блоххеров, толпы народа кинулись скупать ноды и пробовать подключиться к сети, не понимая принципы построения сетей, ставя, порой, откровенно вредительские роли — тут-то и пришел сети северный пушной зверёк имя которому вы все знаете. Сейчас, роль сводится к одному – дальше и громче всех прокричать. И, особенно худо становится сети, когда появляются технические «неадекваты» и «серунэ», но не будем о грустном…
-
Нет чёткой и явно выделенной маршрутизации пакетов. Пакеты распространяются по сети лавинообразно до 5…7 прыжков, а дальше — полный стоп и пакет гибнет.
-
Нет подтверждения о доставке пакета.
Особо хотелось бы отметить, что весь вышенаписанный сказ не про то, что сеть Meshtastic работает плохо, а про то, что её изначальное предназначение было неправильно использовано. Т.е. для связи в малых группах в небольшом радиусе за недорого – Meshtastic вполне подходит!
А теперь, переходим к основному блюду.
MESHCORE – что, откуда и как
Концепция мэшкора в контексте развития сети мешастик свежая – тема стала развиваться в 25 году, т.е. вот, совсем-совсем недавно. Мэшекор стали разрабатывать и строить люди, которые развивали мЫшастик и на своей шкуре познали все негативные моменты, понимают все тонкие нюансы, и, как говориться, выжали из концепции «7 хопов» всё до последнего байта!
Рассказ одного из основателей крупнейшей в мире Meshtastic-сети из Сан-Франциско
(Примечание: гугел-перевод с минимальными смысловыми и стилистическими правками)
Я помогал (в разных аспектах) создавать эту потрясающую сеть (Meshtastic). Она работает… на это ушёл год оптимизаций основного проекта и неустанную борьбу с «правилами, рекомендациями и фактами». Мы делали всё по-своему… развертывали маршрутизаторы как горячие пирожки… переходили на более быстрые настройки (протоколы)… мы увеличили количество прыжков (hops) до более чем 7. Мы умоляли людей уменьшить таймеры телеметрии и месяцами обновляли код. После всех этих оптимизаций у нас всё ещё остаётся полностью заполненная (флудом) сеть… 40% загрузки каналов… и 2% от общего трафика сети — это текстовый чат. Да, работает, но, едва-едва!
(Как альтернативу) мы развернули сеть meshcore за несколько месяцев, и он сразу и просто заработал! Почему? Потому что в нём нет спама с идентификаторами узлов, обновлений местоположения и телеметрии… В Meshcore по умолчанию установлен больший радиус действия (пресет кодирования имеется ввиду)… и, он работает! Сеть просто работает, а не гудит фоновым трафиком, заполняющим всё пространство. Сеть Meshcore без проблем пересылает пакеты на расстояние до 64 прыжков (hops). 7 прыжков (hops) в Meshtastic — это много! Чтобы обеспечить работу на самых длинных участках, мы вручную активно работали над кодом маршрутизаторов, (делали) нулевым количество прыжков и (делали связь) несколькими IP-мостами. В Meshcore нет путаницы с ролями (2 основных роли, а не 11). Нет сложных правил… ретранслятор повторяет, «компаньон» общается в чате, и всё. В каждом пакете чата отображается пройденный им путь. При каждой отправке вы видите, кто её повторил (если вы слышите ретранслятор). Всё прозрачно и понятно!
(Сейчас) я использую обе сети, и обе их ценю… Но наша 1100-узловая Meshtastic-сеть работает на пределе своих возможностей, а (что бы вызвать) аналогичные проблем с нагрузкой в сети Meshcore — сети нужно довести количество абонентов до 2000-3000. (Понятно, что), ни одна сетка не масштабируется до бесконечности. Мы усердно работаем над улучшением Meshtastic-сети… но, управлять этим процессом ой как непросто. У сопровождающих разработчиков (и администраторов) 11 ролей, которые нужно обслуживать. Сеть Meshcore не нуждается в таком сложном обслуживании. Есть только одно нетривиальное препятствие, связанное с расширением префиксов. Конечно, Meshcore извлекла уроки из ошибок Meshtastic; но статистика очевидна… несколько крупных городов годами боролись и оптимизировали сеть Meshtastic и,… в конце концов сдались и перешли на другую систему и это сработало, сеть заработала в очень короткие сроки — ВСЕ довольны!
Оригинальный пост находится тут: https://www.reddit.com/r/sonomacounty/comments/1rmuuvq/comment/o93ogmh/
Идея, которая лежит в концепции сети Meshcore стара как мир т.н. низовой и/или сотовой связи. Есть маломощное абоненское устройство и есть опорная сеть ретрансляторов.
Маленький исторический экскурс:
Всё началось давным-давно с профессиональной связи, когда надо было покрыть СТАБИЛЬНОЙ связью город или какую-либо большую местность. Расцвет технологии пришелся на конец 80х – начало 90-ых годов в технологии «Tetra». Строилась опорная сеть мощных ретрансляторов, технологии развились до такого уровня, что голос стало возможным передавался в цифре, рабочие бегали с портативными рациями по городу, особо не задумываясь о том, что где-то они могут выпасть из канала связи и пропустить важную вводную или предупреждение. «Ведение»(маршрутизация) абонента осуществлялось автоматически базовыми станциями. По началу всё это было страшно дорого! Оно и сейчас дорого. Потом «Tetra» переродилась в сотовую связь первого поколения, потом второго… Сейчас вы все бегаете по городу с телефоном, уткнувшись в телеграм, покрытие сети вас волнутет потстолько-поскольку, только тогда когда вы громко ворчите, если божественный 4.5G сваливается вдруг в 3G и не дай бог в 2G GPRS. 😊
Сеть Meshcore работает по тем же самым принципам что и тетра и сотовая связь, только в сильно упрощённом виде и на очень сильно простом железе, но, благодаря этому сеть возможно создать своими силами за очень-очень небольшие деньги, доступные даже простому школьнику (это я про абоненское устройство).
Ключевые аспекты работы сети Meshcore:
-
Исходно все молчат! Говорит только то устройство у которого инициатива или ретранслятор (для краткости, просто репа). Этим флуд в сети снижается до абсолютного минимума и не тратятся попусту ресурсы канала связи, а заодно и заряд батарей носимых устройств (об этом отдельно будет сказано в конце).
-
Основных ролей у ключевых устройств инфраструктуры всего 2 и их надо отдельно прошивать. С одной стороны — это даёт большую гибкость при построении инфраструктуры сети, но с точки зрения мышастой сети (где всё было в одной прошивке, но совсем не использовалось или использовалось неразумно) кажется что неудобно. С другой – заливая прошивку в конкретное железо, вы обычно чётко знаете для чего устройство будет использоваться и не навредит сети. (Более подробно роли будут описаны ниже).
-
100% подтверждение об успешной или неуспешной доставки сообщения. Это очень важный фактор, особенно когда сеть строиться или для обеспечения безопасности или развёртывается экстренно во время ЧС для обеспечения группы спасения.
-
Возможность хранить сообщения. Можно сделать так, чтобы пакет не гиб, а сохранялся в буфер до появления конкретного абонента в сети, кому сообщение предназначается. (Привет тем, кто помнит доски ВВС – это как раз оно. Об этом тоже будет ниже.)
Тут я опять отвлекусь и для гуманитариев продолжу
Техническую сказку, иллюстрирующую наглядно уже концепцию сети Meshcore
Итак, представьте… Всё таже базарная площадь, колокольня, переулки, подворотни и дальние окраины. Но, все молчат… Цыц! Тишина в эфире! Просто, ЖУТЬ!!! 😊
Властями договорено так, что пересказывать анекдоты может только тот, кто сидит на колокольне или в окне переулка с мегафоном, причём не на первом, а на высоких этажах, что бы было слышно далеко.
У всех обязательно есть блокноты! Это важно! В некоторых заведениях присутствует ещё и картотека.
История про Васяна 1, абстрактная.
Появляется на площади новый человек и говорит: я Василий, имею номер на челе такой-то (посчитали его то-бишь перед появлением или терминатор татуировку на руке выгроверовал 666хххх 😊). Все кто Василия услышал в пределах громкости его голоса записали в своих блокнотах его имя и номер. И всё… совсем всё, тишина в эфире и дальше… гробовая! Все кто Василия услышал, могут ему что-нибудь рассказать, если захотят, конечно. А могут и не рассказывать ничего, а просто понаблюдать, что Васян ещё такого интересного сп…т. Василий при этом, сам никому конкретно ничего рассказать не может, т.к. не знает кого как зовут, но может всем сразу рассказать анекдот. И Василию хорошо – выпендрился перед неопределённой группой лиц и слышащим его приятно — посмеялись. Что бы Василий мог поговорить во-о-он с тем человеком в третьем ряду… да-да, я тебя имею ввиду! Ты должен со своего места крикнуть…Нет, ты встань сперва, потом кричи: эй, Василий, привет, я Аркадий, номер у меня такой-то. Василий записал в свой блокнот имя и номер и теперь может обращаться конкретно к Аркадию. Но, пока только к нему. (Эта процседура называется «Advert» или рукопожатие). Теперь, если Аркадий и Василий понимают англицкий или хинди, то, предварительно договорившись, они могут начать приватное общение на англицком, хинди или в другой кодировке и никто их не поймёт. Удобно, да… обсудить там, цены на бензин, его наличие на улице Труда или на самой Красной площади, а может и это…. навести крамолу на того, о ком не стоит говорить в слух. (автор, если что осуждает, чего это вы про уважаемых людей так некультурно?) 😊
Но, это всё лирика. Разговоры между подъездами и домами обычно не сильно интересны. С соседом всегда можно встретиться в живую и обсудить футбольный матч за кружечкой пива. Хотя, полезно иметь такие знакомства тоже. Основной мотив – это услышать свежий анекдот во-о-он от того товарища на другом конце площади, а так же во-о-о-он тому другу в дальнем переулке привет передать. Да… это я про тебя, друг, рад что ты тоже тут – держи краба! 😊
Что происходит на площади. Очень желательно Василию добраться до колокольни, или до ближайшего сидящего на высоком этаже товарища, а ещё лучше, посадить на крышу своего дома своего домашнего Китайца с большой палкой и мегафоном и кормить его свежим рисом. (если тут есть Китайцы – не обижайтесь, сегодня я добрый и про вас пишу в крайне положительном ключе!) 😊
Представившегося снизу Василия, человек с колокольни с мегафона всем объявляет. Все, услышавшие колокольню так же молча записали себе в блокнотики имя и номер. Ключевое – молча! В данном сказе, всё так устроено, что кричащего в мегафон с колокольни площади товарища обязательно должен слышать его коллега, сидящий с мегафоном на высоком этаже ближайшего переулка, а его, в свою очередь, обязательно слышит во-о-он тот Китаец, маячащий на шесте дальней водонапорной башни и так же рассказывающий свежие услышанные анекдоты или представляя очередного Сергея, Евгения или Петровича тем, кто снизу слушает. (Эта процседура называется «Сетевой флуд-АДВЕРТ», так рукопожатие распространяется на всю сеть методом «затопления»). Соответственно, Василию может передать послание каждый, кто услышал его имя и номер. На каждой колокольне, водонапорной башне и окне, человек в блокноте записывает через кого о Василии узнал. Это важно!
Такие башни и колокольни могут стоять вдоль дорог или по всему городу в неограниченном количестве. При этом, перекрики будут считаться строго 64 или 32 или 21 раза (зависит от того как власти города договорятся с Китайцами на крышах), но в конце концов все обо всех узнают, если не сразу, то через одного. Если башен по городу много, то перекриков лучше ограничиться 32, а то, поди ты, запомни всех кто снизу представляется со всего города. Никаких блокнотов не хватит. 😊
Ну и, ровно в полночь… или в полдень идёт перекличка башен и иногда сверка блокнотов. Так же, на случай, если Китаец покинул водонапорную башню перекусить вкусного риса или его коллега с высокого окна отлучился по нужде, иногда полезно на площади выкрикнуть своё имя и номер пару раз в неделю… или в день, как захочется. Народ обязательно сверится с блокнотом и в случае казуса перепишет что-то в своих блокнотах.
История про Васяна 2, типовая, с посещением столовой (#Pablic)
На базарной площади есть местная пельменная (#Pablic). Очень популярное заведение, не то что этот ваш «вкус очка»…, буквально, все его знают и часто там тусуются.
Заходит Василий в столовку и спокойно может там общатся с другими поситителями на любые темы. Но, ключевой момент, он может со всеми спокойно общяться только в этой столовке, не выходя из помещения. Хотя, нет… не только в столовой, ещё есть справочная (#test) и больница (#bot). При посещении их можно спросить врача, хорошо ли у меня со слухом, с голосом, и как далеко мой голос слышно. Если конечно врач в это время будет в кабинете и/или его роль не будет выполнять тот же Аркадий или Петрович. Они, знаете ли, те ещё шутники… 😊
Есть ещё один важный момент, который стоит знать условному Василию… При посещении столовой, завсегдатаи не любят, если свеженарисовавшийся Васян начнёт с порога спрашивать, хорошо ли он выглядит, правльно ли у него поставлен голос и др подобные глупые вопросы. Таких сразу отправляют в сад, в справочную или ко врачу, часто в грубой и нецензурной форме. Помните, вы всегда выглядите хорошо, а чистоту и громкость голоса можно проверить у квалифицированного доктора, который специально находится в соответствующем заведении (#bot, #test).
И ещё, вышеописанное посещение столовой не отменяет необходимость сбегать к колокольне или к водонапорной башне и выкрикивать периодически своё имя и код на руке. В общественном заведении с конкретным посетителем так же можно договориться о личном advert – не стесняйтесь!
Так же, в окресностях площади есть около 40 других злачных заведений, типа гаража (#auto), музыкального клуба (#music), местного гидрометцентра с электронным болваном (#pogoda), а так же, ночной клуб (#xxx, вход строго 18+) и др, со списком которых можно ознакомится на тематических ресурсах в конце статьи.
Стоит отметить, что подобная организация распространена и в других странах, а не только в Питере, Москве и др. отечественных городах нашей необъятной Родины. Где-то площадь больше, где-то меньше, но общая организация везде одинаковая.
Для тех, кто незнаком с концепцией досок объявления (BBS)
История про Василия 3, комнатная (Room-server).
Явление BBS (Bulletin Board System) в 90-ые годы среди тогдашних компьютерщиков было сильно распростронённое, но, в концепции мышекора у нас в стране почему-то не сильно поддерживаемое, и, в большей степени старшим поколение айтишников уже забываемое.
Возле колокольни есть небольшое заведение под названием «Городской архив и/или почтампт». Внезапно может случиться, что Василий по каким-то своим делам отлучился из города, а Григорию в это время надо передать срочно для Василия сообщение. Покричав у колокольни Василия 3 раза по 3 на 4 стороны света и убедившись что абонент не отвечает, Григорий топает на почтампт/архив и оставляет для Василия записку: мол, друг, в пятницу вечеруха будет, как вернёшься – черкани. Таких записок для Василия может быть оставленно разными людьми в количестве до 32 штук. (Ну, потому что картотека совсем маленькая, а если вас набежит сразу толпа, то что делать Василисе Андреевне?) Василий возвращается в четверг, заходит на почту и говорит кодовое стоп-слово: «Hello». Василиса Андреевна знает уже Василия (у неё в блокноте записано) и выдаёт ему скопившиеся записки из картотеки.
Там на почтамте ещё что-то есть интересное, но автору уже лень писать… Сами зайдите и поинтересуйтесь. 😊
Красота, да?
А теперь всё подробно сухим техническим языком
Роли в Meshcore
В концепции построения сети Meshcore имеются чётко определённые роли каждого объекта инфраструктуры. Они немного отличаются от с мышастиковых определений и для тех, кто пришёл из старой сети может они могут быть по началу непривычны.
-
Companion ( компаньон), он же клиент (в мышЕ – это нода) – то устройство, которое у вас на руках, принимает и передаёт данные, через которое вы общаетесь с миром. Ближайшая аналогия – ваш сотовый телефон. Он только принимает или только передаёт свои данные как конечное абонентское устройство и не занимается ретрансляцией. В сети Meshcore очень желательно ,что бы абонентское устройство было малопотребляющее (особенно если оно мобильное или носимое), т.к. это оправдано. Почему – в конце будет описано подробнее.
Варианты реализации связи «компаньона» с вашим смартфоном или компьютером: Через Bruetooth, через USB-COM-порт и через WiFi сеть. Есть вероятность, что в ближайшем будущем сделают ещё через обычную Ethernet сеть – вот тогда будет совсем удобно и хорошо! Приложение Meshcore есть и для Android телефон и для IOS и под Windows и, даже, WEB-версия. И везде можно подключиться 3-я способами. Удобно, однако, развернуть «WiFi-компаньона» где-нибудь на балконе, а самому чилить с телефоном на диване. Совсем как в телеграме залипнуть на пару тройку часов в #Paublic, обсуждая прекрасных котанов! 😊
-
Repeater (репитер), он же ретранслятор, он же коротко репа (в мышЕ — это таже нода) – основное устройство инфраструктуры сети, которое слушает «компаньона» и повторяет его сообщение для других «компаньонов» «снизу» или передаёт эстафету дальше следующему репитеру. Располагать ретранслятор надо максимально высоко для обеспечения максимальной дальности покрытия сети. Репу желательно делать мощной, особенно, если это кросс-ретранслятор или ретранслятор в современной ЖБ застройке. Но, репа может быть и маломощной, если она расположена локально для обслуживания связи на небольшое домохозяйство, даче/СНТ или небольшого район. Основное свойство – репа должна быть максимально стабильным устройством по питанию и антенно-фидерному тракту! Особенно, если сеть строится в целях обеспечения безопасности граждан. Совершенно нет смысла делать репитер на нижних этажах здания или внутри закрытого помещения. (Исключение – обеспечение связи внутри большого строения)
-
Room Server (сервер комнат), она же BBS, она же почтампт. (В мыше аналогов нет и слава богу) Сервер комнат хранит историю сообщений и выполняет функцию BBS доски объявлений до тех пор, пока абонент не появится в сети и не запросит данные для себя или не кончится электричество. Повторюсь, явление не сильно почему-то популярное, но, на взгляд автора полезное, когда постройка сети носит чисто утилитарный характре, а не просто для по-ля-ля. Основное свойство такое же как и ретранслятора — быть максимально стабильным устройством по питанию и антенно-фидерному тракту, особенно если сеть строится в целях обеспечения безопасности граждан.
-
Observer (наблюдатель) – по сути, обычный приёмник, который слушает что в сети происходит и посредствам протокола MQTT передаёт услышанное на сервисы, которые остуществляют статистическую обработку данных и их визуализацию. Для сети Meshcore созданы очень мощные инструменты анализа трафика и покрытия сети. (MeshCore Duty Cycle Observer, Corescop. Существует приложение для андроида «MeshCore Wardrive» для обследования покрытия сети в движении и составления тепловой карты и др.) Это позволяет регулировать нагрузку на сеть и видеть в целом картину происходящего. Например, при наличии карты ретрансляторов вы легко можете настроить направление антенны и/или понять, нужно ли вам поставить на местности промежуточный ретранслятор, что бы связать ближайшиый пригород с основным Сити. (Гатчина – привет, вы где?) Ключевое отличие Meshcore-Observer от подобной роли в сети Meshtic– в МС через MQTT не происходит сшивание удалённых абонентов и/или подсетей, а просто осуществляется мониторинг состояния сети. Причём, те кто собирает статистику не занимаются дешифровкой пакетов. Собирается статистика сколько, кто, куда передал пакетов, какого они качества и всё это удобно визуализируется. Это позволяет оптимизировать нагрузку на ретрансляторы и планировать сеть. Так же – это позволяет выявлять и блокировать «сирунэ» или подсказать новому абоненту как правильно настроить его новый ретранслятор или «компаньона», в случае непреднамеренного ломания путей и/или пакетов.
-
Sensor – это самое простое и тихое устройство во всей сети. Оно никогда не флудит! Прошивка устройства позволяет собирать и накапливать разные метеоданные или данные с других датчиков. Сенсор отвечает только тогда, когда к нему обращаются. Естественно, он должен быть в зоне радиовидимости ретранслятора.
-
KISS Modem – одна из интересных фичей Meshcore! Прошивка привращает ваше устройство в радио-модем по KiSS-протоколу, работающему через сеть мешкор. Имеет интеграцию с обычными TNC-клиентами типа APRS-droid или WireWolf. Одно печально – скорости не сильно большие и количество передавемых данных в кадре ограничено спецификацией сети Meshcore в 240 байт.
Это основные самые распространённые роли. Есть ещё дополнительные роли, мало используемые, но не менее полезные и интересные. МышУ такое и не снилось!
-
Companion (Client Repeat Mode) – репитер из вашего «компаньона», редко используемая фича для каких нибудь экстренных ситуаций и/или автономных групп. Можно быстро организовать маршрутизацию пакетов по надобности.
-
Room-Repeater – совмещает в себе и комнату и ретранслятор. Теоретически такое возможно, но в живую автор таких прошивок пока не видел, обычно Room-server располагают рядом с ретранслятором на одном питании и даже антенны отдельной ему не надо в этом случае.
-
Bridge-роли — мосты между разного типа сетями. Служат для дальней связи между разнотипными сетями, например кросс-мост между ретрансляторами диапазона 433МГц и 868МГц или 868/433МГц с разными настройками скорости – мост между дальнобойной, но низкоскоротной репой и локальной высокоскоростной.
Варианты реализации: RS232-Bridge – связь 2х плат через обычный UART порт; WiFi-Bridge – тоже самое, но через общую WiFi-сеть; ESP-NOW Bridge – мост на проприетарном протоколе похожем на WiFi между 2х устройств на ESP32 процессорах.
-
Secure Chat (Защищенный чат) — самая странная роль. Для особо упоротых гиков и параноиков! «Компаньон» работает через текстовый терминал а-ля Putty непосредственно через последовательный интерфейс. Но, зато, он обеспечивает сквозное шифрование сообщений. Кому такое может понадобиться – ХЗ, но, авторы видимо те ещё гики и параноики, потому и такую роль предусмотрели. 😊
Благодаря подобному разнообразию ролей сеть можно гибко настраивать, масштабировать и эффективно использовать.
Как работает сеть.
Как было выше сказано, основная инфраструктура Meshcore-сети – это сеть опорных ретрансляторов, которые или должны слышать друг друга или хотя бы один соседний ретранслятор. Может ретранслятор может работать и в единственном экземпляре, но это уже не сесть, а скорее сеточка, сетюлечка и просто маленькая локальная болталка. 😊
«Компаньон» – конечное устройство связи у вас в руках, передаёт информацию через сеть. Аналогия из мышАстика — нода.
Минимальный комплект связи – 2 или несколько устройств которые слышат друг друга. Обменялись адвертами (direct-advert) – всё, вы на связи, но, не далеко… От 1 до 3 км в зависимости от окружающей застройки, применяемой антенны, мощности устройства.
Если надо расширить покрытие сети – ставим на крыше высокого здания или последнем этаже дома (если повезёт) антенну с большим усилением и круговой направленностью. 5…10км с маломощным ретранслятором считайте накрыли (автор лично катался вокруг своего района и проводил замеры подобного конструктива). С более мощным ретранслятором можно и 20км и 30км накрыть. Тут дальность будет зависеть от нескольких факторов: сильная зависимость от местной помеховой обстановки (привет РЭБовцам) в месте установки ретранслятора и от применяемой у абонента антенны с той стороны. На стоковой антенне — 5см хвосте типового маломощного «компаньона», понятное дело, дальше 5км вы не докричитесь, а вот с направленной и особенно высоко установленной антенны – вполне реально 30км перекрыть. Есть прецеденты и более дальней связи, но мы сейчас про стабильность говорим, а не про эксперименты.
Для дальнейшего расширения покрытия сети, особенно на дальних дистанциях, нужно строить 2…3 и более ретрансляторов. Т.е. сеть разрастается «кустами» и/или пролётами.
В режиме ЧС развёртывания локальной сети на 1…3 ретранслятора делается на антенно-мачтовых сооружениях высотой 10…20м и позволяет настроить стабильную сеть с покрытием пары десятков километров. В лесу ретранслятор можно закинуть на верхушку высокого дерева.
Маршрутизация данных в сети Meshcore
В мешкоре используется 2 типа рассылки данных:
-
Лавинная рассылка — Flood Routing. Сеть топится в глобальной рассылке широковещательных сообщений. В основном это первичные адверты (объявления себя) и общение в открытых группах с общим публичным ключём (#Pablic, #bot, #test и др). Т.е. информация посылается «куда-то туда», без подтверждения доставки. Дошел кому-то в контакт-блокнот ваш адверт – повезло, не дошел – ну извиняйте, не шмогла, «абонент находился вне зоны действия сети». Тоже самое происходит и с сообщениями в #Public-группах. Там удобно видно доставку по подтверждающему ответу ближайшего ретранслятора. Есть ответ – значит ваше смс улетело в паблик. Нет ответа – значит, пересылай по новой, благо, есть для этого специальная кнопка.
Полное затопление сети — явление скорее редкое и единичное, но т.к. оно не носит постоянный характер флуда, то и сеть это переживает спокойно. Нельзя сказать, что флуд отсутствует как класс, но он не настолько фатален, как это наблюдается в сети Meshtastic. Кстати, адверты в обязательном порядке рассылаются и ретрансляторами, делается это на регулярной основе. В отличии от «компаньона», где объявление себя (advert) посылается только по вашему желанию и нажатию по кнопке, для своего куста связи локальное обявление на ретрансляторе (Zero-Hop Advert) делается раз в 30 мин или 1 час, глобальная рассылка объявлений (Flooded Advert) делается раз в 6, 12 или 24 часа. Есть мнение, что Zero-Hop Advert для удобства вновь прибываемых в зону покрытия репы абонентов надо делать хотя бы раз в 10 минут, но это вопрос дискуссионный…
-
Направленная маршрутизация — Direct/Source Routing. Это одна из главных фич сети Meshcore – сообщения могут доставляться строго по адресу к конкретному абоненту с обязательным подтверждением о доставке. Маршрут следования отправляемого сообщения записывается в теле сообщения и в ответном подтверждении (ASK) отправляется обратно с записью о маршруте (Path). Если состояние сети стабильно, то Direct-ы ходят по оптимальным и известным маршрутам. Если по какой-то причине пути передачи пакетов поломались и подтверждении (ASK) 2 раза не получено, то делается третья рассылка методом «затопления сети флудом» в надежде, что искомый абонент всё же найдётся по другому маршруту и ответит.
Т.е. НИКАКОГО ЛИШНЕГО ФЛУДА – только рациональное использование эфирного времени и минимальная нагрузка на сеть, что позволяет масштабировать сеть на большое количество народа.
Подтверждение о доставке – это одна из самых важных функций Meshcore, когда вопрос касается развёртывания сетей в режиме ЧС. Координаторам точно нужно знать, получил сообщение человек или нет.
Электрические вопросы автономности
Выше было написано про удобство и желательность использования сверхэкономичных абонентских устройств.
В сети Meshtastic и в сети Meshcore в качестве абонентских терминалов и в качестве ретрансляторов может использоваться практически одно и тоже оборудование — разные только прошивки ролей. Всё оборудование строится на 4х типа процессоров. Большая часть оборудования инфраструктуры использует процессоры семейства ESP32(v1/С3/С6/S3). Они мощные, с большим количеством памяти но, прожорливые до электричества. Такие хорошо использовать под ретрансляторы и комнаты со стабильным питанием или в качестве домашних устройств, где проблем с питанием обычно нет. Вторая большая группа оборудования использует сверхмалопотребляющие процессоры NRF52. На таких собрано подавляющее большинство мобильных и носимых терминалов, а так же ретрансляторы, питаемые от солнечной энергии.
Существуют так же несколько решений на процессорах STM32 и RP2040, но про них мало информации и практически нет статистики.
Для понимания что и сколько работает (в усреднённых числах): типовая нода на ESP32 в сети Meshtastic от аккумулятора 18650 работает в среднем 1…2-е суток. Нода на процессоре NRF52 работает примерно неделю или чуть больше. По нодам на STM32 и RP2040 автор статистикой не располагает.
Тут есть ещё один тонкий и важный нюанс!
В мышАстике большое количество энергии потребляет процессорное время и время работы передатчика по причине постоянного флуда. Т.е., примерно 40…80% времени флуда процессор и радиопередатчик работает в эфире, отъедая существенную долю энергии аккумулятора. Сверхэкономичные решения конечно работают, но выигрыш, как мы видим не сильно большой. Meshcore работает по принципу полного молчания «пока тебя не спросят», потому, сверхэкономичные схемные решения имеют существенно лучшую эффективность и автономность, т.е. время работы устройств от одного заряда может существенно увеличиться. Или, можно использовать аккумуляторы более маленького размера на меньшую ёмкость. Особенно классно получаются солнечные необслуживаемые ретрансляторы на NRF52 процессорах!
Ну и, последний, самый важный довод в пользу перехода в сеть Meshcore
Автор надеется, что немного развлёк публику и описал в общем технические нюансы и удобства сети Meshcore. Но, это всё должно прилипать на некую идеологическую основу.
Для чего, исходно, и автор этих строк и рандомный абонент, посмотревший популярных блоххеров начинает покупать абонентские устройства и/или строить сеть? Для общения, разумеется! Для создания дополнительного резервного канала связи «на всякий случай», на «связь судного для», как любят в статьях и роликах рассказывать и др. подобные эпитеты.
Какое общение у нас получается в сети Мешастик? Скорее всего — никакого, мягко выражаясь. Если мы хотим связаться приватным чатиком с другом, с ребёнком или супругой, то в Meshtastic-е этого сделать не получается! Доставка сообщений не стабильна и не гарантирована даже в пределах района. Какое остаётся применение? Разочаровавшись в возможностях сети просто покричать что-нибудь невразумительное в толпу и послушать что очередной аноним ответит. Попробовали, поплевались – какая гадость эти ваши «заливные Мыши» и забросили железку на дальнюю полку ибо какой толк?
Толи дело Meshcore!
Залив свою старую Мышастую ноду «компаньоном»-мЫшекором, автор этих строк только-только включил её, соединился с телефоном как в канале #public буквально с первых секунд обнаружил общение своего старого приятеля с дальнего пригорода на другом конце города, километрах, примерно в 50 от себя. Более того, в канале идёт постоянное общение людей со всех частей города. Недавние и частые отключения сотовой сети способствуют тому, что народ начал создавать приватные каналы по своим нуждам. Сеть работает и не падает. Конечно, пока во всей сети не более 200 человек и всё работает стабильно. Но, когда в сети мЫшастик было столько же абонентов – связь с ближайшим районом пригорода уже была затруднительной, а что-то услышать с противоположного конца города в принципе было уже невозможно. А тут смотрите… все общаются спокойно, ещё и удовольствие от этого получают!
На сим, автор статьи откланается и пойдёт дальше паять и программировать DIY-компаньоны и ретрансляторы для мЫшекора (которых, ксатати, авторы сети почему-то не завезли для самоделкопаяльщиков, но, мы это недоразумение поправим 😊 ).
Не прощаемся, будут следующие статьи, рассказывающие о подходящем для Meshcore железе, о том как присоединиться быстро к сети и не быть при этом сразу посланным «в сад» .
Для информации:
При написании статьи использовались материалы со следующих сайтов:
-
https://mesh.deel.ru/guides/meshtastic-vs-meshcore/ — отдельная благодарность за идею технической сказки.
-
По причине молодости концепци, в Русскоязычном сегменте интрнета материалов мало и всё пришлось самому щупать руками или лезть в мордокниги и редитт за бугор. Множество материалоа разрозненно находится в РЕддитах и сабреддитах, но там чёрт ногу сломит всё это перебирать.
-
https://meshcore.io/ — головной сайт авторов проекта
-
https://meshcore.co.uk/ — ещё один головной сайт, какой из них главнее непонятно, т.к. между авторами в самом разгаре юридическая грызня на тему кто главнее и кому стричь с темы деньги. )
Телеграмм-сообщества:
-
https://t.me/meshcore_rulang — основной Русскоязычный паблик
-
https://t.me/meshcore_petersburg — сообщество Санкт-Петербурга
-
https://t.me/meshcoremoscow — сообщество Москвы, но это скорее всего не основное. Там сильное разбиение и брожение по самой Москве и МО, несколько отдельных чатов. Всё найдете внутри Русского паблика, там же есть разбивка и список локальных чатов по другим городам.
ссылка на оригинал статьи https://habr.com/ru/articles/1056050/