|
|||||||||||
|
[Q] cksum of UDP packet
From: Qin An <anqin(at)anqin.com>
Date: Tue Jul 29 2003 - 23:41:29 EDT
I got a problem in cksum computation for UDP packet. At the end of this mail, there is a function copied from a textbook. I believe it is a universal cksum calculation function. I captured a UDP packet on the net: 0x07, 0x2c, 0x00, 0x35, 0x00, 0x0c, 0x98, 0x8e, 0x64, 0x69, 0x72, 0x0a The 6th and 7th element is the cksum computed by the sender's kernel. My question is that when I use in_cksum to compute the cksum, it returns 0x1f22, different from 0x98, 0x8e. What's wrong here? Is there any other algorithm to compute cksum? Thank you in advance! Qin An
unsigned short in_cksum (unsigned short *ptr, int nbytes)
{
sum = 0;
/* mop up an odd byte, if necessary */
/* add back carry outs from top 16 bits to low 16 bits */
unsigned char s[] = {
int main (int argc, char *argv[])
s[6] = s[7] = 0; i = in_cksum ((unsigned short *) &s[0], 12); } Received on Wed Jul 30 10:55:13 2003 This archive was generated by hypermail 2.1.8 : Wed Aug 23 2006 - 14:02:46 EDT |
||||||||||
|
|||||||||||