- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
tcp_ip效验和理解
本文结合网上资料记当个人对效验和算法的理解:
1、算法推导: 1
2、算法: 1
3.实例 2
4、 实现代码: 5
1、算法推导:
具体算法见后。
整个算法可理解为 ~(a + ~a) = 0;
发送方: 先置checksum = 0 ,假设各单元求和为 sum1 = m + n * 2^16 。那么n即为溢出 的高位。 所以得出 checksum = ~ (m+n) 。
接收方:(在传输无误情况下)
各单元求和 sum2 = sum1 + checksum
= m + n * 2^16 + ( ~ (m+n) )
同样接收方也会将溢出的高位加至低位,n * 2^16 中 n 为已知的高位所以先处理 [不管m + (~(m+n))是否还溢出] 。
所以sum2 = m + n + ( ~ (m+n) ) = (m + n )+ ( ~ (m+n) )
所以 ~ sum2 = 0;
跟据以上推导,不管采用大端 还是 小端 模式 ,只要发送方和接收方采用的模式一样,那么发送方和接收方算出的sum1(除去checksum字段后其它字段的和)都肯定一样。所以上述推导仍然成立。
2、算法:
1、发送方
i)将校验和字段置为0,然后将IP包头按16比特分成多个单元,如包头长度不是16比特的倍数,则用0比特填充到16比特的倍数;
ii)对各个单元采用反码加法运算(即高位溢出位会加到低位,通常的补码运算是直接丢掉溢出的高位),将得到的和的反码填入校验和字段;
iii)发送数据包。
2、接收方
i)将IP包头按16比特分成多个单元,如包头长度不是16比特的倍数,则用0比特填充到16比特的倍数;
ii)对各个单元采用反码加法运算,检查得到的和是否符合是全1(有的实现可能对得到的和会取反码,然后判断最终值是不是全0);
iii) 如果是全1则进行下步处理,否则意味着包已变化从而丢弃之。需要强调的是反码和是采用高位溢出加到低位的,如3比特的反码和运 算:100b+101b=010b(因为100b+101b=1001b,高位溢出1,其应该加到低位,即001b+1b(高位溢出位)=010b)。
.实例
请看我用ominipeek的抓包
I.将校验和字段置为0,然后将IP包头按16比特分成多个
校验和Header Checksum:0x618D将其重置为0X0000
将IP包头分段:
1. 0x4500
2. 0x0029
3. 0x44F1
4. 0x4000
5. 0x8006
6. 0x0000 -------这个为Header Checksum的值,我们前面将其重置为0了
7. 0xC0A8
8. 0x01AE
9. 0x4A7D
+ 10. 0x477D
-------------------------------------------------------
将1至10相加求出来的和为:0x29E70
II.对各个单元采用反码加法运算(即高位溢出位会加到低位,通常的补码运算是直接丢掉溢出的高位),将得到的和的反码填入校验和字段
0x0002+0x9E70=0x9E72
0x9E72二进制为:1001 1110 0111 0010
反码为:0110 0001 1000 1101
0110 0001 1000 1101的16进制为:0x618D
看看这个 是否与IP包头中的Checksum相同
==========================================================
当接收到IP对其进行检测
III.对各个单元采用反码加法运算,检查得到的和是否符合是全1(有的实现可能对得到的和会取反码,然后判断最终值是不是全0)
当收到IP数据局包的时候,要验证IP头是否正确,则可以这样进行
1. 0x4500
2. 0x0029
3. 0x44F1
4. 0x4000
5. 0x8006
6. 0x618D -------这个为Header Checksum的值
7. 0xC0A8
8. 0x01AE
9. 0x4A7D
+ 10. 0x477D
-------------------------------------------------------
将1至10相加求出来的和
您可能关注的文档
- 2012高中阶段网报办法.doc
- 2012高考数学复习知识清单——不等式.doc
- 29、空花盆.ppt
- 28 西学东渐.ppt
- 29-1 乞巧.ppt
- 2A关系模型、基本关系代数.ppt
- 2、纲领二:差异凸显.doc
- 2万有引力的应用.ppt
- 2基本几何体的创建.ppt
- 2、鲁宾斯基另一个分析方法.ppt
- 2025年西藏自治区拉萨市堆龙德庆高三下学期4月联考物理试卷.docx
- 2025年农村中医适宜技术考试:乡村医生中医护理试题库.docx
- 2025年西藏自治区拉萨市城关区高三二模物理试卷及答案.docx
- 2025年西藏自治区拉萨市堆龙德庆高三二模物理试卷及答案.docx
- 2025年西藏自治区拉萨市尼木县高三下学期考前物理适应性演练(二)试题.docx
- 湖南省衡阳市祁东县2024-2025学年高一上学期1月期末考试语文试题(解析版).docx
- 2025届湖南省衡阳市八中学中考联考历史试卷含解析.doc
- 河南省新乡市一中教育集团达标名校2025届中考适应性考试生物试题含解析.doc
- 2025年西藏自治区拉萨市城关区高三下学期4月联考物理试卷.docx
- 2025年花艺师职业资格考试花卉植物育种技术分析试题卷.docx
文档评论(0)