Русский
Русский
English
Статистика
Реклама

Gsm

От SMS до AWS выбор технологии управления в зависимости от проекта

04.09.2020 18:19:39 | Автор: admin
Пост ориентирован на людей, размышляющих над созданием первой системы управления. Опытных специалистов может заинтересовать взгляд сверху на разные технологии управления Интернета вещей, выводы и короткий прогноз в заключении.



Задача


Мы в Synergy Team разрабатываем и выпускаем промышленные контроллеры. Они предназначены для учета ресурсов, управления объектами энергетики и других применений, которые принято называть Интернетом вещей (IoT). Часто нашим заказчикам не нужны просто контроллеры. Им нужно комплексное решение, включающее систему управления.

И эта система должна быть близка к оптимальной: быстрой, легкой и надежной. Но, согласно известному анекдоту, одновременно выполнить все эти требования невозможно. Нужно искать баланс в зависимости от задачи, что мы и попробовали сделать.


В этом посте мы ограничились классом задач, когда IoT контроллеры напрямую подключаются к управляющей системе (Directly-connected IoT). Итак, наша задача разработать систему управления, которая должна:
  • передавать данные от датчиков, подключенных к контроллерам,
  • передавать события (например, о превышении температуры, открытии двери, потере связи и т.п.),
  • передавать команды управления к исполнительным устройствам,

Если система состоит из большого количества объектов и/или выполняет ответственные задачи, она дополнительно должна:
  • постоянно контролировать наличие связи с объектами,
  • собирать статистику по своей работе,
  • обновлять настройки и программное обеспечение контроллеров (по запросу);
  • иметь защиту от несанкционированного доступа. Для государственных и крупных частных компаний система также должна соответствовать законодательству по работе с объектами критической информационной инфраструктуры (КИИ). В частности, требованиям 187-ФЗ, ФСБ, ФСТЭК, приказам Минкомсвязи и т.п.

Управление без выделенного сервера


Для нескольких объектов задача просто решается с управлением по GSM сети посредством SMS команд или звонков. Этот подход был популярен в начале 2010х, а его плюсы и минусы описаны, например, здесь. Для большинства серьезных систем этот подход на сегодня теряет актуальность.


Чуть более сложным является ручное управление контроллерами по выделенным IP через WEB или командную строку (CLI). Контроллеры должны быть постоянно включены в сеть, иметь статические белые или серые IP адреса. Альтернативно можно использовать динамические IP c привязкой к статическим доменным именам по технологии DynDNS или аналогичным. Это неплохо работает, если объектов мало и к надежности не предъявляется особых требований.

Недостатки:
  • неудобно, если WEB страницы от всех контроллеров нельзя разместить на экране(ах) диспетчера;
  • большая абонентская плата за статические IP адреса;
  • сложно настроить неподготовленным пользователям, когда устройства расположены за NAT;
  • долго согласовывать с оператором связи выделение пула адресов и доступ в IP подсеть. Например, для организации GSM APN у нас уходили недели;
  • неудобно, поскольку диспетчеру необходимо анализировать данные на мониторе глазами;
  • высокий риск несанкционированного доступа к контроллерам при использовании сетей общего пользования (Интернет).

Для быстрых демонстраций, контроля за несколькими объектами достаточно использовать управление по IP, SMS или телефонным звонкам.

Здесь мы не рассматривали ситуацию, когда на одном и том же компьютере работает диспетчер и установлена система управления, поскольку считаем ее вырожденным случаем следующего пункта.

Управление через выделенный сервер


В оставшихся случаях нужен сервер с выделенным IP, по которому будут подключаться контроллеры, диспетчеры и сторонние системы.

Если контроллеры передают данные только в направлении сервера, например, счетчики воды или простейшие навигационные устройства (трекеры), достаточно однонаправленного соединения. При этом контроллерам достаточно знать IP сервера.

