-1

Эта проблема с Wireshark сводила меня с ума в течение нескольких часов. Что тут происходит?

192.168.2.100 - сервер Apache, который обслуживает статический файл.

192.168.2.196 - встроенный клиент, загружающий файл.

Похоже, что 192.168.2.196 успешно загружает файл, а затем он просто начинает игнорировать 192.168.2.100, и, следовательно, соединение останавливается и в конце концов заканчивается?

Это правильно и почему клиент может делать это?

Изображение Wireshark - нажмите здесь

1 ответ1

0

Симптомы ясно указывают на то, что существует узкое место обработки приема на стороне клиента.

Трассировка показывает, что приемный буфер в клиентском сетевом стеке (очевидно, LwIP) заполняется. В частности, размер окна в подтверждениях от клиента уменьшается по мере того, как серия пакетов принимается от сервера, пока приемный буфер не заполнится полностью и не будет "" ZeroWindow "отправляется от клиента к серверу, чтобы запросить прекращение отправки данных.

Обычно это указывает на то, что приложение, считывающее данные из сокета, не истощает приемный буфер достаточно быстро, чтобы позволить сетевому стеку идти в ногу с поступающими пакетами.

Частые повторные передачи с сервера в сочетании с задержанными ACK от клиента позволяют предположить, что условия на клиенте также негативно влияют на обработку низкоуровневых принимаемых пакетов в сетевом стеке.

Вы упомянули, что клиентский хост был встроенным устройством, а также прокомментировали, что ваше приложение заблокировано с помощью lwip_read(). Ожидание предполагает, что другой ресурс ввода-вывода или ЦП или узкое место планирования может препятствовать тому, чтобы ваш поток чтения получил достаточно времени ЦП, чтобы не отставать от передачи файла. Однако задержанные ACK предполагают, что может быть более широкая проблема. Не зная больше о встроенном устройстве, трудно продолжить поиск неисправностей.

LwIP также имеет особые ограничения, связанные с обслуживанием сетевых вызовов, которые могут применяться к вашей реализации - см. Эту страницу ловушек LwIP.

Я надеюсь, что эта информация полезна для решения вашей проблемы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .