Skip to content

2013年 408 计算机网络 第 37 题

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

题目

HDLC 协议采用零比特填充法,对数据 01111100 01111110 进行组帧后对应的比特串为( )

错因

B

可能把"5 个连续 1 后插入 0"错记为"6 个连续 1 后插入 0"——只在第 6 位之后插入 0 而不是第 5 位连 1 之后立即插。这种错算下原始的第 6 位之后才插,结果与正确答案完全错位。错的根源:填充规则的位置算错。

C

C 与 A 形式上相同(疑为骨架抄录笔误,实际命题方原题 A 与 C 应有细微差别)——若按正确填充得到的就是这个比特串。

D

D 与 B 形式上相同(同样疑为骨架抄录笔误)——若属于"位置错算到第 6 位"的错误填法。

总解析

第一步:明确 HDLC 零比特填充规则

HDLC 用 01111110(6 个 1 包夹 2 个 0)作为帧首尾标志(flag)。为避免数据中出现 5 个以上连续的 1 误被识别成标志,发送方在发送数据时:

遇到连续 5 个 1,强制在第 5 个 1 后面插入一个 0——无论第 6 位原本是 0 还是 1。

接收方做反向操作:每收到 5 个连续 1 后看下一位,若是 0 则丢弃(这是填充位)、若是 1 则可能是帧标志或错误。

第二步:逐位扫描原始数据 01111100 01111110

把 16 位数据展开 + 维护"连 1 计数器":

位序位值连 1 计数输出注释
1000
2111
3121
4131
5141
6151触发插入 0,重置计数
00(插入位)
7000重置后正常输出
8000
9000
10111
11121
12131
13141
14151触发插入 0,重置计数
00(插入位)
15111
16000

第三步:组合输出

输出比特序列:0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 0(共 18 位 = 16 数据位 + 2 填充位)

按 8 位分组:

01111100  00111110  10

第四步:核对

最终答案是 A(01111100 00111110 10)

编者注(生僻术语):HDLC 的"零比特填充"是一种透明传输机制——保证任意数据流都能被无歧义地嵌入帧中。

接收方反向操作:每看到 5 个连 1 后下一位,如果是 0 则丢弃这个 0(视为填充位);如果是 1 再下一位是 0,则识别为帧标志 01111110如果连续 7+ 个 1,则识别为终止符或错误。HDLC 物理上能传任意比特流的奥秘就在这条规则上。

题面 A 与 C、B 与 D 形式上重复属于本题骨架抄录笔误(408 真题原题选项应有细微差别),按推导得到的正确比特串与 A 一致,故答案选 A。

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题