Comunicaciones - Checksum UDP

 
Vista:

Checksum UDP

Publicado por Josep (1 intervención) el 01/06/2001 00:47:23
Tengo un problema calculando manualmente un checksum de un paquete UDP incrustado en un paquete IP. El paquete en cuestión es el siguiente:

4500 0049 0048 0000 4011 9900 c199 9a2a
c192 c405 0435 0035 0035 eb1a 7fad 0100
0001 0000 0000 0000 0234 3203 3135 3403
3135 3303 3139 3307 696e 2d61 6464 7204
6172 7061

El checksum del paquete IP, que es igual a 9900, no me da problemas, me cuadra si lo calculo manualmente (este paquete lo he capturado con un tcpdump). Pero en cambio, el checksum del paquete UDP, que según el paquete es eb1a, si lo calculo manualmente no me cuadra. Yo realizo los siguientes pasos:

1) Monto la pseudocabecera con IP origen, IP destino, protocolo y longitud de la siguiente forma:

c199 9a2a c192 c405 0011 0035

Al hacer la suma, da 2e1a0

2) Monto la cabecera UDP con puerto origen, puerto destino, longitud y check (inicialmente a 0):

0435 0035 0035 0000

Al hacer la suma, da 049f

3) Sumo el resto de datos del paquete UDP, desde 7fad hasta el final, y da 4219f

Sumo estos tres resultados parciales y da 707de. Como excede de 16 bits, sumo el 7 inicial a 07de, y da 07e5.

Hago el complemento a 1 de este resultado, es decir FFFF - 07e5, y el resultado es f81a. Pero según el paquete, el checksum es eb1a. ¿Alguien me puede ayudar?

Gracias y saludos...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder