第三章
拆分比特流
- 数据链路协议使用了下面的字符编码:
A: 01000111; B: 11100011; FLAG: 01111110; ESC: 11100000
为了传输一个包含 个字符的帧: AB ESC FLAG, 试问使用下面的成帧方法时所发送
的比特序列(用二进制表达)是什么?
a) 字节计数。
b) 字节填充的标志字节。
c) 比特填充的首尾标志字节。
- 字节计数:在每一帧开头用一个byte说明有多少字符(包括计数字节)
- 字节充填的标志字节:用标志字节(FLAG)标志帧头和帧尾,并对帧内出现的标志字节使用转义字节(ESC)
- 比特充填的首尾标志字节:同样标志字节(FLAG)标志帧头和帧尾,而在帧内,遇到连续5个1则添加一个零,同样在接受时,遇到连续五个1后有一个0,则去掉该0
- 出每一帧的结束处用一个标志字节而下一帧的开始处又用另一
个标志字节,这种做法非常浪费空间。为什么不用一个标志字节也可以完成同样的任务,这样可
以节省下来一个字节?
答:如果祯是络绎不绝的,一个标志位也许足够。但如果祯结束了,但在很长时间内没有新的
祯,接收者要如何判断下一字节是线路的干扰还是原来的祯数据。
差错检测和纠正
- 为了提供比单个奇偶位更强的可靠性,一种检错编码方案如下:用一个奇偶位来检查所
有奇数序号的位,用另一个奇偶位来检查所有偶数序号的位。请问这种编码方案的海明
距离是多少?
答:仍然为2,如何算一个编码方案的海明距离呢?
根据该编码方案,我们可以构造完整的合法码字列表,从中找出有最小海明距离的两个码字(不相同位个数),这就是该编码方案的海明距离。
-
海明码的使用:
-
假设使用 Internet 校验和 (4 位字)来发送一个消息 1001110010100011 。试问校验和的
值是什么?
答:将序列按 4 位一个值分解为 1001 1100 1010 0011
即按照k位分解后相加即可,注意高位溢出带回低位计算 -
使用本章介绍的标准 CRC 方法传输比特流 10011101. 生成多项式为 x^3+1 。试问实际传
输的位串是什么?假设左边开始的第 个比特在传输过程中变反了。请说明这个错误
可以在接收方被检测出来。给出 个该比特流传输错误的实例,使得接收方无法检测
出该错误。
答:比特流是 10011101 生成多项式为 1001 生成多项式阶位为 3,所以后面补三个 0 得到
1001 1101 000 用 1001 1101 000 整除 1001 得到余数 100 ,所以最后位串为 1001 1101 100。
如果第三位变反后,得出的数字不能整除 1001。但如果出错后的位串仍能被 1001 整除,则
错误无法检测出来,最简单的就是 所有位都为 0。
CRC校验需要双方商定生成多项式 -
CRC有效性:发送一个长度为 1024 位的消息,其中包含 992 个数据位和 32 CRC 校验位。 CRC算采用了 IEEE 802 标准,即 32 阶的 CRC 多项式。对于下面每种情况,说明在信息传
输中出现的错误能否被接收方检测出来:
a) 只有 位错误。
b) 个孤立的一位错误。
c) 18 个孤立的一位错误。
d) 47 个孤立的一位错误。
e) 个长度为 24 位的突发错误。
f) 个长度为 35 位的突发错误。
答:A.可以,所有的一位错误都能被检测
B.正确,所有的双位错误都能够检测出来
C.错误 CRC 不能检测出所有偶数个孤立错误
D.正确,CRC 可以检测出奇数个孤立错误,前提是以 x+1 作为因子
E.正确,CRC 可以检测出位数小于 r 位(这里 32 位)突发错误
F 正确,CRC 不能用于检测超过 r 位的突发错误 -
考虑 个具有 4kbps 速率和 20 毫秒传输延迟的信道。试问帧的大小在什么范围内,
停-等式协议才能获得至少 50%的效率?
答:传输时间/传输时间+延迟 = 50%,必须使传输数据包的时间等于来回的传输延迟。在 4kbps 的速率下,160bit 需要 40ms(2 倍的传输延迟)。所以祯大于 160bit 时,才能获得 50%的效率