计算机网络第三章习题

计算机网络第三章习题

习题对应课本:Computer Networks (Fifth Edition) - Andrew S. Tanenbaum

习题 1. 一个上层分组(数据包)被分为 10 帧,每帧有 80%可能无损到达。如果在数据链路层没有差错控制,该报文要平均传送多少次才能正确交付?
解题思路:本题目和第一章的习题 15 类似,考查已知出错概率的前提下,如何计算平均发送次数。
答:一次发送成功的概率为 0.810 = 0.107
两次发送成功的概率为 (1-0.107)×0.107
三次发送成功的概率为 (1-0.107)2×0.107
由此类推 k 次发送成功的概率为: ( 1 − 0.107 ) k − 1 × 0.107 (1-0.107)^{k-1}×0.107 (10.107)k1×0.107
发送次数的平均值=
∑ k = 0 ∞ k × ( 1 − 0.107 ) k − 1 × 0.107 \sum_{k=0}^{\infty }k\times \left ( 1-0.107 \right )^{k-1}\times 0.107 k=0k×(10.107)k1×0.107=9.3

习题 2. 在一个数据流中有下列数据片段: A B ESC C ESC FLAG FLAG D,使用字节填充方法,填充之后的结果是什么?
解题思路:字节填充法。如果数据中出现帧首尾字符FLAG和转义字符ESC,则在前面增加转义字符ESC。
答:经过填充之后的字节串是:A B ESC ESC C ESC ESC ESC FLAG ESC FLAG D (红色的为填充的转义字符)

习题 3. 字节填充算法里最大的开销是多少?
解题思路:本题考查对于字节填充算法中透明传输方法的理解。如果数据中出现帧首尾字符或者转义字符,则在前面增加转义字符来区分。
答:如果数据部分只有 FLAG 和 ESC 字符,则经过填充之后,原数据字符数和转义字符个数相同,因此开销=转义字符数/数据字符数=100%

习题 4. 使用比特填充时,是否可能出现单比特差错(丢失、插入或者修改等),而通过校验和无法查出?如果不会,为什么?如果会,什么情况下会出现?校验和长度对此是否有影响?
解题思路: 本题考查对于校验概念和校验能力的理解。
答:有可能出现。当使用比特填充时,如果有单比特数据在传输的过程中发生改变,对于 n位校验和,有 1 / ( 2 n ) 1/(2^n) 1/(2n)的概率无法查出错误,即被判断为校验和字段的 n 位数据的值恰好是使 得对数据部分校验正确的值。校验和的位数越长,错误被忽略的概率越低。

习题 6. 为增强单比特校验的可靠性,一个差错检测编码使用一个校验位来检查所有奇数位,使用第二个校验位来检查所有偶数位。此编码的汉明距离是多少?
解题思路:本题考查对于汉明距离的理解。
答:没有校验位时,编码的汉明距离是 1,增加了校验位之后,编码的汉明距离是 2。

习题 7. 求使用偶校验汉明码对一个八位字节 10101111 校验之后的二进制位串。
解题思路:本题考查对于汉明码的校验原理的理解。
答:按照汉明码的原则,增加了校验位之后,位串应该是 p 1 p_{1} p1 p 2 p_{2} p2 1 p 3 p_{3} p3 0 1 0 p 4 p_{4} p4 1 1 1 1,从左至右其位序号分别为 1-12,其中 p 1 p_{1} p1, p 2 p_{2} p2, p 3 p_{3} p3, p 4 p_{4} p4为校验位。
p 1 p_{1} p1对第 3、5、7、9、11 位进行偶校验,可求出 p 1 p_{1} p1=1
p 2 p_{2} p2对第 3、6、7、10、11 位进行偶校验,可求出 p 2 p_{2} p2=0
p 3 p_{3} p3对第 5、6、7、12 位进行偶校验,可求出 p 3 p_{3} p3=0
p 4 p_{4} p4对第 9、10、11、12 位进行偶校验,可求出 p 4 p_{4} p4=0
因此增加了校验位之后的位串是:1010 0100 1111。

