https://pastebin.com/cW0v4hF6

устил freeRTOS и lwip 1.4.1 с используемым сокетом api на процессоре stm32 (stm32f407). В целом это работает довольно хорошо. Я могу отправлять и получать данные с помощью UDP и TCP.

Но в промежутке времени от 3 до 7 дней я вижу странное поведение.

Моя проблема

Каждые 3-7 дней мой клиент (Windows 10, который отправляет 1-2 HTTP-запроса в секунду) не отправляет эти запросы. Когда это происходит, последовательно выполняется ~ 10 запросов, которые не выполняются. Через несколько минут стек вообще не восстановится.

Мое предположение

Я думаю, что я возможно что-то неправильно настроил в моей конфигурации LWIP. Поскольку стек хорошо используется и не должен иметь ошибок в этом направлении

Мои настройки Ethernet

сервер и клиент подключены напрямую, между ними нет коммутатора, концентратора или маршрутизатора.

сервер (stm32 / lwip):

статический, 192.168.168.2маска сети, 255.255.255.0

клиент (win10) eth0:

статический, 192.168.168.1маска сети, 255.255.255.0

клиент (win10) eth1:

dhcp, в нормально работающую сеть

Мои попытки

На данный момент у меня запущены тесты, которые отправляют ~ 7-8 запросов в секунду, но ошибка не возникает чаще. Я играл с конфигом lwip:

больше памяти для стекабольше pbufsбольшие pbufsс / без отставания

Но все без улучшения этой проблемы подключения. Может ли это быть из-за часто повторяющихся номеров портов от клиента, которые могут создать эту проблему?

Здесь у меня есть соответствующая часть вывода отладки lwip:

tcp debugging output

https://pastebin.com/a9JabhET

Вот журнал Wireshark:

 оригинальный снимок экрана

hole wireshark log:

https://www.file-upload.net/download-12682664/debug_tcp_00001_20170828172950.html

И вот мой lwipopts.h:

lwip configuration:

https://pastebin.com/cW0v4hF6

Ответы на вопрос(0)

Ваш ответ на вопрос