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

219
Domonkos Baksa

Проект, над которым я работаю, требует NodeMCU (WiFi-модуль ESP8266) для подключения к шлюзу (Advantech ARK-1123), оснащенному беспроводным адаптером. После того, как шлюз создал отдельную беспроводную сеть и подключил узел, я обнаружил, что время ответа на получение сообщения от шлюза в качестве клиента сокета и отсылку некоторых данных составляет 350 мс на линию, отправляемую обратно.

Разобрав код NodeMCU и не найдя ничего, что могло бы вызвать это, я попытался протестировать одну и ту же программу на разных устройствах. В результате было получено ~ 350 мсек для отправки одной линии на шлюз, ~ 150 мсек на другой ПК с беспроводным USB-адаптером и ~ 10 мс на мой телефон с приложением TCP-клиента, независимо от используемой сети или способа работы ПК. подключены к сети (проводной или беспроводной). Я уверен (ну, больше похоже на надежду), что есть некоторые сетевые настройки, которые я пропускаю на ПК, которые по умолчанию установлены на телефоне. Цель состоит в том, чтобы на шлюзе было время до 10-15 мс.

Есть идеи?

0
Различные сетевые карты, разные размеры MTU, разные операционные системы и сетевые стеки, разные нагрузки на систему. Seth 7 лет назад 0
Конечно, но имеет ли смысл, что мой телефон быстрее получает данные, чем ПК? Кроме того, 350 мс кажется абсурдом для отправки строки на устройство в той же сети. Domonkos Baksa 7 лет назад 0
[NodeMCU] (https://en.wikipedia.org/wiki/NodeMCU) запускает несколько уровней абстракции интерпретируемых языков, имеет одно ядро ​​RISC с ~ 80 МГц и памятью ~ 128 кБ. В зависимости от того, что вы делаете, я представляю, что это довольно просто. Кроме того, ваши цифры говорят только о производительности беспроводной сети, которая может быть от a до ac +, в зависимости от того, что вы на самом деле делаете и как вы подключаете устройства. Поскольку у вас есть любое количество переменных, которые могут повлиять на время отклика. Seth 7 лет назад 0
Я удалил свой код NodeMCU из всего, что не связано с этим сообщением, чтобы убедиться, что оно не зависит от его производительности. Я могу прикрепить код или предоставить любую конфигурацию, если вы думаете, что это поможет. Я чувствую, что общение так же просто, как и работа с сокетом, не должна занимать так много времени Пинг устройства отвечает через 4-5 мс, что кажется более вероятным. Domonkos Baksa 7 лет назад 0
Значит, эти тесты прошли через TCP? Был ли вовлечен TLS? Был ли уже сеанс TCP или вам приходилось каждый раз выполнять трехстороннее рукопожатие? Ваш слушатель уже запущен, или xinetd запускает ленивый запуск (или systemd или что-то еще)? Spiff 7 лет назад 0

0 ответов на вопрос

Похожие вопросы