UDP首部校验和计算整理_第1页
UDP首部校验和计算整理_第2页
UDP首部校验和计算整理_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【UDP首部校验和计算】【例一】(参考书本P108 UDP伪首部)计算UDP检验和的例子LI.K1I0(1J1 -* 155.19otHu| j(qthim * x |14I HH JMH I -* j I 3 won m oown“i fi4ii4 M H k)Hll 14 Ml ihHIUIHl - M f: l-(jlH |* TI N H H 11 1 . I j M I I f Jl芯*. *I1-1 . I l)1 II tj 11-14)01HHMb,5EMe顷顷in -* U】nE j HlMjnpiu EEHH Hp心1 n 11 2 3 41 IO11 I I H H ll

2、 H H H H f按二进制反码运算来和104HOI 10 U luHOf 求和得出的结果将得出的结 祟术反码0110)001 UWlOOlO f检5ft和语注置:进亏反研运算求和时*旦声但中进位A这个2应药切垣曜低位,【例一计算分析】得出数值:1001 0110 1110 1011溢出两个1部分和这个1和下面的1是溢出的两个1和校验和(检验和)在接收数据时,计算数据包的校验和相对简单,按如下步骤:【例二】UD叫部校验和的计算IP/ICMP/IGMP/TCP/UDP协议的校验和算法都是相同的, 算法如下:在发送数据时,为了计算IP数据包的校验和。应该按如下步骤:2把IP数据包的校验和字段置为0

3、;3把首部看成以16位为单位的数字组成,依次进行二进制反码求和;4把得到的结果 存入校验和字段中。153 198 104I 1 114U全o1715B】 !全O数据giftW 丈数据致拥1全。H字节 伪首部8字节|I DP首都|字节11001 0110 1110 1011 #1 #11001 0110 1110 1101 #0110 1001 0001 0010 #(1)把首部看成以16位为单位的数字组成,依次进行二进制反码求和,包 括校验和字段;(2)检查计算出的校验和的结果是否等丁零(反码应为16个1);(3)如果等丁零,说明被整除,校验是和正确。否则,校验和就是错误的, 协议栈要抛弃这个

4、数据包。所谓的二进制反码求和,即为先进行二进制求和,然后对和取反。计算对IP首部检验和的算法如下:(1)把IP数据包的校验和字段置为0;(2)把首部看成以16位为单位的数字组成,依次进行二进制求和(注意: 求和时应将最高位的进位保存,所以加法应采用32位加法);(3)将上述加法过程中产生的进位(最高位的进位)加到低16位(采用32位加法时,即为将高16位与低16位相加,之后还要把该次加法最高位产生 的进位加到低16位)(4)将上述的和取反,即得到校验和。其中,二进制反码求和的计算方法:首先,我们计算如图B-1所示的部分和。我们把每一列相加,如果有进位, 就加到下一列。注意以下几点:1-第16列

5、的进位1 1-第15列的进位I 1| 1 0I I 1 1I I I 1 0I I I I 1 0I I I I I 1 1I I I I I I I 1 0I I II III I 1 0I I II III I I 11I I I I I I I I I I 1 1I I I I I I I I I I 1 0 0-第3列的进位I I II III I II I- 10 0第2列的进位I I II III I II I I-I1 1第1列的进位I I II III I II I III I1 0 01 1 0 01 0 0 0 10 01 00 0 00 1 0 00 0 1 1 01 0

6、0 11 0 10 1 0 11 0 0 0 00 01 00 0 00 1 1 10 0 0 0 01 01 00 0 00 0 0 00 0 0 0 10 00 10 0 00 0 0 00 0 0 0 01 11 10 0 00 0 1 00 0 0 1 11 11 10 0 00 0 0 00 0 0 0 01 10 10 0 00 0 0 00 0 0 0 01 11 100 00 00 0 0 0 0 0 0 0 0 0001 01 01 0 0 0 1 0 0 0 1 0101 01 00 1 1 0 1 0 1 0 1 0001 00 10 0 1 0 1 0 0 1 1 10

7、01 00 01 1 1 0 0 0 0 0 0 001 0 0 1 0 1 1 0 1 1 1 0 1 0 0 1部分和(【图B-1】二进制记法的部分和)【补充【此次操作是二进制求和】,最后一列(左第一位得到数值是5=101)】1,当我们加第1列(最右边一列)的时候,我们得到7。在二进制中,数7是111。我们保留最右边的1,把其余的位进到第2列和第3列。2,当我们加第2列时,我们计入从第1列来的进位。结果是8,它是二进 制的1000。我们保留第一个位(最右边的),把其余100进位给第3列、第4列 和第5列。3,对每一列重复以上过程。4,当我们加完最后一列时,我们有两个1没有列可以进行相加。这两个1在下一个步骤中应与部分和(Partial sum)相加。【下是图B-1二进制求和结果,|右边是第16列进位,|左边表示超出部分】|1001|001|0B.1.2和如果最后一列没有进位,那么部分和就是和。但是 ,如果还有额外的列(在 本例中,有一个具有两行的列),那么就要把它加到部分和中,以便得出和 。下 图给出了这样的计算,现在我们得出了和。1 0 0 1 0 1 1 0 1 1 1 0 1 0 0 1部分和111 0 0 1 0 1 1 0 1 1 1 0 1 0 1 1和0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论