习题 9. 一种检测差错的方法是把数据分成 n 行 k 列的数据块来传输,每行一个校验位,每列一个校验位,右下角的校验位对其所在行和列进行校验。这种方法可以检查出所有单比特差错吗?能检查出所有双比特差错吗?三比特差错呢?证明这种方法不能检查出某些四比特差错。
解题思路:本题考查对于行列同时校验方法的原理的理解。
答:这种方法可以检查出所有单比特差错,一个单比特差错将导致其所在的行和列都出现校验错误。也可以检查出所有双比特差错,即使出错的两个比特在同一行或者同一列,也能查出。对于 3 比特差错,如果一个数据位错,其对应的行列校验位均错,则无法检测出差错。
对于 4 比特差错,如果出错的四个点正好位于矩形的 4 个顶点,则无法检查出差错。

习题 11. 假定数据以 1000 比特成块发送,可能发生 1 比特差错,出错的概率是独立的且重传不出错。误码率为多少时,采用奇偶校验检错并重传的方法要好于汉明码直接纠错?
解题思路:本题考查对于两种差错控制方法:汉明码直接纠错和只检错重传纠错的开销的理解。在误码率比较高时,根据汉明码校验位长度的不等式,可以算出汉明码的开销;
答:若使用海明码,根据m+r+1≤ 2 r 2^{r} 2r可知需要10位校验位,一共需要传1010位;
若采用错误检测和重传机制(每块一个校验位),出错时重传 1001 位,假设误码率为p,则一共传输1001+1001×1000p位;
当1001+1001×1000p<1010时,错误检测和重传机制比使用海明码更好,此时需要误码率p< 8.99 × 1 0 − 6 8.99\times10^{-6} 8.99×106

习题 14. 用生成多项式 x 3 + 1 x_{3}+1 x3+1 x 7 + x 5 + 1 x_{7}+x_{5}+1 x7+x5+1 的余数是多少?
解题思路:本题考查对于重要的校验技术——CRC 校验原理的理解和计算。
答:首先把被除数和生成多项式的系统都写成二进制位串,被除数为 10100001,生成多项式为 1001。然后用模 2 除法(对应位进行异或,不进位也不借位),求出余数为 111,其对应的多项式为 x 2 + x + 1 x_{2}+x+1 x2+x+1

习题 15. 位流 10011101 使用教材中描述的标准 CRC 方法来进行校验。生成多项式是 x3+1。写出实际传输的位串。假定在传输中第三位被反转,证明在接收方能检测出差错。举例说明接收方不能检测出位差错的情形。
解题思路:本题考查对于重要的校验技术——CRC 校验原理的理解和计算。
答: 生成多项式的最高阶为 3,因此先在待校验的位串之后增加 3 个 0,即 1001 1101 000;然后以此位串为被除数,生成多项式的位串(1001)为除数采用模 2 除法进行计算,求出余数为 100。实际传输位串为:1001 1101 100。
第三位反转之后的出错位串为:1011 1101 100,用 1011 1101 100 除以 1001,得到余数 100,余数不为 0 说明该位串有错,因此可以检测出错误。
如果发生在左数第三位与第九位均发生了反转错误,即收到的位串为 1011 1101 000,此时校验的结果为 0,即接收方无法检测出错误。

习题 16. 数据链路层协议总是把 CRC 放在帧尾而不是帧头,为什么?
解题思路:本题目考查对于数据链路层采用硬件实现 CRC 原理的理解。
答:如果把 CRC 放在帧头,那么在发送前要把整个帧扫描一遍来计算 CRC,然后再从帧头开始发送,这样每一位都要处理两次,比较浪费时间。 把 CRC 放在帧尾,边发送边计算校验位,可以一次完成,效率较高。

习题 17. 在 3.3.3 节讨论的 ARQ 协议中,概述了一种情况:由于 ACK 帧丢失,对每一帧接收方都收到两次。如果数据帧和 ACK 都不丢失,接收方是否有可能收到重复的帧?
解题思路:本题考查对于 ARQ 协议中出现重复帧情形的理解。
答:有可能。例如,某一帧已正确到达,但接收方因为 CPU 忙、处理速度慢等原因而推迟了 ACK 的发送,结果导致发送方的重发定时器超时,重发数据帧。此时,接收方将收到重复帧。