В нашей задаче для обновления ПО контроллера и передачи команд нужен двухсторонний обмен данными. Для организации такого обмена необходимо:
  • периодическое считывание настроек или команд с сервера по инициативе контроллера (допустимо, если не нужна быстрая реакция на команды), либо
  • использование на контроллерах статических IP или доменных имен, чтобы сервер мог достучаться до них самостоятельно, либо
  • использование протоколов связи, предусматривающих установку туннеля. В частности, MQTT, EGTS или программных брокеров (надстроек над протоколами прошлых поколений). При этом контроллерам не нужны статические IP. После включения, потери связи или перезагрузки контроллеры инициативно установят и будут поддерживать туннельное соединение с сервером.


Разработка на базе коробочных продуктов


Когда речь заходит про систему управления на базе проверенного и надежного решения, в первую очередь, вспоминают про SCADA. И это полностью оправдано, когда речь идет об автоматизации производства или большом объекте энергетики. Словом, когда в системе содержится большое количество датчиков и исполнительных устройств разного типа. Для таких систем требуется разработка уникальных для каждого объекта мнемосхем и алгоритмов взаимодействия оборудования, что превосходно продумано в SCADA.

Если же нужен мониторинг и/или управление однотипными объектами (как в предложенной задаче), то использование SCADA может сделать решение слишком тяжелым из-за сложности настройки, трудоемкости добавления типовых объектов и повышенных требований к производительности сервера. Лучше использовать одну из специализированных коробочных систем, представленных на рынке, наиболее подходящую для задачи. Например:
  • систему мониторинга и управления сетевым оборудованием Network management system (SNMP, TR-069, CLI);
  • систему автоматизированного учета тепла, электричества, газа, воды. Для краткости АСКУЭ;
  • систему навигационного трекинга подвижных объектов с контролем бортовых систем;
  • систему управления климатом (вентиляция, кондиционирование и отопление) HVAC;
  • систему умный дом/офис/здание;
  • систему управления объектами энергетики: подстанциями, наружным (уличным) освещением, зарядными станциями для электротранспорта;
  • систему контроля доступа и охранно-пожарной безопасности, и т.д.

Перечисленные системы часто перекрывают функционал друг друга. Например, на базе АСКУЭ можно реализовать управление наружным освещением, а на базе Умного дома сделать управление климатом и доступом. Расширение функционала живых систем происходит постоянно. Появляются новые API для интеграции коробочных продуктов в решения заказчиков, а также поддержка пользовательских функций в коробочном ПО. Огромным плюсом коробочных продуктов является тот факт, что их можно купить и поставить на свой сервер, получив отчуждаемое решение, работающее в закрытом контуре заказчика.

При наличии планов по продаже собственной системы на свободном рынке надо понимать, что из сегодняшнего поставщика коробочного ПО завтра может вырасти конкурент. Кроме этого, использование коробочных систем несет в себе такие дополнительные риски, как:
  • повышение цены лицензий,
  • слабый контроль над системой (нет исходников, даже если есть, крайне сложно поддерживать),
  • многие системы можно использовать только в качестве облачного сервиса, что может быть неприемлемым для больших и/или государственных проектов.

Разработка на базе IoT платформ


Если использование коробочного ПО невозможно, хорошей идеей будет разработка на одной из популярных IoT платформ. Такие платформы содержат универсальные модули, необходимые в любой IoT системе для:
  • регистрации и удаления IoT устройств,
  • безопасной аутентификации IoT устройств и поддержания связи с ними,
  • работы с данными (базы данных, оптимизированные для разных задач),
  • регистрации пользователей и управления правами доступа,
  • формирования аналитики по собранным данным,
  • формирования уведомлений для пользователей (SMS, E-Mail, push сообщения, ),
  • хранения последних данных, считанных с IoT устройств,
  • выполнения различных действий по событиям,
  • визуализации данных и т.п.

Архитектура системы на IoT платформе практически не зависит от ее размера. Все задачи по балансировке нагрузки, устранению тормозов баз данных и тяжелых функций берет на себя платформа. Кроме этого, серверная часть приложения быстро собирается из кубиков микросервисов. Сокращается как время выхода на рынок, так и стоимость решения, напрямую зависящая от оплаты работы программистов.

Систему на IoT платформе можно разработать за минимальное время. Ее архитектура не будет сильно меняться при увеличении размера.

