对于某个ip首部,如“45000028ea6340003406c117 72705ddfc0a80a5d”,
要校验ip首部,首先把首部按每16bit进行求和,也就是:
sum = 0x4500 + 0x0028 + 0xea63 + 0x4000 + 0x3406
+ 0xc117 + 0x7270 + 0x5ddf + 0xc0a8 + 0x0a5d
= 0x3 fffc
然后进行如下操作:
while (sum>>16)
sum = (sum & 0xffff) + (sum >> 16);
对于上面的结果则是:sum = 0xfffc + 0x3 = 0xffff
最后得出结果如果为0xffff则表示正确.
具体请见RFC1071
本文介绍了一种用于校验IP首部完整性的算法过程。该算法通过将IP首部每16位进行求和,然后对求和结果进行特殊处理来判断IP首部是否正确。若最终求和结果为0xffff,则表明IP首部校验成功。
5285

被折叠的 条评论
为什么被折叠?



