2008-10-30 14 views
89

Estoy tratando de descubrir por qué la conexión TCP/IP de mi aplicación sigue hipando cada 10 minutos (exactamente, en 1-2 segundos). Ejecuté Wireshark y descubrí que después de 10 minutos de inactividad, el otro extremo envía un paquete con el indicador de restablecimiento (RST) establecido. Una búsqueda en Google me dice "la bandera RESET indica que el receptor se ha confundido y quiere abortar la conexión", pero eso es un poco corto de detalles que necesito. ¿Qué podría estar causando esto? ¿Y es posible que algún enrutador en el camino sea responsable de esto o que siempre provenga del otro extremo?¿Qué hace que se envíe una bandera de reinicio de TCP/IP (RST)?

Editar: hay un router (en concreto un Linksys WRT-54G) sentado entre mi ordenador y el otro extremo - ¿hay algo que debe buscar en la configuración del router?

+8

Aquí hay otro: Comcast –

+0

Heh Afortunadamente, no tengo una dependencia de Comcast ya que esto ocurre dentro de una LAN. Desearía poder echarle la culpa tan fácilmente;) – Luke

+0

¿Alguna vez entendiste esto? No puedo comentar porque no tengo suficientes puntos, pero tengo el mismo problema exacto que estaba teniendo y estoy buscando una solución. –

Respuesta

62

A 'router podría estar haciendo nada - sobre todo NAT, lo que podría afectar a cualquier cantidad de plagada de errores de jugar con el tráfico ...

Una de las razones de un dispositivo enviará un RST es en respuesta a la recepción de un paquete para un zócalo cerrado.

Es difícil dar una respuesta firme pero general, ya que todas las perversiones posibles se han visitado en TCP desde su inicio, y todo tipo de personas podrían estar insertando RST en un intento de bloquear el tráfico. (Algunos 'firewalls nacionales' funcionan así, por ejemplo).

+6

O el enrutador tiene un tiempo de espera de 10 minutos para conexiones TCP o el enrutador tiene habilitada la "detección de paquetes inteligentes de puerta de enlace". –

+0

Es un poco rico sugerir que un enrutador puede estar plagado de errores. – EJP

4

Algunos servidores de seguridad lo hacen si una conexión está inactiva durante x cantidad de minutos. Algunos ISP configuran sus enrutadores para que lo hagan por varias razones también.

En esta época, necesitará manejar con elegancia (restablecer según sea necesario) esa condición.

+2

La conexión se restablece muy bien, el problema es que el breve período de desconexión causa una alerta innecesaria. – Luke

+1

He tenido problemas específicamente con el equipo Cisco PIX/ASA. Tienen tiempos de espera especialmente cortos como predeterminados. El equipo más barato es usualmente "mejor" en este aspecto (ya que no exceden mucho el tiempo de espera) ... –

18

Ejecuta un detector de paquetes (por ejemplo, Wireshark) también para ver si es el par quien envía el RST o alguien en el medio.

3

Si hay un enrutador haciendo NAT, especialmente un enrutador de bajo consumo con pocos recursos, envejecerá primero las sesiones TCP más antiguas. Para hacerlo, establece el indicador RST en el paquete que efectivamente le dice a la estación receptora (muy desagradablemente) que cierre la conexión. esto se hace para ahorrar recursos.

4

RST se envía por el lado que realiza el cierre activo porque es el lado que envía el último ACK. Entonces, si recibe FIN desde el lado que hace el cierre pasivo en un estado incorrecto, envía un paquete RST que indica el otro lado que ha ocurrido un error.

+4

Ambos lados envían y reciben un FIN en un cierre normal. No hay nada de malo en esta situación, y por lo tanto no hay razón para que un lado emita un reinicio. La primera oración ni siquiera tiene sentido. – EJP

+1

[RST, ACK] también se puede enviar por el lado que recibe un SYN en un puerto que no se está escuchando. En un caso que encontré, el RST/ACK se produjo 60 segundos después del primer SYN. FWIW – Les

9

Acabo de pasar bastante tiempo solucionando este problema. Ninguna de las soluciones propuestas funcionó. Resultó que nuestro administrador de sistemas por error asignó la misma dirección IP estática a dos servidores no relacionados que pertenecen a diferentes grupos, pero que se encuentran en la misma red. Los resultados finales fueron conexiones vnc de forma intermitente, el navegador tuvo que actualizarse varias veces para recuperar la página web y otras cosas extrañas.

Cuestiones relacionadas