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