Плюсы разработки на облачной IoT платформе:
  • пилотный проект можно запустить с небольшими затратами. В AWS для большинства сервисов есть лимиты бесплатного использования. В Яндекс.Облаке предусмотрен тестовый период и стартовый грант.
  • гибкая тарификация, например, стоимость сервиса базы данных зависит от количества запросов, а стоимость MQTT-брокера от количества обработанных сообщений. Это особенно выгодно на старте, когда надо считать каждую копейку.
  • IoT платформы протестированы на миллионах устройств. Можно быть уверенным в масштабируемости (решение не придется сильно переписывать при увеличении количества устройств) и архитектурной грамотности решения (если советоваться с инженерами по поддержке используемых IoT платформ).
  • информационная безопасность обеспечивается самой платформой на различных уровнях.
  • задачу первичной разработки можно отдать на аутсорс. В перспективе решение смогут сопровождать не только разработчики изначальной системы, как это бывает обычно. Ведь IoT платформы имеют мощную техподдержку, подробно документированы, а количество разработчиков, умеющих с ними работать, неуклонно растет.

Недостатки:

  • компоненты IoT платформ работают только на мощностях их владельцев, создать полностью отчуждаемую систему, которая будет работать в ЦОД заказчика, возможно в редких случаях;
  • стоимость использования IoT платформы для крупных проектов может быть выше стоимости аренды виртуальных машин в ЦОД;
  • миграция с одной IoT платформы на другую связана с изменением приличного объема кода. Хотя сейчас наметилась тенденция к стандартизации API;
  • далеко не все IoT платформы развернуты в ЦОДах внутри России, что делает невозможным их использование в интересах государственных заказчиков.

Полностью своя разработка


Если недостатки предыдущих решений являются критическими, необходима разработка собственного решения. И как бы ни был хорош план, первые версии системы будут кривоваты.

Собственные решения часто реализуют на базе таких open-source систем, как ThingsBoard, OpenSCADA, MajorDoMo, Home Assistant, iobroker, Nokia glial. Для небольших проектов они могут оказаться слишком тяжелыми из-за:
  • большого срока разработки и соответствующих финансовых затрат. Обычно счет идет на человеко-годы;
  • c ростом количества объектов будут возникать узкие места в виде медленных баз данных, сборщиков, генераторов отчетов и т.п., для разрешения которых потребуется изменение архитектуры и дополнение ее баллансировщиками и дублирующими ресурсами;
  • расходов на постоянное администрирование и техническую поддержку.

В то же время:
Своя разработка оправдана либо для госзаказа, либо проектов с амбициозными планами и большими бюджетами, либо, когда независимость и безопасность критически важна.

Если нужна быстрая демонстрация (MVP), то ее можно сделать на IoT платформе или коробочном ПО, взяв на вооружение проверенные временем подходы, параллельно разрабатывая свое большое решение.

Заключение


На основе сделанного анализа разных систем предлагаем следующий алгоритм выбора системы управления.



Для демонстраций и маленьких IoT проектов на несколько объектов можно использовать прямое управление по IP, SMS или через GSM звонки. В остальных случаях необходима система верхнего уровня. Использование SCADA оправдано в промышленной автоматизации и на больших объектах энергетики. Для учета ресурсов, управления сетевым оборудованием, трекинга, охраны, умного дома и т.п. удобно использовать коробочное решение нужной специализации. Разработка систем на IoT платформах сложнее, но дает больше перспектив и гибкости. Решения на зарубежных IoT платформах серьезно ограничены по масштабу и областям применений в России. Самой сложной является полностью своя разработка. И она оправдана только для госзаказа и самых амбициозных проектов. При этом для быстрых демонстраций и копирования лучших практик будет полезно параллельно с собственной разработкой сделать эскизный проект на IoT платформе.

