qishi821的个人博客分享 http://blog.sciencenet.cn/u/qishi821

博文

TCP/IP协议之IP首部计算校验和

已有 3445 次阅读 2017-2-28 19:10 |个人分类:计算机网络|系统分类:科研笔记| IP首部校验和

为了进一步减小计算检验和的工作量,IP首部的检验和不再采用复杂的CRC检验码而采用下面简单的计算方法:在发送方,先把IP数据报划分为许多16位字的序列,并把检验和字段置零。用反码算术运算把所有16位字相加后,将得到的和的反码写入检验和字段。接收方收到数据报后,将首部的所有16位字再使用反码算术运算相加一次。将得到的和取反码,即得出接收方检验和的计算结果。若首部未发生任何变化,则此结果必为0,于是就保留这个数据报。否则,即认为出错,并将此数据报丢弃。

注:两个数进行二进制反码求和的运算很简单。它的规则是从低位到高位逐列进行计算。0和0相加是0,0和1相加是1,1和1相加是0但要产生一个进位,加到下一列。若最高位相加后产生进位,则最后得到的结果要加1.(谢希仁 编著 计算机网络 第五版)

有些博文中说是进行异或运算,总觉得不严谨,不知道是怎么得出的这个结论。

比如:

  11011

异或 01000

  10011

但      11011

反码运算  01000

      00011

     + 00001

      00100




http://blog.sciencenet.cn/blog-2355761-1036675.html

上一篇:fedora 安装chrome浏览器
下一篇:TCP/IP之IP地址详解

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2020-11-27 00:13

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部