IP首部校验和的计算方法(C语言实现)
关联博客:
关于ip报文校验和一些思考
http://blog.csdn.net/qq_15437667/article/details/50701051
校验和计算方法
- 把校验和字段清零。
- 然后对每16位(2字节)进行二进制反码求和,反码求和的意思是先对每16位求和,再将得到的和转为反码。
代码实现如下
SHORT checksum(USHORT* buffer, int size)
{
unsigned long cksum = 0;
while(size>1)
{
cksum += *buffer++;
size -= sizeof(USHORT);
}
if(size)
{