Muy bien, sucede que como dice nuestro amigo KILLERJC, el checksum es opcional, si el valor se pone a 0000 el receptor no lo comprueba, si por el contrario, se agrega un valor diferente, debe hacerse la comprobación; sucede que en dicho calculo debe agregarse las direcciones IP origen, e IP destino... por ese motivo no funcionaba, tenia un checksum solo encabezadp IP+datos, el receptor los comprobaba, pero nunca ivan a coincidir, lo implemente de dos formas: 1.poniendo checksum=0000 y funciona; 2.checksum con direcciones IP y tambien funciona.
Muchas gracias amigo KILLERJC, aportaste mucho en mi solucion.