Я не ожидаю, что разница будет слишком значительной, как только соединение будет установлено .
Разбивка накладных расходов, которые TLS производит в целом, может быть найдена здесь . Важные биты:
- Общая нагрузка на создание нового сеанса TLS составляет в среднем около 6,5 тыс. Байт.
- Общая нагрузка на возобновление существующего сеанса TLS составляет в среднем около 330 байт.
- Общий объем служебных данных зашифрованных данных составляет около 40 байтов (20 + 15 + 5).
- Вышеприведенные вычисления легко изменить, чтобы более точно отразить специфику среды, поэтому это следует рассматривать как основу для издержек TLS, а не как авторитетный ответ на поставленный вопрос.
Стоит прочитать, чтобы увидеть, как были рассчитаны эти цифры - вы должны лучше понять, как TLS работает со всем этим. Как отмечалось в других ответах, радиопередача, вероятно, является одним из самых больших видов использования энергии, что часто является ограничением в IoT, поэтому после установления сеанса накладные расходы не слишком значительны, особенно если ваши сообщения нетривиально коротко.
Как отмечает HiveMQ в статье Как TLS влияет на производительность MQTT? :
Хорошая новость заключается в том, что клиенту MQTT необходимо устанавливать соединение только один раз за сеанс - в отличие от протоколов, таких как HTTP, которым необходимо восстанавливать соединение при каждом запросе (если не используется keep-alive или другие методы, такие как Long). Опрос на месте). После подключения к брокеру клиент может отправлять и получать сообщения без дополнительных затрат на рукопожатие. Использование TLS требует выделения дополнительных буферов, поэтому потребление ОЗУ также немного выше для каждого соединения MQTT.
Они также предоставляют график загрузки ЦП в брокере при подключении 50 000 клиентов:
Источник изображения: HiveMQ (см. Ссылку выше)
Обратите внимание, что это почти наверняка не типичный шаблон использования, но данные, тем не менее, интересны. Как вы можете видеть, во время квитирования возникают большие издержки, но после этого нагрузка на процессор практически одинакова. Я ожидаю, что аналогичная вещь на клиенте.
Тем не менее, общий совет здесь верен: надуманный тест не даст вам информацию, которая вам действительно нужна; чтобы узнать, как TLS повлияет на ваш вариант использования, вам нужно проверить его в ... вашем варианте использования !