Добрый день, друзья.
Помогите, пожалуйста, советом. Собрал симпатичный бум-бокс с WEB-радио на ESP8266+VS1053, но есть проблема с воспроизведением станций с большим пингом.
На ESP32 удалось победить заикания, увеличив размер TCP_MSS пакета до максимума IPv6 (1440 байт), но главным образом помогло увеличение окна TCP_WIND до 10хTCP_MSS. Заикания практически прекратились.
Правда, для этого пришлось подключать Arduino as component и собирать проект в ESP-IDF (благо, что в Platformio это сейчас делается весьма удобно).
Но с ESP8266 оказалось гораздо хуже.
Как известно, для ESP866 в Ардуино в Lwip сконфигурирован размер окна (максимум) в TCP_WND = (4 * TCP_MSS), где TCP_MSS 1460 байт. Получается 5840 байт.
И как я только не пытался его увеличить, не помогает ничего.
Т.е. макрос этот я могу переопределить: и в своей программе пробовал, и редактировал opt.h в sdk\lwip.... Он действительно переопределяется, и Serial.print(TCP_WND) выводит новое значение...
Да вот только по факту ничего не меняется! Wireshark неумолимо показывает, что размер окна остается прежним!
Пробовал и lwip v2 и v1.4, и "чистую" компиляцию... никакого эффекта.
Где они могли захардкодить этот параметр?? Как его изменить?...
Может, как-то можно в этот Arduino framework вставить исходный ESP8266_NONOS_SDK и полностью его пересобрать? Ктонибуть пробовал так делать?
Или посоветуете другие способы?
Спасибо!
Помогите, пожалуйста, советом. Собрал симпатичный бум-бокс с WEB-радио на ESP8266+VS1053, но есть проблема с воспроизведением станций с большим пингом.
На ESP32 удалось победить заикания, увеличив размер TCP_MSS пакета до максимума IPv6 (1440 байт), но главным образом помогло увеличение окна TCP_WIND до 10хTCP_MSS. Заикания практически прекратились.
Правда, для этого пришлось подключать Arduino as component и собирать проект в ESP-IDF (благо, что в Platformio это сейчас делается весьма удобно).
Но с ESP8266 оказалось гораздо хуже.
Как известно, для ESP866 в Ардуино в Lwip сконфигурирован размер окна (максимум) в TCP_WND = (4 * TCP_MSS), где TCP_MSS 1460 байт. Получается 5840 байт.
И как я только не пытался его увеличить, не помогает ничего.
Т.е. макрос этот я могу переопределить: и в своей программе пробовал, и редактировал opt.h в sdk\lwip.... Он действительно переопределяется, и Serial.print(TCP_WND) выводит новое значение...
Да вот только по факту ничего не меняется! Wireshark неумолимо показывает, что размер окна остается прежним!
Пробовал и lwip v2 и v1.4, и "чистую" компиляцию... никакого эффекта.
Где они могли захардкодить этот параметр?? Как его изменить?...
Может, как-то можно в этот Arduino framework вставить исходный ESP8266_NONOS_SDK и полностью его пересобрать? Ктонибуть пробовал так делать?
Или посоветуете другие способы?
Спасибо!