Перевод:
Платформа разработки Go IoT — это бесплатное, эффективное и масштабируемое решение Интернета вещей (IoT), разработанное с использованием языка программирования Go. Платформа поддерживает такие протоколы передачи данных, как MQTT, HTTP, WebSocket, COAP и TCP/IP, а также предоставляет простые инструменты настройки для функций сигнализации и служб статистики данных на основе JavaScript.
Официальный сайт: http://iot-dev-egi.pages.dev/
Адрес репозитория: https://github.com/iot-ecology/go-iot-platform
Мы ищем инженеров-разработчиков React; ваше участие приветствуется.
EMQX может получать отчеты с данными второго уровня со многих устройств в любое время, но это может не соответствовать обычному бизнес-процессу. Например, в обычных обстоятельствах устройство может сообщать данные раз в 5 минут. Чтобы определить, является ли сообщающее устройство законным, нам нужен метод определения того, может ли устройство быть вредоносным, намеренно часто сообщая данные, чтобы повлиять на стабильность EMQX.
Сведения о физическом устройстве: в сведениях о физическом устройстве (DeviceInfo) есть два ключевых поля: интервал отправки (в секундах) и ошибка времени отправки (в секундах). С помощью этих двух полей мы можем определить, является ли поведение устройства ненормальным, и приступить к последующей логической обработке.
Чтобы рассчитать, находится ли частота отчетов устройства в пределах интервала отправки и ошибки, и находится ли она за пределами ошибки, нам сначала нужно определить некоторые переменные и условия:
Скорость устройства считается находящейся в пределах интервала отправки и считается ошибкой, если фактический интервал отправки ( T_{\text{actual}} ) соответствует следующему условию:
[ T - E \leq T_ {\text{actual}} \leq T E ]
Скорость устройства считается за пределами ошибки, если фактический интервал отправки ( T_{\text{actual}} ) не соответствует вышеуказанному условию, т.е.:
[ T_{\text{actual}} T E ]
Предполагать:
[ T_{\text{actual}} = (10:01:05 - 10:00:00) = 65 \text{ секунд} ]
[ 60 - 5 \leq 65 \leq 60 5 ]
[ 55 \leq 65 \leq 65 ]
Поскольку ( 55 \leq 65 \leq 65 ) верно, скорость устройства находится в пределах интервала передачи и ошибки.
Поскольку ( 65 ) не меньше ( 60 5 ), скорость устройства не выходит за пределы ошибки.
С помощью этого метода вы можете точно рассчитать фактический интервал отправки устройства и дополнительно проанализировать, соответствует ли оно установленному интервалу отправки и правилам ошибок.
С помощью упомянутого ранее метода расчета мы можем определить, соответствуют ли сообщаемые данные ожидаемому интервалу отправки и диапазону ошибок. Как правило, данные, соответствующие этому диапазону, считаются нормальными и требуют обработки, тогда как данные за пределами этого диапазона могут считаться ненормальными и их следует отбросить. В платформе разработки Go IoT для таких аномальных данных мы будем принимать следующие меры:
Отмена данных: непосредственное удаление данных, которые превышают интервал отправки и диапазон ошибок. При использовании сообщений в очереди сообщений необходимо напрямую ACK (подтверждение) этих данных без постоянного хранения.
Обслуживание с помощью инструментов управления сервером EMQX
Используя функцию черного списка EMQX, мы можем ограничить вредоносных или ненормальных клиентов, сообщающих о нарушениях. Вот подробный анализ преимуществ и недостатков отключения объектов и вариантов их использования:
Отключенный объект | Преимущества | Недостатки | Примеры использования |
---|---|---|---|
Идентификатор клиента | – Высокая точность, возможность прямого ограничения конкретных клиентов. – Простота реализации, обычно идентификатор клиента уникален, легко управлять и отслеживать. |
- Если клиент меняет идентификатор, его необходимо снова добавить в черный список. - Требуется механизм идентификации и записи идентификатора клиента. |
– подходит для сценариев, требующих точного контроля над отдельными устройствами или клиентами. – когда легко идентифицировать и записать идентификатор клиента MQTT устройства, сообщающего отчеты. |
Имя пользователя | - Можно управлять группой устройств, используя одно и то же имя пользователя. - Упрощает управление группой устройств. |
– Не подходит для сценариев, требующих точного контроля над отдельными устройствами. – Если устройства имеют одно и то же имя пользователя, законные устройства могут быть неправильно ограничены. |
– подходит для сценариев, в которых устройства используют один и тот же пароль учетной записи в пакетном режиме или в соответствии с правилами. – когда управление устройствами более централизовано и детальный контроль над отдельными устройствами не требуется. |
IP-адрес | - Можно быстро ограничить все запросы с определенного IP-адреса. - Просто и эффективно для устройств с фиксированными IP-адресами. |
– Не действует для динамических IP-адресов или мобильных устройств. Могут ошибочно ограничить другие законные устройства под тем же IP-адресом. |
– подходит для сценариев, когда устройства имеют фиксированные IP-адреса. – когда вам нужно быстро ограничить трафик с определенного IP-адреса, и под этим IP-адресом нет других законных устройств. |
Три вышеперечисленных пункта должны в первую очередь отдать приоритет Client ID.
EMQX предоставляет интерфейс API, который позволяет администраторам удалять определенные клиенты MQTT с сервера. Следует отметить, что если клиент MQTT реализовал механизм повторного подключения, простое его удаление может не полностью удалить клиент.
Ссылка: Документация EMQX — исключение клиентов
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3