习题 18. 某信道的数据率是 4 kbps,传播时延是 20 毫秒,帧长为多少时,停等协议的效率能至少能达到 50%?
解题思路:本题考查对于停等协议的效率的理解和计算。停等协议的效率=发送时延/传输总时延=发送时延/(发送时延+2×传播时延)
答:当帧的发送时延等于往返传播时延时,效率将达到 50%。传播时延为 20×2=40 毫秒,要使发送时延达到 40 毫秒,帧长至少为 4000×0.04= 160 位。
本题也可以停等协议的性能公式计算:停等协议的效率=1/(1+2a),a=传播时延/发送时延

习题 20. 一条 3000 公里长的 T1 中继线路使用协议 5 来传输 64 字节长的数据帧。如果传播速度为 6 微妙/公里,需要多少位序列号?
解题思路:本题考查对于 GobackN ARQ 协议的性能的理解和计算。为达到最大信道利用率,序号空间(发送方的最大窗口)必须能满足发送方一直连续发送。协议 5 采用捎带确认方式(piggyback),但在题目中并未说明,因此假定在收到数据帧之后,采用不含数据的 ACK 短帧确认的情形,忽略 ACK 帧的发送时延。
答:假定序号为 n 位,GobackN 协议的最大发送窗口 W= 2 n − 1 2^n-1 2n1,其信道利用率公式为 W/(1+2a)。
传播时延=3000×6=18 毫秒,发送时延= 4×8/1.536M = 0.3 毫秒,a=传播时延/发送时延=18/0.3 = 60。
本题中 W 的取值应使信道利用率达到 100%W/(1+2a) ≥1,可求出 W≥121,即 2 n − 1 2^n-1 2n1≥121,求出 n≥7,即至少要 7 位序号。

习题 27. 在带宽为 1Mbps 的无差错链路上使用协议 6 进行通信,设最大帧长为 1000 位,网络层每秒产生一个新的数据包,重传超时间隔为 10ms。如果不使用 ACK 定时器,将产生不必要的重传。求一帧的平均重传次数。
解题思路:本题考查对于协议 6 的算法和 ACK 定时器作用的理解。
答:发送一帧的时间是 1000/ 1 0 6 10^6 106=1ms,每秒只有一帧要发送,而重传间隔 10ms<1s,没有ACK 定时器,即只采用捎带确认,重传不可避免。
假设 A 发送某一帧,B 收到后,接收窗口滑动,但因为没有要回送的帧,则等待;A 发送10ms 之后重发该帧,B 收到、发现是重复帧,则发送 NAK;A 收到 NAK 之后不再重发。因此每一帧都发送两次。

习题 28. 协议 6 中,MAX_SEQ = 2 n − 1 2^n-1 2n1。很明显这个条件有利于帧头字段的有效使用,但我们没有说明这个条件是必须的。对于 MAX_SEQ = 4,协议是否能正确工作?请举例说明。
解题思路:本题考查对于协议 6 的理解。
答:如果 MAX_SEQ = 4,协议将会出错。
MAX_SEQ = 4, 将有 NrBufs = 2,即偶数序号的帧使用 0 号缓存,而奇数序号的帧使用 1 号缓存。此时,0 号帧和 4 号帧将使用同一个缓存。
假定 0-3 号帧都已正确接收并确认,接收窗口将变为[4,0],如果 4 号帧丢失,而 0 号帧正确到达,该帧将保存在 0 号缓存,且 arrived [0]=TRUE。协议算法中的 Frame Arrival 情形下的while 循环将得以执行,0 号帧被上交给网络层,出现不按序上交的错误。因此,协议 6 要 求 MAX_SEQ 必须是奇数才能正常工作。

