Ошибка эхо-сервера lwIP при отправке данных
Я работаю с сетью Ethernet под эхо-сервером lwIP. Я хотел бы захватить сэмплы из DMA в HOST. Система захватывает образцы через UART.
Я не могу заставить lwIP отправлять более 2 пакетов размером более 1500 байт без ожидания ACK. Мое приложение непрерывно отправляет пакет клиенту. Клиент получает пакет без какой-либо задержки, но отправляет ACK через 200 мс (см. Прикрепленное изображение захвата wireshark). LWIP застревает всегда в ожидании пакета ACK, прежде чем он отправит следующий пакет. Мой lwIP мог только отправить не более 2-х сегментов TCP, а затем ждать ACK. Сетевая задержка приведет к снижению производительности.
Есть ли какая-либо конфигурация, которая заставляет LWIP отправлять пакет без ожидания пакета ACK? Есть ли у вас предложения?
1 ответ
Если вы не хотите ждать, как насчет использования UDP вместо TCP? TCP является потоковым протоколом и будет гарантировать, что все поступает и находится в порядке (при условии, что нет ошибок). echo обычно заставляет меня думать о ситуации, когда вас не заботит порядок, только то, делает ли конкретный пакет это или нет, и сколько времени это заняло.