Ошибка lwIP эхо-сервера при отправке данных

Я работаю с Ethernet-связью под эхо-сервером lwIP. Я хотел бы захватить образцы от DMA до HOST по Ethernet. Система собирает образцы через UART.

Я не могу заставить lwIP отправлять более 2 пакетов размером более 1500 байт, не дожидаясь ACK. Мое приложение непрерывно отправляет пакет клиенту. Клиент получает пакет без каких-либо задержек, но отправляет ACK через 200 мс (см. Прикрепленное изображение захвата Wirehark). LWIP застревает, всегда ожидая пакета ACK, прежде чем он отправит следующий пакет. Мой lwIP мог отправить не более 2 сегментов TCP, а затем ждать ACK. Задержка сети приведет к снижению производительности.

Есть ли какая-либо конфигурация, которая заставляет LWIP отправлять пакет, не дожидаясь пакета ACK? Есть ли у вас предложения?

введите описание изображения здесь


person Charli    schedule 09.12.2017    source источник


Ответы (1)


Если не хотите ждать, как насчет использования UDP вместо TCP? TCP - это потоковый протокол, который гарантирует, что все будет доставлено и все будет в порядке (до тех пор, пока нет ошибок). echo обычно заставляет меня думать о ситуации, когда вы не заботитесь о порядке, а только о том, доставляется ли конкретный пакет или нет, и сколько времени это заняло.

person SoronelHaetir    schedule 09.12.2017
comment
Благодарю за ваш ответ. Если мне нужно захватить миллионы образцов, я, вероятно, потеряю некоторые из них, используя UDP, не так ли? Ваше предложение - использовать эхо-сервер в режиме UDP ?. С уважением - person Charli; 10.12.2017