Skip to content

2023年 408 计算机网络 第 37 题

计算机网络2023年选择题2分

题目

若甲向乙发送数据时采用 CRC 校验,生成多项式为 G(x) = x⁴ + x + 1(即 G = 10011),则乙接收到下列比特串时,可以断定其在传输过程中未发生错误的是( )。

错因

A

把 101110000 模 2 除以 10011 得余数 0011 ≠ 0,按 CRC 校验规则判定已出错,不是答案。选 A 的人可能在长除法的某一步漏算或字节对齐错(常见错处:跳过了"高位为 0 时直接移位"的步骤,导致某次本不该异或的位置做了异或)。

B

模 2 除法得余数 0010 ≠ 0,已出错。选 B 的人多半是在第二轮异或时(位 6 处)异或对了,但在最后一轮(位 1 / 位 0 移位时)多算了一次,把 0010 的尾巴混成了 0000。

C

模 2 除法得余数 0011 ≠ 0,已出错。选 C 的人和 A 选的人错处类似,常见错路:CRC 的位移和异或操作做混了,导致最终余数总是 0011 这种"接近但不为 0"的值。

总解析

第一步:明确 CRC 校验的判定规则

发送端:用模 2 除法 (binary mod-2 / XOR division) 把"原数据 + 0 填补"除以 G,余数即为 CRC 校验码,附加到原数据末尾发送出去。

接收端:把收到的整个比特串(含 CRC 校验位)模 2 除以 G。

  • 余数 = 0未发生错误
  • 余数 ≠ 0 → 检测到错误

第二步:对四个候选串分别做长除法

生成多项式 G = 10011(5 位,校验码 4 位)。

A:101110000 ÷ 10011

101110000  ÷ 10011
取高 5 位 [10111],10111 XOR 10011 = 00100
余 0010 0 0000,下一非零位在位 6
[10000] XOR 10011 = 00011
余 ... 0 0011,剩余位都是 0
余数 = 0011 ≠ 0

B:101110100 ÷ 10011

[10111] XOR 10011 = 00100  →  剩余 001000100
[10001] XOR 10011 = 00010  →  剩余 000000010
余数 = 0010 ≠ 0

C:101111000 ÷ 10011

[10111] XOR 10011 = 00100  →  剩余 001001000
[10010] XOR 10011 = 00001  →  剩余 000010000
[10000] XOR 10011 = 00011  →  剩余 ........0011
余数 = 0011 ≠ 0

D:101111100 ÷ 10011

[10111] XOR 10011 = 00100  →  剩余 001001100
[10011] XOR 10011 = 00000  →  剩余 000000000
余数 = 0000 ✓

第三步:比对

选项比特串余数是否未出错
A1011100000011
B1011101000010
C1011110000011
D1011111000000

最终答案是 D(101111100)

编者注(生僻术语):模 2 除法(binary mod-2 division)是 CRC 的核心运算——加减法都是 XOR,不带进位 / 借位。比一般二进制除法简单,但要训练成肌肉记忆。考研做 CRC 题的关键不是公式,而是手工长除法的快稳准:① 高位为 0 跳过(不异或,只移位);② 高位为 1 才用 G 异或;③ 异或后高位必为 0,可以直接换写覆盖。题面 G = 是 5 位,所以余数 4 位、校验码也是 4 位。

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数