Uno de nuestros clientes tiene problemas para enviar datos desde nuestra aplicación (en su PC) a un servidor (ubicación geográfica diferente). Cuando se envían paquetes por debajo de 1100 bytes, todo funciona bien, pero por encima vemos TCP retransmitiendo el paquete cada pocos segundos y sin obtener respuesta. Los paquetes que estamos utilizando para la prueba son aproximadamente 1400 bytes (pero menos de 1472). Puedo enviar un ICMP ping a www.google.com que tiene 1472 bytes y obtener una respuesta (por lo que no es su enrutador/primeros saltos).¿Beneficios de "No Fragmentar" en los paquetes TCP?
Encontré que nuestra aplicación establece el indicador DF para estos paquetes, y creo que un enrutador en el camino hacia el servidor tiene un MTU menor que/igual a 1100 y descartando el paquete.
Esto afecta a 1 cliente en 5000, pero como las rutas de todos serán diferentes, esto se espera.
Los datos son un sobre SOAP y esperamos una respuesta SOAP. No puedo justificar POR QUÉ lo hacemos, el código para hacer esto fue escrito por un desarrollador anterior.
Entonces ... ¿Hay algún beneficio O justificación para configurar el indicador de DF en los paquetes TCP para los datos de la aplicación?
No puedo pensar en razones por las que es necesario para aplicaciones de diagnóstico de red pero no en nuestra situación (queremos que los datos lleguen al punto final, fragmentados o no). Uno de nuestros administradores de sistemas dijo que podría tener algo que ver con nosotros al usar SSL, pero hasta donde yo sé, SSL es como una secuencia e independientemente de la fragmentación, siempre que la secuencia se reconstruya al final, no hay problema.
Si no hay una buena justificación voy a cambiar el comportamiento de nuestra aplicación.
Gracias de antemano.
¿Cuál es la llamada real de la API de socket que está haciendo que hace que se establezca el bit DF? –
Hay algunas buenas discusiones sobre dónde podría ser útil el DF aquí: http://stackoverflow.com/questions/351806/where-is-the-dont-fragment-bit-of-the-ip-flags-used - in En pocas palabras, parece una situación en la que si no sabes que la necesitas, entonces no lo haces. –