计算机网络协议分析 (47).pdf

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第四章IP

4.3IP实现

4.3.4校验和的计算

概述

➢cksum()实现

cksum()在IP软件整体结构中的位置

cksum来计

算或验证数

据报的首部

校验和

首部校验和的计算

•二进制反码求和算法:

–首部校验和16位置0

–将首部视为16位整数的序列,所有16位整数按位取反

–将所有反码相加,若最高位16位有进位,加到最低位.

–得到和数为16位首部校验码。

说明:先取反后相加与先相加后取反,得到的结果是一样的。

故算法都是相加后取反

1001100100010011//伪首部源IP地址前16位

0000100001101000//伪首部源IP地址后16位

1010101100000011//伪首部目的IP地址前16位

0000111000001011//伪首部目的IP地址后16位

0000000000010001//伪首部UDP协议字段代表号17,前面8位是填充0

0000000000001111//伪首部UDP长度字段

0000010000111111//UDP头部源IP地址对应的进程端口号

0000000000001101//UDP头部目的IP地址对应的进程端口号

0000000000001111//UDP头部UDP长度字段

0000000000000000//UDP头部UDP检验和

0101010001000101//数据字段

0101001101010100//数据字段

0100100101001110//数据字段

0100011100000000//数据字段+填充0字段

9913//伪首部源IP地址前16位

0868//伪首部源IP地址后16位

AB03//伪首部目的IP地址前16位

0E0B//伪首部目的IP地址后16位

0011//伪首部UDP协议字段代表号17,前面8位是填充0

000F//伪首部UDP长度字段

043F//UDP头部源IP地址对应的进程端口号

000D//UDP头部目的IP地址对应的进程端口号

000F//UDP头部UDP长度字段

0000//UDP头部UDP检验和

5445//数据字段

5354//数据字段

494E//数据字段

4700//数据字段+填充0字段

首部校验和的计算____代码实现cksum()

大多数设备使用二进制补码算法:

➢仅累加得出一个16位的校验和并不能得到正确的结果:高

位有进位+低位,达到补码效果

➢为了便于移植并避免以汇编语言编写程序,过程cksum

使用了c语言编写。

➢在范例中使用了32位(长整型)算法来累加得到一个和,然

后通过向这个整数和中增加所有进位的办法,将结果折合

成一个16位的值。

➢cksum返回结果的反码。

小结

➢cksum()实现

文档评论(0)

158****6446 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档