Напоследок хотим поделиться небольшим прогнозом:

  • в облачных IoT платформах стоит ждать появление преднастроенных шаблонов Умного дома, АСКУЭ, NMS, СКУД и т.п. Это еще больше упростит использование IoT платформ и привлечет к ним еще большую аудиторию.
  • традиционные разработчики SCADA и других коробочных решений предложат больше инструментов для внешних разработчиков, которые хорошо зарекомендовали себя в IoT платформах. Закрытые коробочные решения вряд ли выдержат рыночную конкуренцию.
  • отечественные IoT платформы для государственных и больших частных заказчиков будут развиваться еще активнее.
  • API разных IoT платформ станут со временем более похожими друг на друга. Из-за этого переход с одной IoT платформы на другую будет упрощаться.

В следующем, более техническом, посте мы расскажем о нашем проекте по мониторингу систем связи на платформе AWS и контроллерах GIC.

Обязательно напишите в комментариях, если мы упустили что-то важное. Одна из целей нашего блога получить конструктивный feedback.
Подробнее..

GSMWi-Fi сигнализация Navigard NV 8321W

19.08.2020 22:17:00 | Автор: admin
Калининградская компания Navigard разрабатывает и производит более десятка моделей охранно-пожарной сигнализации. Несколько моделей предназначены для бытового использования (самоохраны), впрочем все они могут быть подключены и на пультовую охрану. Я изучил сигнализацию Navigard NV 8321W, сочетающую невысокую цену и максимум возможностей.




Стенд Navigard я обнаружил в самом углу выставки Securika год назад. Сигнализации этого производителя меня заинтересовали по нескольким причинам: поддержка проводных и беспроводных датчиков, наличие облака производителя и приложения для смартфонов, возможность подключения к интернет не только через мобильный интернет, но и через Wi-Fi и Ethernet, поддержка TM, невысокая цена.

Для начала кратко опишу возможности сигнализации.

До восьми групп (зон) проводных датчиков (на размыкание, замыкание, двухзонных, выдающих напряжение).
До 32 беспроводных датчиков (433 MHz, свой протокол).
4 выхода (управление вручную или по событиям).
Два раздела (можно организовать раздельную охрану двух соседних квартир или офисов).

Две симкарты (только 2G), Wi-Fi (только 2.4 GHz).
Оповещение с помощью звонка, СМС, Push-уведомления на смартфон через облако, на пульт охранного предприятия.

Постановка на охрану и снятие с охраны с помощью ключа-таблетки TM, радиопульта, приложения на смартфоне, СМС, замыкания контактов, бесконтактных карт и брелков, цифровой клавиатуры.

Подключение до трёх проводных датчиков температуры.

Подключение до двух JPEG-камер.

Встроенный аккумулятор резервного питания.

Слот для карты MicroSD для прошивки, конфигурирования, сохранения снимков с камер, расширенного журнала событий.

Настройка с помощью программы на компьютере, передача настроек в сигнализацию с помощью подключения USB, файла на карте MicroSD, файла на FTP, передача через интернет.

Мобильное приложение, работающее через облако производителя.

В комплекте источник питания 12 В 1 А, радиобрелок, беспроводной датчик открытия двери/окна, резисторы.

Розничная цена этого комплекта сигнализации составляет 6490 рублей, версия без Wi-Fi (NV 8321) стоит 5990 рублей. Navigard производит сигнализации с такой же логикой работы, но меньшим количеством входов-выходов и средств коммуникаций по цене от 2500 рублей.

Дополнительно можно купить беспроводные датчики движения (1350 руб), датчики температуры (416 руб), радиобрелки (332-757 руб) камеры (2855 руб).

На передней панели сигнализации расположено 18 светодиодов, отображающих состояние зон, выходов, симкарт, питания.



Не снимая заднюю крышку можно подключаться к выходам и вынимать карту MicroSD.



Для установки симкарт, подключения датчиков и всего остального крышку нужно снять.



Сама сигнализация изготавливается к Калининграде, беспроводные датчики и пульты делаются на заказ в Китае. Их протокол отличается от стандартного китайского протокола (я на всякий случай попробовал подключить к сигнализации точно такой же с виду китайский брелок, но ничего не вышло).



Беспроводной датчик открывания двери или окна NV 105W питается от литиевой батарейки CR123A.



В беспроводном датчике движения NV 350W используется более редкая литиевая батарейка ER14250 (1/2 AA).



Камера NV DOM 485-28IR передаёт фотографии с максимальным разрешением 640x480 точек по интерфейсу RS485.



Я подключил к сигнализации один дешёвый проводной датчик открытия двери, датчик температуры, считыватель TM, камеру, радиобрелок, два беспроволных датчика и изучил, как это всё работает.



Для настройки сигнализации первым делом нужно подключить её к компьютеру кабелем USB-MiniUSB (в комплекте его нет, но такой кабель наверняка найдётся у каждого) и установить на компьютер программу NV PRO.



Затем можно установить на смартфон приложение NV HOME из Play Market или Apple App Store и настроить связь приложения с сигнализацией через облако производителя.

Приложение показывает уровень сигнала симок, наличие напряжения в сети, температуру (если подключён датчик), состояние подключения Wi-Fi, состояние сигнализации и всех её зон. В приложение приходят push-уведомления при тревоге и других критических событиях.
Из приложения можно ставить сигнализацию на охрану и снимать с неё, а также управлять выходами. Единственная настройка, которая есть в приложении, время автовыключения выходов.



Беспроводные датчики и пульты это удобно, но нужно понимать, что для злоумышленника с простейшим электронным оборудованием обмануть их не составит труда: для проверки я скопировал код пульта в устройство Broadlink RM Pro+ и клонированный пульт смог снять сигнализацию с охраны, это означает, что и злоумышленник может воспользоваться простейшим кодграббером и клонировать пульт. Заглушить беспроводные датчики при проникновении в помещение также проще простого достаточно непрерывно держать нажатой кнопку любого китайского пульта и сигнализация не сможет распознать сигнал от датчиков.

Для того, чтобы исключить возможность такого обмана сигнализации, лучше использовать проводные датчики в критичных местах (хотя бы один датчик движения в коридоре).

Самый безопасный способ постановки на охрану и снятия с неё домофонными ключами ТМ или бесконтактными карточками или брелками (понадобится считыватель TM или бесконтактный считыватель Em-Marin с интерфейсом TM или Wiegand26). Кроме того можно подключить цифровую клавиатуру с интерфейсом TM, чтобы ставить на охрану и снимать с неё с помощью ввода пароля. Есть возможность настроить постановку/снятие сигналом на входе, но кнопку для постановки использовать не получится отдельной функции постановки без снятия замыканием контактов нет.

Если всё же хочется использовать радиопульт, можно настроить сигнализацию так, чтобы каждый раз, когда кто-то снимает её с охраны, она присылала СМС или звонила вам.

Для каждого из двух разделов настраивается время задержки постановки и снятия (от 0 до 250 сек с градацией 1 с), можно включить автопостановку через указанное количество минут (1-160) после снятия с охраны.
Во время задержки постановки сигнализация пищит короткими импульсами, при тревоге начинает пищать непрерывно (отключить можно только глобально все звуки).

В программе NV PRO настраивается множество вариантов оповещения и взаимодействия с телефоном пользователя.
Помимо главных оповещений о тревоге (можно включить звонки, СМС, PUSH), есть десятки, если не сотни тонких настроек: можно включить информационные СМС для каждой зоны отдельно, причём независимо для каждой симкарты, можно настраивать тексты сообщений, можно отключать кириллицу в сообщениях. Есть запрет на управление с помощью СМС. Есть управление указанным выходом с помощью бесплатного звонка на номер сигнализации со сбросом вызова (пригодится для открывания ворот). Даже оповещений о тревоге звонком два вида: бесплатный CLIP (сигнализация звонит на телефон пользователя и после ответа тут же бросает трубку) и информационный ALARM (сигнализация звонит и проигрывает пользователю голосовое сообщение с SD-карты или сообщает код события тоновыми сигналами).



Каждый вход гибко настраивается.



Каждый выход может работать в двенадцати режимах. Самый простой ручное управление (из приложения или с помощью СМС).



Все режимы видны на скриншоте.



К сигнализации можно подключить две JPEG-камеры, с помощью которых при тревоге на определённых входах сигнализация делает до 20 снимков с разрешением до 640х480 точек, сохраняет их на карту памяти и может отправлять на сервер производителя (разумеется, там их можно посмотреть), или на телефон пользователя по MMS.



