Насколько высок процент доставки пакетов MQTT, чем CoAP? - PullRequest
0 голосов
/ 11 марта 2020

Я хочу знать о сравнении скорости доставки пакетов между MQTT и CoAP-передачей. Я знаю, что TCP более безопасен, чем UDP, поэтому MQTT должен иметь более высокую скорость доставки пакетов. Я просто хочу знать, если 2000 пакетов будут отправлены с использованием обоих протоколов отдельно, каков будет приблизительный процент в этих двух случаях? Пожалуйста, помогите с примером, если это возможно.

1 Ответ

0 голосов
/ 12 марта 2020

Если вы немного покопаетесь, то обнаружите, что оба, TCP и UDP, в основном отправляют IP-сообщения. И некоторые из этих сообщений могут быть потеряны. Для TCP повторная передача обрабатывается протоколом TCP без вашего влияния. Это работает неплохо (по крайней мере, во многих случаях). Для CoAP, когда вы используете сообщения CON, CoAP выполняет повторную передачу за вас, поэтому также не слишком много теряет.

Когда речь идет о передачах с большей потерей сообщений (например, плохое соединение), надежность может также зависит от количества данных. Если оно вписывается в одно IP-сообщение, вероятность того, что оно достигнет места назначения, выше, чем 4 сообщения, достигающие их места назначения. В этой ситуации начинается различие: использование TCP требует, чтобы все сообщения достигали места назначения без пробелов (например, 1,2, (отбрасывание 3), 4 не будет работать). CoAP будет доставлять сообщения также с пробелами. Это зависит от вашего приложения, можете ли вы извлечь из этого пользу или нет.

Я тестировал CoAP поверх DTLS 1.2 (ID соединения) в течение почти года, используя телефон Android и просто перемещаясь запрос (около 400 байт) с Wi-Fi и мобильной сетью. Работает очень надежно. Текущая статистика c: 2000 запросов, 143 повторных передачи, 4 утраченных. Обратите внимание: потеря 4 в основном означает «отсутствие соединения», поэтому убедитесь, что использование TCP будет иметь результаты ниже этого, особенно при перемещении, и часто требуются новые рукопожатия TCP / TLS.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...