协议分析:IP校检和算法

定义:

无符号短csum (unsigned char * addr, int数),

{,

/* ComputeInternet校验和的“数”“addr”字节开始位置。*/,

registerlong金额=0;,

,,

, (count>1),

{,

,,,/*这是内循环*/,

,,,和+=*(无符号短)addr + +;,

,,,数=2;,

},

,,

/*添加剩余的字节,如果任何*/,

如果(count> 0),,,//奇数字节,考虑CPU大端还是小端模式,

#如果BIG_ENDIAN,

和+=(* (unsigned char *) addr) & lt; & lt; 8;,

#,其他

和+=* (unsigned char *) addr;,

# endif,

,,

/* Fold32-bit和16位*/,

, (, sum>的在16),

,,,金额=(总和,0 xffff) +(和在祝辞16);,

,,

返回~总和;,

},


协议分析:IP校检和算法