Качество снимков невысокое, но по ним можно оценить ситуацию на охраняемом объекте.



Снимок в полной темноте с ИК-подсветкой камеры.



На мой взгляд, эффективнее использовать отдельную полноценную видеокамеру с высоким разрешением, тем более, что обойдётся она не дороже.

Сигнализация оснащена Wi-Fi, но ни один из многочисленных светодиодов не показывает, подключён ли он. Это можно узнать только в мобильном приложении или отправив сигнализации СМС с текстом temp (в ответ придёт СМС с температурой, состоянием питания, уровнем сигнала GSM и статусом Wi-Fi).

Мне было достаточно сложно понять логику настройки сигнализации и её работы. Единой инструкции к сигнализации нет есть отдельная инструкция по сигнализации, отдельная по мобильному приложению, отдельная по программе настройки. Смысл некоторых пунктов настройки удалось выяснить только с помощью техподдержки.

Для тех, кто купит себе эту сигнализацию, я написал краткую инструкцию по её начальной настойке.
Нажмите, чтобы прочитать инструкцию
Ставим на компьютер программу NV PRO (возможно потребуется установить .Net Framework 4.7).

Подключаем сигнализацию к компьютеру кабелем USB-MiniUSB. Включаем сигнализацию в сеть.

Ставим драйвер, лежащий в отдельной папке внутри папки программы.

Заходим во вкладку Настройки USB, выбираем COM-порт и нажимаем Тип устр.. Если соединение работает, появится название и версия сигнализации и предложение загрузить шаблон её настроек. Нажимаем Да.



Заходим во вкладку Wi-Fi и вводим имя точки доступа и пароль.



Ставим на смартфон приложение NV HOME из Play Market или Apple App Store, регистрируем аккаунт, создаём объект с произвольным именем, номером 1111 и произвольным кодом.



Переходим на вкладку IP-адреса для GPRS-отчётов и в разделе IP адрес 3 меняем протокол связи на NV Cloud. В поле Логин для NV Cloud пишем Email, на который только что зарегистрировали аккаунт, в поле Пароль для NV Cloud пароль, который был задан в приложении.



Слева нажимаем кнопку Коды, вводим для Пользователя 1 тот код, который вводили в приложении при создании объекта и ставим все четыре галки.



Сверху нажимаем кнопку Запись, чтобы конфигурация передалась в сигнализацию. После этого сигнализация должна подключиться к Wi-Fi, и приложение должно её увидеть.

Подключаем считыватель TM, на вкладке Общие Постановка/снятие меняем пункт Управление от CLK-DATA на считыватель ТМ на клемме DATA. Нажимаем Запись. Создаём мастер-ключ по инструкции (нужно будет выключить сигнализацию, переставить перемычку, включить, коснуться ключом считывателя, дождаться сигнала окончания программирования, выключить сигнализацию, вернуть перемычку обратно, включить сигнализацию). Добавляем ключи пользователя с помощью мастер-ключа по инструкции.

Записываем радиобрелок и радиодатчики по инструкции.

На вкладке Общие Разное включаем синхронизацию времени с интернет и выбираем часовой пояс.

На вкладке Общие GPRS-настройки убираем галки Не отправлять отчеты на пульт, если отправлен GPRS и Не отправлять GPRS, если отправлен отчёт на пульт.

В разделе Общие Телефоны и отчёты Входы прописываем номер своего телефона и для каждого входа, к которому подключены датчики, ставим галки " SIM1 CLIP тревога", SIM1 SMS, Запрет отчета о восстановлении.



При тревоге сигнализация будет присылать PUSH-уведомление в приложение, звонить и бросать труку после ответа, присылать СМС о тревоге. Конечно могут потребоваться и индивидуальные настройки, но этот базовый набор позволит запустить сигнализацию и начать ей пользоваться.

Заходим во вкладку Файл, нажимаем Сохранить как, выбираем папку и имя файла конфигурации. Если этого не сделать рано или поздно вы по ошибке удалите все настройки в сигнализации, как это нечаянно сделал я. :)


