Проблема с передачей пакетов в Spring, HTTP

Мне и моей команде очень трудно решить странную ошибку.

Наша установка: Spring Boot API за некоторым сетевым оборудованием (жестким и программным), включая Squid Proxy

Эта проблема:

На некоторые входящие запросы, которые переносят данные (POST а также PUT) Spring вызывает следующее исключение:

org.springframework.http.converter.HttpMessageNotReadableException: ошибка ввода-вывода при чтении входного сообщения; вложенное исключение: java.io.IOException: java.util.concurrent.TimeoutException: истекло время ожидания простоя: 30000/30000 мс

Это заставляет нас чувствовать, что сервер ожидает окончания сообщения, но что-то на нижних сетевых уровнях препятствует его извлечению, а затем "тайм-ауту простоя"

Что мы знаем до сих пор:

HTTP-запрос проходит с того же компьютера через мобильное соединение LTE (200 OK), но не проходит через WiFi или проводное корпоративное соединение.

Игра с MTU на сетевом оборудовании влияет на поведение. Так же как и Connection HTTP заголовок. Но так как мы не понимаем, что происходит "под капотом", мы не знаем, как правильно их настроить, и мы не нашли удовлетворительной конфигурации.

По конкретному запросу проблема возникает с одинаковым количеством байтов каждый раз (около 10 КБ /463 КБ)

Анализируя трафик с помощью Wireshark, мы заметили, что отправляются полные данные, что максимальный размер каждого TCP-пакета составляет 1460, что, вероятно, меньше, чем MTU каждого сетевого оборудования, и что последний проходящий байт не расположен в край пакета, но в середине пакета.

0 ответов

Другие вопросы по тегам