TCP/IP报头Checksum的计算方法(帮我看下这个小程序)
哟西哟西地 2004-01-25 05:44:37 TCP/IP报头Checksum的计算方法
如果要自己填充IP数据报,那么计算Checksum是必不可少的一步,算法如下。
按16位一组,取补码相加,然后对和取补码
USHORT Checksum(USHORT *buffer, int size)
{
unsigned long cksum=0;
while(size >1)
{
cksum+=*buffer++;
size -=sizeof(USHORT);
}
if(size)
cksum += *(UCHAR*)buffer;
cksum = (cksum >> 16) + (cksum & 0xffff);
cksum += (cksum >>16);
return (USHORT)(~cksum);
}
上面的checksum我一直搞不懂是咋回事/
各位能否帮忙讲解下???
感激不尽!