习题 29. 在 1Mbps 的卫星信道上发送多个长度为 1000 位的帧。从地面到卫星的传播时延是 270 毫秒,采用捎带确认(piggybacking)方式。帧头很短,且使用 3 位序号。请分别计算采用下列协议的最大信道利用率:
(a) 停等协议
(b) 协议 5
© 协议 6

解题思路:本题考查对于三种重要的可靠性传输协议——停等 ARQ 协议、GobackN ARQ 协议和选择重传 ARQ 协议的原理的理解和性能计算。
答:发送时延=1000/1M=1 毫秒,传播时延=270 毫秒,a=传播时延/发送时延=270
(a) 停等协议的最大信道利用率=1/(2+2a) =1/542=0.18%
(b) 采用协议 5 的最大发送窗口=23-1 = 7,最大信道利用率= 7/542 = 1.29%.
© 采用协议 6 的最大发送窗口=23-1 = 4,最大信道利用率= 4/542 = 0.74%

习题 30. 在 64kbps 的无差错卫星信道上单方向发送多个长度为 512 字节的数据帧,反向会送较短的 ACK 帧。地面-卫星的传播时延是 270 毫秒。当发送窗口分别为 1、7、15、127 时,最大吞吐量各是多少?
解题思路:本题考查发送窗口大小对于 ARQ 协议效率的影响。最大吞吐量=信道利用率×标称带宽,注意信道利用率最大值为 1,最大吞吐量不会超过标称带宽。
答:发送时延=512×8/64k = 64 毫秒,传播时延=270 毫秒,a=传播时延/发送时延= 4.2
设发送窗口大小为 W,W/(1+2a)≥1,可求出 W≥10 时,信道利用率最高。
发送窗口=1 时,吞吐量=1/(1+2a)×64k = 6.8 kbps
发送窗口=7 时,吞吐量=7/(1+2a)×64k = 47.7 kbps
发送窗口为 15 和 127 时,信道满负荷工作,最大吞吐量为 64kbps。

习题 31. 在一条 100 公里长的电缆上采用 T1 速率来发送数据,电缆的传播时延是真空中光 速的 2/3。请问多少位数据可以充满电缆?
解题思路:本题考查发送时延和传播时延在数值上的关系,即当第一位传播到电缆另一端时,发送方已经发送了多少位。
答:电缆中的传播速度为 200000 公里/秒,也就是 200 公里/毫秒,所以 100 公里的电缆将在500 毫秒内被充满。每个 T1 帧在 125 毫秒内发送 193 位。500 毫秒相当于 4 帧的长度,即193×4=772 位将充满电缆。

习题 32. 为什么 PPP 使用字节填充而不使用位填充?请写出至少一个原因。
解题思路:本题考查对于 PPP 原理的理解。
答:PPP 是由软件实现的,而位填充几乎都是在硬件协议中实现的。对于软件实现,字节操作比位操作更简单。此外,PPP 是设计用于调制解调器的。调制解调器接收和传送数据的单位是字符而不是位。

习题 33. 在 PPP 帧中承载 IP 数据包的最小开销是多少?只计算 PPP 本身的开销,不考虑 IP包头。最大开销是多少?
解题思路:本题考查对于 PPP 帧头控制字段的理解。
答:最小开销是:每一帧有 2 个标志字节、1 个协议字节和 2 个校验字节,每帧总共 5 字节开销。
最大开销是:2 个标志字节、1 个地址字节、1 个控制字节、2 个协议字节和 4 个校验字节,一共 10 字节开销。

补充题 1. 采用 3 比特序号的 SR 协议,若接收窗口为 5,则发送窗口的最大值是多少?
解题思路:本题考查对于选择重传 ARQ 协议中发送窗口和接收窗口的个数之间关系的理解。
答:使用 n 位序号的选择重传协议的滑动窗口个数应满足 W T + W R ≤ 2 n W_{T} +W_{R}≤2^n WT+WR2n,对于 3 位序号, W T + W R ≤ 8 W_{T} +W_{R}≤8 WT+WR8 W R W_{R} WR=5,则 W T ≤ 3 W_{T}≤3 WT3

