做的东东要改ip头的内容,当然就涉及到改ip头的checksum,搜了一下,发现玄妙很多,简单的一个东西,有三篇rfc关于它,很多事情真的不是单纯表面性或者简单思考过的东西
checksum的计算:除去checksum以外的所有ip头数据,以16-bit的形式,计算其1‘s component和,即溢出位加在最小位上(any overflows from the most significant bits are added into the least significant bits.),再将其和的反码(1‘s component查了半天,英语真是差=.=)放入checksum field
校验的过程:头部的数据,包括checksum,计算其和,取反,如果结果为全1,则succeed(原文见ftp://ftp.rfc-editor.org/ )当其中的数据发生了改变,如何进行计算呢?如ttl,每过一个网关,ttl减一,而checksum当然也得相应发生改变,重新计算?
当然是离不开数学滴,于是有了 Incremental Updating of the Internet Checksum,于是就以下一个checksum的计算式子:
HC' = ~(C + (-m) + m')= HC + m + ~m'
当然,也不能离开计算机的特性滴:+0,-0(溢出吧,算),于是又出来了一个Computation of the Internet Checksum via Incremental Update于是就有了以下一个计算式子,消除特殊情况下的副作用的:
HC' = ~(C + (-m) + m') = ~(~HC + ~m + m')
HC - old checksum in header
C - one's complement sum of old header
HC' - new checksum in header
C' - one's complement sum of new header
m - old value of a 16-bit field
m' - new value of a 16-bit field
嗯,就是这样.
-
日历
-
搜索
-
最新吐槽
- WAWA
学习了。。。 - fire
楼主:能不能发给我一份,我下... - xrffyf
顶啊 - juck
解决了 有效~ - Emily
强大! - Holmesian
@youstar:已经换好了~ - youstar
帮忙把友情链接更换一下,谢谢... - haizhen2020
非常感谢!支持楼主!顶!!!... - 日新小胖
@Holmesian:额,懂了。 我去关注... - Holmesian
@KEEPER:关于南昌星空极速Netkeepe...
- WAWA
-
分类
-
链接
-
随便看看
-
AD
发表评论: