Está en la página 1de 3

Wireshark / Tshark.

Error TCP Bad Checksum


Publicado el 19 febrero, 2009 por Alfon
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.

También podría gustarte