山东省建设项目监理协会网站,免费的erp系统,上海手机软件开发公司,wordpress 珠宝主题IP首部有16bit的校验和#xff0c;因此#xff0c;IP首部以16bit为单位计算校验和#xff0c;IP首部的长度一定是16bit的整倍数#xff0c;这是由于首部长字段的单位是32bit#xff0c;首部长度不足32bit的整数倍时#xff0c;会在尾部补0到32bit的整数倍。
发送方计算方…IP首部有16bit的校验和因此IP首部以16bit为单位计算校验和IP首部的长度一定是16bit的整倍数这是由于首部长字段的单位是32bit首部长度不足32bit的整数倍时会在尾部补0到32bit的整数倍。
发送方计算方法 1.首先把校验和的16bit置0。 2.将首部以16bit为单位相加因为首部中的校验和字段长度为16bit如果结果位数大于16bit则把高16bit和低16bit相加此时结果的位数会小于等于16bit。 3.将结果按位取反并填入校验和字段。
接收方计算方法 1.将首部以16bit为单位相加如果结果位数大于16bit则把高16bit和低16bit相加此时结果的位数会小于等于16bit。 2.结果如果所有位全为1则无差错。
如果发送方要发送的IP首部如下
0x1122 0x3344 0x5566 0x7788 0x99AA 0x0000 0xBBCC 0xDDEE 0xFFFF 0x1234其中第11、12字节为校验和字段在计算首部校验和前该字段为0。我们先将以上16bit块相加结果为
0x1122 0x3344 0x5566 0x7788 0x99AA 0x0000 0xBBCC 0xDDEE 0xFFFF 0x1234 0x456EB由于0x456EB长度大于16bit因此将其高16bit与低16bit相加
0x56EB 0x0004 0x56EF计算结果为0x56EF它的位数小于等于16bit将其按位取反后填入要发送的IP首部中0x56EF按位取反的结果是0xA910
0x1122 0x3344 0x5566 0x7788 0x99AA 0xA910 0xBBCC 0xDDEE 0xFFFF 0x1234对端接收到以上IP首部后以16bit为单位相加
0x1122 0x3344 0x5566 0x7788 0x99AA 0xA910 0xBBCC 0xDDEE 0xFFFF 0x1234 0x4FFFB由于0x4FFFB长度大于16bit因此将其高16bit与低16bit相加
0xFFFB 0x0004 0xFFFF最终结果全为1接收端验证通过。