Сигнализацию Navigard NV 8321W можно установить в квартире, на даче, в гараже или офисе. Она недорого стоит (а есть ещё и более дешёвые варианты без Wi-Fi, внутренней батареи, беспроводных зон, корпуса) и удобна в использовании. Главная особенность сигнализаций Navigard обилие тонких настроек. Главная проблема запутанность документации, сложность настройки и отсутствие возможности настройки через мобильное приложение.
Надеюсь, производитель создаст единую инструкцию для частных пользователей и расширит возможности мобильного приложения.

2020, Алексей Надёжин

P.S. Мне было бы интересно изучить и другие отечественные системы домашней сигнализации. Если вы производитель одной из них, пожалуйста свяжитесь со мной.
Подробнее..

Перевод Наблюдения за переключениями между сотовыми вышками

21.05.2021 02:08:49 | Автор: admin
Одна из моих любимых книг High Performance Browser Networking Ильи Горелика от 2013 года. В ней можно найти не только разумные советы, но и потрясающие истории из жизни.

46% заряда аккумулятора тратится на передачу 0,2% байтов


Когда пользователь сервиса Pandora проигрывает песню, весь файл передаётся одним куском, и это правильно передавай сразу столько данных, сколько можешь, а потом держи радио выключенным как можно дольше.

Однако после этой передачи приложение каждую минуту отсылает пинги для периодического анализа аудитории. И что в итоге? Эти пинги занимают 0,2% от общих переданных данных, потребляя при этом 46% всей энергии, использованной приложением!

Илья Григорик, High Performance Browser Networking


Каждый раз в книге Илья довольно широко раскрывает свою точку зрения, подкрепляя её объёмными примерами. Чтобы рассказать читателям о времени работы аккумулятора телефона, он целую главу посвящает деталям работы модема GSM, UMTS и LTE. Интересно бывает осознавать, как возникающая на одном из уровней проблема уходит корнями на несколько уровней ниже.

Изучая весь стек технологий, книга не просто даёт нам набор фактов, а продвигает целую философию.

Хорошие разработчики знают, как что работает.
Великие разработчики знают, почему это работает.

Стив Саудерс, предисловие к книге High Performance Browser Networking


Старая идея по-новому


В 2013 году, когда я читал книгу, я думал, что было бы круто провести собственное расследование на эту тему, и визуализировать то, как радиомодем перепрыгивает с вышки на вышку при движении телефона.

С телефоном 2013 года под управлением iOS этого было сделать нельзя, он не давал доступ к нужным данным. Но сегодня у меня Pixel, и такой проблемы у него нет. LocationManager ежесекундно выдаёт местоположение по GPS (широту и долготу)., TelephonyManager выдаёт cellID=(mmc,mcc,lac,cid) для сотовой вышки.

База данных cellID поможет узнать широту и долготу каждой вышки. Останется лишь ежесекундно рисовать маршрут (красным) и связь с вышками, для каждой из которых выбран свой цвет.


Поездка из Саннивейл в Маунтин-Вью (кликабельно)

На диаграмме видно 7-минутную поездку длиной 3,7 км с телефоном с поддержкой LTE (UE, от User Equipment). По пути встретились пять вышек и девять ячеек связи (eNB, от Evolved NodeB).

Анализ


Комбинируя Google StreetView и Wikipedia, можно во многом разобраться.


(кликабельно)

По одним и тем же координатам eNB могут находиться несколько cellID. Просто антенна на eNB покрывают не 360. Угол направления и дальность работы каждой антенны режут пространство на сектора.

Местоположение и направление антенн выбирается стратегически. На карте выше вышки расставлены вдоль шоссе 85, и антенны смотрят параллельно ему. У некоторых антенн диапазон работы получается узким и длинным возможно, это позволяет увеличить плотность телефонов во время пробок.

Плотность eNB гораздо выше, чем я думал. В интернете пишут, что дальность действия сотовой вышки составляет 45 миль. Возможно, это в дикой местности, но в городе плотность населения и плотность расстановки eNB связаны. В Саннивейл вышки стоят через каждые полтора километра.

