首部检验和怎么计算?

发布网友

我来回答

5个回答

热心网友

IP首部校验和的计算方法:

把校验和字段清零,对每16位(2字节)进行二进制反码求和, 反码求和的意思是先对每16位求和,再将得到的和转为反码。

IP数据报校验只对首部进行校验,不对数据部分进行校验。把首部看成16位为单位的数字组成,依次进行二进制反码求和,再把结果依次存入校验和字段中即可。

扩展资料:

将发送的进行检验和运算的数据分成若干个16位的位串,每个位串看成一个二进制数,这里并不管字符串代表什么,是整数、浮点数还是位图都无所谓。将IP、UDP或TCP的PDU首部中的检验和字段置为0,该字段也参与检验和运算。

对这些16位的二进制数进行1的补码和(one's complement sum)运算,累加的结果再取反码即生成了检验码。将检验码放入检验和字段中。

其中1的补码和运算,即带循环进位(end round carry)的加法,最高位有进位应循环进到最低位。反码即二进制各位取反,如0111的反码为1000。

参考资料来源:百度百科-效验和

热心网友

把校验和字段清零,对每16位(2字节)进行二进制反码求和, 反码求和的意思是先对每16位求和,再将得到的和转为反码。

IP数据报校验只对首部进行校验,不对数据部分进行校验。把首部看成16位为单位的数字组成,依次进行二进制反码求和,再把结果依次存入校验和字段中即可。


TCP和UDP校验和计算:

校验和还包含一个96位的伪首标,理论上它位于TCP首标的前面。这个伪首标包含了源地址、目的地址、协议和TCP长度等字段,这使得TCP能够防止出现路由选择错误的数据段。这些信息由网际协议(IP)承载,通过TCP/网络接口,在IP上运行的TCP调用参数或者结果中传递。

伪首部并非UDP数据报中实际的有效成分。伪首部是一个虚拟的数据结构,其中的信息是从数据报所在IP分组头的分组头中提取的,既不向下传送也不向上递交,而仅仅是为计算校验和。

这样的校验和,既校验了UDP用户数据的源端口号和目的端口号以及UDP用户数据报的数据部分,又检验了IP数据报的源IP地址和目的地址。(伪报头保证UDP和TCP数据单元到达正确的目的地址。因此,伪报头中包含IP地址并且作为计算校验和需要考虑的一部分。最终目的端根据伪报头和数据单元计算校验和以验证通信数据在传输过程中没有改变而且到达了正确的目的地址。)

热心网友

热心网友

IP固定首部的意义:版本 首*度 区分服务 总长度 标识 标志 片偏移 生存时间 协议 首部检验和 源地址 目的地址

检验和的作用:检测数据报在传输中是否有错,有错则丢弃
检验和计算:
1、将首部各个部分用2进制展开
2、每个部分按位求和
3、所得结果按位取反

热心网友

IP数据报是将首部每16bit的数据相加求反码和,反码和计算就是将高位进位循环加到低位上,直到高位没有溢出,TCP UDP校验包括伪首部和数据报的校验

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com