В два пакета на MS Explorere само всё... Больше 2-х просто стек у ESP2866 короток На MS Explorere и выходит 1.2Mbps/s. На Хромом - наверно 100кЭто не баг, это фича. И проблема эта не в "google chrome", а прокладки которую он использует.
Для ускорения обмена, передача выполняется по 2 пакета. Получатель, после получения первого пакета в течении 200 мСек ожидает второй. Если за первым приходит сразу второй, то АСК передается сразу, либо по истечении 200 млСек.
Т.Е. Вам достаточно выполнять отправку два раза, не дожидаясь 1-го ACK.
Так не важна какова длинна отправляемого пакета. Отправляй хоть по 100 байт, главное по 2 пакета (2 раза). Это сам MS придумал, по умолчанию это используется в его библиотеках, хром работает через них, ещё пару лет назад также работал IE и другие. С lwip разбирался очень давно, что уже забыл как в нем. По этому подсказать не могу. До ESP руки дошли только сейчас.В два пакета на MS Explorere само всё... Больше 2-х просто стек у ESP2866 короток На MS Explorere и выходит 1.2Mbps/s. На Хромом - наверно 100к
При 200ms Хромой подтверждает стек 5 раз в секунду. А стек у нас (максимальное окно) 5-ть с копейками килобайт. Вот и выходит 5*5 = 25
Хром вроде имеет свой стек HTTP, по тому и дурит.Так не важна какова длинна отправляемого пакета. Отправляй хоть по 100 байт, главное по 2 пакета (2 раза). Это сам MS придумал, по умолчанию это используется в его библиотеках, хром работает через них, ещё пару лет назад также работал IE и другие.
А это, отправка по два пакета никак не управляется в Lwip. И приведет только к потере скорости ещё с Хромым... Он просто считает, что у всех должен быть стек минимум в 128кило...С lwip разбирался очень давно, что уже забыл как в нем. По этому подсказать не могу. До ESP руки дошли только сейчас.
Любой - у меня есть практически все типы. К модулю включен FT2232, т.к. он двойной. По одному (UART0 в ESP) программируется, а по второму - только TX UART1 - отладочная информация. С двумя отключать/переключать ничего не надо при отладке/заливке прошивки.У меня к Вам пара вопросов, какой Вы используете адаптер USB to RS232?
Всё возможно, но Lwip более менее что работает в сборке SDK от Espressif. Всё остальное гораздо хуже, особенно где в заголовке цельно-стянутых примеров из опен-сорцов в SDK красуются надписи "Copyright (c) Espressif System" и вставлены эксклюзивные багии Возможно из исходников полностью выкинуть стек LwIP?
Заранее благодарен за ответы.
Эта проблема транспортного уровня - TCP, это хорошо видно из Вашего видео в wireshark. Я с этим тоже в своё время наелся.Хром вроде имеет свой стек HTTP, по тому и дурит.
Большинство ПО писанное на Windows не тормозит, как это делает Chrome. Из этого и выводы, что что-то с ним не то.Эта проблема транспортного уровня - TCP, это хорошо видно из Вашего видео в wireshark. Я с этим тоже в своё время наелся.
Выкинуть все либы и оставить только ROM с загрузкой вашего кода. Пример вложен там: http://esp8266.ru/forum/threads/moja-sborka-espressif-devkit.32/page-4#post-948Возможно из исходников полностью выкинуть стек LwIP?
Спасибо большое. Планирую использовать свой стек. К сожалению пока не могу его выложить, из-за ограничений.Выкинуть все либы и оставить только ROM с загрузкой вашего кода. Пример вложен там: http://esp8266.ru/forum/threads/moja-sborka-espressif-devkit.32/page-4#post-948
Ещё долго придется ковыряться - внятных описаний регистров чипа, особенно части WiFi пока нет.Спасибо большое. Планирую использовать свой стек. К сожалению пока не могу его выложить, из-за ограничений.
tcp_sndbuf(ts_conn->pcb) (snd_buf; /* Available buffer space for sending (in bytes). */) это и есть сколько можно заполнить в буфер. Передачи организованы так - заливается сколько влезет и как есть место снова заливается. Куда Lwip будет класть то, что больше его буферов ?посмотрите результат строчки
"web_conn->msgbufsize = tcp_sndbuf(ts_conn->pcb);"
скорее всего при запросе через хром будет
2920 -первая передача
потом будет падать до 1500-1700 и так до конца передачи, в результате падение скорости передачи.
Выход из этой ситуации полностью заполнять буфер до 2920, при каждом формировании посылки.
Если модуль успел выплюнуть, а експлорер не успел подтвердить. Модуль всегда выплевывает по максимуму окна TCP стека. И мы не можем передать ещё, т.к. TCP стек у модуля забит и ждет подтверждения о приме от обратной стороны. А Хром тупит и делает задержку, ожидая что у нас стек в мегобайты...В два пакета на MS Explorere само всё...
При чем тут 2 или 3 байта? Хром дает подтверждение TCP стека через 0.1..0.2 сек.и если они у Вас равны значит я не прав, но у меня была именно эта причина падения скорости.
Ровно в десять раз медленнее, чем у меня при flash Winbond на модуле.На картинках видна скорость до 150 явно больше 60 килобайт в сек
В течении 10 минут скину прошивку и описание.