Вышки не всегда делят несколько операторов. Точность базы данных CellID такая большая, что я смог найти эти вышки на Google StreetView. Я думал, что обнаружу там большие монолиты, усеянные антеннами, по нескольку штук на каждого оператора, но в большинстве случаев на вышке висит по одной антенне.

Антенны eNB крепят не только на вышках. Иногда они располагаются в церквях, на высоковольтных линиях электропередач и даже на коммерческих зданиях.



Как только вы начинаете искать эти вышки, они для вас из невидимых превращаются в объекты, которые невозможно игнорировать.

LTE-радио умеет прыгать между разными сотами. Судя по всему, достаточно часто это происходит несколько раз в минуту, для того, чтобы справиться с тем, что здания загораживают вышки.

Выбор вышки кажется детерминистским. На двух картах выше подключения карт на одном и том же участке пути выглядят похоже. Выбор делает конечный автомат, конфигурацию которого каждая ячейка задаёт посредством SIB-сообщений. Переход состояния зависит от многих факторов, в т.ч. от порогового значения силы сигнала предыдущей соты или порогового значения силы сигнала следующей соты.

Проехав достаточно большое расстояние, 16 км, я обратил внимание на то, что код района LAC (Location Area Code), вшитый в CellID, не менялся. По спецификации LTE, сотовые вышки не обязаны выполнять передачу UE, если LAC не меняется. Телефон переключается на следующую вышку, оставаясь в режиме RCC_IDLE и не передавая данные. Это не только экономит батарею, но и означает, что сотовый оператор не знает точного местоположения телефона, если LAC не менялся (хотя по поводу точности определения местоположения по сотам идут споры ещё со времён появления GSM).

Судя по всему, на каждой вышке стоит по три антенны с сектором действия в 120. Это очевидно, если покружить вокруг одной из них.



Лезем глубже в кроличью нору


Рисовать карты было интересно. Мне захотелось больше узнать об этой области. Я обнаружил, что она не только глубокая, но и широкая. Даже для того, чтобы нарисовать минимальную таблицу по итогам изысканий, пришлось достаточно много времени потратить на разборки с акронимами.

Поколение Технология Маркетинг Примечания
0G Телефоны в автомобилях Как у Филипа Драммонда [персонаж ситкома Diff'rent Strokes / прим. пер.]
1G DynaTAC Как у Гордона Гекко [персонаж фильма Уолл-Стрит / прим. пер.]
2G GSM GSM Nokia 3310 (он же кирпич). Поддержка SMS
GPRS Голос или данные
EDGE iPhone 1
cdmaOne CDMA
3G UMTS HSPA iPhone 3GS. И голос и данные одновременно
HSPA+
CDMA2000 C2K
4G LTE LTE iPhone 5 / Pixel 1
LTE Advanced LTE+
LTE Advanced Pro LTE Pro
5G 5G 5G iPhone 12 / Pixel 4a 5g
5G mmWave 5G mmWave iPhone 12 Pro Max /Pixel 5G


Эзотерический мир


Начиная с 2G (GSM) в 1998 году стандарты и документацию для всех технических стеков делали 3GPP. Все эти спецификации растягиваются на сотни документов, и чтобы понять их, потребуется, похоже, вся жизнь.

Я не нашёл LTE-стека с открытым кодом, на котором можно было бы учиться. А если бы он и был, то радиопередача в сотовом диапазоне тщательно регулируется, чтобы эти частоты не замусоривали неисправные модемы.

По этому вопросу издано немного книг, и все они крайне дорогие. Меня лично вдохновили на изыскания следующие три:
  • An introduction to LTE by Christopher Cox.
  • LTE Advanced by Sassan Ahmadi.
  • Long Term Evolution In Bullets, 2nd Edition by Chris Johnnson.


Наконец, существуют приложения, позволяющие вам заглянуть под капот модема, прочитать его состояние и сообщение. Но я решил их не использовать они дорогие, к тому же, требуют рута.
Подробнее..
Категории: Сотовая связь , Lte , Gsm

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru