怎么计算TCP的Checksum??? (50分)

  • 主题发起人 主题发起人 logpie
  • 开始时间 开始时间
L

logpie

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,UDP的大家就别贴了
TCP的听说是要加个伪头,计算时要一并计算?
谁能给贴段代码(最好加上下面move到buf的语句)
或是TCP效验和的计算方面资料

问题解决可另行给分
谢谢了!
 
这个方面的C的代码很多,找来修改一下就OK了
 
//
// Function: checksum
//
// Description:
// This function calculates the 16-bit one's complement sum
// of the supplied buffer (ICMP) header
//
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我有的啊~~
问的是TCP计算checksum的步骤~

比如伪头包括什么等等
 
后退
顶部