若UDP协议在计算校验和过程中,计算机得到中间结果为1011 1001 1011 0110时,还需要加上最后一个16位数0110 0101 1100 0101,则最终计算得到的校验和是()
A. 0001 1111 0111 1011
B. 0001 1111 0111 1100
C. 1110 0000 1000 0011
D. 1110 0000 1000 0100
相加后取反(若最高位产生进位则加1再取反)
在UDP协议中,校验和的计算是通过将所有16位的数据块相加,然后将结果取反得到的。
中间结果为:1011 1001 1011 0110 ,最后一个16位数为:0110 0101 1100 0101
首先,将这两个16位数相加:
1011 1001 1011 0110 + 0110 0101 1100 0101 ----------------------- 0001 1111 0111 1011 (进位) + 1 (进位) ----------------------- 0001 1111 0111 1100
相加的结果为:0001 1111 0111 1100
接下来,取反得到最终的校验和:
0001 1111 0111 1100 ----------------------- 1110 0000 1000 0011
故而最终计算得到的校验和是:1110 0000 1000 0011
在 UDP 协议中,校验和的计算采...
用户登录可进行刷题及查看答案
在 UDP 协议中,校验和的计算采用反码加法,需处理循环进位并对最终和取反。以下是具体计算步骤:
1. 转换二进制并相加
中间结果 A:1011 1001 1011 0110(二进制),对应十六进制B9B6,十进制为47542。
1011 1001 1011 0110
B9B6
47542
最后一个数 B:0110 0101 1100 0101(二进制),对应十六进制65C5,十进制为26053。
0110 0101 1100 0101
65C5
26053
两数相加:47542 + 26053 = 73595。
47542 + 26053 = 73595
2. 处理循环进位
16 位无符号整数最大值为65535,73595超过 16 位,产生进位1(即73595 = 65535 + 8060,进位值为1)。
65535
73595
1
73595 = 65535 + 8060
循环进位规则:将进位加到结果最低位,即73595 - 65536 + 1 = 8060。
73595 - 65536 + 1 = 8060
8060的十六进制为1F7C,二进制为0001 1111 0111 1100。
8060
1F7C
0001 1111 0111 1100
3. 取反得到校验和
对0001 1111 0111 1100取反,每一位0变1、1变0,得到: 1110 0000 1000 0011。
0
1110 0000 1000 0011
最终答案
登录后提交答案