• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Размер получаемых пакетов меньше ожидаемых

думка

New member
Друзья, подскажите, куда смотреть и что копать.
Есть погодный клиент на Wemos D1, который каждый час запрашивает погоду на api.openweathermap.org и затем отображает на OLED-дисплей.
Однако работает нестабильно. Периодически парсер JSON выдает ошибку IncompleteInput, т.е. ответ от сервера получает не полностью.
А там между прочим почти 15кб JSON.
Когда начал разбираться, оказалось, что ответ от сервера приходит пакетами по 520-540 байт, причем интервал между пакетами может составлять до пары минут! При этом, ответ на браузер ПК приходит мгновенно, и там пакеты полной длины, 1460 байт, и никаких минутных интервалов между ними.

Сначала подумал ESP8266HTTPClient глючит, попробовал напрямую с WiFiClient читать - тоже самое.
Причем в WiFiClient.h даже такой параметр есть: #define TCP_MSS 1460 // lwip1.4. Не помогает...
Попробовал библиотеку ESPAsyncTCP - тот же результат.

буду благодарен за идеи и наводки.
 

pvvx

Активный участник сообщества
В TCP есть подтверждение передачи - ACK. Так-же есть размер окна TCP стека.
У ESP размер окна мал - обычно до 4-х TCP_MSS и менее. На компе типичный размер > 64 килобайт.
Комп и все приличные принимают по несколько пакетов TCP и дают подтверждение (ACK) сразу на пачку и сервер может гнать пакеты вперед для увеличения скорости.
Возможно ваш ESP уменьшает окно TCP (параметр window), т.к. тупит на разборке приходящих пакетов (буфера TCP заняты)...
Для Arduino это нормально :)
 

думка

New member
В TCP есть подтверждение передачи - ACK. Так-же есть размер окна TCP стека.
У ESP размер окна мал - обычно до 4-х TCP_MSS и менее. На компе типичный размер > 64 килобайт.
Комп и все приличные принимают по несколько пакетов TCP и дают подтверждение (ACK) сразу на пачку и сервер может гнать пакеты вперед для увеличения скорости.
Возможно ваш ESP уменьшает окно TCP (параметр window), т.к. тупит на разборке приходящих пакетов (буфера TCP заняты)...
Для Arduino это нормально :)

pvvx, спасибо за отклик. Решение нашлось довольно банальное) Обновил платформу до последней версии 2.6.3 (до этого стояла 2.5.0), и все заработало. Размер блоков остался тот же, по 520 байт в среднем, но теперь они полетели кучно один за другим, и парсер не отваливается. Пока на этом успокоюсь, пожалуй)
 

pvvx

Активный участник сообщества
Что-то в последнее время (год уже) на данном форуме все вопросы сводятся к номерам версий Arduino...
 

pvvx

Активный участник сообщества
Моё изучение заката ESP показывает, что на текущей стадии похороны ESP сопровождаются появлением отставших от прогресса любителей DIY с перебором версий библиотек и Arduino. Ещё остается малочисленная группа учащихся собирающих всякую ерунду по заданию учителя с вопросами не сложнее “Как прошить?”. На этом в принципе всё связанное с ESP заканчивается...
 

думка

New member
Моё изучение заката ESP показывает, что на текущей стадии похороны ESP сопровождаются появлением отставших от прогресса любителей DIY с перебором версий библиотек и Arduino. Ещё остается малочисленная группа учащихся собирающих всякую ерунду по заданию учителя с вопросами не сложнее “Как прошить?”. На этом в принципе всё связанное с ESP заканчивается...
Мне показалось, или я уловил у Вас нотки ностальгии?) Все имеет свой жизненный цикл, и ESP8266 был важной вехой в упомянутом "прогрессе", очевидно. А те, кто не стремятся быть на острие "прогресса", а занимаются творчеством для собственного удовольствия, особенно если у них крайне мало свободного времени на это творчество, до сих пор успешно их применяют для своих неказистых поделок, ввиду доступности как самих плат, так и средств разработки, библиотек, реализованных проектов и т.п.
Разумеется, все это не имеет отношения к высокому искусству)

А вот, собственно, и виновник:


И автор, и домочадцы вполне довольны)
 

pvvx

Активный участник сообщества
Мысли не в тему ностальгии. Я просто изучаю “закат” народных тех.тем и как он происходит. С ESP я полностью завязал уже года 2 как (ели не более).
Это стадия “заката” ESP уже последняя, если сравнивать с десятком прошедших с 1980г аналогичных тематик.
На 155ЛА3 и по сей день кто-то что-то собирает или выпендривается...
 

pvvx

Активный участник сообщества
Любая такая тема активно развивается первые 1.5 года (аналогично курсу битков :)). Потом подключается второй эшелон – распространители и продажи готового... В общем спекуляция и вокруг да около. После насыщения или охвата рынка – всё на спад. Большие корпорации тоже не дремлют и заваливают рынок своей альтернативой. Но главный период сохраняется – после возникновения и начальной раскрутки темы у вас есть всего не более 1.2..1.5 года для получения какой-либо прибыли на развивающейся тематике, до входа корпораций...
 
Сверху Снизу