У одного из наших клиентов возникли проблемы с отправкой данных из нашего приложения (на их ПК) на сервер (другое географическое местоположение). При отправке пакетов в 1100 байт все работает нормально, но выше этого мы видим, что TCP ретранслирует пакет каждые несколько секунд и не получает ответа. Пакеты, которые мы используем для тестирования, составляют около 1400 байт (но меньше 1472). Я могу отправить запрос ICMP на www.google.com, который составляет 1472 байта, и получить ответ (так что это не их маршрутизатор/первые несколько переходов).
Я обнаружил, что наше приложение устанавливает флаг DF для этих пакетов, и я считаю, что маршрутизатор по пути к серверу имеет MTU меньше/равно 1100 и отбрасывает пакет.
Это влияет на 1 клиент в 5000, но поскольку все маршруты будут разными, это ожидается.
Данные - это SOAP-конверт, и мы ожидаем ответа SOAP. Я не могу оправдать ПОЧЕМУ мы это делаем, код для этого был написан предыдущим разработчиком.
Итак... Есть ли какие-либо преимущества или обоснование для установки флага DF для пакетов TCP для данных приложения?
Я могу думать о причинах, которые необходимы для сетевых диагностических приложений, но не в нашей ситуации (мы хотим, чтобы данные доходили до конечной точки, фрагментировались или нет). Одна из наших системных администраторов сказала, что это может иметь отношение к нам с использованием SSL, но насколько я знаю, SSL подобен потоку и независимо от фрагментации, пока поток не будет восстановлен в конце, нет проблем.
Если нет хорошего оправдания, я буду изменять поведение нашего приложения.
Спасибо заранее.