补充题 2. 50-kbps 的卫星信道,往返时延为 500ms,帧长为 1000 位,使用 SR 协议,若使效率达到 50%,序号的比特数至少是多少?
解题思路:本题考查对于选择重传 ARQ 协议中效率(信道利用率)公式的掌握,及发送窗口和序号的关系的理解。
答:因题目中没有强调使用忽略发送时间的 ACK 帧来确认,假定为捎带确认。
α=传播时延/发送时延 = 250/(1000/50) = 12.5
设发送窗口为 W,选择重传协议的信道利用率为 W/(2+2α) =50%,可求出 W=14
W ≤ 2 n − 1 W≤2^{n-1} W2n1,可求出 n=5。

补充题 3. 数据链路层采用 GBN 协议,发送方已经发送了编号为 0-7 的帧,当计时器超时时,若发送方只收到 0、4、5 号帧的确认,则发送方需要重发的帧数是多少?
解题思路:本题考查对于 GBN ARQ 协议中累计确认概念、确认序号和重传机制的理解。
答:对 5 号帧的确认说明 5 号帧及以前的帧全部正确接收,因此发送方需要重发未确认的 6号和 7 号帧,即需要重发的帧数是 2。

补充题 4. 两台计算机的数据链路层协议实体采取滑动窗口机制利用 16kbps 的卫星信道传输长度为 128 字节的数据帧,信道传播时延为 270ms。
1)计算使用停等协议的信道利用率;
2) 计算使用发送窗口为 7 的 GBN 协议的信道利用率;
3) 计算使用发送窗口为 15 的 GBN 协议的信道利用率;
4) 为使信道利用率达到最高,使用 GBN 协议时序号的比特数最少为多少位?

解题思路:本题考查对于停等协议和 GBN ARQ 协议的信道利用率公式的掌握,及发送窗口和序号的关系的理解。
答:因题目中没有强调使用忽略发送时间的 ACK 帧来确认,假定为捎带确认。
α=传播时延/发送时延 = 270/(128×8/16) ≈4.2,2+2α=10.4
1)停等协议的信道利用率=1/(2+2α)= 1/10.4 ≈ 9.6%
2)发送窗口为 7 的 GBN 协议的信道利用率=7/(2+2α)= 7/10.4 ≈ 67.3%
3)对于发送窗口为 15 的 GBN 协议,因为 15>10.4,信道利用率为 100%
4)4位。

补充题 5. 已知数据位流为 1101 0110,采用 CRC 校验,G(x)=x3+1,计算出校验位。
解题思路:本题考查 CRC 校验原理的理解和计算方法的掌握。
注意,如果 G(x)的最高幂次为 r,则在数据位后先填上 r 个 0 作为被除数;G(x)对应的位串作为除数;计算时采用的是模二除法,对应位异或,不进位也不借位。校验位为 r 位,如果不足 r 位,则在前面用 0 补足。

答:计算出校验位为:101。

补充题 6: 某数据链路层协议要传输下列 4 个字符数据:A: 01000111; B: 11100011; FLAG: 01111110;
ESC: 11100000,写出下列成帧方法中实际传输的二进制序列:
(1) 字符计数法 (2) 带首尾标志的字节填充法 (3) 带首尾标志的比特填充法
(4) RS-232 协议,每次发送一个 8 位字符,以位’0’为起始位,位’1’ 为终止位
并计算上述每种方法的效率。

解题思路:本题考查对于各种成帧方法的原理的理解。成帧的效率定义为数据部分长度/成 帧后的总长度。
答:1)字符计数法的帧: 00000101 01000111 11100011 11100000 01111110
增加了一个长度字节,效率为 4/5=80%
2)字节填充法的帧:
01111110 01000111 11100011 11100000 11100000 11100000 01111110 011111110
增加了首尾标志和 2 个转义字符,效率为 4/8=50%
3)比特填充法的帧:01111110 01000111 110100011 111000000 011111010 01111110
增加了首尾标志和 3 位填充,效率为 32/51=62.75%
4)RS232:每个字符前面加 1 位起始位,后面加 1 位停止位,
0010001111 0111000111 0111000001 0011111101
效率为 32/40=80%

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值