Ocurre, en ocasiones, que cuando analizamos los paquetes capturados en una sesión Wireshark / Tshark, nos encontramos una serie de errores que por su número y/o descripción parece que tenemos un problema grave en un host o en la red.
Vamos a estudiar porqué ocurre esto, si es tan grave como parece y como solucionarlo.
Una vez detectado el Error vamos a analizar unos de los paquetes con TCP Bad Checksum:
Tenemos una pista. Wireshark interpereta que puede tratarse de TCP checksum offload. ¿ Pero que es esto exactamente ?.
TCP Checksum offload.
En la gran mayoría de implementaciones de la pila de protocolos el checksum de los segmentos TCP o datagramas UDP salientes no los realiza la CPU. Esta funciónestá encomendada a la tarjeta de red. Esto es así para reducir la carga de la CPU y que de esta forma aumente el rendimiento de host.
Pero hay un problema y es que Wireshark no puede comprobar el checksum de los paquetes salientes. Literalmente no le da tiempo a comprobar este valor. Cuando se coloca el valor del campo el paquete correspondiente ya no se encuentra, así que devuelve un error por incorrecto.
Como solucionarlo.
Existen dos métodos. Uno es desactivar esta función de la tarjeta de red, pero provocará un rendimiento bajo. El segundo método y el más correcto es configurar wireshark para que no compruebe este campo. Esto lo haremos de la siguiente forma:
Edit > Preferences > Desplegamos la lista de protocolos y elegimos TCP:
En las tarjetas de red y en el caso de las Broadcom NetXtrem Ggigabit el parámetro «Checksum Offload» (Descarga de suma de comprobación) se desactiva en las propiedades avanzadas de la NIC o tarjeta de red.
Entre los prosible valores de la propiedad Checksum Offload de la Tarjeta tenemos:
- Rx TCP/IP Checksum (Suma de comprobación de TCP/IP Rx): activa la recepción de la descarga de suma de comprobación de TCP, IP y UDP
- Tx TCP/IP Checksum (Suma de comprobación de TCP/IP Tx): (valor predeterminado) activa la transmisión de la descarga de suma de comprobación de TCP, IP y UDP
- Tx/Rx TCP/IP Checksum (Suma de comprobación de TCP/IP Tx/Rx): activa la transmisión y recepción de la descarga de suma de comprobación de TCP, IP y UDP
- None (ninguno) – desactiva la descarga de la suma de comprobación y es la que elegiremos.
Aunque, como ya he comentado más arriba, no es la mejor opción por la disminución de rendimiento.
En primer lugar felicitarte por tu página, es de gran ayuda para entender muchas cosas. Casualmente antes de ayer me percaté de esto que comentas y buscando por internet dí con la misma explicación que comentas en esta entrada.
Mi duda es la siguiente, si se tiene activada esta opción en la tarjeta del pc, según leí es habitual en las tarjetas de Giga, olvidando los beneficios que pude suponer para el procesador del pc, en un entorno de ethernet 10/100, a nivel de red, ¿puede provocar problemas de rendimiento en la red?.
Gracias César por tu comentario. Pues es una buena pregunta. Realmente no sé si influye en el rendimiento de una forma sensible apreciable, pero déjame que realice unas pruebas y te cuento.
La ultima vez que que alguien que veia alguien tan dedicado a lo que hace y explica muy bueno tu blog lo seguia desde mi tesis y ahora con mi trabajo, ojala el conocimiento siempre fuera tan desinteresado como tu lo manejas gracias. si tienes que mudar de lugar de publicacion no me dejes por fuera casi que dependo de la mayoria de tus anotaciones.
Hola, muy buena pagina, sabes que tengo un problema, tengo una red de equipos que no nesesariamente son PC, hay unas moxas de video las cuales pierden comunicacion de una forma desconocida, realice un analisis de trafico el cual no se interpretar si existe algun problema detectado por este programa, que posibilidad hay de que me ayudes, o me guies en este analisis antes realizado,
salduos
luis orellana
muy buena info mil gracias!!!!!
joer ke me has ayudado mogollon
ke mola tu blog !!!
vale
Excelente,
gracias ! 🙂
Muchas gracias por compartir sus experiencias profesionales. Son muy valiosas para quienes somos sus colegas. Saludos desde Colombia.