|
|
|
|
| 请教一下TCP/IP协议报头中是怎样计算校验和的?请详细指教!!! |
 请教一下TCP/IP协议报头中是怎样计算校验和的?请详细指教!!! - caicheng [ 2005-02-20 14:29 | 34 byte(s)]
 Re: 请教一下TCP/IP协议报头中是怎样计算校验和的?请详细指教!!! - tclwp [ 2005-02-20 18:31 | 800 byte(s)]
 Re: 请教一下TCP/IP协议报头中是怎样计算校验和的?请详细指教!!! - caicheng [ 2005-02-20 19:42 | 5 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
TCP/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);
}
或见这里:
http://www.mcuweb.com/source/check.htm
其实本论坛以前的帖子也有, 搜一下就是了
|
|
|
[Original]
[Print]
[Top]
|
|
|